Сравнение систем одной и трех матриц Введение

advertisement
Сравнение систем одной и трех матриц
Введение
Фотоэлементы матриц сами по себе не способны различать цвета, ведь разница в длинах
волн падающих на них фотонов воспринимается лишь как разница в энергиях и не может
учитываться при накоплении зарядов в фотосайтах. Таким образом, считывая заряд с
фотосайтов, мы можем получить только монохромное изображение, то есть только градации
яркости. Поэтому для цветной съемки применяются специальные технические решения.
Можно, например, расщеплять свет после объектива (при помощи системы
цветоделительных зеркал или призм) на три области — красную, зеленую и синюю — и
подавать на три отдельных монохромных сенсора, что применяется в трехматричных (3CCD)
фото- и видеокамерах. Подобный подход обеспечивает отличную разрешающую способность
и цветопередачу, причем без увеличения времени получения изображения. Удешевить
предыдущий подход позволило бы использование одной матрицы с тремя заменяемыми
светофильтрами (красным, зеленым и синим), однако последовательное экспонирование
сенсора через барабан со светофильтрами потребовало бы в три раза больше времени.
Поэтому в настоящее время чаще всего светофильтры устанавливаются перед каждым
фотосайтом матрицы. Если в сенсоре применяются микролинзы, которые служат для
дополнительной фокусировки света на фотосайте с целью повышения чувствительности, то
светофильтры размещаются между микролинзой и ячейкой. Причем распределение таких
светофильтров по поверхности сенсора и соответственно алгоритм получения изображения
могут быть разными.
Байеровская матрица
Наиболее популярным массивом цветных фильтров сегодня является байеровский RGBGфильтр
Как формируется изображение с такой матрицы? Для этого пронумеруем ячейки фрагмента
байеровской матрицы и посмотрим как формируются цвета у каждой точки выходного
изображения
1
2
3
4
5
6
7
8
9
1
0
1
1 1
1
1 2
2
9
2 0
2
1
3
2
1
4
2
1
5
2
1
6
2
1
2
9
2
3
0
3
3
1
4
3
2
1
7
2
8
2
6
5
7
8
Яркость пиксела выходного изображения определяется по зеленому, а цвет пиксела (RGBзначение) получаем в результате интерполяции — усреднения по нескольким близко
расположенным ячейкам одного цвета(на рисунке показано какие ячейки матрицы
учавствуют в формировании цвета каждого пиксела).
1
2
1+2+9
+10
2+3+
10+11
7
3+4+1
1+12
4+5+1
2+13
5+6+1
3+14
6+7+1
4+15
7+8+1
5+16
9+10+
17+18
17+18
+25+
26
23+24
+31+
32
15
21
Конечно, из-за того, что цвет итогового пиксела изображения размывается по нескольким
соседним ячейкам, мы теряем и в цветопередаче, и в разрешении. Например, резкие контуры
(цветовые переходы) размываются, мелкие детали (сравнимые по размеру с шириной
интерполяции) теряются, а на изображении может появиться муар.
В связи с этим современные цифровые камеры байеровского типа могут давать дефект
изображения, который называется Blooming (расплывание). Он появляется, когда
изображение имеет сильную локальную контрастность, то есть когда светлый объект
находится по соседству с темным. Если вы увеличите эти области фотографии, то
обнаружите, что пикселы на их границе имеют очень странные цвета. Дело в том, что
алгоритмы обработки изображения просто не могут разобраться в цвете на границе
контрастных областей, ведь при интерполяции они переходят на соседнюю область, что дает
неправильные яркость и тон.
Можно сказать, что картинка полученная с матрицы Байера с числом пикселей под формат
записи имеет количество информации близкое к изображению в представлении 4:2:0
Также существуют матрицы с фильтрами не основных (RGB) а дополнительных цветов
CYMG (голубой, желтый, пурпурный и зеленый) и различные другие варианты, но схема
получения цвета у них аналогична – интерполяция по соседним пикселам, которые
регистрируют только один цвет.
Тест для байеровской матрицы
Проведем следующий тест на цветовое
разрешение: на зеленом фоне шириной 3м
разместим тонкую красную полосу
толщиной 1,5 мм. Снимая фон на камеру
с одной матрицей 1920*1080 эффективных
пикселов и записью без потерь получим, что
один столбец матрицы захватывает
пространство шириной 3м/1920= 1,56мм,
т.е. наша камера должна увидеть красную
полосу. Посмотрим, что происходит в этот
момент на матрице:
1
9
1
7
2
5
2
1
0
1
8
2
6
3
1
1
9
2
7
4
1
2
0
2
8
5
1
3
2
1
2
9
6
1
4
2
2
3
0
7
1
5
2
3
1
8
1
6
2
4
3
2
1
9
1
7
2
5
2
1
0
1
8
2
6
3
1
1
9
2
7
4
1
2
0
2
8
5
1
3
2
1
2
9
6
1
4
2
2
3
0
7
1
5
2
3
1
8
1
6
2
4
3
2
Когда полоса попадает на столбцы без красных ячеек, то матрица ее не видит и на выходном
изображении чистый зеленый фон. Когда полоса попадает на столбцы с красными и
зелеными ячейками, то матрица ее видит, но как мы видим точки выходного изображения
формируются такими: 3+4+11+12=желтый (т.к. ячейка 3 захватила зеленый фон) ,
4+5+12+13=желтый, 11+12+19+20=желтый, 12+13+20+21=желтый и т.д. вниз по столбцу. Как
видим в этом случае полоса формирует желтый столбец толщиной в 2 пикселя выходного
изображения. Итак, мы получили, что либо полоса не видна, либо видна с толщиной в 2
пикселя, а при ее движении в кадре(т.е. изображение полосы скользит по матрице) получим,
что она то появляется, то пропадает, т.е. мерцающий объект. В реальных условиях съемки
таких мелких цветных предметов и их сочетаний с разным фоном может быть много, из-за
чего картинка может пестреть муаром или давать цветной шум.
Система трех матриц
Как известно в системе трех матриц изображение с помощью оптической системы делится на
составные части по трем основным цветам, т.е. это красная, зеленая и синяя составляющая
исходной картинки. Далее каждая составляющая направляется оптической системой к своей
матрице, каждая матрица регистрирует свой цвет непрерывно по всей площади исходного
изображения, а в результате сложения сигналов с матриц мы получаем картинку, полученную
регистрацией полного цвета в каждой точке исходного изображения (т.е. нет таких участков
исходного изображения, где один из цветов не учитывался бы, как это происходит на матрице
Байера)
Тест для системы трех матриц
Проведем аналогичный тест на цветовое разрешение для системы трех матриц 1920*1080 на
камере записывающей сигнал без потерь.
R
G
B
Как видим «красная» матрица регистрирует полосу непрерывно и при движении последней в
кадре она будет всегда видна, без пропаданий. Цвет полосы на выходном изображении будет
отличен от красного и находиться в пределах от желтого до красного, т.к. полоса не
закрывает точно столбец матрицы и «зеленая» матрица на этом столбце увидит часть
зеленого фона. Но усложним тест, взяв вместо полосы красную нить толщиной 0,5 мм.
Теперь нить в наших условиях проецируется на треть ширины столбца матрицы. Камера ее
увидит, но цвет нити будет желтым, она по прежнему будет видна при движении без
пропаданий.
Попытка приблизиться к трем матрицам
А что если использовать одну матрицу с фильтрами Байера, но с числом пикселей не под
формат записи, а больше в несколько раз, например в К раз, где К – например степень
двойки, начиная со второй (4,8,16...) Что это даст? Мы сможем для каждой точки выходного
изображения формировать цвет по 4 и более независимым пикселям матрицы, т.е. эта группа
пикселей формирует только один выходной пиксель и не участвует в формировании
соседних. Способ уйти от размытости в классической матрице Байера?
1
1
15
7
2
1
1
21
На рисунке показана подобная матрица с числом пикселей в 4 раза больше, чем точек в
выходном изображении (т.е. здесь К=4).
Что плохого сразу видно в этой системе: регистрация каждого цвета производится не в
каждой точке, т.е. нет непрерывной регистрации полного цвета в каждой точке исходного
изображения.
Тест для матрицы с увеличенным числом пикселей
Проведем предыдущий тест с участием нитки толщиной 0,5 мм на зеленом фоне 3м, считаем,
что камера записывает сигнал без потерь и имеет матрицу с числом пикселей 1920*1080*4 =
8,3Мп. Сейчас нитка проецируется на столбец шириной 2/3 ширины ячейки матрицы.
Когда нитка попадает на столбцы без красных ячеек, то матрица ее не видит и на выходном
изображении чистый зеленый фон. Когда нитка попадает на столбцы с красными и зелеными
ячейками, то матрица ее видит, но формирует выходное изображение нити шириной в 2
ячейки матрицы (т.к. точка формируется из 2*2 ячеек матрицы) и желтого цвета, поскольку
«зеленые» ячейки относящиеся к этим же пикселам регистрируют зеленый фон. Итак, мы
получили, что либо нитка не видна, либо видна с толщиной пиксела, а при ее движении в
кадре (т.е. изображение нитки скользит по матрице) получим, что она то появляется, то
пропадает, т.е. мерцающий объект. В реальных условиях съемки таких мелких цветных
предметов и их сочетаний с разным фоном может быть много, из-за чего картинка может
пестреть муаром, давать цветной шум или не регистрировать мелкие цветные детали – т.е.
иметь цветовое разрешение ниже системы трех матриц.
Система трех матриц со сдвигом (pixelshift)
Представим себе трехматричную систему, у которой одна из матриц (как правило зеленая, т.к.
в среднем на нее приходится примерно столько же фотонов, сколько и на красную и синюю
вместе) сдвинута на полпикселя по горизонтали, либо по вертикали либо в обоих
направлениях. На рисунке показаны три матрицы, приведенные к одной оптической оси, у
зеленой матрицы сдвиг произведен в обоих направлениях:
B1
B5 R5
R1
G5
G1
Что это нам дает? Мы можем использовать матрицы с числом пикселей по той стороне, где
произведен сдвиг в 2 раза меньше, чем необходимо для формата записи (в нашем случае при
сдиге в обоих направлениях, матрицы и по горизонтали и по вертикали имеют в 2 раза
меньше пикселей, чем у изображения на выходе) А изображение строить по следующему
алгоритму: на каждую ячейку зеленой матрицы приходится 4 ячейки красной и соосной с
ней синей матриц (как видим на зеленую ячейку налезают четвертинки ячеек двух других
матриц) – складывая сигнал одной и той же зеленой ячейки поочередно с парами сигналов
покрывающих ее синих и красных ячеек мы получаем 4 точки выходного изображения:
1
2
G1+B1
+R1
G1+R2
+B2
G1+R6
+B6
G1+R7
+B7
G16+
R16+B
16
9
G2+R2
+B2
G2+R3
+B3
G3+R3
+B3
G3+R4
+B4
G4+R4
+B4
G4+R5
+B5
G5+R5
+B5
G20+
R20
+B20
Понятно, что каждая ячейка зеленой матрицы участвует в формировании 4 точек
изображения, что снижает четкость относительно честных трех матриц.
Тест для системы трех матриц со сдвигом
Проведем тест с участием полосы толщиной 1,5 мм и нитки толщиной 0,5 мм на зеленом
фоне шириной 3м. Камера имеет 3 матрицы 960*540 со сдвигом зеленой в обоих
направлениях. Камера пишет сигнал без потерь. Полоса проецируется примерно на ширину
половины ячейки матрицы, нитка проецируется на 1/6 ширины ячейки матрицы.
Когда красная полоса попадает полностью в границы красного столбца, то на выходном
изображении формируется желтая полоса толщиной в 2 пикселя изображения. Когда полоса
попадает на границу красных столбцов, то она уже формирует полосу шириной 4 пикселя и
цветом ближе к зеленому. Для нитки получим схожий результат: при попадании в границы
красного столбца сформируется желто-зеленая полоса толщиной в 2 пикселя изображения, а
при попадании на границу красных столбцов, то она уже формирует полосу шириной 4
пикселя и цветом ближе к цвету фона.
Когда полоса станет красной?
В нашем тесте в силу тонкости полоса на исходном изображении получается желтой. А при
какой толщине она обретет хотя бы в середине красный цвет?(границы могут оставаться
желтыми) Рассчитаем ширину при которой независимо от позиционирования полосы на
матрице (закрывает точно столбцы или находится на границе – не важно) получим красный
цвет:
Байер 1920*1080 – 4,69мм
Байер 1920*1080*4 - 3,12мм
Система трех матриц - 3,12мм
Система трех матриц со сдвигом в обоих направлениях - 9,375мм
Тест на основе цветной миры
Цветовое разрешение можно измерить по тестовой таблице, например ИТМ 06-98
Как видим эта таблица использует дополнительные , а не основные цвета, нам для оценки
проще использовать основные цвета, например зеленый и красный. Возьмем две миры:
1
2
Мира 1 имеет толщину красных линий и промежутков между ними равную 1/1920 от
ширины всего полотна тестовой таблицы, а мира 2 имеет толщину линий и промежутков
равную 2/1920 от ширины полотна.. Считаем, что камера захватывает в кадр полотно
таблицы ровно по его краям, т.е. для первой миры полосы проецируются на ширину равную
ширине ячейки матрицы 1920*1080, а для второй миры на ширину двух ячеек.
Что покажут наши системы:
Байер 1920*1080
мира1: при попадании красных полос на красные ячейки – сплошной желтый фон, при не
попадании полос на красные ячейки – сплошной зеленый фон
мира2:
при попадании красных полос ровно в границы 2х ячеек мира будет видна с желтыми
границами у полос с одной стороны, а при не попадании ровно в границы на изображении
получим от желтых полос до полностью желтого фона.
Байер 1920*1080*4
мира1: При попадании полос ровно в границы группы 2*2 мира будет видна как есть, при не
попадании картинка меняется вплоть до желтого фона.
мира2: мира видна либо как есть, либо красные линии обретают желтые границы в половину
своей толщины, также могут увеличить свою ширину на 1 точку выходного изображения.
Система трех матриц 1920*1080
мира1: При попадании полос ровно в границы столбца матрицы мира будет видна как есть,
при не попадании картинка меняется вплоть до желтого фона.
мира2: мира видна либо как есть, либо красные линии обретают желтые границы.
Система трех матриц 960*540 со сдвигом в обоих направлениях
мира1: Желтый фон
мира2: при попадании полос ровно в границы столбца красной матрицы получим желтые
полосы на зеленом фоне, при не попадании получим желтый фон
Дополнения: К сожалению всю разницу между технологиями эти миры не покажут – так
например при утолщении линий миры у Байера стабильно не будет сплошного желтого фона
при толщине линий и промежутков равных 3/1920 от ширины полотна таблицы, а у системы
со сдвигом на этой мире еще будет получаться сплошной желтый фон. Аналогично если
сделать линии в мире1 менее 1/3840, а промежутки шириной более 1/1920 получим, что
система трех матриц стабильно отобразит желтые линии на зеленом фоне, а Байер
1920*1080*4 выдаст от желтых линий на зеленом фоне до чистого зеленого фона.(т.е.
упустит мелкие детали, что показал предыдущий тест с ниткой)
Вывод
1. Система трех матриц со сдвигом не дает пропадающих мелких предметов в отличии
от матрицы Байера, но может заметно утолщать мелкие предметы. При этом матрица
Байера имеет чуть выше цветовое разрешение.
2. Система трех матриц обеспечивает регистрацию полного цвета в каждой точке
исходного изображения, что дает малый уровень цветного шума, артефактов, муара.
Матрица Байера с увеличенным в К раз числом пикселей чем необходимо выходному
изображению лишь приближается к системе трех матриц, при этом выдавая цветной
шум, артефакты и муар, а так же проигрывая по цветовой четкости. Если принять за А
– цветовую четкость системы трех матриц, за В - цветовую четкость матрицы Байера с
увеличенным в К раз числом пикселей, то верен предел: В->А при К->бесконечности.
Т.е. для достижения одной матрицей цветовой четкости трех матриц она должна
обладать очень большим количеством пикселей, что отразится на чувствительности и
увеличит количество шума.
Download