«…лишь недалекие люди боятся конкуренции, а люди подлинного творчества ценят общение с каждым талантом…» А. Бек, Талант.

CUDA (Проект)/Техническое задание

Материал из Wiki

Перейти к: навигация, поиск

Содержание

Основные требования

Программные средства предназначены для:

  • сборки видеоизображения топологического слоя СБИС из отдельных кадров, полученных с помощью микроскопа.
  • автоматизированного совмещения различных топологических слоёв одной СБИС с устранением линейных искажений.
  • визуального просмотра полученных изображений
  • экспорта изображений слоя в формат программ PhotoPreview и Glew.


[svg]


Форматы данных

Входные форматы:

  • форматы видеоизображений: 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)
      • возможно, поворот отдельного кадра ???
    • Размеры отдельного кадра в пикселях по горизонтали (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]

Требования к аппаратуре и размерам видеоизображений

  1. Комплекс программных средств должен быть оптимизирован под архитектуры "Fermi" (GF110) и "Kepler" (GK110) ф.Nvidia (CUDA v2.1 - 3.5);
  2. Комплекс программных средств должен полноценно функционировать на видеоускорителях с объёмом ОЗУ 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 -