УСТРОЙСТВА И СПОСОБЫ ДЛЯ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ HDR-ИЗОБРАЖЕНИЙ
APPARATUSES AND METHODS FOR HDR IMAGE ENCODING AND DECODING

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Изобретение относится к устройствам и способам и результирующим изделиям типа изделий для хранения данных или кодированных сигналов для усовершенствованного кодирования изображений, в частности, изображений HDR-сцен.
УРОВЕНЬ ТЕХНИКИ ИЗОБРЕТЕНИЯ
В последнее время произошли новые события касательно кодирования изображений/видеоизображений (захваченных сцен либо компьютерной графики), а именно, желательно захватывать полнее весь диапазон яркостей и цветов объекта, возникающих в природе, что называется HDR-кодированием (расширенный динамический диапазон). По нескольким причинам по меньшей мере в течение некоторого количества лет в будущем может быть нужен некий вид обратной совместимости, что означает, что должны быть доступны данные так называемого кодирования с малым динамическим диапазоном (LDR), в частности, способом, которым они были доступны всегда. Кроме того, как будет показано в этом тексте, это может пригодиться даже в отдаленной перспективе. Автор изобретения понял, что основная причина для наличия LDR-кодирования состоит в том, что хотя появляются устройства отображения с неизменно увеличивающимся динамическим диапазоном (высший класс), также имеется значительный сегмент устройств отображения с малым динамическим диапазоном (например, переносные при внешнем применении, проекционные и т.п.).
Захват и кодирование HDR-сцены могут казаться простыми, а именно: всего лишь навести линейный формирователь сигналов изображения, например CCD или CMOS, на HDR-сцену и непосредственно записать линейный цветовой сигнал, включающий в себя информацию о яркости (обратим внимание, что если нет технической путаницы, то можно использовать яркость и цвет как синонимы и говорить, например, о ярком цвете, когда фактически это сильная яркостная компонента). Однако последовательность формирования HDR-изображений сложнее, поскольку в конечном счете данные HDR-изображения приходится визуализировать на устройстве визуализации, например телевизоре, и визуализация и исходная сцена наблюдаются очень сложной психовизуальной системой человеческого зрения, принимающей во внимание все виды относящихся к изображению и окружающих условий и даже другие условия, например настроение зрителя, биологические факторы и т.п.
Физически (колориметрически) солнечное небо в наружной сцене (вне помещения) может обладать яркостью в 6000 нит, а объект в сцене - 300 нит (коэффициент контрастности CR равен 20:1). Только тот объект можно “правдиво” визуализировать на стандартном телевизоре, например, с белым цветом в 500 нит (если в качестве упрощенного стандарта правдивости используется точное повторение яркости, хотя, даже не учитывая возможности устройства визуализации, такое значение кодирования яркости или стратегия визуализации, в принципе, сами по себе не означают ничего, поскольку также вовлекается зрительное состояние человека, то есть, среди прочего, окружение просмотра, которое может сообщать конкретной визуализированной яркости различные фактические ощущения светлоты, которые зависят даже от таких условий, как значения цвета у пикселей изображения, окружающих визуализированный объект, и т.п.). Чего можно фактически добиться на практике в качестве смягченного критерия качества визуализации, так это “реалистичности” (например, если солнечное небо сравнительно визуализируется на телевизоре в гостиной в 20 раз ярче, чем объект, то независимо от того, какие фактические абсолютные яркости визуализируются на устройстве отображения, изображение может считаться достаточно реалистичным). Теперь ту же самую сцену также нужно визуализировать реалистично (то есть правдоподобно интерпретируемой мозгом как солнечная наружная сцена) в кинотеатре с белым цветом экрана только в 25 нит и коэффициентом контрастности/динамическим диапазоном 200:1 (внутри кадра).
Все становится интереснее при захвате HDR-сцен с высокими коэффициентами контрастности, например, составных сцен с разными субокружениями. Например, поскольку внешнее освещение без труда может быть от 100 до 1000 раз ярче, чем внутреннее (например, когда камера устанавливается в длинном темном коридоре, смотрящая через окно на внешнее солнечное субокружение), можно получить в одной и той же захваченной сцене пиксели изображения, представляющие внутренние объекты в 4 нит и внешние объекты в 4000 нит. Этот коэффициент контрастности уже может быть на пределе того, что способны захватить линейно многие формирователи сигналов изображения (максимальная польза в сравнении с шумом), но он определенно выше динамического диапазона многих технологий визуализации (например, просмотр телевизора в светлой обстановке и печать имеют динамический диапазон приблизительно в 40:1). С другой стороны, также можно представить, например, что мозг человека в действительности не настолько заботится о том, является ли источник света (точно) в 20 или 1000 раз ярче, чем отражающий белый объект в сцене, при условии, что он достоверно выглядит как яркий источник света при визуализации. Поэтому, видимо, имеется область конфликта между математикой простого линейного света со стороны захваченной сцены, с одной стороны (обратим внимание, что игнорируются такие проблемы, как гамма 0,45, и она рассматривается в связи с инверсией на стороне устройства отображения все же как по существу линейно связанная цепочка сигналов), и сложным нелинейным характером воспроизведения изображения для просмотра человеком на стороне визуализации. Это также может создать область конфликта для создания промежуточных технологий, например технологий кодирования изображений или видеоизображений, преобразования изображений вроде, например, улучшения изображений и т.п.
Не говоря уже о том, как захватить все возможные сцены (игнорируя для этого такие проблемы, как блик в объективе, маскирующий запись темных областей, и т.п.), хорошее кодирование изображения должно “достаточно” (то есть реалистично, например достоверно) представлять все эти естественные или искусственно сформированные сцены (а изображения могут принадлежать ко многим типам, от малоконтрастных подводных сцен до захватов ледяных структур, которые требуют высокой точности, световых и лазерных шоу с высокой освещенностью в записях концертов, до даже сформированных компьютером изображений горящих инопланетных миров или инфографики в научных программах и т.п.). "Достаточно" означает, что имеется по меньшей мере достаточная подробная информация о представленных объектах сцены, чтобы сделать возможным реалистичную визуализацию большей части сцены (то есть визуализированная сцена выглядит вполне аналогичной исходной сцене, по меньшей мере для важных частей/объектов сцены, по меньшей мере насколько это позволяет технология визуализации в соответствии с критериями качества, например, чтобы объекты в сцене можно было легко распознавать, или чтобы сцена передавала некоторое настроение и т.п.). И предпочтительно, чтобы информация об объекте дополнительно кодировалась в легко управляемой структуре, например для обработки изображений или совместного использования между несколькими устройствами или приложениями, и т.п.
Кроме того, в частности, вместо оптимального кодирования самого HDR-изображения существует потребность в кодировании HDR-изображения в отношении LDR-представления более низкого качества той же сцены (и это LDR-изображение может визуализироваться как желаемое, или по меньшей мере приемлемое, на устройствах LDR-визуализации). Отметим, что в известном уровне техники HDR-изображение геометрически является фактически таким же изображением/захватом, как и LDR-изображение, хотя можно предусмотреть схемы HDR-кодирования, кодирующие только информацию HDR о той же сцене, то есть, например, другое изображение типа другого вида сцены. Автор изобретения понял, что наличие нескольких доступных разновидностей кодирования сцены, например LDR-разновидности, делает возможным более простую обработку данных на стороне использования, например, более простое отображение в значения управления устройством отображения у LDR-устройства отображения.
Известный уровень техники изучил некоторые методики HDR-кодирования на основе некоторого вида идеи масштабируемого кодирования, в которой с помощью некоторого предсказания уточняется точность кодированной с LDR локальной текстуры, или говоря точнее, проецируется на HDR-версию той текстуры, а затем разность исходного HDR-изображения с предсказанием совместно кодируется в качестве изображения улучшения до нужной степени. Например, можно представить значение серого HDR в 1168 с помощью деления (которое не только нормализует к новому диапазону, но посредством этого, как правило, также уменьшает точность) на 8 до значения 146. Это значение HDR можно воссоздать опять путем умножения на 8, но поскольку значение 1169 квантуется до того же значения 146 базового уровня, то требуется значение улучшения, равное 1, чтобы иметь возможность воссоздать высококачественный HDR-сигнал. Пример такой технологии описывается в патенте EP2009921 [Liu Shan и др., Mitsubishi Electric: Method for inverse tone mapping (by scaling and offset)]. Теоретически для этих кодеков модель предсказания обратного тонального отображения (которая является более интеллектуальным эквивалентом стандартного умножителя) должна быть достаточно точной, чтобы уже выдавать довольно точный HDR-вид, к которому применяются незначительные корректировки (на самом деле, если проецировать диапазон возможных значений на другой диапазон с использованием нелинейной функции, значения исходного диапазона должны быть восстанавливаемыми, не говоря уже о проблемах точности).
Техническая проблема с текущими HDR-кодированиями состоит в том, что в связи со многими задаваемыми применениями потребностями кодирования (не только классический критерий сжатия изображений по наличию небольшого объема описательных информационных разрядов в сравнении с хорошим визуальным качеством всех сложных текстур объекта сцены, но также, например, простота использования кодированных данных по меньшей мере в некоторых из сценариев использования) существует потребность в наличии кодирований, которые не полагаются на такой сценарий предсказания. В частности, кодирования могут быть желательны для систем, которые уже имеют доступную структуру данных с сутью, аналогичной кодированиям двух изображений или их виду (например, 3D-кодирование, например, на дисках Blu-ray или в трансляции, имеет левое и правое изображение). Эти изображения могут иметь одинаковую структуру (например, 1920×1080 пикселей, 8 разрядов и т.п.) или разные структуры (например, 1920×1080 пикселей и 8 разрядов в первом изображении и 720×576 пикселей и 12 разрядов во втором изображении).
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Простое и легко применимое кодирование HDR-изображений можно реализовать с помощью идей вариантов осуществления нашего изобретения, следующих принципам, связанным с блоком кодирования изображений (551), выполненным с возможностью кодирования сигнала изображения с расширенным динамическим диапазоном (IM_HDR-in), содержащим:
- первый приемник (901) для приема меньшего динамического диапазона (SELR);
- первый блок кодового отображения (904), выполненный с возможностью кодирования в первом изображении (Im_1) всех пикселей сигнала изображения с расширенным динамическим диапазоном (IM_HDR-in) с яркостями в меньшем динамическом диапазоне (SELR);
- второй приемник (902) для приема максимальной избыточности (MAXRED), которая задает, до какой величины нужно снова избыточно кодировать яркости, уже кодированные в первом изображении (Im_1);
- блок обработки изображений (903), выполненный с возможностью определения на основе максимальной избыточности (MAXRED), какие пиксели сигнала изображения с расширенным динамическим диапазоном (IM_HDR-in) нужно кодировать во втором изображении (Im_2);
- второй блок кодового отображения (905), выполненный с возможностью кодирования во втором изображении (Im_2) яркостей пикселей сигнала изображения с расширенным динамическим диапазоном (IM_HDR-in), которые нужно кодировать во втором изображении (Im_2); и
- средство форматирования (906), выполненное с возможностью вывода первого и второго изображения в виде кодирования S(Im_1, Im_2) с расширенным динамическим диапазоном.
Хотя может иметь место некоторое перекрытие яркостей, которые кодируются в обоих изображениях, определенное максимальной избыточностью, основное намерение состоит в том, что второй блок 905 кодового отображения кодирует в Im_2 преимущественно те яркости у IM_HDR_in, которые еще не кодированы в Im_1 или по меньшей мере кодированы не точно, например, потому что широкий диапазон захвата сцены или яркостей исходного RAW HDR-изображения был представлен только несколькими кодами в Im_1. В принципе, благодаря вложенному характеру диапазонов яркости уже будут кодированы все объекты сцены с яркостями, входящими в диапазон яркости LDR. И если они достаточно кодированы, их больше не нужно кодировать в информации HDR второго изображения, то есть там будет максимальная избыточность. Однако наличие доступных структур данных двух изображений действительно допускает очень высокий уровень универсальности для сортировщика, например, на участке постпроизводства фильма. Он может, например, решить кодировать темные части сцены в LDR-сигнале очень приблизительно (например, путем отсечения или приблизительного представления только по нескольким отличительным кодовым значениям), а затем решить записать те же объекты сцены или области значительно усовершенствованным способом во втором изображении. Распределение может происходить по другим причинам, нежели исключительно информационно-техническое хранение лежащих в основе текстур объекта сцены, то есть он может сообщить дополнительную информацию в кодированиях двух изображений, например другую сортировку, которая должна быть использована для некоторых более темных или более ярких областей на HDR-устройствах отображения. Тогда как кодирование одиночного изображения, требующее одного значения яркости на пиксель, может содержать только двойную кодификацию некоторых областей сцены с помощью, например, способа чередующихся пикселей с пространственной субдискретизацией (first_grade_luma, second_grade_luma, first_grade_luma, …), наличие двух или более доступных запоминающих устройств изображений для представления сцены делает возможным еще более универсальные стратегии кодирования и соответствующие применения. Максимальная избыточность также может быть, например, структурой, предписывающей кодировать пару конкретных ключевых яркостей в обоих изображениях, например, для идентификации включенных объектов.
Дополнительными вариантами осуществления, разновидностями и альтернативными реализациями, содержащими некоторые идеи настоящего изобретения, среди прочего, являются:
Блок кодирования изображений, в котором максимальная избыточность (MAXRED) содержит задания уровней яркости, и блок обработки изображений (903) выполнен с возможностью сравнения яркостей изображения с расширенным динамическим диапазоном (IM_HDR-in) с заданиями уровней яркости и определения из этого, какие пиксели изображения с расширенным динамическим диапазоном (IM_HDR_in) нужно кодировать во втором изображении (Im_2).
Блок кодирования изображений, в котором первый блок кодового отображения (904) дополнительно выполнен с возможностью определения, предпочтительно по согласованию с блоком определения диапазона (950), кодирования яркостей изображения с расширенным динамическим диапазоном (IM_HDR_in) в первом изображении (Im_1) в соответствии с критерием качества (Qcrit) у качества визуализации данных, кодированных в Im_1, на эталонном LDR-устройстве отображения. Может использоваться несколько критериев качества, чтобы уравновесить такие проблемы, как лучшая визуализация, кодирование с большей эффективностью, более простая повторная сортировка на принимающей стороне и т.п.
Конечно, также можно рассматривать - что кодировать или пропускать и как это кодировать в ярком/темном дополнительном HDR-контенте, на основе дополнительных критериев качества, например Qcrit2, касательно HDR-контента или HDR-вида. Например, при кодировании для конкретной технической системы можно принимать во внимание, какие виды HDR-эффектов можно точно визуализировать на конкретном устройстве отображения, и кодировать второе изображение с учетом этого.
Блок кодирования изображений, в котором второй блок кодового отображения (905) дополнительно содержит блок геометрической оптимизации (960), выполненный с возможностью применения геометрического преобразования для кодирования данных для второго изображения (Im_2) при реализации второго изображения (Im_2), которое меньше по размеру и/или появляется реже во времени, чем первое изображение (Im_1). Это позволяет увеличить сжатие.
Блок кодирования изображений, в котором первый блок кодового отображения (904) и второй блок кодового отображения (905) выполнены с возможностью применения соответствующих тональных отображений TM1 и TM2, которые оптимизируются в соответствии с эффективностью кодирования и/или визуальным качеством визуализации.
Блок кодирования изображений, в котором первый блок кодового отображения (904) выполнен с возможностью создания первого изображения (Im_1) с длиной слова на пиксель в 8 разрядов, а второй блок кодового отображения (905) выполнен с возможностью создания второго изображения (Im_2) с длиной слова на пиксель в 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 или 16 разрядов, но предпочтительно 8 разрядов. Очень выгодно, если первая (применимая для LDR-визуализации) структура изображения является классической, например 8-разрядным MPEG2, однако идеи настоящего изобретения, конечно, также работают при других определениях для первой структуры изображения (например, может быть выбрано кодирование преобладающей информации LDR в 6-разрядном приближении или в любой 10-разрядной структуре путем всего лишь заполнения меньших кодовых значений, линейного расширения, использования определяющей кодовое значение гамма-функции и т.п., и любое средство может использоваться для создания дополнительных кодовых значений, например линейная интерполяция, оставление некоторых промежуточных кодовых значений пустыми, применение функций восстановления текстур компьютерной графики и т.п.).
Настоящие варианты осуществления могут использоваться со многими уже существующими форматами контейнеров для кодирования изображений, в частности, где память или каналы передачи данных допускают разумное использование пропускной способности, например, кодированные HDR-данные могут храниться в системах, которые обладают уже заданной двойной структурой кодирования изображений, например для 3D-приложений.
Блок кодирования изображений, в котором средство форматирования (906) выполнено с возможностью передачи первого изображения (Im_1) и второго изображения (Im_2) по отдельным каналам связи, например Im_1 в виде сигнала кабельного телевидения, a Im_2 по запросу по Интернет-соединению.
Блок кодирования изображений (1051), выполненный с возможностью кодирования изображения с расширенным динамическим диапазоном (IM_HDR-in), содержащий:
- приемник (1075) для приема изображения с расширенным динамическим диапазоном (IM_HDR-in) и первого изображения (Im_1_in), кодирующего яркости в меньшем динамическом диапазоне, расположенном в большем динамическом диапазоне упомянутого изображения с расширенным динамическим диапазоном (IM_HDR-in);
- блок обработки изображений (1003), выполненный с возможностью определения максимальной избыточности (MAXRED), которая задает, до какой величины нужно снова избыточно кодировать яркости, уже кодированные в первом изображении (Im_1_in), и содержащий селектор (1033), выполненный с возможностью определения на основе максимальной избыточности (MAXRED), какие пиксели изображения с расширенным динамическим диапазоном (IM_HDR-in) нужно кодировать во втором изображении (Im_2);
- второй блок кодового отображения (1005), выполненный с возможностью кодирования во втором изображении (Im_2) яркостей пикселей изображения с расширенным динамическим диапазоном (IM_HDR_in), которые нужно кодировать во втором изображении (Im_2); и
- средство форматирования (906), выполненное с возможностью вывода первого и второго изображения в виде кодирования S(Im_1, Im_2) с расширенным динамическим диапазоном.
Блок декодирования изображений (651), выполненный с возможностью декодирования кодирования S(Im_1, Im_2) с расширенным динамическим диапазоном, в котором Im_2 содержит данные яркостей вне диапазона яркостей, кодированных в Im_1, содержащий:
- приемник (688) для получения первого изображения (Im_1) и второго изображения (Im_2) из кодирования S(Im_1, Im_2) с расширенным динамическим диапазоном; и
- блок цветового отображения (612), выполненный с возможностью применения первого обратного кодового отображения TMI1 соответственно второго обратного кодового отображения TMI2 к яркостям, кодированным в первом изображении (Im_1) соответственно втором изображении (Im_2), чтобы получить декодированное выходное HDR-изображение (Im_d), при помощи чего второе обратное кодовое отображение TMI2 отображается в яркости декодированного выходного HDR-изображения (Im_d) вне диапазона яркостей, в который осуществляет отображение первое обратное кодовое отображение TMI1.
Блок декодирования изображений (651), в котором приемник (688) выполнен с возможностью извлечения информации первого обратного кодового отображения TMI1 или второго обратного кодового отображения TMI2 из метаданных (MET), кодированных в кодировании S(Im_1, Im_2, MET) с расширенным динамическим диапазоном.
Блок декодирования изображений (651), содержащий блок геометрического отображения (611), выполненный с возможностью применения геометрического преобразования к данным в Im_2 перед выполнением второго обратного кодового отображения TMI2.
Блок декодирования изображений (651), в котором блок цветового отображения (612) дополнительно выполнен с возможностью применения дополнительных тональных отображений к данным яркости, независимо кодированным в первом изображении (Im_1) и втором изображении (Im_2).
Способ кодирования изображений для кодирования изображения с расширенным динамическим диапазоном (IM_HDR-in), содержащий:
- прием меньшего динамического диапазона (SELR);
- кодирование в первом изображении (Im_1) всех пикселей изображения с расширенным динамическим диапазоном (IM_HDR-in) с яркостями в меньшем динамическом диапазоне (SELR);
- прием максимальной избыточности (MAXRED), которая задает, до какой величины нужно снова избыточно кодировать яркости, уже кодированные в первом изображении (Im_1);
- определение на основе максимальной избыточности (MAXRED), какие пиксели изображения с расширенным динамическим диапазоном (IM_HDR-in) нужно кодировать во втором изображении (Im_2);
- кодирование во втором изображении (Im_2) яркостей пикселей изображения с расширенным динамическим диапазоном (IM_HDR-in), которые нужно кодировать во втором изображении (Im_2); и
- вывод первого и второго изображения в виде кодирования S(Im_1, Im_2) с расширенным динамическим диапазоном.
Способ декодирования изображений для декодирования кодирования S(Im_1, Im_2) с расширенным динамическим диапазоном, в котором Im_2 содержит данные яркостей вне диапазона яркостей, кодированных в Im_1, содержащий:
- получение первого изображения (Im_1) и второго изображения (Im_2) из кодирования S(Im_1, Im_2) с расширенным динамическим диапазоном; и
- применение первого обратного кодового отображения TMI1 соответственно второго обратного кодового отображения TMI2 к яркостям, кодированным в первом изображении (Im_1) соответственно втором изображении (Im_2), чтобы получить декодированное выходное HDR-изображение (Im_d), при помощи чего второе обратное кодовое отображение TMI2 отображается в яркости декодированного выходного HDR-изображения (Im_d) вне диапазона яркостей, в который осуществляет отображение первое обратное кодовое отображение TMI1.
Структура изображения, кодирующая изображение с расширенным динамическим диапазоном, содержащая:
- данные яркостей в предпочтительном более узком поддиапазоне (Sel(L_sc)_LDR) расширенного динамического диапазона (Sel(L_sc)_HDR), кодируемые в первом изображении (Im_1); и
- данные яркостей вне предпочтительного более узкого поддиапазона (Sel(L_sc)_LDR) расширенного динамического диапазона (Sel(L_sc)_HDR), кодируемые во втором изображении (Im_2),
- где предпочтительный более узкий поддиапазон (Sel(L_sc)_LDR) предпочтительно выбирается для обеспечения хорошей визуализации первого изображения (Im_1) на эталонном устройстве отображения с малым динамическим диапазоном в соответствии с критерием качества (Qcrit) для качества визуализации данных, кодированных в Im_1, на эталонном устройстве отображения с малым динамическим диапазоном.
Предпочтительный более узкий поддиапазон (Sel(L_sc)_LDR) обычно может быть тем, что оптимально выбирается сортировщиком, например при создании DVD- или BD-версии, начинающемся с цифровой основной сортировки, но также может определяться автоматически, например транскодером, например по исключительно техническим критериям, таким как эффективность кодирования в сравнении с визуальным качеством и влиянием. В любом случае это число, которое определяет диапазон яркостей, который затем используется дальнейшими частями нижеприведенных способов, реализующих структуры кодирования, которые нужно, например, записать на один или несколько BD или отправить по каналу связи.
Носитель информации, содержащий кодирование изображений по любому из представленных разновидностей.
Компьютерный программный продукт, содержащий средства кода, позволяющие вычислительному блоку выполнять любой из описанных способов.
Конечно, возможны многие дополнительные разновидности нижеописанных вариантов осуществления, и специалист понимает, что их можно, например, реализовать в разных устройствах в разных географических регионах мира, применяя их частичные функциональные возможности в разные моменты времени или в несколько моментов друг за другом, и т.п.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Эти и другие особенности способа и устройства согласно изобретению станут очевидными и разъясненными со ссылкой на описанные ниже реализации и варианты осуществления и со ссылкой на прилагаемые чертежи, которые служат только как неограничивающие конкретные иллюстрации, иллюстрирующие более общую идею, и в которых тире используются для указания, что компонент является необязательным, а не отмеченные тире компоненты не обязательно являются существенными. Тире также могут использоваться для указания, что элементы, которые объясняются как неотъемлемые, спрятаны внутри объекта, или для неосязаемых сущностей, например выборок объектов/областей (и как их можно показать на устройстве отображения).
На чертежах:
Фиг. 1 схематически иллюстрирует сцену с расширенным динамическим диапазоном яркостей, чтобы объяснить некоторые проблемы и то, как с ними справляются нижеприведенные варианты осуществления;
Фиг. 2 схематически иллюстрирует гистограммы яркостей в той сцене;
Фиг. 3 схематически иллюстрирует то, как варианты осуществления настоящего изобретения могут распределять разные части сцены разным кодированным изображениям;
Фиг. 4 схематически иллюстрирует тональное отображение между яркостями сцены и кодами разных кодированных изображений;
Фиг. 5 схематически иллюстрирует систему кодирующей стороны, которая может управляться, например, сортировщиком цвета;
Фиг. 6 схематически иллюстрирует систему декодирующей стороны, которая может быть, например, потребительской телевизионной системой;
Фиг. 7 схематически иллюстрирует, как система принимающей стороны будет отображать коды кодированного сигнала в нижеприведенных вариантах осуществления в диапазон декодированного изображения с расширенным динамическим диапазоном;
Фиг. 8 схематически иллюстрирует, как можно форматировать сигнал и его структуру данных, чтобы передавать информацию, разрешающую нижеприведенные принципы кодирования;
Фиг. 9 схематически иллюстрирует более подробное внутреннее устройство возможного блока кодирования; и
Фиг. 10 схематически иллюстрирует более подробное внутреннее устройство другого возможного блока кодирования.
ПОДРОБНОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Если рассматривать оптические сигналы (то есть информацию, поступающую в камеру), то можно установить разные правила в отношении того, как измерять и представлять различные свойства этих сигналов. Что касается дискретизации по времени, закон инерции обычно подразумевает, что равноудаленной дискретизации на достаточном количестве моментов времени должно быть достаточно для объективного моделирования динамически развивающейся системы, например движущегося человека. Пространственная дискретизация имеет совершенно иной характер. Фрактальный характер предмета подразумевает, что возможно придется использовать постоянно более мелко распределенные выборки (например, захват сцены с горами издалека приводит к горам, которым при ближнем рассмотрении нужны промежуточные пиксели для растительной структуры типа листьев, на которые накладываются еще более мелкие структуры с интересными подробностями, и т.п.). Однако все же можно сгруппировать такие сцены в “иерархические окружения”. Например, могут присутствовать стоящие на горе люди, и окружение может быть захвачено в их масштабе. В том окружении с акцентом на человека можно все же спорить, сколько пространственных деталей нужно для (не)желательного представления всех морщин на их лицах, однако даже при умеренном пространственном разрешении уже можно распознать, что это люди, что они делают, какое у них настроение и т.п. (очевидно, с правильного расстояния захвата это можно сделать точно с сигналом низкого разрешения типа PAL). В любом случае, по-видимому имеется тенденция к разрешениям 4K и даже 8K.
Аналогичная парадигма равноудаленной дискретизации, приводящая к набору возможных значений, применялась (так как математическое описание двумерной функции не трактует ось x функции никак иначе по сравнению с осью y) к захваченным значениям яркости (или цвета): они обычно попадают куда-нибудь в диапазон (например, значение EV 16, характерное для белых объектов в полном солнце). Однако в принципе можно сделать диапазон каким угодно большим путем определения любого нужного максимального значения. От того максимального значения (которое обычно интерпретируется как “белый”) требуется только представлять меньшие значения - линейно или нелинейно - с нужной точностью (которые также будут определять уровень черного у всего, что ниже наименьшего кода 0).
Эта парадигма является широко распространенной. Это то, как работают камеры (будь это тем, что они определяют прагматичный максимальный уровень белого из возможностей их датчика), это то, как определяется свет и цветовые пространства (например, пространство RGB телевизора определяется вниз от некоторого белого), и это также то, как устроено SNR-масштабируемое кодирование. Последнее утверждает, что обычно уже вполне достаточно, если приблизительно выразить значения яркости пикселей, и если информация по-прежнему считается недостаточной (например, потому что возникают артефакты типа полосатости), то можно точно настроить некоторые значения с большей точностью, что можно сделать путем добавления разрядов, кодирующих доли квантованных уровней (то есть кодируются микротекстурные изображения).
Однако уже видна новая проблема, возникающая с HDR-сценами: что есть эталон белого? В классическом формировании LDR-изображений это легко задается, например, освещают телевизионную студию светом с модуляцией света-темноты в 8:1, и используют белые объекты с отражением 90%, что приводит к хорошему распределению цветов/яркостей всех пикселей у студийных объектов. Однако в формировании HDR-изображений может присутствовать первый белый, который является релевантным белым, например белым в студии, второй белый субокружения снаружи, которое видно через окно, и возможно даже (гораздо) более яркие объекты. Выбор самого яркого белого непрактичен (в частности, если ограничены длины слов, например, 8 разрядами для яркостей, или ограничены возможности визуализации, то многие из релевантных объектов будут плохо визуализированы). Однако выбор промежуточного уровня белого также сложен, поскольку возникает два вопроса, а именно, где выбирать тот уровень белого, и чем является влияние невоспроизводимых яркостей объектов с большей яркостью. Это не выглядит проблемой в уравновешенных LDR-сценах, которые всегда создаются с похожим характером, используя хорошо продуманное освещение, но создает зависимую от случая проблему во многих HDR-сценах, возникающих в природе.
Однако, кажется, есть другое хорошее свойство кодирования цветов сцены, которое является чем-то аналогичным пространственным иерархическим окружениям, упомянутым выше (так же, как не нужно видеть все около горы или несовершенства лиц, если изображаются действия людей на горе), а именно, можно определить “поддиапазоны фокуса представления” в направлении значения цвета/яркости (обратим внимание: контрастируя с пространственной структурой, полный диапазон светлоты окружений обычно гораздо меньше, но он по-прежнему большой по сравнению с текущими технологиями формирования изображений, поэтому желательно разумное обращение с ним). В принципе, переформулированное таким образом, это является тем, что приходится делать, когда задают (автоматическую) экспозицию камеры и получают из нее (цифровой) сигнал, но эти системы не справлялись с возникающими далее проблемами.
Далее иллюстрируется идея с помощью типовой HDR-сцены из фиг. 1, на которой показана кухонная обстановка для рекламы некоего пищевого продукта. Несомненно, имеется основная пространственная область, соответствующая “предпочтительным” яркостям пикселей (область 101), которая охватывает большинство объектов в кухне. Это сделало ее интересным поддиапазоном яркостей, чтобы ориентировать на него представление. На фиг. 2, которая схематически (то есть отсчеты/высоты всех областей нормализуются до сходной высоты) показывает гистограмму отсчетов n(L_sc) для яркостей L_sc пикселей подобластей из фиг.1, это соответствует основному выступу 201, который обычно может иметь промежуточные яркости (обратим внимание, поскольку здесь нет путаницы, можно взаимозаменяемо говорить о яркостях пикселей изображения в сравнении с яркостями с точки зрения объектов в сценах). Представленные в цифровом виде яркости пикселей изображения будет обозначены заглавной буквой Y). В HDR-сценах, например, из-за освещения только с небольшого количества попыток также могут присутствовать темные области (102, 202), которые темнее самых темных пикселей основного выступа 201, и часто темнее того, что можно (по меньшей мере точно) представить в конкретном кодировании изображений (то есть эти пиксели могут иметь очень шумные значения цвета из-за ограничений камеры и могут попадать только на небольшое количество наименьших кодов яркости, например 0, 1 и 2). Примерная область является областью 102 тени, соответствующей темному выступу 202. Однако та область обычно не представляет большого интереса, то есть там нет важных объектов, которые нужно визуализировать отчетливо видимыми или с высоким качеством. Также могут быть области с большей яркостью, например область снаружи через окно (область 103 высокой яркости, соответствующая яркому выступу 203). Такие области высокой яркости отличаются по характеру от областей низкой яркости. Во-первых в том, что хотя она также может не содержать никаких объектов особого интереса, все же может быть желательно визуализировать ее как можно реалистичнее. Во-вторых, эти области большей освещенности в точности являются областями, где более яркие устройства отображения могут принести пользу при визуализации (по сравнению с устройствами отображения в 500 нит, 5000 нит могут показывать солнце и свет на изображении как включенный, а не тусклый, как в случае с цветами раскрашенного объекта). HDR-устройства отображения также могут визуализировать более темные цвета, но в некоторых более ярких окружениях просмотра это может не быть приоритетом реалистичной визуализации, так как в тех сценариях они могут не отличаться от LDR-устройств отображения (хотя они выполняют это в новых темных кинематографических условиях просмотра, например, когда такой экран помещается в небольшой кинотеатр или аналогичное окружение). В конечном счете могут присутствовать очень яркие области типа источника 105 света (светлый выступ 205), яркость которых не нужно точно кодировать или представлять. Желательно, чтобы этот свет визуализировался все-таки ярко, и предпочтительно ярче, чем все другие объекты изображения (поэтому предпочтительно, чтобы он также кодировался более высоким значением яркости, хотя это не строго необходимо при условии, что принимающая сторона знает, как интерпретировать пиксели источника света как пиксели источника света, отличные от других областей изображения, и как их обрабатывать, например, как окончательно их визуализировать). Отметим, что эти гистограммы в принципе являются концептуальными. Их можно извлечь несколькими способами, например, могут привлекаться морфологические операции. Например, в части сцены снаружи окна, хотя большинство пикселей очень яркие, могут присутствовать некоторые пиксели с отчасти меньшей яркостью, возможно даже меньше некоторых пикселей в более темной (например, основной) области (областях). Тогда выступ гистограммы можно построить, например, путем определения пороговой величины, приводящего к двоичному представлению преимущественно белой области с небольшими изолированными черными островками, а затем замены тех островков значением белого (то есть добавления их к ярким областям с помощью частично локальных операций, а не исключительно глобальных операций с гистограммами).
Итак, видно, что в этом изображении, как и во всех изображениях, имеется область объектов, которая представляет больший интерес, и область (области) объектов, которая представляет меньший интерес. Однако в зависимости от возможностей системы формирования изображений (сложности кодирования или обработки, доступной памяти, качества визуализации, бизнес-модели сервер-клиент и т.п.) можно захотеть представить все эти области более или менее реалистично, как нужно для конкретной технологии или применения. Обычно также имеются дополнительные технические обоснования предпочтительных яркостей области 101. В этом примере это область вокруг объекта 111 (выступ 211 объекта), о котором создается реклама. В фотографической композиции известна роль “преобладающего объекта”. При создании видеоизображения или фильма этот объект обычно будет освещаться предпочтительным способом (с помощью светового пятна 112), и то же самое будет в целом применяться к его окружению. То есть главный оператор (DOP) или аналогичная творческая должность специально выберет в сцене то, что представляет интерес, и может указать это (даже при оперативной съемке простые действия кинооператора определяют интересующие области). Кроме того, в конечном счете нужно оптимально визуализировать этот объект 111 и область 101, то есть они, например, отображаются в более светлую половину яркостей, визуализируемую на конкретном устройстве отображения, например телевизоре. Таким образом выделяется продукт, привлекая внимание.
Фактически, в классических системах формирования изображений эти два условия (освещение + захват в сравнении с визуализацией) тесно соединены в условие, которое не обязательно нужно строго поддерживать во вновь спроектированной последовательности формирования HDR-изображений (допускающей больше универсальности, например для оперативного репортажа с мест). В настоящее время кинооператор уже работает в цветовом пространстве (например, RGB или родственном YCrCb в MPEG2 или MPEG4-10), которое тесно соединено с цветовым пространством телевизора (/устройства отображения) окончательной визуализации, и он или другой творческий человек также обычно может смотреть на сигнал на мониторе эталонного изображения на стороне камеры, исследовать его с помощью монитора эталонного сигнала цветового пространства телевизора и т.п. Это означает, что кинооператору (или DOP и т.п.) нужно только убедиться, что объект 111 освещается для захвата, например, на один шаг выше 18% серого, и поэтому он будет визуализироваться приблизительно таким образом на устройстве отображения на стороне зрителя/приемника. Хотя могут привлекаться некоторые нелинейные кривые типа кривой гаммы телевизионной камеры, следует понимать, что это в конечном счете является прочным, относительно негибким линейным взаимно-однозначным соответствием между двумя цветовыми пространствами (цветовое пространство сцены и цветовое пространство визуализации). Даже те технологии, которые направлены на повторную калибровку, обычно выполняют это с помощью одиночного преобразования, что подтверждает прочную связь (например, отображение цветовой матрицы, которое максимально согласует цветовые особенности LCD со стандартным эталонным CRT с основным цветами люминофора EBU).
Хотя хочется сохранить хорошие свойства этой простой системы (будь то для совместимости с текущей практикой), желательна технология, которая отчасти смягчает это строгое условие, по меньшей мере для сценариев, для которых его функции менее удовлетворительны, то есть для формирования HDR-изображений.
Поэтому в общем можно сказать о HDR-сценах то, что они обычно содержат основную область 101 с основными яркостями (основной выступ 201). Эта самая важная область изображения в этой эпохе многих разных типов устройств отображения должна быть областью, которая является лучше всего представляемой на многих устройствах отображения (от HDR высокого качества через стандартный 8-разрядный LDR-телевизор до мобильных устройств отображения низкого качества (SubLDR) на солнце). Объекты изображения можно визуализировать с разным качеством в разных ситуациях визуализации, но это не настолько тривиально, что это может выполняться с хорошим качеством (реалистично) любым непроверенным способом (например, с помощью дисплейной системы, которой приходится выполнять анализ видеоизображения). Можно выполнить это лучшими способами или способами, которые придают изображению неприятный вид в различных важных сценариях визуализации, например HDR-изображение может выглядеть мультяшно на LDR-устройстве отображения.
Основная область/диапазон яркости является тем, на чем сосредоточится кинооператор в классическом формировании LDR-изображений, поэтому целесообразно сосредоточить на них внимание в оставшейся части последовательности формирования изображений и также считать их целевыми в любом процессе/последовательности формирования HDR-изображений. Сначала вкратце объясним путем анализа и перефразирования, что именно выполняется для обработки этой основной области в классическом формировании изображений (в этом случае это может быть (почти) целое кодированное изображение). Осветительная команда, как правило, будет освещать кухонную сцену, чтобы основной выступ 201 гистограммы не имел слишком большого динамического диапазона (максимальная яркость, деленная на минимальную яркость в выступе 201). Особенно если итоговым результатом является носитель с малым динамическим диапазоном, например низкокачественная печать, то может быть полезно сразу учитывать это. Также при захвате реальных сцен большинство обыкновенно освещенных помещений не будут иметь слишком большого колебания яркости пикселей объекта в сцене для современных телевизионных сценариев высшего класса. Это не так для сцен с двойными поддиапазонами яркости, например изнутри машины, и в этом случае нужно делать важный выбор. Процентные отношения отражения у естественных объектов колеблются между 0,5% и 99%, но на практике 4-90% являются более реалистичными значениями (иногда на телевизионных показах носили даже ненастоящую белую одежду). То есть для полностью равномерного освещения коэффициент контрастности изображения равен примерно 25:1. Это также то, что должна уметь визуализировать обычная телевизионная система (конечно, если нет солнца, отражающегося на фронтальной плоскости). Обычно модуляция света на релевантных частях сцены должна быть ниже 10:1 (например, лица можно освещать с модуляцией 2:1 частей с высветкой и частей с заполняющим светом). То есть 255 кодовых значений должны казаться достаточными для кодирования той части сцены, даже если кодирование - линейное (то есть линейное отображение между яркостью сцены и кодовыми значениями [0,255] изображения).
Чтобы лучше понять математику, восстановим вероятности путем представления некоторых возможных линейных отображений:
A) Начиная с черного, вверх:
Этот способ определения кодирования линейной яркости выглядит естественным, поскольку он точно следует заданию шкалы измерений из определения единичного шага (это можно сравнить с термометром Цельсия, которому, очевидно, не нужно уметь измерять температуры свыше 100 градусов). Можно определить “теоретические” границы этой зоны яркости линейной сцены как, например, максимальная отражательная способность белого (90%), умноженная на максимальное (возможное) освещение, равная 10 (произвольные единицы), приходя к значению Lw=900, тогда как минимальное значение можно представить как аналоговое число 4%*1 (причем 1 является минимальным освещением для модуляции 10:1) или 4 (на практике для этих границ может использоваться полная емкость потенциальной ямы, например, у CCD-пикселя, и минимальный уровень, например с учетом шума, внеся необходимые изменения). Поэтому они являются границами того, что следует уметь кодировать (с разумной точностью). Существует некоторые интересные проблемы в отношении кодового значения нуля, но можно отобразить аналоговый, предположительно самый черный цвет (Lbk=4) в цифровое выходное значение Y_out_lin, равное 0+db, где db является смещением черного. Целесообразно просто принять db=1. Тогда удвоенная яркость 8 отображается в удвоенное цифровое значение 2, а общая яркость L_sc сцены отображается с помощью формулы Y_out_lin=Q[масштаб*(L_sc/Lbk)], в которой масштаб = 1, Lbk=4, а Q является оператором квантования или округления, например до ближайшего целого значения.
Это отображение обладает тем свойством, что имеется минимальное отклонение (релевантных) темных областей. Конечно, в сцене могут присутствовать более темные области, чем теоретический минимум 4, но они будут отображены в 1 или 0 с помощью оператора Q. В любом случае они часто могут плохо захватываться камерой или плохо визуализироваться устройством отображения (или печатью и т.п.). Также по-прежнему есть пара значений Y_out_lin, оставшихся, например, в 8-разрядном диапазоне для возможного кодирования сверх отображения с теоретическим максимумом в 900 (900/4 меньше 255), однако всем в действительности ярким значениям сцены будет присвоен этот масштабный коэффициент контраста, обычно ограниченный или по меньшей мере очень мягко ограниченный возле значения 255 (но это не должно представлять проблему, если тот код считается достаточным для идентификации “действительно ярких” областей).
Другое свойство этого отображения состоит в том, что масштаб для этого кодирования (делающий уровень черного равным 1) теперь задает шаги разности яркости пикселей на каждое изменение кодового значения равными минимальному черному Lbk, который был определен путем установки максимальной яркости приблизительно равной белому (Y_out_lin = 255). Точнее говоря, начиная с черного, линейный код с масштабом = 1 будет определять максимальное количество разрядов, необходимое для кодирования всего вплоть до нужного максимального уровня белого. Если фиксируем длину слова в 8 разрядах, то это работает, если общий контраст в сцене меньше 255:1, что справедливо для 900:4, в противном случае масштабный коэффициент придется регулировать, что можно легче всего сделать путем изменения черного (то есть теряя точность по всему диапазону, соответствующему отсечению ниже нового черного). Это естественный диапазон линейного контраста у кода. Такой подход может иметь проблему в том, что некоторые области становятся недостаточно представленными, тогда как возле более ярких областей такие небольшие шаги не нужны, хотя можно попытаться решить эту проблему с помощью нелинейной кривой тонального отображения, которая перераспределяет коды по диапазону туда, где они необходимы (например гамма-функция или сигмоидальная функция, и т.п.).
Но можно также оставить зафиксированным уровень черного, если придается особое значение точному кодированию более темных яркостей. Фактически, имеется либо масштабный цифровой шаг (точность), начинающийся с черного (чтобы распределить аналоговые значения по доступному [1,255], определяя D_L_sc соответствующим цифровому единичному изменению: в вышеприведенном примере D_L_sc=4), либо задается аналоговый шаг яркости (см. ниже, сценарий белого), например D_L_sc=3, для единичного изменения, а затем заканчивается некоторым черным, начиная вниз с белого. Последняя стратегия фиксированного белого обычно является более интересным, а поэтому предпочтительным подходом, поскольку людям нравится видеть изображения яркими, то есть большая часть информации находится в хорошо освещенных областях, а черный в любом случае является не сильно видимым, поэтому ошибки кодирования больше допустимы в тех нижних областях. В качестве руководства для размеров шагов можно либо основать их на теоретических JND, взять прагматичное гораздо большее значение с учетом того, что большую часть времени в сложных меняющихся данных изображения шаги в любом случае менее видны (по меньшей мере не так четко, как при тщательном изучении простого изображения градиента), либо взять любое практическое значение шага и согласовать с любыми (достаточными или нет) результатами визуального качества. Если сцена простая, как при формировании LDR-изображений, то можно действительно начать с приемлемого белого (например, что-то выше отражающего белого, чтобы предусмотреть по меньшей мере некоторое кодирование подсвечивания), а затем посмотреть, где происходит завершение более темными кодами, что обычно находится достаточно далеко. Однако при формировании HDR-изображений в этих более темных областях также может находиться очень важная информация, которую нужно хорошо закодировать, поскольку может потребоваться визуализировать ее по меньшей мере на некоторых системах (возможно, после преобразования цвета, осветляющего эти области, чтобы иметь возможность визуализировать их с распознаванием хороших темных текстур в заданном окружении просмотра).
Это можно обобщить путем утверждения, что (например, 8-разрядная) система определяется белым и черным, или по-другому, белым и масштабом. При определении с помощью белого и черного можно полагать черный в качестве смещения, а затем распределить 255 значений равноудаленно по диапазону [1,255].
Тогда отношение между яркостями сцены и линейными кодами является следующим (то, что необходимо кодировать из сцены, по-прежнему используя простую прямую линейную модель):
L_sc=Lbk+(Y_out_lin -1)*(Lw-Lbk)/254, или
Y_out_lin=254*(L_sc-Lbk)/(Lw-Lbk)+1
С этой точки зрения имеется пара вещей, которые можно сделать:
1) Определить минимальный черный и масштаб (например, такое же значение, как черный у сцены или меньше, например 2% от того черного), а затем найти максимальное количество необходимых разрядов или длину слова, чтобы кодировать вплоть до необходимого уровня белого (в этом случае с использованием единичного шага на основе черного). Однако, если фиксируем длину слова, то это может привести к отсечению белых выше максимального кодируемого уровня, который слишком низкий, чтобы быть желательным (то есть плохо кодируются слишком многие области высокой освещенности, что обычно можно увидеть, если, например, внешняя область полностью отсекается до белого, что в некоторых случаях низкого качества может быть половиной изображения, и это не визуализируется по-настоящему хорошо на HDR-устройстве отображения). Это можно назвать “приоритетом точности”. Обычно вместо этого пожертвуют черным, что видно в сценарии белого ниже. В любом случае этот сценарий является тем, что часто происходит при формировании LDR-изображений: хочется иметь хорошую точность вблизи среднего уровня серого и лиц, и тогда (путем фиксирования кодирования на таком поддиапазоне, что также зависит от выбранного оптимального или неоптимального освещения, например, особенно в HDR-сценариях, можно использовать критерий, который по-прежнему имеет достаточно кодовых значений на лице в более темной, плохо освещенной области) происходит отсечение ниже некоторого черного и выше некоторого белого (полностью игнорируя те яркости, не распределяя им кодовые значения).
2) Определить минимальный черный и белый. Этот сценарий “приоритета диапазона” является более здравым, особенно для важных HDR-сцен, которые в действительности содержат важные объекты на всем том диапазоне яркости (например, яркое, освещенное солнцем окно с окрашенным стеклом в сравнении с темным углом внутренней части церкви), поскольку можно по меньшей мере кодировать все нужные значения без внешнего отсечения. Однако точность может значительно пострадать, и это может быть проблематичным при визуализации сцен со значительным исходным динамическим диапазоном. Например, такие кодированные изображения могут выглядеть мультяшно или иметь другие артефакты качества.
Конечно, также можно зафиксировать белый, черный и точность, но тогда необходимое количество разрядов будет зависимой от них переменной, что не настолько удобно, поскольку во многих применениях желательно зафиксировать длину слова (даже если ее можно выбрать из нескольких длин слов типа 8, 10 или 12 разрядов), например, когда выделяется фиксированное количество памяти, как в стандартизованном определении телевизионного сигнала. Отметим, что даже при большей точности изображение, кодированное с неправильным контрастом, по-прежнему может выглядеть мультяшно.
Другой вывод, который можно сделать, состоит в том, что начало от черного не является самым полезным способом определения отображения, поэтому, как обычно, пересмотрим вышеупомянутое начало с белого (хотя и приводящее к таким же математическим выводам).
Отметим, что в практических 8-разрядных кодированиях также резервируют некоторые коды на любой стороне по другим причинам типа переполнения во время обработки, но то смещенное изменение масштаба в настоящее время можно игнорировать, так как математическое поведение в принципе аналогично объясненному здесь.
Интересный вопрос по-прежнему в том, какие визуальные результаты будут иметь эти линейные шаги для заданного масштаба/точности при визуализации. В частности, они могут быть показаны не только, например, на устройстве отображения в 100 нит (который может соответствовать или не соответствовать фактически измеренной яркости сцены для яркости в 900 пунктов, но для которого 255 шагов могут привести к относительно необнаруживаемым визуальным отличиям), но также этот кодированный сигнал может быть непосредственно применен, например, к дисплею в 500 нит или 5000 нит, и в этом случае визуализированные шаги отстоят еще дальше (потому что они взвешиваются по белому устройства отображения), поэтому более заметны (например, в виде полосатости на градиентах), часто в более темных областях (также в зависимости от окружающего освещения).
Чтобы частично смягчить это, фактические кодирования используют гамму 0,45 или аналогичное нелинейное отображение, в значительной степени соответствующее чувствительности JND зрительной системы человека, чтобы получить значения Y, и это отображение обращается для получения выходных яркостей устройства отображения (CRT выполняла это на основании физики своей электронной пушки и других факторов).
Можно по-прежнему игнорировать промежуточную нелинейность, поскольку можно интерпретировать такую последовательность формирования изображений как аналогично поступающую приблизительно математически, как вышеприведенное упрощенно объясненное линейное отображение (можно предусмотреть коды как перераспределенные иначе в вышеприведенном диапазоне, что можно интерпретировать как другую предпочтительную сортировку фактического изображения на доступном масштабе кодирования; или другими словами, можно считать такие простые непрерывные функциональные преобразования пружиной с переменной жесткостью, но по-прежнему нужно куда-то направлять черные, если ее фиксируют на белых).
Верно, что использование нелинейности (и в частности той, которая пытается минимизировать только заметные эффекты отличия) позволяет кодировать больший диапазон Lw-Lbk путем назначения кодов другим способом. Например, можно реже назначить коды более светлому диапазону, что позволяет кодировать вплоть до верхнего белого Lw*.
Например, если код кодирует квадратный корень из L_sc, то можно определить функцию, например, как:
L_sc=Lbk+alpha*(Y_out_lin-1)* (Y_out_lin-1), и
Lw=Lbk+alpha*254*254
Если взять такой же шаг яркости между черным Y_out_lin=1 и следующим серым (кодовое значение яркости Y=2), как и в линейном случае для Lw=900 и Lbk=4, а именно 896/254, то вышеприведенная формула кодирования может возрасти до белого Lw=227588. Практически это означает, что обычно поменяют масштаб альфы (alpha) и распределят более мелкие шаги более темным областям (или всего лишь начнут с белого и посмотрят, на каком черном завершится данная функция отображения, как ниже в сценарии с фиксированным белым). Также можно использовать эту математику, чтобы увидеть, какой дополнительный прирост диапазона яркости у яркой области можно получить, когда, например, добавляют 2 разряда (10-разрядный код яркости) к 8-разрядному коду, кодифицирующему Lw значением 255.
В любом случае такой стратегии кодирования по-прежнему приходится делать выбор между точностью и диапазоном. А именно, небольшие шаги с одной стороны диапазона яркости идут за счет больших шагов в другой стороне (обычно белой), и они поступают так весьма постоянным способом, определенным гамма-преобразованием (которое является пружиной, имеющей конкретное распределение жесткости, не обязательно соответствующее тому, что можно оптимально желать при кодировании конкретной сцены). Поэтому, если хотят кодировать яркий свет, например, вплоть до 5000 нит в сцене, то рискуют потерей слишком большой точности, например, при 8-разрядном или 7-разрядном коде, то есть по меньшей мере где-то в диапазоне могут быть ошибки, которые считаются проблематичными (хотя для других сцен это может быть приемлемым). И эта полосатость может стать еще сильнее, если где-то в последовательности выполняется дополнительная обработка, например (локальная) регулировка освещенности или контраста, например в телевизоре. Кроме того, создатель контента может захотеть кодировать свой сигнал (исходный или копию) точнее, нежели пытаясь втиснуть его, например, в 8-разрядное слово с помощью некоторого оптимального или неоптимального нелинейного отображения.
B) Начиная с белого, вниз:
Также можно начать с распределения “белого”, то есть отобразить 900 в 255 (или по меньшей мере некоторое высокое значение). Это обычный способ, которым смотрят ориентированное на устройство отображения кодирование. Тогда можно определить разность D_L_sc=3, например (или мультипликативный множитель 3/900 от максимального (белого)), и продолжить вычитание этого до завершения некоторым черным в коде 1 и ниже. Конечно, разность предпочтительно аккуратно выбирается опять с учетом коэффициента контрастности выступа 201, то есть возникающего уровня черного.
Опять, если фиксируют количество кодовых разрядов, то масштаб фиксирует, какие черные по-прежнему являются кодируемыми, или в качестве альтернативы черный фиксирует точность, и это справедливо для нелинейных функций аналогично линейному случаю, только по-другому распределенному по общему кодируемому диапазону в соответствии с выбранной функцией. Поэтому может иметь место значительная свобода в распределении кодовых значений возникающим яркостям сцены (при условии, что кто-то (например, создатель контента) не выберет неправильную гамму, или это не зафиксировано в некотором стандарте передачи изображений), помимо этого ограниченное непрерывное функциональное распределение (например, с гаммой, определяющей кодирование, типа гаммы 2,2) по-прежнему не кодирует сцену оптимально, в частности, очень сложную HDR-сцену (то есть с текстурами со многими значениями отражения в нескольких областях, освещенных очень по-разному).
Важно отметить, что DOP могут выбирать создание или нахождение сцен, которые содержат сильно темные черные в них, поэтому коэффициенты контрастности выступа 201 поднимаются выше 255:1, например при съемке “черного кино” (даже при таком же уровне белого). Отметим, что для простоты в настоящее время сосредоточение сделано исключительно на стороне камеры (или кодирования от нее), но как указано ниже по тексту, такие же проблемы отображения снова возникают на стороне визуализации, то есть даже эта настройка 255:1 может быть трудной для некоторых средств визуализации.
Однако тогда, если коэффициент контрастности равен, например, 1000:1, и отображение распределяет разряд с 4-кратным более грубым масштабированием (масштаб = 4), то рискуют получить только небольшое количество цифровых кодов, описывающих интересующий объект 111. То есть нужен компромисс между такими соображениями.
То, насколько точно обрабатывается отображение яркости сцены по всей последовательности формирования изображений, зависит от используемой системы формирования изображений, вида формирования изображений (фотография, производство ТВ-программ, кинематограф, …) и т.п.
Однако обычно можно сделать следующее. ИС камеры сама может обрабатывать отношения яркостей линейных сцен в 1000:1 или больше, например если она содержит 12- или 14-разрядный датчик (обычно также следует включить в это число некий уровень, где шум становится нежелательным). С помощью настройки (авто)экспозиции у камеры (апертура и выдержка затвора для фотоснимков) можно выбрать, путем сдвига, преобладающий диапазон яркости сцены Sel(L_sc)_LDR, который традиционно образует начальную точку для получения LDR-кодирования (8 разрядов) (например, путем отображения линейного сигнала камеры с помощью сигмоидального отображения). Отметим, что уже можно создавать сигналы с расширенным динамическим диапазоном только путем изменения экспозиции камеры, но тогда они будут иметь высокий временной динамический диапазон (то есть тот, который предназначен для целей визуализации, но для целей кодирования каждое из тех изображений может обладать более малым динамическим диапазоном, если нужно было оптимально их кодировать, вдобавок можно решить кодировать их в переменных положениях на большем общепринятом диапазоне), но настоящее формирование изображений с динамическим диапазоном внутри сцены/изображения выполняется в настоящее время, например, с помощью камеры, которая (почти) одновременно экспонирует с меньшим и большим временем экспозиции, или имеет чересстрочную матрицу пикселей камеры с разной чувствительностью либо разные субдатчики совместного формирования изображений и т.п. Теперь для идеального представления объектов сцены этот содержащий преобладающую информацию диапазон Sel обычно будет охватывать (то есть кодировать, возможно с ограниченной точностью) большую часть или весь основной выступ 201 (может быть, отдельно от самых темных частей, если полный охват недостижим; и не дальше темных выступов типа 202), но и обычно также больше, например часть высокого выступа 203 (хотя он может почти отсекаться до белого, по меньшей мере из-за остроконечной формы RGB-подобных гамм возле белого). Отметим, что этот диапазон Sel изображен символически, поскольку в действительности будет захвачен также, например, выступ 205 (его свет попадает на пиксели датчика, приводя к выходному сигналу, хотя бы и искаженному по сравнению с реальностью), но как ошибочное отсечение до максимального значения 255. То есть Sel приблизительно указывает, что яркости в диапазоне относительно точно захватываются формирователем сигналов изображения (линейно с помощью формирователя, а псевдолинейно с помощью кода изображения).
Тогда, как правило, камера или кинооператор применит (в качестве тонального отображения TM_Cam) нелинейную кривую камеры (обычно автоматическая в фотокамерах, с ограниченным выбором в профессиональных видеокамерах), чтобы отобразить этот высокоразрядный диапазон (например, 14-разрядный линейный) в 8-разрядный сигнал, получая LDR-изображение Im_LDR с яркостями пикселей Y_LDR. Это и есть то, что делает классическое формирование LDR-изображений. Например, обычно может применяться сигмоидальная кривая (или приблизительно сигмоидальная в случае отсечения черного), в которой внутренние области могут быть с отчасти увеличенным контрастом (но в любом случае дискретизироваться с помощью относительно многих значений), а внешние области мягко ограничиваются горизонтально наклонными частями сигмоидальной кривой (то есть по-прежнему есть некоторая информация о разных уровнях черного/белого, но они все группируются в нечто, которое на LDR-устройствах отображения будет выглядеть как (почти) одинаковый пастельный белесый цвет). Как упоминалось выше, для темных областей это может представлять не такую проблему, но наблюдение пастельного изображения вне сцены через окно не всегда является желательным.
Выбор смещенного положения диапазона Sel обычно определяется с помощью некоторой процедуры, аналогичной фокусированию на x% уровня серого x%G. Например, в соответствии с серой моделью мира средняя яркость сцены должна быть приблизительно 18% серого (и аналогичным образом очень важная кожа человека имеет 36% серого). Фиксирование любого из тех уровней серого аналогично сдвигу по сравнению с определенным 100%-ым белым сцены W*, обычно отражающим белым в хорошо освещенной области. На практике фотограф также может посмотреть на предпочтительный объект, решить, что его следует захватить/кодировать/визуализировать на 1 шаг выше 18% серого, и применить такой же процесс с корректировкой значения экспозиции. Наконец, в некоторых случаях он может (обычно незначительно) скорректировать процедуру путем просмотра большего количества областей типа, например, захвата более темных областей (например, в соответствии с философией теории зон), в частности, путем просмотра текстуры в определенных важных областях (например, облаках). Просмотр того, что происходит с текстурами, в частности уменьшение текстуры из-за меньшего количества кодов, является важным способом прийти к изображениям хорошего качества. Родственным является просмотр локальных контрастов, например, можно определить по меньшей мере локальный уровень освещенности, например, путем просмотра того, как выглядят темные структуры в облаках (например, при эталонной визуализации захваченного изображения). Это также то, где дальность действия датчика может быть ограничивающим фактором, требующим неудобной оптимизации (слишком темные лица или плохо захваченные облака), и в частности, традиционная LDR-последовательность может быть ограничивающей.
В наши дни появляются камеры, которые могут захватывать гораздо больше значений яркости (Sel(L_sc)_HDR), например 18 шагов или больше (что достаточно для подробного захвата большинства сцен). Например, камеры могут проецировать два канала формирования изображений на датчики с серьезно отличающейся чувствительностью, либо иметь пиксели с разной чувствительностью. Поэтому одна часть камеры захватывает более темную часть сцены, а другая - более яркую часть, и эти части изображения затем можно объединить. В принципе (игнорируя другие факторы системы формирования изображений, например объектив), можно обладать, например, одним датчиком, измеряющим диапазон от 0,01 нит до 100 нит, и вторым, имеющим в 1000 раз большую чувствительность (чтобы иметь по меньшей мере некоторое перекрытие в двух диапазонах), то есть захват между 10 нит и 100000 нит. И такая камера является довольно полезной для всех сцен. Тогда вопрос стоит в том, следует ли по-прежнему применять такой же процесс захвата (например, схему сцены, калибровку камеры и т.п.) или по меньшей мере такой же процесс кодирования. Попытка поместить весь 18-шаговый вывод датчика (260000:1, линейный) в 8-разрядный сигнал часто приводит к субоптимальным результатам (мультяшность и т.п.). Можно предусмотреть отход к старой ситуации опять путем ограничения используемого диапазона камеры до Sel(L_sc)_LDR (например, игнорируя отклоняющиеся значения, например, с использованием тонального отображения TM_Cam с жестким ограничением для тех выбросов), но это выглядит нелепым: что тогда есть использование лучшей камеры? Можно попытаться найти промежуточные решения, но в связи с основополагающими вычислениями, представленными выше, 8 разрядов не выглядят таким хорошим способом, чтобы точно кодировать все возникающее в природе. Поэтому существует потребность в новых HDR-кодированиях.
Варианты осуществления настоящего изобретения предлагают решение этому, все же разрешая задание предпочтительного диапазона, при этом также обрабатывая дополнительным, но отдельным способом другие захваченные яркости вне того диапазона (по меньшей мере с одной стороны, например более яркой стороны). Предпочтительный диапазон может означать несколько вещей в зависимости от системы, например, это может быть способ, который создатель контента всегда использовал для работы (это может быть динамический диапазон (предыдущей) камеры (особенно при выполнении HDR-ремастеринга существующего LDR-контента), или нужная точность для представления основной части сцены (как объяснялось выше с учетом требований к кодируемому белому, черному и точности промежуточных серых). Либо в преимущественном варианте осуществления это может соответствовать LDR-кодированию, которое визуализируется как нужно на конкретном эталонном LDR-мониторе.
Отметим, что это водит парадигматически новую возможность работы с двумя (или более) диапазонами. Первый HDR-диапазон Sel(L_sc)_HDR может оптимально выбираться вблизи доступных яркостей сцены (например, путем включения большинства доступных яркостей, содержащих много очень ярких частей, возможно асимметричного отсечения или же путем отображения яркостей некоторого конкретного объекта 111 в некоторое значение x%G в HDR-диапазоне). В том HDR-диапазоне может выбираться второй (предпочтительный) LDR-диапазон, преобладающий диапазон яркости сцены Sel(L_sc)_LDR, и тогда как может быть выгоднее использовать полный диапазон яркости сцены для HDR-диапазона, можно использовать распределение x%G для размещения LDR-диапазона (то есть размещения предпочтительного диапазона около интересующего объекта, чтобы он и его окружение оптимально согласовывались, чтобы начать по меньшей мере с LDR-сигнала, получаемого из той сцены).
То есть сцена может “свободно” создаваться/освещаться в строгом соответствии с HDR-диапазоном (например, можно поместить HDR-эффекты в сцену - ярко вспыхивающий свет значительно выше яркостей отражения объекта), но также и другим способом вокруг самых интересных объектов (осветить их для попадания в нижний диапазон HDR, который будет визуализироваться менее ярко на HDR-устройствах отображения, но точно посередине на LDR-устройствах отображения, используя LDR-диапазон). Теперь есть гораздо больше контроля над созданием сцен таким образом, и можно понять, что такие иерархии диапазонов яркости (возможно, даже с большим количеством поддиапазонов, вложенных или вне друг друга) очень полезны для последующей обработки, визуализации и также других применений. Также, как указано ниже по тексту, возможна большая свобода для тонального отображения или других функций обработки изображений.
На фиг. 3 приведен пример того, как распределить захваченную HDR-сцену - Sel(L_sc)_HDR есть то, что формирователь сигналов изображения линейно выведет - двум изображениям, соответствующим выбору поддиапазонов яркости. Простой вариант осуществления может только поместить Sel(L_sc)_LDR посредством стандартного отображения в одно изображение, а все или часть некодированных яркостей (то есть вне Sel(L_sc)_LDR) во второе изображение, оба посредством выбранного тонального отображения. Однако отчасти будет описан более сложный сценарий, из которого специалист поймет некоторое количество аналогичных возможностей. Полезно, если варианты осуществления в соответствии с идеями настоящего изобретения не только кодируют информацию во втором изображении, которое максимально дополняет первое изображение (обычно LDR, например для непосредственного представления на LDR-устройстве отображения), но также по большей части (или наиболее точно) информацию, которая является самой релевантной в HDR-изображении (например, по-прежнему можно пожертвовать цветами светлого выступа 205, оставляя больше возможности для лучшего кодирования яркого выступа 203). Как только отказались от прямого монотонного характера кодирований яркости, налицо значительная свобода в отношении того, как точно распределять ту дополнительную информацию HDR кодам Y_2 яркости второго изображения Im_2, также принимая во внимание, что информация HDR, конечно, является важной, но обычно имеет меньшую важность, нежели основная область 101, точно кодированная в первом изображении Im_1.
Обычно значения в выбранном LDR-диапазоне Sel(L_sc)_LDR (который может аккуратно выбираться на основе таких принципов, как точная визуализация LDR-изображения на LDR-устройстве отображения, или задач сжатия, например, принимая во внимание, что если он [диапазон] выбирается уже, то больше информации можно записать в Im_2, и наоборот) будут отображаться как традиционные (например, для хранения или передачи на основе MPEG или аналогичного стандарта) в традиционное LDR-изображение Im_1. В частности, предпочтительно это выполняется таким образом, что результирующее LDR-изображение может использоваться для реалистичной/оптимальной визуализации на LDR-устройствах отображения (или суб-LDR-устройствах отображения с более малым динамическим диапазоном). Однако в принципе можно выбирать этот LDR-диапазон относительно свободно в соответствии по меньшей мере с некоторыми вариантами осуществления настоящего изобретения (при условии, что он приблизительно перекрывает область наибольшего интереса, нуждающуюся в наилучшем представлении и визуализации), то есть можно слегка смягчить тот критерий оптимального LDR-кодирования, например, можно слегка сузить LDR-диапазон, чтобы кодировать с большей точностью, чем в обычной телевизионной практике с LDR. Чаще всего, поскольку информация в Im_1 более важна, сначала будут разрабатывать отображение TM1 с яркостями сцены в выбранном поддиапазоне (обычно LDR) в коды Y_1 яркости первого изображения (обычно цветовые коды, но для упрощения объяснения, сосредоточение сделано на яркости), и из этого выбирают стратегию HDR-кодирования для оставшейся информации сцены, но конечно также можно изменить TM1 в зависимости от информации HDR, например рекурсивным способом, путем транскодирования и т.п. Специалист должен понять, что этот принцип может применяться везде в последовательности формирования изображений, то есть не только от RAW-захватов камеры, но также, например, в устройстве перераспределения (например, начиная с 18-разрядного линейно кодированного HDR-сигнала), схеме для передачи параллельных версий видеоизображения, например, нечто для “картинки в картинке” на веб-сайте, и т.п. Преимущественно первое тональное отображение TM1 и диапазон Sel(L_sc)_LDR могут выбираться так, что захваченная сцена будет оптимально визуализироваться на эталонном LDR-устройстве отображения (могут использоваться без дополнительного тонального отображения для восстановления вида сцены), но в качестве альтернативы сортировщик или устройство также могут определить кодирование Im_1, чтобы LDR-визуализация по-прежнему выглядела достаточно хорошо, например, после “втискивания” большего количества яркостей в Im_1 с помощью гамма-функции или другой функции уплотнения (по возможности, совместно кодирующей некоторую функцию корректирующего тонального отображения, которую нужно применить к Im_1, чтобы кодирование и визуализация Im_1 разъединялись).
Для кодирования второго изображения Im_2 (о котором для простоты идеи предположим, что оно аналогично изображению для LDR-кодирования, то есть также обычно 8 разрядов, такое же кодирование AVC и т.п.; однако это также могло быть 4-разрядное изображение, если необходимо меньше дополнительных данных, кодированных в другом формате, или изображение более чем с 8-разрядной точностью, оно может иметь уменьшенное пространственное разрешение для кодирования HDR-данных с уменьшенным разрешением, или для подобластей Im_1, только для уменьшенного количества моментов времени, и т.п.) не обязательно кодировать исключительно еще некодированные яркости, так как оно обычно будет содержать выборку некоторых других яркостей. При условии, что оно не только содержит (почти) все (или большинство) яркостей сцены, уже (точно) кодированных в Im_1 (то есть кодирования Im_1 и Im_2 делают непохожими до нужной степени). Можно интерпретировать это Im_2 в качестве второго псевдо-LDR-изображения оставшейся информации, которое нельзя показать точно само по себе, но можно использовать для формирования HDR или промежуточных визуализаций и можно кодировать и дополнительно рассматривать, как если оно было бы обычным LDR-изображением.
В этом предпочтительном примере для объяснения некоторых идей изобретения считается, что есть поддиапазон Sel(L_sc)_LDR точного кодирования R_ff. Как упоминалось выше, обычно это часть сигмоидальной кривой камеры с высокой плотностью дискретизации в направлении яркости, поэтому эта область обычно достаточно кодируется в (некоторой части) Im_1 LDR, и не настолько выигрывает путем кодирования ее второй раз (хотя для очень специфических случаев можно принять решение кодировать некоторую (обычно небольшую в яркостном и пространственном диапазоне) часть уже кодированного LDR-диапазона немного другим способом, например, с помощью другого тонального отображения). Последнее может быть полезным, например, в качестве руководства для устройств обработки изображений на стороне приемника для формирования сигналов промежуточного диапазона (IDR) для IDR-визуализации. Однако внешние области Sel(L_sc)_LDR обычно сильно сжимаются в LDR-разновидности - остаточная часть выступа 203 может быть кодирована, например, только 4 наибольшими кодами из [0,255] - поэтому может иметь смысл кодировать их снова лучшим способом. Также по непонятной причине их можно кодировать такими же кодовыми значениями, как области из светлого выступа 205. Нельзя получить точные визуализации для тех областей/объектов в изображаемой сцене без лучше кодированной информации.
Во многих сценариях кодирования только области 103 высокой яркости может быть достаточно для реалистичного HDR-кодирования, и настоящий способ тогда можно настроить на эту ситуацию легко в техническом отношении. В настоящем примере считается, что имеется разумное объяснение для кодирования как более темных яркостей (потому что, например, HDR может лучше их визуализировать, или следует сделать возможным некоторое повторное тональное отображение для их осветления), так и более светлых. К тому же яркости в диапазоне R_SHAD тени выбираются (и как проиллюстрировано, они потенциально могут перекодировать некоторые из кодированных с LDR пикселей объекта, даже в точном диапазоне (диапазоне R_SHAD, перекрывающем R_ff). С другой стороны, самые темные яркости, захваченные датчиком, отбрасываются/отсекаются) даже в HDR-кодировании (то есть отображаются в 0 в Im_2). Также выбираются яркости в светлом диапазоне R_LGHT (который переходит в выступ 205, чтобы гарантировать, что по-прежнему остается некоторая структура изображения у внутреннего освещения при кодировании; опять выбор диапазона является символическим: вместо распределения, например, наименьших 4 яркостей сцены с лампами 4 отдельным кодам, а всех более высоких яркостей сцены с лампами, например, 255, конечно, будут распределять те 4 доступных наибольших кода разбросанными по выступу 205, чтобы кодировать все структуры с другой яркостью сцены внутри лампы, но поэтому представляя выступ 205 с приблизительной точностью). Все эти данные собираются во втором изображении Im_2.
Понятно, что при этой свободе (очень нелинейной, отменяющей парадигму старого, простого, прямого, непрерывного (“линейного”) кодирования) в исполнении устройств TM2 и TM3 тонального отображения, чтобы отобразить соответствующие яркости сцены в цифровые коды изображения (Y_2), можно кодировать HDR-сцену универсальным способом в соответствии с пожеланиями приложения (например, для экономии разрядов, для простого мета-описания сцены для дальнейшей обработки и т.п.), к тому же таким простым техническим способом, что на практике нужно только тональное отображение. Эти функции отображения могут устанавливаться заранее (например, можно иметь одну или пару выбираемых функций с фиксированным высоким показателем степени для светлых диапазонов) или совместно кодироваться и передаваться, например, на каждую съемку изображений в виде функции, кодированной самой по себе (например, справочная таблица LUT), или индекса к набору функций. Либо функции отображения могут определяться даже в процессе с помощью математических алгоритмов, вычисляющих оптимальное тональное отображение на основе таких соображений, как часть входного HDR-изображения (например, предыдущего момента времени, или любая приблизительная характеристика HDR-контента, например приблизительное, основанное на гистограмме представление текущей сцены или съемки), и/или используемое LDR-кодирование, возможно также принимая во внимание определенные психовизуальные модели, характеристики окружения просмотра, модели HDR-эффектов и т.п. Можно, например, подумать об алгоритмах, которые обнаруживают освещение в сцене, либо сами яркие области ламп, либо созданные картины освещения.
Например, коды [0, 80] во втором 8-разрядном изображении Im_2, или в целом [0, Mx_S], могут выделяться для отображения R_SHAD с помощью TM2, и тогда оставшиеся коды [Mx_S+rx, Mx_L] (например, [81, 255]) можно использовать для диапазона R_LGHT.
Это показано схематически путем преобразования яркостей сцены в коды (то есть показывая также тональные отображения) на фиг. 4.
Если смотреть на эту кривую, то имеется пара вещей, которые удивляют по сравнению с классическим кодированием изображений, объясненным для понимания нескольких мотивов в основе представленных вариантов осуществления. Во-первых, хотя ось x яркости сцены идет линейно, как обычно, между любыми необходимыми значениями (например, всем, что может захватывать камера с несколькими настройками чувствительности, или всем, что программа формирования компьютерной графики задает в качестве границ результирующих яркостей). Однако ось y, дающая соответствующие кодовые значения Y в изображении, начинается с 0, затем идет к 80, потом возобновляется в нуле, идет к 255, опять возобновляется в 81, и т.п. Причина в том, что выполняется дискретное отображение в два (или более) разных изображения (их разные области яркости) (хотя может иметь место некоторое перекрытие, вновь вносящее некоторую непрерывность).
Функции тонального отображения представляются пунктирными кривыми, некоторые из которых для простоты примем в качестве линий (но конечно, они могут быть искривлены, чтобы быть более оптимальными дискретизаторами, например в соответствии со свойствами гистограммы у кодированной в настоящее время части видеоизображения, например у текущей сцены, например в соответствии с границами выступа у часто возникающих или очень важных либо особенных цветов, таких как цвета лиц, идентифицированные в ярких областях). Проекция в отношении того, куда эти кривые отображаются в разные кодированные изображения (смещение в более простых отображениях), дополнительно поясняется с помощью пунктирных линий. Чтобы сформировать первое изображение Im_1, в этом примере используется сжимающее сигмоидальное отображение TM1, которое является общепринятым, поэтому не будет дополнительно конкретизироваться. Конечно, чтобы оптимально работать с настоящими вариантами осуществления, можно искусно выбирать форму этой сигмоидальной кривой (например, наклон и границы ее средней части). Тогда темные яркости сцены ниже тех, что кодируются в Im_1 с помощью TM1, отображаются с помощью TM2 в первую часть (кодовых яркостей Y_2) второго изображения Im_2_Pt1. В этом примере предположим, что нужна лишь некоторая информация о более темных цветах без перекрытия с кодами Im_1, например для приложения, которое затем сможет вывести некоторые новые значения из тех значений Y_2 пикселя (например, чтобы сделать темную структуру более видимой), тогда как в противном случае такое приложение столкнулось бы со случайным отсечением, теряя всю информацию сцены. Более яркие яркости сцены отображаются в более высокие кодовые значения в Im_2 (например, его вторую часть Im_2_Pt2, которая обычно содержала бы хорошо закодированные яркости сцены из яркого выступа 203, например сцены за окном на фиг. 1). Также видно, что имеется вторая непрерывность, а именно то, что концептуально представлено как одиночное тональное отображение TM3 на фиг. 3, опять можно разложить на более оптимальные дальнейшие субтональные отображения TM31 (отметим, что оно перекрывается на верхней границе TM1, то есть происходит двойное кодирование в Im_1 и Im_2) и TM32 (которое в этом примере будет кодировать светлый диапазон R_205 светлого выступа 205, и очень приблизительно). Поэтому имеется область R_NCOD яркости сцены, которую “нельзя” кодировать, потому что ее не нужно кодировать. Поскольку, например, на стороне отправителя/создания алгоритм обнаруживает, что в текущих изображениях или наборе изображений (например, съемке) нет ничего полезного для кодирования, то не нужны никакие коды с любой приблизительной стратегией (фактически, конечно можно противоположно разработать отображение так, что имеется пара точек, по отношению к которым можно в любом случае отобразить яркости сцены). Однако по-прежнему имеется интересная информация в гораздо больших яркостях сцены, которая отображается с помощью TM32.
Наконец, также можно распределить одну или несколько одиночных точек различным кодам (TM4). Пара кодов в Im_2 оставлена неиспользуемой (например, для дальнейшего использования, например с целью синхронизации), потому что TM31 начинает отображение со значения 84. Это типовое кодирование отображает одиночную точку в 82 в Im_2. Одной из причин того, что это может быть полезным, является следующее. Хотя может быть много областей сцены/объектов, которые не нужно кодировать в Im_2, по-прежнему нужно что-то делать. В частности, для алгоритма декодирования будет нетрудно быстро обнаружить, что эти пиксели нужно извлечь из Im_1 (напрямую или путем дополнительного отображения). Поэтому им можно присвоить, например, значение 0, но тогда их можно перепутать с действительно темными цветами. В настоящем примере все цвета из R_ff рассматриваются, как если это была бы одиночная точка P1, и поэтому отображаются в значение 82 в Im_2 (и конечно, точно кодируются в Im_1). Поэтому самые релевантные объекты в Im_2 видны как одиночные серые пятна, что, конечно, является очень эффективным несогласованным способом кодирования. Конечно, специалист может понять, что могут быть приложения, которые считают более желательным, если пара подобластей яркости сцены кодировалась бы в Im_2 другими значениями (например, 10 кодов: 82, 83, 84 и т.п.), чтобы имелось по меньшей мере приблизительное представление самых важных областей в Im_2. Это может быть полезно для обоих приложений с ручным вмешательством (например, оператор, которому нужно быстро проверить, с каким изображением он имеет дело, может лучше его идентифицировать, если оно не состоит по большей части из серых пятен) и автоматическим анализом изображений (например, можно выполнять отображение структуры, например для оценки движения, на соответствующих областях в Im_1 и Im_2, или выполнять обработку на (приблизительных) гистограммных представлениях областей обоих изображений, и т.п.).
Кроме того можно изменить на противоположное положение яркости в Im_2 у двух диапазонов R_SHAD и R_LGHT (то есть светлым яркостям сцены присваиваются меньшие кодовые значения, чем темным), либо некоторые диапазоны яркости в Im_2 можно зарезервировать для дополнительных кодирований - например, коды 254 и 255 могут использоваться для индексирования, какой тип тонального отображения TM3 используется (гамма, парабола, linear_1, … и в этом случае можно поместить эти значения в Im_2 вместо значений 82, по меньшей мере для некоторых пикселей, например в таком сером пятне), и т.д. В принципе, можно было даже использовать перемеженное кодирование для разных поддиапазонов в Im_2, например, набор Фибоначчи может определять коды в [0, 255], которые посредством некоторого алгоритма можно приравнять к яркостям L_sc сцены в L_SHAD или их представлениям.
Возможно даже изменить определения отображений кодирования Im_2 для разных пространственных областей изображения, например, можно определить пороговую величину на Im_1, и пиксели, которые являются темными, могут использовать кодирование Im_2, в котором кодируются по большей части темные яркости, тогда как для более ярких частей Im_1 определение Im_2 изменяется так, что, например, кодируются только яркие яркости (то есть значение 0 в Im_2 теперь означало бы, например, 700 нит, тогда как в более темных частях оно означало бы 0,01 нит).
Когда приемник получает теперь оба изображения Im_1 и Im_2, у него не только есть “оптимизированная” полезная информация в них обоих, но эта информация также предварительно классифицирована для простого дальнейшего использования (сначала самая важная (“LDR”), улучшение качества HDR №1, улучшение качества HDR №2, …).
Отметим, что универсальность наших представленных способов позволяет работу с несколькими сценариями для (оптимального) кодирования LDR-части в первом изображении. Например, можно использовать алгоритмы типа ретинекса (Retinex) в соответствии с Land, которым не обязательно кодировать абсолютные яркости или некоторую их функцию, но они могут кодировать относительные значения, обычно с помощью областного алгоритма. Идея в том, что глаз больше интересуют яркостные различия, нежели абсолютные яркости. Поэтому можно, например, увеличить яркость двух соседних темных фрагментов до среднего серого (чтобы их значения стали больше похожими, например, на белые фрагменты), а затем увеличить их разность (полулокальный контраст). Там, где это может быть лучшим представлением структуры изображения, как ее видят люди, и поэтому потенциально приводит к более эффективному кодированию, это создает проблему с техническим использованием кода для визуализации. Поскольку это уменьшает информацию об абсолютных яркостях (преувеличенно можно представить, что двум соседним темным фрагментам присваивают почти такую же яркость, как 2 белым фрагментам, что может действительно происходить в психовизуальных экспериментах типа иллюзий, но тогда пропадает вся информация о темном в сравнении с белым), становится гораздо сложнее работать, например, в алгоритме тонального отображения для получения оптимальной визуализации. В таких LDR-кодированиях можно снова перекодировать, например, некоторые темные или белые фрагменты во втором HDR-изображении, чтобы отчетливо передать, какую точную исходную яркость они имели (то есть абсолютное и относительное кодирование вместе). Например, можно кодировать яркий фрагмент во втором изображении между кодом, соответствующим начальной яркости в 500 нит, и кодом, соответствующим 12000 нит. Устройство тонального отображения тогда может использовать эти информационные блоки, чтобы добиться оптимальной окончательной визуализации.
Другим примером того, как первое изображение (и поэтому второе согласованно с ним) может кодировать абсолютно или относительно, является следующее. Рассмотрим, например, вспышку в коридоре. Все стены тогда освещаются вместе со вспышкой. Исключительно с точки зрения эффективности кодирования может иметь смысл кодировать движение LDR-изображения вместе с изменяющейся освещенностью, например, взять некоторые процентные отношения среднего значения яркости. Этот сигнал было бы сложнее использовать в унаследованной LDR-системе, так как было бы действительно не видно изменений в освещенности, поскольку всегда кодируется почти один и тот же сигнал (некоторые отражательные процентные отношения, модулирующие сниженное освещение). То есть предпочтительные системы могут решить кодировать по большей части более темные или более яркие коды в LDR-изображении, что соответствует фиксированию его в оптимальном положении по исходному диапазону яркости для этой сцене. Второе изображение тогда может содержать различные изображения вспышки/освещения.
Настоящий способ также решает основополагающий вопрос HDR “что есть белый”, и следовательно, “что есть 18% серого” и “что есть 36% серого (цвет лица)”. Это важно из-за двойного вопроса: как следует визуализировать такой “особый белый” (фактически, все захваченные цвета имеют смысл только при конечной визуализации). В традиционных цветовых пространствах и формировании LDR-изображений гамма начинается с белого сцены (который предположительно является просто освещенной, самой светлой частью сцены). На этом основании создаются цвета путем удаления еще больше света, в частности, из-за поглощения объектами. В добавочных пространствах RGB это моделируется в обратную сторону, но можно интерпретировать их как удаление с определенным шагом элементарных частей, например, в R-спектральной полосе белого спектра. Однако в общей HDR-сцене может быть несколько белых. Может быть белый в более темной части изображения, белый в более яркой внешней части и даже более яркие объекты. Более того, вызывает сомнения, следует ли экспонировать (строго заданным способом) цвет кожи человека, стоящего в более темной области изображения, поскольку огромная свобода формирования HDR-изображений допускает дополнительную последующую корректировку захваченных цветов. Другими словами, HDR допускает преднамеренное темное освещение лиц, например для художественного страшного эффекта. Теперь можно выбрать HDR-диапазон для максимальной освещенности в диапазоне яркости сцены, например лампы (хотя это не должен быть настоящий белый, например, можно по-прежнему позволить некоторое отсечение более ярких яркостей по техническим или художественным причинам). И можно выбрать один или несколько LDR-диапазонов для интересных субокружений в HDR-сцене. Отметим, что хотя обычно способ может совместно кодировать различные LDR-виды на сцену и частично дополняющие (непохожие) оставшиеся HDR-изображения, обычно должно хватать двух изображений в связи с выше объясненным принципом, что уже LDR-изображения содержат хорошее представление самой важной композиции сцены, и (если аккуратно группируют/кодируют вместе другие выступы гистограммы) дополнительного второго HDR-изображения Im_2 обычно достаточно для выразительного диапазона информации HDR. Можно даже приблизительно определить информацию HDR, например, можно рассмотреть кодирование наружной части области 103 высокой яркости окна с уменьшенным количеством уровней (например, 20), что по-прежнему гораздо лучше ее отбрасывания. Особенно некоторые приложения типа, например, видео через Интернет могут кодировать только некоторые HDR-объекты или только эффекты (может быть, даже в виде необработанного дополнения к Im_1). То есть представленные способы позволяют оптимально кодировать все, что является желательным в изображении, в частности, разные HDR-субокружения, и способ, которым они связаны с базовой LDR-частью, в частности, путем выбора правильных тональных отображений для определения структуры поддиапазона у Im_2 (то есть, например, важность визуализации окна 103 конкретным образом зависит от того, что точно находится в LDR-части, и аналогичным образом можно создать полную иерархию HDR-кодирования, чтобы предложить некоторые из разрядов, представляющих область тени, в интересах лучшего кодирования яркого выступа 203), и кроме того, это кодирование также легко позволяет дальнейшее использование разных компонентов HDR-сцены, например отображение в конкретное окружение устройства отображения. Как правило, кодирование будет до такой степени хорошим (будет иметь достаточно точно кодированную информацию о яркости исходной сцены), что его можно использоваться в нескольких прикладных сценариях, хотя оно также может (по меньшей мере до некоторой степени) настраиваться на некоторые применения, например просмотр в более ярких окружениях, и в этом случае некоторые из областей тени могут кодироваться хуже.
В дополнение к кодированию интересующего LDR-диапазона и дополнительного HDR-изображения можно захотеть дополнить их метаданными MET, например, указывающими, насколько идеально следует визуализировать диапазон, то есть какой вид следует ему придать (см. ниже). Например, LDR-диапазон (фактически целая HDR-сцена) может сниматься в хмурую дождливую погоду. Алгоритмы автоэкспозиции имеют склонность создавать плоскую, похожую экспозицию всех сцен и уменьшать характер освещения у изображения. В дополнение к этому есть вопрос, как устройство отображения будет визуализировать тот сигнал в своем окружении. Обычно он визуализировал бы внутреннее темное окружение так же ярко, как внешний солнечный мир, однако HDR-визуализация может захотеть визуализировать по меньшей мере некоторое отличие в средней выходной яркости устройства отображения для обеих сцен. Также он обычно визуализировал бы вечернюю сцену внутри с более ярким внешним окружением относительно похоже с той сценой в солнечном свете (если только кодирование не выбирается тщательно для имитации сцены в кодах, но тогда на кодирующей стороне по-прежнему неизвестно, что средство визуализации будет делать с этими кодами, например, если имеется пользовательская команда увеличения освещенности).
Если задают, например, какой яркости сцены или типу освещения принадлежит то LDR-изображение (которое является примером более точного описания его белого и/или 18% серого), то устройство отображения может учитывать это при визуализации, чтобы поместить LDR-часть в такой диапазон визуализуемых яркостей, который в действительности имитирует дождливый день. Таким образом, этот простейший пример метаданных описывает, как теперь можно передавать настоящий белый (например, белый стен внутри помещения). Сторона визуализации тогда может, если из кодированных метаданных яркости белого знает, что захватывалась вечерняя сцена, привести цвета внутренней части к цветам, которые кажутся более темным серым на стороне визуализации, вместо белесого. Если бы не нужно было ничего дополнительно кодировать, то принимающая сторона уже бы знала, где в восстанавливаемом диапазоне управляющего сигнала HDR находится самый релевантный белый сцены, а именно, это будет точка 255 в Im_1, и даже простейший алгоритм восстановления, который всего лишь накладывает Im_2 непосредственно на Im_1, может определить отсюда положение линейной визуализации света того белого из используемых тональных отображений TM1, TM2, …, чтобы кодировать изображения. Однако, если также добавляют необязательные метаданные, утверждающие, что этот белый фактически составлял, например, 500 нит в захваченной сцене, то может произойти даже улучшенная визуализация (например, устройство формирования управляющего сигнала устройства отображения может повторно отобразить сигнал, чтобы точнее приблизиться к исходной сцене, принимая во внимание соображения стороны устройства отображения).
Другими полезными метаданными являются метаданные касательно лиц. В настоящих вариантах осуществления, и вообще как полезное свойство HDR-кодирования, можно освещать лица (по меньшей мере второстепенные личности) гораздо менее точным способом, как выполнялось при LDR-захвате. То есть вместо их освещения достаточным светом и не слишком контрастно можно освещать некоторые лица так, что они, например, оканчиваются где-то в очень темных областях HDR-диапазона или даже по всему диапазону в случае очень контрастирующего освещения, например, возникающего при освещении части лица сильной вспышкой. В соответствии с настоящими вариантами осуществления можно кодировать те лица в их собственных поддиапазонах, особенно если они являются частью дополнительной информации HDR в Im_2. Однако уже очень полезно, если верхнее и нижнее значение у значений серого по меньшей мере у одного лица кодируется в качестве метаданных MET. Тогда сторона визуализации может использовать эту информацию при визуализации лица, чтобы сделать его выглядящим привлекательнее, лучше скрытым и т.п. Уровень x%G в выступе 211 объекта, в этом случае выступе лица, является другим полезным примером дополнительных метаданных. Вообще, любой уровень яркости с конкретной значимостью, типа границ диапазонов, может кодироваться в качестве метаданных MET, но также и дополнительная информация, например, что символизируют диапазоны, как их обрабатывать (например, при смещении освещенности или увеличении контраста, в частности, по согласованию с другими областями в сцене), и т.п.
Фиг. 5 показывает типовую систему, воплощающую некоторые из настоящих идей изобретения в системе создания фильма. HDR-сцена захватывается камерой 501 с большим динамическим диапазоном, допускающей захват HDR-диапазона Sel(L_sc)_HDR, и захваченное изображение можно смотреть на устройстве отображения 503 камеры (предпочтительно также HDR, хотя он мог бы эмулировать HDR, например, используя подвижную шкалу). На этом основании изображение отправляется по сигнальному соединению 505 (сеть или беспроводное (спутниковое), и т.п.) в устройство 510 обработки изображений. В зависимости от сценария использования для реальной трансляции это может быть устройством в аппаратной или грузовике режиссера, но для фильмов это может быть (независимым, в более поздний момент) устройством сортировки у сортировщика 520. В первом случае может выполняться автоматический анализ изображений, однако в настоящем примере предположим, что выполняется полуавтоматическая обработка под руководством сортировщика 520. Отметим, что такие же принципы могут применяться на любом промежуточном или дополнительном этапе (например, ремастеринг ранее отсортированного сигнала для новых применений). Например, на стороне захват DOP 521 уже может (предварительно) задать композицию LDR/HDR сцены в результирующих изображениях Im_1 и Im_2, однако сортировщик 520 может задать ее повторно. Например, посредством подходящего тонального отображения в промежуточное 32-разрядное представление он может сдвинуть (или скопировать) некоторые уровни яркости кодированных данных, например ярких участков, из Im_1 LDR в Im_2 HDR или наоборот, посредством этого получая измененное кодированное с LDR и/или HDR изображение. Обычно он может смотреть на несколько сортировок и/или кодирований одной и той же сцены, например, путем переключения или совместного просмотра HDR-версии на эталонном HDR-устройстве отображения 531 и LDR-версии на эталонном LDR-устройстве отображения 530. При этом он может оптимизировать то, что увидит каждый из типичных классов конечных зрителей, и уравновесить качество каждого из этих сигналов, например, с запасом разрядов. Он может сохранить итоговые сортированные изображения Im_1 и Im_2 на носителе 511 информации. По возможности он также может сохранить дополнительные метаданные, описывающие коды Y (например, связывающие по меньшей мере некоторые из них вместе или с яркостями исходной сцены, например, фактической яркостью W* сцены, соответствующей коду 255 белого в Im_1, LUT или формулы разных используемых тональных отображений для кодирования изображений Im_1 и Im_2, и т.п.), или возможные дополнительные функции типа тональных отображений, которые могут применяться к кодированным данным (например, как соединить или повторно отобразить данные в Im_1 и Im_2 для нескольких промежуточных устройств отображения между эталонным LDR- и HDR-устройством отображения), и т.п.
Внутри устройства 510 обработки изображений находятся субблоки обработки изображений, которые будут выполнять фактическое вычисление на каждый пиксель, создадут итоговый результат и направят и помогут сортировщику. Конечно, там будет блок 551 кодирования изображений, который выполнен с возможностью получения кодированных изображений Im_1, Im_2 на основе входного сигнала CSI камеры и предпочтений сортировщика (обычно обрабатываемых посредством модуля UI). Вообще, он будет кодировать Im_1, учитывая выбранный меньший динамический диапазон SELR наибольшего интереса в HDR-диапазоне (полученный из автоматического анализа и/или от оператора). Обычно блок 551 кодирования изображений также будет принимать заранее установленную максимальную избыточность MAXRED, которая является описательной структурой, описывающей, сколько информации, уже кодированной в Im_1, можно кодировать с избыточностью в Im_2. Это может быть так просто, как задание того, что могут кодироваться только значения ниже или выше верхнего и нижнего пределов яркостей сцены, кодированных в Im_1, или ниже или выше диапазона точного кодирования R_ff. Либо в структуре может быть задана более сложная стратегия, например, задающая, что также кодируются некоторые значения внутри R_ff или некоторые другие значения (в некоторых из значений Y_2). MAXRED можно получить от оператора или определить с помощью алгоритмов автоматического анализа изображений, например, анализируя статистическую, а возможно также и геометрическую структуру изображений, которые нужно кодировать. Например, если нужно кодировать только немного ярких HDR-областей, тот встроенный алгоритм может решить использовать доступные коды в Im_2, чтобы избыточно кодировать более крупную часть диапазона, уже кодированного в Im_1.
Кроме того, обычно будет присутствовать блок 550 анализа изображений, который анализирует изображение, помогая при кодировании. Например, он может предложить первое тональное отображение TM1, принимая во внимание статистику CSI. Он также может получить из этого метаданные UI, например, показать в псевдоцветах по меньшей мере на одной из опорных LDR- и HDR-визуализаций, какие пиксели им соответствуют, оказывая помощь сортировщику в модификациях. Если устройство 510 обработки изображений уже принимает сортировку LDR вместе с CSI RAW, то блок 550 анализа изображений может анализировать отображение TM1, чтобы получить яркости, которые кодируются менее точно, или сравнить сортировку и RAW многими другими способами, чтобы прийти к оптимальным предложениям для сортировщика для кодирования в Im_1 и Im_2, или даже выполнить это автоматически без вмешательства человека.
У устройства 510 обработки изображений (и сортировщика) из этого примера также есть линия 581 доступа к унаследованному контенту 580 (конечно, специалист понимает, что эти функциональные возможности могут быть реализованы в другом устройстве и выполнены на другом этапе последовательности формирования изображений, другим сортировщиком или специалистом по компьютерной графике). С помощью настоящих вариантов осуществления сортировщик может добавить HDR-эффекты в старый LDR-фильм, и настоящие варианты осуществления очень полезны в том, что LDR-кодирование не нужно изменять (“повреждать”), поскольку оно может кодироваться в качестве Im_1, а все эффекты могут кодироваться в качестве Im_2. Также показан другой вывод 582 для предоставления другого кодирования Im_3 “основного контента” для другого канала связи, который может быть, например, кодированием Im_3 очень низкого качества для Интернета 584. Это кодирование затем можно модернизировать с помощью корректирующего потока изображений Im_2* в соответствии с настоящими вариантами осуществления, который может доставляться, например, при уплате некой суммы денег. Im_2* может отличаться от Im_2, например, в том, что он кодирует только наиболее преобладающие HDR-эффекты и, возможно, некоторое улучшение значений серого в диапазоне, кодированном в Im_1.
Фиг. 6 показывает пример системы визуализации на принимающей стороне. Она может состоять, например, из блока 601 видеообработки (который может быть, например, телевизионной приставкой или универсальным персональным компьютером, и т.п.) и устройства отображения, который в этом примере является LED-телевизором 602 с задней подсветкой, но он также может быть OLED и т.п.
Блок 601 видеообработки имеет вход 616, который в зависимости от системы может быть, например, считывающим устройством для дисков, отверстием для карты памяти и подключенным диспетчером памяти, шину для подключения внешнего устройства, антенну и приемник с демодулятором, и т.п. Также символически изображен приемник 688, который обычно будет выполнять переформатирование принятого кодированного сигнала S(Im_1,Im_2), чтобы получить два изображения в подходящем формате, и хотя в этом примере он выбран находящимся вне блока 601 видеообработки, он также может быть его частью, например, включаться в блок 651 декодирования.
Может присутствовать блок 611 геометрического отображения, который может быть выполнен с возможностью, например, геометрического преобразования Im_2. Например, он может создавать изображение, соответствующее области в Im_1, где существует дополнительная информация HDR, например после субдискретизации изображения Im_2. Более продвинутый алгоритмы также может принимать во внимание временную субдискретизацию, например, может присутствовать одна или пара пространственных областей Im_2 для HDR-объектов в сцене, не точно кодированной в нескольких изображениях Im_1, которые кодируются для съемок той сцены. Тогда HDR-изображения (например, управляющее изображение для непосредственного управления устройством отображения) можно создать, например, путем компенсации движения объектов, кодированных в одиночном Im_2, в направлении соответствующих положений нескольких изображений Im_1.
Конечно, будет присутствовать блок 612 яркостного или, в общем, цветового отображения, который выполнен с возможностью получения HDR-кодирования из кодирования Im_1+Im_2 (пример того, как это работает, объясняется с помощью фиг. 7). Он может содержать блок 613 обработки для конфигурируемых алгоритмов, которые могут определяться анализатором 614 метаданных. В простом варианте осуществления анализатор 614 метаданных может только загружать алгоритм тонального отображения в обработку блока 613 обработки.
Простой вариант осуществления может кодировать тональное отображение, чтобы непосредственно записать коды сверх диапазона Im_1, например:
Y_final=Y_1, если Y_2==k, и
Y_final=Y_2+240 в противном случае.
Обычно блок 612 цветового отображения будет применять два обратных кодовых отображения TMI1 и TMI2, которые помещают кодированные яркости в Im_1 и Im_2 в правильное положение по диапазону яркости декодированного HDR-изображения (например, Im_d). Эти отображения частично могут задаваться предварительно (например, индекс [0,10] может указывать в начале видеопоследовательности/фильма, какое конкретное отображение нужно использовать для TMI1, или TMI2), либо они могут совместно задаваться вместе с кодированными данными (или даже частично определяться (“на лету”) на принимающей стороне). Отметим, что обычно задание отображения HDR в LDR будет в значительной степени аналогично заданию его соответствующим обратному отображению LDR в HDR, поэтому можно совместно кодировать любое отображение или оба вместе, если необходима абсолютная точность.
Более продвинутые варианты осуществления могут использовать блок 615 анализа изображений, который может анализировать изображения на геометрические, статистические, крупномасштабные осветительные, текстурные и т.п. свойства и из этого предлагать лучшие выходные HDR-изображения, например, принимая во внимание условия просмотра на стороне визуализации, психовизуальную адаптацию к просматриваемому фильму и т.п. Обработка яркости/цвета для получения окончательной визуализации, применяемой непосредственно к входным Im_1 и Im_2 или к промежуточным представлениям изображений, может дополнительно задаваться конфигуратором 680 цели визуализации, который может быть подключен к интерфейсу пользователя, например, для настройки освещенности и т.п.
Блок 601 видеообработки формирует выходное HDR-изображение, например, изображение Im_2 непосредственного управления устройством отображения, по сетевому каналу 650, например HDMI. Чтобы позволить дисплею проводить собственные регулировки (с помощью блока 620 обработки изображений), некоторый остаток исходного двойного кодирования может передаваться как новое двойное кодирование, например, только Im_2 (в этом случае подчасти того изображения могут использоваться для повторного отображения внутри устройства отображения, например, затемнения ярких HDR-диапазонов по команде пользователя через пульт 640 дистанционного управления). Пользователь может, например, определить профили предпочтений визуализации с помощью пульта дистанционного управления, например, он может захотеть затемнить более яркие области, потому что они слишком резкие для него. Это можно легко сделать с помощью настоящих вариантов осуществления, поскольку повторные визуализации и HDR-эффекты могут осуществляться исключительно путем воздействия на данные второго изображения, защищая при этом визуализацию на основе данных первого изображения. Также могут отправляться новые метаданные MET_2, например предложения относительно того, как (повторно) визуализировать видеоизображение, например при приеме конкретных UI-команд визуализации.
Сетевой канал также можно конфигурировать для приема информации INfBck обратной связи, например предложений от устройства отображения о том, как он хочет визуализировать, запросов дополнительных данных, например кодирований абсолютных яркостей сцены, соответствующих конкретным кодам в Im_d, параметров для получения новых изображений Im_d* и т.п.
Отметим, что то, что описано здесь для примера как находящееся в блоке 601 видеообработки, как правило, также может быть реализовано в блоке декодирования. То есть блок 651 декодирования, как правило, может содержать считывающее устройство форматов для считывания кодированного формата (распаковка и т.п.) и одно или несколько устройств отображения данных для отображения в коды двух или более изображений Im_1, Im_2 в (промежуточное) HDR-представление. Более продвинутые кодеры также могут содержать блоки для анализа метаданных и блоки для применения дополнительных отображений к кодам Y_1, Y_2 яркости или кодам в промежуточном HDR-диапазоне. Они также могут содержать блоки геометрического отображения для геометрического сопоставления геометрически определенных кодирований Im_2, например, части изображения из 100×100 пикселей, кодирующей только локальный HDR-объект.
Пример того, как настоящие варианты осуществления и простые повторные визуализации работают с интерфейсом пользователя, можно показать с помощью “информированной регулировки освещенности”, например кнопки 641. Вместо безрассудного добавления смещений, например, к переданному Im_d, при нажатии этой кнопки блок 601 видеообработки или телевизор может применять новую стратегию, которая повторно отображает информацию о темном выступе 202 по-разному в нижние области Im_d, получая при этом гораздо лучшую видимость темных объектов.
Блок 601 видеообработки также может сформировать второе управляющее изображение по второму сетевому каналу 699 (в примере - беспроводному), например, для портативного LDR-устройства просмотра типа Ipad, которое другой пользователь может использовать для просмотра фильма в кровати.
Настоящие варианты осуществления допускают улучшенные команды пользовательского интерфейса на стороне визуализации. Кнопка 642 более интеллектуальной адаптации переосвещения или кнопка 643 более интеллектуального улучшения контраста могут использовать метаданные, а также кодированные поддиапазоны. Например, кнопка контраста может применяться к лицевой области, которая в темноте плохо освещена. Она может функционировать в режиме “увеличения освещенности”. Это увеличение освещенности может учитывать все факторы. Например, оно может содержать алгоритм, изучающий верхний и нижний предел диапазона лица в метаданных, и изменять яркости лица на их основе. Оно может изучать дополнительные метаданные, связанные с лицом, например предписание, указывающее, что лицо должно быть “темным и скрытым”, что запрещает сильные подсветки на том лице. Либо они могут быть индикаторами, что лицо должно оставаться “высококонтрастным”, и т.п. Например, поправочная гамма, которую нужно применить к области лица, может зависеть от метаданных.
В качестве примера использования разных диапазонов изображений Im_1 и Im_2 кнопка переосвещения может функционировать, например, как общее увеличение светлоты (глобальное или геометрическая картина освещения) или изменение цветовой температуры, но применять их по-разному к основным объектам, кодированным в Im_1, и частям, кодированным в Im_2. Например, пиксели основного объекта могут иметь сильно увеличенные значения серого, тогда как HDR-диапазоны только изменяются, чтобы сохранить некоторую согласованность в отношении окончательного вида, учитывая изменения в основном диапазоне выступа 201.
В любом случае отдельное кодирование Im_1 делает возможным наилучшую визуализацию по меньшей мере того диапазона даже на HDR-устройствах отображения. Особенно устройства отображения промежуточного диапазона обнаружат, что проще уравновесить визуализацию основного диапазона, кодированного в Im_1, в сравнении с HDR-частями в Im_2, и например, применить уменьшение освещенности основного диапазона для экономии энергии, по-прежнему допуская некоторый запас по меньшей мере для некоторых HDR-эффектов, кодированных в Im_2 (фактически и наоборот, это могут быть только данные в Im_2, которые затемняются для экономии энергии). Все эти операции могут учитывать факторы окружения просмотра, например освещение, измеренное около устройств отображения, и т.п.
Темные диапазоны могут, например, отбрасываться (большей частью), если устройство отображения не смотрят в темном окружении. Настоящие варианты осуществления, позволяющие отделение этой информации, делают это простой операцией. Некоторые приложения также могут передавать ту информацию, только если она нужна, например, адаптивная домашняя сетевая среда (например, по беспроводному HDMI) может передавать только Im_2 от домашнего сервера контента с темным диапазоном, если устройство отображения смотрят в темноте (что может сообщаться устройством отображения обратно), и в противном случае переопределить кодирование Im_2, чтобы все доступные данные использовались для кодирования более ярких диапазонов (или уменьшить объем данных с помощью очень простого преобразования к меньшему количеству разрядов путем определения пороговой величины).
Создателю контента также очень просто задавать виды для HDR-диапазонов с помощью дополнительных метаданных. Например, с помощью пары функций и/или пороговых величин он может задать, что яркие области, которые точно кодируются, все же визуализируются обеленными. Пример того, как могут совместно кодироваться такие спецификации визуализации, показан на фиг. 8. Создатель контента может задавать функции визуализация, в этом случае первую функцию для выполнения обеления на частях, кодированных в Im_2 сверх диапазона Im_1. Эта визуализация может быть задана, например, так, что все значения Y_2 ниже T1 линейно отображаются, чтобы быть ниже TS1 с уменьшенной яркостью, и все значения ниже T2 отображаются ниже TS2, и TS2 может быть одним значением выше TS1, так что те значения фактически отсекаются. Это также объясняет, как сторона визуализации может применять полностью разные стратегии визуализации/модификации к основной области и другим областям сцены.
Фиг. 7 символически показывает, как устройство обработки изображений на стороне визуализации может получить управляющий сигнал для окончательной визуализации на двух устройствах отображения с диапазонами выходных яркостей R_dLDR и R_dHDR. Специалисту следует знать о физике управления, электронике, калибровке устройства отображения, предпочтительных режимах визуализации (например, “живой”) и т.п., поэтому те моменты не будут подробно описаны те, а исключительно то, как кодирование (теперь image_code_in) изображения или видеоизображения приводит к окончательной визуализации яркостей, выходящих из устройства отображения. Устройство отображения будет в целом выполнять отображение с помощью сведений устройства отображения DISPKNWLDG, например о том, как белый и черный устройства отображения связаны с окружением просмотра. Поэтому устройство обработки изображений может применять такие алгоритмы, что выводятся только некоторые из темных яркостей, кодированных в Im_2_Pt1, и предпочтительно нелинейным способом, дающим, например, больше зрительной выразительности верхним яркостям в Im_2_Pt1, увеличивающим контраст и т.п. Средний диапазон, кодированный в Im_1, обычно может визуализироваться отчасти ярче, чем на эталонном LDR-устройстве отображения, если есть очень яркое LDR-устройство отображения, к тому же можно снизить среднюю освещенность (или местоположение отображенного основного диапазона R_main, то есть выходные яркости устройства отображения после отображения всего, что возникает на устройстве отображения и дополнительных компонентах системы визуализации), например, чтобы создать улучшенный HDR-эффект для визуализируемой в настоящее время сцены. Однако в целом эти яркости основной области не будут визуализироваться слишком ярко, и часто с сопоставимой средней освещенностью, как их показывало бы LDR-устройство отображения. Выше R_main будет находиться диапазон HDR-частей сцены, а именно диапазон R_eff HDR-устройства отображения. Снова устройство отображения может определить степень его яркости в зависимости, например, от психовизуальных соображений типа HDR-вида, принимая во внимание основную визуализированную часть в R_main, или соображения типа экономии энергии. Текущий пример показывает светлый выступ 205, отображаемый в светлый диапазон R_lmp, который может соответствовать приблизительно наибольшим управляющим кодам HDR-устройства отображения, например 1019, 1020, 1021, но не обязательно самому большому 1023.
Аналогичным образом можно создать управляющий сигнал для LDR-устройства отображения, который главным образом использует коды Im_1 для управления, но может отбрасывать, например, некоторые из более темных кодов из-за освещения окружения визуализации и вводить (отображать) некоторые более яркие цвета из кодирований второго изображения Im_2. Если LDR- устройство отображения или дисплейная система настолько примитивны, что могут только принимать Im_1, то они, конечно, будут использовать исключительно данные Im_1, однако система формирования изображений, имеющая доступные данные Im_2, может создать новый управляющий сигнал LDR для LDR-устройства отображения, принимая во внимание по меньшей мере часть информации Im_2, например меньшие яркости у кодированных в ней более ярких областей. L_iHDR являются яркостями, полученным в HDR-диапазоне, который может быть промежуточным (чтобы быть дополнительно преобразованным, например, согласно цели визуализации у конкретной стороны визуализации) или окончательным (даже значениями управления устройством отображения).
Фиг. 8 символически показывает пример кодирования видеоизображений. DAT_Im_1 и DAT_Im_2 могут быть структурами данных, например для блоков DCT в Im_1 и Im_2. Задание TM2 оператора тонального отображения указывает, как преобразовать DAT_Im_2 и DAT_Im_1 вместе, чтобы воссоздать HDR-изображение (дополнительные тональные отображения могут кодироваться для создания промежуточных изображений). Это может быть LUT или индекс к некоторому количеству предопределенных стратегий отображения (например, для ярких областей широкого диапазона в сравнении с яркими областями узкого диапазона над основным диапазоном).
Также могут быть тональные отображения TRM2, предписывающие некоторые другие визуализации для HDR-устройства отображения, например повышения b1 и b2, которые нужно применить к части яркого выступа 203, например, под управлением интерфейса пользователя. Геометрические координаты (xs, ys, w, h) могут определять, как прямоугольное изображение, кодированное с помощью DAT_Im_2, геометрически отображается в прямоугольник Im_1. Также могут кодироваться метаданные типа яркости LW* белого сцены, соответствующие DAT_Im_1, например, в AVC можно использовать дополнительную информацию расширения. Обычно можно кодировать несколько параметров, связанных с диапазоном 101 основной области у Im_1, например точку черного (LDR), нужный контраст, относительные местоположения в кодовом диапазоне HDR, параметры важных положений на тональном отображении TM1, информация о цветах лица или освещения и т.п. Аналогичным образом может кодироваться интересная яркость или кодовые точки в диапазонах Im_2, например, где возникает новый вид или уровень объекта, или следует использовать новую стратегию тонального отображения, и т.п.
Отметим, что могут кодироваться дополнительные изображения (части изображений), например, задающие разные заданные цели визуализации для устройств отображения с промежуточным динамическим диапазоном, и т.п.
Фиг. 9 с некоторыми дополнительными подробностями объясняет типовой блок 551 кодирования изображений. Он будет содержать первый приемник 901 для приема меньшего динамического диапазона SELR (который обычно будет задан в виде нижнего и верхнего значения яркости или аналогичной величины, типа яркости) и второй приемник 902 для приема максимальной избыточности MAXRED (определенной человеком, блоком анализа изображений или заранее установленной, и т.п.). Конечно, эта избыточность не только задает то, какие значения яркости, уже кодированные в Im_1, нужно снова кодировать, но также и те значения, которые еще не кодировались (обычно вне кодированного диапазона) и поэтому должны кодироваться в Im_2 (можно рассматривать это как “отсутствие избыточности” или “кодировать только внешнюю часть”). В простейших вариантах MAXRED может быть структурой, содержащей уровни яркости, например, она может быть реализована как первая пороговая величина, ниже которой находятся темные яркости, которые нужно (повторно) кодировать в Im_2, вторая пороговая величина, выше которой расположены яркие яркости, которые нужно (повторно) кодировать, и одна или несколько яркостей среднего значения, которые будут представлять все значения между первой и второй пороговой величиной (если имеется только одна яркость среднего значения, то ее не нужно задавать точно - только код, который она отображает в Im_2 - но может задаваться как середина между первой и второй пороговой величиной). Может иметь место небольшое перекрытие с внешними областями Sel(L_sc)_LDR или отсутствие перекрытия. В качестве альтернативы можно пожелать, например, перекодировать некоторый поддиапазон в R_ff (например, лицо), и тогда MAXRED может быть реализована содержащей две дополнительных границы диапазона яркости, для которых отображение в Im_2 непрерывно над темным диапазоном, или с помощью некоторого дополнительного тонального отображения для того диапазона. То есть максимальная избыточность может функционировать как некий вид селектора, нужно ли по-прежнему кодировать пиксель, на основе значения его яркости по разным заданным диапазонам, во втором изображении с помощью второго тонального отображения TM2.
Блок 903 обработки изображений обычно будет принимать входное изображение IM_HDR-in с расширенным динамическим диапазоном и группировать пиксели в пиксели, которые нужно кодировать в первом изображении Im_1 соответственно втором изображении Im_2 (или в обоих), и применять к ним подходящие кодирование. Это достигается с помощью первого блока 904 кодового отображения и второго блока 905 кодового отображения, которые обычно выполнены с возможностью приема определений отображений “TM1 соответственно TM2”, которые могут определяться другими блоками, которые анализируют изображение, принимают команды оператора и т.п. Они отображают яркости, например, RAW-сигнала камеры или промежуточного HDR-представления в кодовые значения яркости/цвета у первого изображения, соответствующего второму, то есть, например, в [0,255].
В конечном счете средство 906 форматирования форматирует все в кодированный выходной сигнал S(Im_1, Im_2). Средство 906 форматирования также может иметь вход 907 для приема дополнительных метаданных METSPEC, например команд визуализации от оператора, которые нужно включить в кодирование S(Im_1, Im_2) с расширенным динамическим диапазоном в качестве метаданных MET.
Может быть подключен блок 950 определения диапазона, который определяет, какой диапазон SELR следует использовать, например, на основе (возможного) критерия качества визуализации данных, кодированного в Im_1, на эталонном LDR-устройстве отображения, принимая дополнительное руководство или данные задания от человека или полностью автоматически. В случае автоматического определения критерий Qcrit качества может быть загруженным в память алгоритмом, который, например, рассматривает кодированное с LDR изображение и определяет такие факторы, как полулокальные и локальные контрасты нескольких областей, процентные отношения некоторых цветов, например темных черных, точность и диапазон яркостей в области лица, величину (мягкого) отсечения и т.п. Оператор может всего лишь визуально оценивать качество на своем контрольном мониторе. По меньшей мере SELR, но также вместе с TM1, будет влиять на эти параметры, пока не достигнут удовлетворительный уровень качества (например, путем применения мягкого отсечения в большем объеме и определения меньшей области R_ff).
Варианты осуществления второго блока 905 кодового отображения могут создаваться не только для применения яркостно-кодового отображения к каждому пикселю, приводящего к Im_2 аналогичного размера, но также и для включения в него блока 960 геометрической оптимизации, который может применять дополнительные преобразования к данным, например, определять пространственно-временные части изображения Im_2 меньшего размера, чем Im_1, которые нужно применить только в некоторых местах и моментах, и совместно кодировать путем передачи в средство форматирования описательных данных, позволяющих правильное декодирование, например положения (xs, ys, w, h) в кадре Im_1, где находятся данные меньшего изображения Im_2, моменты времени по временному коду Im_1, и т.п. (могут использоваться дополнительные геометрические приложения, например субдискретизация, преобразование формы, декомпозиция базисной функции и т.п.; отметим, что обычно оба изображения или их часть могут кодироваться в виде растровых RAW-изображений или DCT либо других преобразований, и т.п.)
Фиг. 10 описывает блок 1051 кодирования изображений, который в значительной степени аналогичен 551 (то есть блок 1005 аналогичен 905, и то же самое для 1060, 1006 и 1007, поэтому они не будут снова описываться, и 1001 и 1002 необязательны в том, что они могут предоставлять только руководства для SELR и MAXRED, поскольку этот блок 1051 кодирования изображений может определять их сам). Отличие состоит в том, что теперь вводится не только изображение IM_HDR_in с расширенным динамическим диапазоном, но также и уже существующее LDR-изображение Im_1_in (можно рассматривать это в качестве некоего вида транскодера, но это также может быть блок для усовершенствования существующего Im_1, поскольку IM_HDR_in может формироваться подключенным устройством, применяющим, например, эффекты компьютерной графики для создания или восстановления HDR-объектов либо областей или диапазонов изображения). Приемник 1075 принимает оба изображения и управляет их правильной отправкой в дополнительные субблоки (обычно после выполнения обратного CABAC, IDCT, отображения гаммы и т.п., чтобы изображения были в правильном собственном формате (обычно с линейной яркостью) для выполнения обработки). Блок 1003 обработки изображений теперь можно реализовать содержащим компаратор 1031 для сравнения Im_1_in и IM_HDR_in и оценки, какие пиксели по-прежнему нужно кодировать в Im_2, и как (поэтому обычно блок 1003 обработки изображений может возвращать аналитическую информацию, чтобы управлять блоком 1060 кодового отображения, например, кодовое отображение, которое нужно применить (вместо поступления ее извне)). Также может присутствовать блок 1032 анализа наклона, который может проверять, как будет выглядеть отображение в Im_1_in из IM_HDR_in, и, например, идентифицировать области с малыми наклонами и небольшим количеством используемых кодов, которым требуется лучшая запись в Im_2. В конечном счете селектор 1003 будет выбирать, каким пикселям в IM_HDR_in потребуется дополнительное кодирование в Im_2 с помощью блока 1005. Отметим, что теперь также немного отличается первый блок 1004 кодового отображения. Он может быть не нужен, если Im_1_in всего лишь копируется в выведенное Im_1, но он также может определять скорректированное Im_1_cor, которое нужно вывести, например лучшая, более контрастно выглядящая LDR-сортировка, определенная самим блоком 1051 кодирования изображений или с помощью заданного извне отображения TM1*.
Алгоритмические компоненты, раскрытые в этом тексте, могут быть (полностью или частично) реализованы на практике как аппаратные средства (например, части специализированной интегральной схемы) или как программное обеспечение, работающее на специальном цифровом процессоре сигналов или универсальном процессоре и т.п. Они могут быть полуавтоматическими в том смысле, что может присутствовать/присутствует по меньшей мере некоторый пользовательский ввод (например, на производстве, или ввод от потребителя, или другой ввод от человека).
Из нашего изложения специалисту должно быть понятно, какие компоненты могут быть необязательными улучшениями и могут быть реализованы совместно с другими компонентами, и как (необязательные) этапы способов соответствуют соответствующему средству в устройствах, и наоборот. То, что некоторые компоненты раскрываются в изобретении в некоторой связи (например, на одном чертеже в некоторой конфигурации), не означает, что невозможны другие конфигурации в виде вариантов осуществления при таком же изобретательском размышлении, как раскрыто для патентования в этом документе. Также то, что по прагматичным причинам описан только ограниченный спектр примеров, не означает, что другие разновидности не могут входить в объем формулы изобретения. Фактически, компоненты изобретения можно реализовать в других разновидностях по любой последовательности использования, например, все разновидности стороны создания типа кодера могут быть аналогичны или соответствовать соответствующим устройствам на стороне потребления у анализируемой системы, например декодере, и наоборот. Несколько компонентов вариантов осуществления могут кодироваться как специальные данные сигнала в сигнале для передачи или дополнительного использования, например согласования, в любой технологии передачи между кодером и декодером, и т.п. Слово “устройство” в данной заявке используется в самом широком смысле, а именно как группа средств, позволяющая реализацию конкретной цели, и поэтому может быть, например, (небольшой частью) ИС или специализированным прибором (например, прибором с устройством отображения), или частью сетевой системы, и т.п. “Компоновка” или “система” также предназначена для использования в самом широком смысле, поэтому среди прочего может содержать одиночное физическое, имеющееся в продаже устройство, часть устройства, совокупность (частей) взаимодействующих устройств и т.п.
Обозначение компьютерного программного продукта следует понимать включающим в себя любую физическую реализацию совокупности команд, дающих возможность универсальному или специализированному процессору после ряда этапов загрузки (которые могут включать в себя этапы промежуточного преобразования, например трансляцию в промежуточный язык и итоговый язык процессора) вводить команды в процессор, чтобы исполнять любую из отличительных функций изобретения. В частности, компьютерный программный продукт может быть реализован как данные на носителе, таком как диск или лента, присутствующие в запоминающем устройстве данные, данные, перемещающиеся по сетевому - проводному или беспроводному - соединению, или код программы на бумаге. Кроме кода программы характерные данные, необходимые для программы, также могут быть реализованы как компьютерный программный продукт. Такие данные могут (частично) передаваться любым способом.
Изобретение или любые данные, применимые в соответствии с любой философией настоящих вариантов осуществления, типа видеоданных, также могут быть реализованы как сигналы на носителях информации, которые могут быть съемными запоминающими устройствами типа оптических дисков, флэш-памяти, съемных жестких дисков, портативных устройств, записываемых беспроводным способом, и т.п.
Некоторые из этапов, необходимые для работы любого представленного способа, уже могут присутствовать в функциональных возможностях процессора или любых аппаратных вариантов осуществления изобретения вместо описанных в компьютерном программном продукте или любом блоке, устройстве или способе, описанных в этом документе (с особенностями вариантов осуществления изобретения), например этапы ввода и вывода данных, известные обычно включаемые этапы обработки, например стандартное управление устройством отображения, и т.п. Также предпочтительной является защита результирующих изделий и аналогичных результатов, например, специальных новых сигналов, участвующих на любом этапе способов или в любой подчасти устройств, а также любые новые применения таких сигналов или любых связанных способов.
Следует отметить, что вышеупомянутые варианты осуществления скорее иллюстрируют, а не ограничивают изобретение. Там, где специалист может легко реализовать отображение представленных примеров в другие области формулы изобретения, для краткости досконально все эти варианты не упомянуты. Кроме сочетаний элементов изобретения, которые объединены в формуле изобретения, возможны другие сочетания элементов. Любое сочетание элементом может быть реализовано одним специализированным элементом.
Любой знак ссылки в круглых скобках в формуле изобретения не предназначен для ограничения формулы изобретения, так же как и любой конкретный символ на чертежах. Слово “содержащий” не исключает наличия элементов или особенностей, не перечисленных в формуле изобретения. Неопределенное указание, предшествующее элементу, не исключает наличия множества таких элементов.