CUDA (Проект)/Техническое задание
Материал из Wiki
				
								
				
				
																
				
				
								
				Проект CUDA
- Техническое задание
 - DDS формат
 - Алгоритм сшифки кадров
 - Описание программы GLView
 
Литература
Содержание | 
Основные требования
Программные средства предназначены для:
- сборки видеоизображения топологического слоя СБИС из отдельных кадров, полученных с помощью микроскопа.
 - автоматизированного совмещения различных топологических слоёв одной СБИС с устранением линейных искажений.
 - визуального просмотра полученных изображений
 - экспорта изображений слоя в формат программ PhotoPreview и Glew.
 
Форматы данных
Входные форматы:
- форматы видеоизображений: BMP, JPG, DDS.
 - форматы представления проекта: GLEW, Photopreview, собственный формат (Config).
 
Выходные форматы:
- форматы видеоизображений: BMP, DDS.
 - форматы представления проекта: GLEW, Photopreview, собственный формат проекта (Config), определяемый подобно INI-файлам.
 
Формат Config включает:
Секция GLOBAL - описание проекта в целом - содержит:
- Число слоёв в проекте (LAYERS_NUMBER)
 - Путь доступа к рабочему директорию проекта (WORK_DIR)
 
-  По каждому слою (создаются секции слоев с именами от LAY0 до LAY15):
- номер слоя (NUMBER) (используется для упорядочивания списка слоев)
 -  имя слоя (NAME)
- атрибут слоя (TYPE) (1 - металл, 2 - поликремний, 3 - контакт, 0 - прочее)
 
 - размер слоя Кадров_по_X (горизонтали) + Кадров_по_Y (вертикали) (H_SIZE и V_SIZE соответственно)
 - имя поддиректория в рабочем директории проекта, в котором хранятся файлы изображений кадров (LAYER_DIR)
 - тип изображения в кадрах входа: DDS, BMP (IMAGE_TYPE)
 - Среднее перекрытие кадров по горизонтали и вертикали(H_AVERAGE_OVERLAP и V_AVERAGE_OVERLAP)
 - Направление обхода (Например, 0 — слева направо, сверху вниз; 1 — слева направо, снизу вверх; 2 — сверху вниз, слева направо; 3 — снизу вверх, слева направо) Это задается только при импорте слоя в проект
 -  следующие две позиции определяют информацию по отдельным кадрам
-  Список имён файлов изображений кадров всегда представлен в файле с именем ${LAYER_DIR}_NAMES.txt) 
— по одному имени в строке без расширения (в именах могут использоваться только буквы латинского алфавита, цифры и знаки подчеркивания) - Список значений координат левого верхнего угла каждого кадра в общем изображении слоя (или смещение относительно среднего перекрытия) - всегда представлен в файле с именем ${LAYER_DIR}_BIND.txt)
 -  
возможно, поворот отдельного кадра ??? 
 -  Список имён файлов изображений кадров всегда представлен в файле с именем ${LAYER_DIR}_NAMES.txt) 
 
 - Размеры отдельного кадра в пикселях по горизонтали (H_PIXEL) и вертикали (V_PIXEL) - читаются из файла изображения одного из кадров - считается, что размеры кадров равны для всего слоя
 - Значение угла поворота слоя в плоскости XY (0...±180°) (ANGLE)
 - Значение сдвига по горизонтали и вертикали (H_SHIFT и V_SHIFT)
 - Значение масштаба (масштабирование слоя с целью сведения всех слоев в один размер) SCALE (возможно потребуется пара коэффициентов - отдельно по горизонтали и вертикали)
 - ¿ Значение исправления трапеции (возможно, важен порядок применения трапеции и поворотов к исходному изображению??)
 - ¿ Цветовые параметры слоя (контраст, коррекция цвета и др.)
 - ¿ Масштаб изображения (число пикселей/мкм)
 
Выполняемые функции программ
Общие вопросы:
- нужно ли совмещать данные задачи в единую программу или для каждой задачи использовать отдельную программу?
 - если отдельные, то нужно проработать форматы данных для стыковки программ.
 - свойства слоёв (контакты, металл, поликремний и прочее)?
 
Программа импорта проекта
- Создаёт проект - совокупность файлов изображений кадров для нескольких слоёв одной топологии СБИС.
 -  на входе могут задаваться:
- каталог[и] с файлами изображений кадров слоёв (для которых нужно указать порядок следования/обхода фотографирования слоя: сверху-вниз слева-направо...)
 - файлы описания слоёв для программы Photopreview/Glew
 
 
Программа сшивки отдельных слоев ()
-  Грузит изображения отдельных кадров слоёв топологии СБИС 
-  Вопросы:
-  грузит по одному слою, 
или задаются сразу все слои? - кроме изображений нужно ли задавать файл со списком файлов изображения кадров (по одному слою или по всем слоям)?
 - брать ли на входе файл Glew/Photopreview?
 
 -  грузит по одному слою, 
 
 -  Вопросы:
 -  Находит наилучшее совмещение между кадрами видеоизображений
- задаётся средняя область перекрытия по вертикали и горизонтали
 - величину контрольной зоны перекрытия (поиска лучшего совмещения)
 
 -  по определённым перекрытиям (наилучшего совмещения отдельных кадров) совмещает отдельные кадры в единое изображение слоя
- Вопрос: Что делать если не совмещаются?
 
 - разрезает единое изображение слоя на отдельные кадры, которые совмещаются встык (нужно ли это?).
 -  сохраняет полученные изображения в формате DDS + Config
-  Вопросы:
- нужен ли здесь DDS, или можно использовать BMP (PPM)?
 - нужно ли сохранять значения наилучших перекрытий (или это отладочная информация)?
 - нужно ли сохранение в форматах GLEW и Photopreview?
 - нужна ли визуализация полученного единого изображения слоя? или как контролировать качество сшифки?
 
 
 -  Вопросы:
 
Глобальный вопрос:
-  На выходе программы что нужно получить?
- исходные изображения (BMP/DDS?) + Config1 (включающий координаты (левый верхний угол) кадров в единых координатах общего изображения слоя)
 - { исходные изображения (BMP/DDS?) + Config1 (координаты с перекрытием) } + { кадры без перекрытия сшитого изображения слоя (BMP/DDS?) + Config2 (координаты без перекрытия) }
 - кадры без перекрытия сшитого изображения слоя (BMP/DDS?) + Config2 (координаты без перекрытия)
 
 
Программа коррекции отдельных слоёв (MergeLayers)
- загружает изображения всех слоёв топологии СБИС
 -  осуществляет следующие действия над видеоизображением:
-  просмотр изображений слоёв
-  масштабирование отображаемого (видимого) изображения слоёв
- общий вид (вписать в окно - fit to window);
 - увеличение/уменьшение в два раза;
 - увеличение выделенной области на весь экран/окно;
 - "плавное" увеличение/уменьшения масштаба отображения изображения;
 
 - перемещение по изображению по четырём направлениям
 - центрирование изображение заданной точке
 - запоминание позиции и переход к сохранённой позиции ?!
 
 -  масштабирование отображаемого (видимого) изображения слоёв
 -  поворот изображения отдельного слоя:
- на произвольный угол, заданный пользователем, по часовой либо против часовой стрелки;
 - автоматическое выравнивание (поворот) при задании пользователем двух точек, которые должны лежать на одной прямой (вертикальной или горизонтальной);
 
 - поворот изображения всех слоёв (либо одного слоя?) на угол ±90°, 180°;
 - "исправление" трапеции, при задании пользователем четырёх точек углов многоугольника;
 - масштабирование видеоизображения для совмещения отдельных слоёв (изменение линейных размеров)
 - сдвиг слоёв друг относительно друга
 
 -  просмотр изображений слоёв
 
- Экспорт слоёв в формат Photopreview/GleW + BMP
 
Программа просмотра слоёв (DDSView[er])
- загружает изображения всех слоёв топологии СБИС (DDS+Config | BMP+Config | JPG+Config?? | BMP+Glew | BMP + Photopreview)
 -  осуществляет следующие действия над видеоизображением:
-  просмотр изображений слоёв
-  масштабирование отображаемого (видимого) изображения слоёв
- общий вид (вписать в окно - fit to window);
 - увеличение/уменьшение в два раза;
 - увеличение выделенной области на весь экран/окно;
 - "плавное" увеличение/уменьшения масштаба отображения изображения;
 
 - перемещение по изображению по четырём направлениям
 - центрирование изображение заданной точке
 -  запоминание позиции и переход к сохранённой позиции (закладки)?!
- Сохранение и открытие закладок - области отображения (координаты, масштаб, видимость слоёв) для последующего быстрого восстановления сохранённого ранее фрагмента.
 
 
 -  масштабирование отображаемого (видимого) изображения слоёв
 - переключение видимости и прозрачности по каждому слою топологии СБИС
 -  измерение линейных размеров (инструмент линейка) по любому направлению.
- отображение на экране линейки - с выводом значений измеренных значений
 
 - Печать на принтере изображений (всей топологии, видимой области (экрана), выделенного фрагмента)
 - Сохранение (экспорт в BMP/JPG/PNG) изображений (всей топологии, видимой области (экрана), выделенного фрагмента)
 
 -  просмотр изображений слоёв
 - Рисование заметок (линий, прямоугольников, рисованных линий, текста) на топологии ???
 
Возможные названия программ
Сшифка кадров:
- Connect frames
 - Overlapping frames
 - Combining frames
 - crosslinking frames
 
Совмещение слоёв:
- Stitching layers
 - Merge layers
 - Overlapping layers
 -  Adapting
- LayersAdapt/AdaptLayers
 
 - ImageTransform[er]
 
Просмотр изображений:
- ImageView[er]
 - ChipView[er]
 
Требования к аппаратуре и размерам видеоизображений
- Комплекс программных средств должен быть оптимизирован под архитектуры "Fermi" (GF110) и "Kepler" (GK110) ф.Nvidia (CUDA v2.1 - 3.5);
 - Комплекс программных средств должен полноценно функционировать на видеоускорителях с объёмом ОЗУ 1.5 GB, и предусматривать работу со слоями видеоизображения объёмом не менее 16 GB.
 
Интерфейс программы построения матрицы ошибок
spect_gen.exe [-x|--xmargin Value] [-y|--ymargin Value] [-s|--offset Value] [-o|--output] <input_file_name>
 [-h|--help] - print this text
 xmargin - среднее перекрытие кадров по горизонтали (обязательный)
 ymargin - среднее перекрытие кадров по вертикали (обязательный)
 offset  - максимальный сдвиг относительно среднего перекрытия ( общее для горизонтального и вертикального перекрытия ) (обязательный)
 output  - директория для полученных файлов (необязательный)
 <input_file_name> - имя файла, который содержит список имён файлов изображений кадров слоя топологии СБИС (обязательный)
 [-l|--layer] <layer_name> - Имя слоя, влияет на имя выходных файлов матрицы ошибок <layer_name>_[r|d].  (необязательный).
           Если не задан параметр, то именем слоя считается директория, в которой лежит input_file; 
           Если не задано имя слоя и исходные файлы лежат в корневой директории, то выходные файлы именуются layer_[r|d].
 [--cols]
 [--rows]
 [--xwin]
 [--ywin]
Интерфейс программы анализа матриц ошибок и построение матрицы относительных координат совмещений
error_matrix_corrextion.exe [--cols][--rows][--xmargin] [--ymargin] [--offset] [--gap] <path>
- "[-h|--help] - print this text
 - [-V|--verbosity] - вывод отладочной информации. Дополнительные файлы изображений матриц ошибок.
 - [-x|xmargin - среднее перекрытие кадров по горизонтали (обязательный)
 - [-y|ymargin - среднее перекрытие кадров по вертикали (обязательный)
 - [-s|offset - максимальный сдвиг относительно среднего перекрытия ( общее для горизонтального и вертикального перекрытия ) (обязательный)
 - [-g|--gap] - ширина области исключения по внешнему периметру (краям) матрицы ошибок (необязательный, значение по умолчанию 0)
 - <path> - папка, где лежат матрицы ошибок
 -  [-l|--layer] <layer_name> - Имя слоя, влияет на имя входных файлов матриц ошибок <layer_name>_[r|d]. 
Если не задан параметр, то именем слоя считается имя директории <path>. -  [-m|--mode] режим расчета смещений (необязательный, значение по умолчанию 0)
- 0 (default) - анализ матриц ошибок и расчет сходимости смещений по соседним 4м кадрам
 - 1 (simple) - простой режим расчета смещений
 - 2 -
 - 3 -