СПОСОБ КОДИРОВАНИЯ И СПОСОБ ДЕКОДИРОВАНИЯ ЦВЕТОВОГО ПРЕОБРАЗОВАНИЯ И СООТВЕТСТВУЮЩИЕ УСТРОЙСТВА
ENCODING METHOD AND COLOUR CONVERSION DECODING METHOD AND CORRESPONDING DEVICES

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Изобретение относится к кодированию цветового преобразования. Более конкретно, раскрыты способ кодирования цветового преобразования, соответствующий способ декодирования, устройство кодирования и устройство декодирования.
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
Визуализация реконструированных изображений на дисплее оконечного устройства имеет ключевое значение для обеспечения качества сквозного режима обслуживания. Однако это не простая задача из-за широкого диапазона цветовых форматов, функциональных возможностей захвата изображения и характеристик дисплея. В последнее время формат нового и более широкого цветового пространства был предложен ITU в документе ITU-R Recommendation BT.2020 (известном как Rec. 2020) под названием "Parameter values for UHDTV systems for production and international programme exchange", опубликованном в апреле 2012. Следовательно, должна учитываться совместимость с унаследованными устройствами.
Все устройства визуализации могут не иметь возможности адаптироваться к любому цветовому пространству и не иметь требуемого знания для выполнения оптимального цветового преобразования. В самом деле, вместо отсечения цвета (левая часть фиг. 1) может быть предпочтительным постепенное затенение цвета, например, как показано в правой части фиг. 1. Определение функции цветового преобразования не является простым, потому что рабочие процессы создания контента могут включать в себя детерминированную обработку (преобразование цветового пространства 1 в цветовое пространство 2), а также недетерминированные операции, такие как цветокоррекция. Если используются два целевых дисплея с различными характеристиками (например, дисплей UHDTV и дисплей Rec.709 HDTV), то как художественный замысел, так и цветокоррекция могут отличаться. Цветокоррекция зависит как от характеристик контента, так и эталонного дисплея.
Как показано на фиг. 2, в распространении видео-контента, цветовое преобразование обычно применяется к декодированным изображениям таким образом, что отображенные декодированные изображения адаптированы к возможностям визуализации оконечного устройства.
Это цветовое преобразование, также известное как функция цветового отображения (CMF), например, аппроксимируется матрицей передачи размерностью 3×3 плюс смещение (модель смещения коэффициента передачи) или с помощью 3D цветовой таблицы преобразования (LUT).
Таким образом, существует потребность кодировать цветовое преобразование, например, в форме 3D цветовой LUT в битовых потоках, возможно, передаваемых вне полосы. Это может обеспечить необходимую гибкость и дополнительные функции для приложений и служб поверх HEVC и SHVC стандартов кодирования видео.
Одно решение состоит в передаче цветового преобразования или, более обобщенно, цветовых метаданных на уровне транспортной системы в частных потоках. Однако большинство систем передачи отбрасывают такие метаданные, потому что они не знают, как их интерпретировать.
КРАТКАЯ СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Целью изобретения является преодоление по меньшей мере одного из недостатков предшествующего уровня техники.
Раскрыт способ кодирования по меньшей мере одного цветового преобразования. Способ содержит:
- кодирование первых параметров, представляющих характеристики видеосигнала цветных выходных декодированных изображений, повторно отображенных посредством по меньшей мере одного цветового преобразования; и
- кодирование вторых параметров, представляющих по меньшей мере одно цветовое преобразование.
Раскрыт кодер для кодирования по меньшей мере одного цветового преобразования, который содержит:
- средство для кодирования первых параметров, представляющих характеристики видеосигнала цветных выходных декодированных изображений, повторно отображенных посредством по меньшей мере одного цветового преобразования; и
- средство для кодирования вторых параметров, представляющих по меньшей мере одно цветовое преобразование.
Раскрыт декодер для декодирования по меньшей мере одного цветового преобразования, который содержит:
- средство для декодирования первых параметров, представляющих характеристики видеосигнала цветных выходных декодированных изображений, повторно отображенных посредством по меньшей мере одного цветового преобразования; и
- средство для декодирования вторых параметров, представляющих по меньшей мере одно цветовое преобразование.
Кодированный видеосигнал, представляющий по меньшей мере одно цветовое преобразование, содержащий первые параметры, представляющие характеристики видеосигнала цветных выходных декодированных изображений, повторно отображенных посредством по меньшей мере одного цветового преобразования, и вторые параметры, представляющие по меньшей мере одно цветовое преобразование.
Предпочтительно, первые и вторые параметры кодируют в или декодируют из сообщения дополнительной расширенной информации.
В соответствии с вариантом, кодируют по меньшей мере первый и второй наборы вторых параметров, причем первый набор представляет первое цветовое преобразование, и второй набор представляет второе цветовое преобразование, и первые параметры представляют характеристики видеосигнала цветных выходных декодированных изображений, повторно отображенных посредством первого цветового преобразования, за которым следует второе цветовое преобразование.
Раскрыты компьютерные программные продукты. Они включают в себя инструкции программного кода для выполнения этапов способа кодирования или способа декодирования, когда эта программа исполняется на компьютере.
Раскрыт процессорно-читаемый носитель, который содержит сохраненные на нем инструкции для предписания процессору выполнять по меньшей мере этапы способа кодирования или способа декодирования.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Другие признаки и преимущества изобретения станут ясными из следующего описания некоторых из его вариантов осуществления, это описание иллюстрируется чертежами, на которых:
- Фиг. 1 иллюстрирует цветовое преобразование из первого во второе цветовое пространство с отсечением (слева) или сжатием гаммы (справа);
- Фиг. 2 иллюстрирует архитектуру декодера видео, который содержит цветовое преобразование, чтобы адаптироваться к характеристикам визуализации (рендеринга) дисплея, в соответствии с уровнем техники;
- Фиг. 3 представляет блок-схему последовательности операций способа кодирования в соответствии с примерным вариантом осуществления настоящего изобретения;
- Фиг. 4 изображает положение 8 вершин октанта;
- Фиг. 5 изображает один октант (layer_id) в сером и его родительский октант в черном (layer_id-1);
- Фиг. 6А и 6В представляют блок-схемы последовательности операций способа декодирования согласно различным вариантам осуществления изобретения;
- Фиг. 7 схематично показывает кодер для кодирования цветового преобразования в соответствии с изобретением; и
- Фиг. 8 схематично показывает декодер для декодирования цветового преобразования в соответствии с изобретением; и
- Фиг. 9 схематично показывает систему кодирования/ декодирования видео согласно примерному варианту осуществления изобретения.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
Изобретение относится к способу кодирования цветового преобразования. Точнее, способ согласно настоящему изобретению содержит кодирование информации цветового отображения, которая позволяет выполнять на стороне декодера повторное отображение цветных выборок (отсчетов, сэмплов) выходных декодированных изображений для настройки на конкретную среду визуализации. Повторное отображение и отображение используются как синонимы. Процесс повторного отображения отображает/повторно отображает декодированные значения выборок в цветовом пространстве RGB на целевые значения выборок. Иллюстративно, отображения выражаются либо в яркости/цветности, либо области цветового пространства RGB и применяются к компоненту яркости/цветности или к каждому компоненту RGB, создаваемому преобразованием цветового пространства декодированного изображения.
Фиг. 3 представляет блок-схему последовательности операций способа кодирования в соответствии с примерным и не ограничивающим вариантом осуществления изобретения.
На этапе 100 первые параметры, которые описывают характеристики видеосигнала выходных декодированных изображений, подвергнутых цветовому отображению, кодируются в потоке, например, в сообщении SEI, как описано ниже.
На этапе 102 вторые параметры, которые описывают цветовое преобразование, кодируются в потоке, например, в сообщении SEI.
Кодирование таких метаданных цветового преобразования позволяет сохранить художественный замысел (то, что мы могли бы назвать режимом/видением режиссера для телевизионного приемника вместо/в дополнение к использованию пост-обработки родной проприетарной телевизионной приставкой); улучшить (например, с отсортированным контентом более высокого качества, такого как UHDTV Rec.2020) передаваемое кодированное видео, если дисплей способен отображать такие улучшенные данные и цветовую информацию контента среды передачи, когда адресованные/целевые первичные цвета допускают гамму, которая гораздо шире (например, Rec. 2020), чем гамма фактического контента. Это также делает возможным постепенную деградацию (например, Rec. 709 цветокоррекцию) градуированного контента с широкий цветовой гаммой (например, Rec. 2020 цветокоррекцию) при сохранении художественного замысла.
Примерный вариант осуществления предложен в рамках стандарта кодирования HEVC, определенного в документе JCTVC-L1003 Объединенной совместной группы по кодированию видео (JCT-VC) ITU-Т SG16 WP3 и ISO/IEC JTC1/SC29/WG11, или в рамках стандарта кодирования SHVC, который является масштабируемым расширением стандарта кодирования HEVC, определенного в документе JCTVC-L1008 Объединенной совместной группы по кодированию видео (JCT-VC) ITU-Т SG16 WP3 и ISO/IEC JTC1/SC29/WG11 или в рамках RExt, который является расширением диапазона стандарта кодирования HEVC, определенного в документе JCTVC-L1005 Объединенной совместной группы по кодированию видео (JCT-VC) ITU-Т SG16 WP3 и ISO/IEC JTC1/SC29/WG11. Стандарт определяет синтаксис, которому должен соответствовать любой поток кодированных данных, чтобы быть совместимым с этим стандартом. Синтаксис определяет, в частности, как кодируются различные элементы информации (например, данные, относящиеся к изображениям, включенным в последовательность, векторы движения, и т.д.). В контексте стандарта кодирования SHVC, цветовое преобразование может быть закодировано в PPS, в VPS или в сообщение SEI (SEI означает "дополнительная расширенная информация"). В контексте стандарта кодирования RExt, цветовое преобразование может быть закодировано в сообщении SEI (SEI означает "дополнительная расширенная информация").
payloadType
payloadType
payloadType
Согласно другому предпочтительному варианту осуществления, цветовое преобразование кодируется в сообщении SEI (SEI означает "дополнительная расширенная информация"). В качестве примера, стандарт HEVC определяет в своем приложении Annex D способ, которым кодируется дополнительная информация, называемая SEI. На эту дополнительную информацию ссылаются в синтаксисе посредством поля, называемого  (тип полезной нагрузки). Сообщения SEI обеспечивают поддержку, например, в процессах, связанных с визуализацией. Заметим, что если устройство декодирования не обладает функциональными возможностями, необходимыми для его использования, эта информация игнорируется. В соответствии с конкретным вариантом осуществления настоящего изобретения, новый тип сообщения SEI определен таким образом, чтобы кодировать дополнительную информацию, касающуюся цветового преобразования. Для этого, новое значение для поля  определено из числа еще неиспользованных значений (например,  равно 24).
Синтаксис данных SEI (т.е. sei_payload) расширяется следующим образом:
В этом случае, сообщение SEI, таким образом, содержит первые параметры, которые описывают характеристики видеосигнала выходных декодированных изображений, подвергнутых цветовому отображению, и вторые параметры, которые описывают цветовое преобразование. Выходные декодированные изображения, подвергнутые цветовому отображению, являются изображениями, повторно отображенными/отображенными/преобразованными посредством цветового преобразования. Предпочтительно, сообщение SEI содержит дополнительный синтаксический элемент colour_map_model_id, который указывает тип цветового преобразования (3D LUT, три 1D LUT с матрицей, матрица… и т.д.). Таблица 1В ниже является примером такого указания.
<b>Таблица 1В</b>
<b>Интерпретация colour_map_model_id</b>
colour_map_model_id
Тип преобразования
0
3D LUT
1
Матрица со смещениями
2
Три 1D LUT, т.е. по одной на компонент
3
Три 1D LUT, составленные с матрицей и смещениями
Этот синтаксический элемент colour_map_model_id, например, кодируется после элемента color_map_id, как в следующем сообщении SEI. В варианте, синтаксический элемент colour_map_model_id является первым элементом в colour_transform().
Предпочтительно, синтаксический элемент colour_map_model_id и, возможно, colour_map_id используются для проверки, способен ли рендерер (устройство визуализации) использовать цветовые метаданные, т.е. способен ли рендерер применять цветовое преобразование, переданное в сообщении SEI. Если рендерер не способен использовать цветовые метаданные, переданные в сообщении SEI, это сообщение SEI отбрасывается. Если передано несколько сообщений SEI, каждое из которых описывает различные цветовые преобразования, некоторые из этих сообщений SEI могут быть отброшены, в то время как другие могут быть использованы рендерером.
Первыми параметрами, которые описывают характеристики видеосигнала выходных декодированных изображений, подвергнутых цветовому отображению, являются следующие: colour_map_video_signal_type_present_flag, colour_map_video_format, colour_map_video_full_range_flag, colour_map_description_present_flag, colour_map_primaries, colour_map_transfer_characteristics, colour_map_matrix_coeffs. Параметр colour_map_primaries указывает, например, CIE 1931 координаты основных цветов видеосигнала выходных декодированных изображений, подвергнутых цветовому отображению. Вторые параметры (colour_transform) описывают цветовое преобразование и могут быть матрицей передачи размерностью 3×3 плюс три смещения или 3D LUT или любыми другими параметрами, описывающими цветовое преобразование.
Рендерер характеризуется набором форматов видео, которые он способен визуализировать. Первые параметры этого сообщения SEI используются рендерером, чтоб выполнять подходящее преобразование сигнала, соответствующее его поддерживаемым форматам выходного видео. Если colour_map_primaries указывает Rec. 709 видесигнал выходных декодированных изображений, подвергнутых цветовому отображению, рендерер выбирает подходящий формат рендеринга видео, соответствующий Rec. 709.
Предпочтительно, различные сообщения SEI кодируются с видеосигналом Ienc с помощью кодера Enc в битовом потоке видео, как показано на фиг. 9. В качестве примера, исходный видеосигнал I и, следовательно, видеосигнал выходных декодированных изображений совместимы с Rec. 709, тогда первое SEI сообщение SEI1 кодируется соответствующим преобразованием T1, чтобы преобразовать этот Rec. 709 видеосигнал выходных декодированных изображений в Rec. 2020 (т.е. ITU-R BT 2020) видеосигнал отображенных выходных декодированных изображений, а второе SEI сообщение SEI2 кодируется подходящим преобразованием T2, чтобы преобразовать этот Rec. 709 видеосигнал выходных декодированных изображений в Rec. 601 видеосигнал выходных декодированных изображений, подвергнутых цветовому отображению. Кодированный сигнал (Ienc+SEI1+SEI2) посылается к декодеру Dec. Декодер Dec декодирует видеосигнал в видеосигнал выходных декодированных изображений Idec и в первое SEI сообщение SEI1 и второе SEI сообщение SEI2. С этой информацией, совместимый с Rec. 709 рендерер Disp1 будет визуализировать Rec. 709 видеосигнал выходных декодированных изображений Idec и, таким образом, отбрасывает сообщения SEI. Совместимый с Rec. 2020 рендерер Disp2 будет визуализировать Rec. 2020 видеосигнал выходных декодированных изображений, подвергнутых цветовому отображению, и, таким образом, использует первое SEI сообщение SEI1. Этот рендерер Disp2 применяет преобразование T1, декодированное из первого SEI сообщения SEI1, чтобы отображать цвета Rec. 709 видеосигнала выходных декодированных изображений Idec, и отображает видеосигнал выходных декодированных изображений, подвергнутых цветовому отображению T1(Idec). Если рендерер является дисплеем, практически совместимым с Rec. 2020, он может дополнительно адаптировать Rec. 2020 видеосигнал выходных декодированных изображений, подвергнутых цветовому отображению, к своим собственным характеристикам.
Совместимый с Rec. 601 рендерер Disp3 будет визуализировать Rec. 601 видеосигнал выходных декодированных изображений, подвергнутых цветовому отображению, и, таким образом, использует второе SEI сообщение SEI2. Этот рендерер Disp3 применяет преобразование, декодированное из второго SEI сообщения SEI2, чтобы отображать цвета Rec. 709 видеосигнала выходных декодированных изображений Idec, и отображает видеосигнал выходных декодированных изображений, подвергнутых цветовому отображению T2(Idec).
На фиг. 9 представлен один декодер Dec. Согласно варианту, используется несколько декодеров, например, по одному для каждого рендерера.
Это сообщение SEI обеспечивает информацию, чтобы позволить повторное отображение цветовых выборок выходных декодированных изображений для настройки на среды конкретных дисплеев. Процесс повторного отображения отображает кодированные значения выборок в цветовом пространстве RGB на целевые значения выборок. Отображения выражаются либо в области яркости, либо в области цветового пространства RGB и должны применяться к компоненту яркости или к каждому компоненту RGB, сформированному преобразованием цветового пространства декодированного изображения, соответственно.
Декодированное цветовое преобразование применяется к декодированным изображениям, принадлежащим к слою, идентифицированному, например, индексом nuh_layer_id заголовка блока NAL (слой сетевой абстракции) (как определено в разделе 7.3.1.2 документа JCTVC-L1003 Объединенной совместной группы по кодированию видео (JCT-VC) ITU-T SG16 WP3).
colour_map_id содержит идентификационный номер, который может быть использован для идентификации назначения модели цветового отображения. Значения colour_map_id могут быть использованы, как определено приложением. Параметр colour_map_id может быть использован, чтобы поддерживать операции цветового отображения, которые подходят для различных сценариев отображения. Например, различные значения colour_map_id могут соответствовать различным битовым глубинам дисплея.
colour_map_cancel_flag, равный 1, указывает, что сообщение SEI информации цветового отображения отменяет неизменность любого предыдущего сообщения SEI информации цветового отображения в порядке вывода. Параметр colour_map_cancel_flag, равный 0, указывает, что информация цветового отображения следует.
colour_map_repetition_period задает неизменность сообщения SEI информации цветового отображения и может задавать интервал порядкового отсчета изображения, в пределах которого другое сообщение SEI информации цветового отображения с тем же значением colour_map_id или конец последовательности кодированного видео должны присутствовать в битовом потоке. Параметр colour_map_repetition_period, равный 0, определяет, что информация цветового отображения применяется только к текущему декодированному изображению.
colour_map_repetition_period, равный 1, задает, что информация цветового отображения существует в порядке вывода до тех пор, пока не будет выполняться любое из следующих условий:
- Начинается новая последовательность кодированного видео.
- Выводится изображение в блоке доступа, содержащем сообщение SEI информации цветового отображения с тем же значением colour_map_id, имеющее порядковый отсчет изображения (известный как POC) больший, чем POC текущего декодированного изображения, обозначенный как PicOrderCnt(CurrPic).
Параметр colour_map_repetition_period, равный 0 или равный 1, указывает, что другое сообщение SEI информации цветового отображения с тем же значением colour_map_id может или не может присутствовать.
Параметр colour_map_repetition_period, больший, чем 1, определяет, что информация цветового отображения существует до тех пор, пока не будет выполняться любое из следующих условий:
- Начинается новая последовательность кодированного видео.
- Выводится изображение в блоке доступа, содержащем сообщение SEI информации цветового отображения с тем же значением colour_map_id, имеющее POC больший, чем PicOrderCnt(CurrPic), и меньший или равный PicOrderCnt(CurrPic)+colour_map_repetition_period.
Параметр colour_map_repetition_period, больший, чем 1, указывает, что другое сообщение SEI информации цветового отображения с тем же значением colour_map_id должно присутствовать для изображения в блоке доступа, которое выводится, имеющего POC больший, чем PicOrderCnt(CurrPic), и меньший или равный PicOrderCnt(CurrPic)+colour_map_repetition_period; если только битовый поток не заканчивается, или новая последовательность кодированного видео не начинается без вывода такого изображения.
Семантика colour_map_video_signal_type_present_flag, colour_map_video_format, colour_map_video_full_range_flag, colour_map_description_present_flag, colour_map_primaries, colour_map_transfer_characteristics, colour_map_matrix_coeffs является той же самой, что и семантика синтаксических элементов video_signal_type_present_flag, video_format, video_full_range_flag, colour_description_present_flag, colour_primaries, transfer_characteristics, matrix_coeffs в VUI (задано в приложении Annex E к ITU-T H.265), сооветственно. Однако эти синтаксические элементы предпочтительно используются в настоящем изобретении, чтобы описывать характеристики видеосигнала выходных декодированных изображений, подвергнутых цветовому отображению, в то время как в VUI они использутся для описания характеристик входного видеосигнала.
В соответствии с вариантом, несколько цветовых преобразований (т.е. по меньшей мере два) кодируются в то же самом сообщении SEI. В этом случае первые параметры описывают характеристики видеосигнала цветных выходных декодированных изображений, повторно отображенных посредством последовательных цветовых преобразований. В качестве примера, в таблице 2А закодированы три цветовых преобразования. Эти цветовые преобразования должны применяться последовательно. Первые параметры описывают характеристики видеосигнала цветных выходных декодированных изображений, повторно отображенных посредством color_transform1 (), за которым следует color_transform2 (), за которым следует color_transform3 ().
В качестве примера, закодированы 4 цветовых преобразования, которые должны быть применены последовательно. Тремя первыми цветовыми преобразованиями являются 3 1D LUT, а четвертым цветовым преобразованием является функция Matrix_Gain_Offset (). В качестве примера, цветные выходные декодированные изображения содержат три компонента Y’CbCr или R’G’B’ и каждая 1D цветовая LUT относится к одному цветовому компоненту. Вместо применения 3D LUT на компонентах цветных выходных декодированных изображений, одна 1D LUT применяется независимо по каждому цветовому компоненту. Это решение сокращает требования к памяти, так как оно делает интерполяцию более простой. Однако оно нарушает корреляцию отображения компонентов. Применение функции Matrix_Gain_Offset (), например, матрицы 3×3 с тремя смещениями, после трех 1D цветовых LUT делает возможным компенсировать декорреляцию между компонентами путем повторного ввода корреляции компонентов и смещений.
В соответствии с вариантом, первый набор первых параметров описывает характеристики видеосигнала цветных выходных декодированных изображений, повторно отображенных посредством color_transform1 (), второй набор первых параметров описывает характеристики видеосигнала цветных выходных декодированных изображений, повторно отображенных посредством color_transform2 (), и третий набор первых параметров описывает характеристики видеосигнала цветных выходных декодированных изображений, повторно отображенных посредством color_transform3 (). Таким образом, рендерер может либо применить последовательно три преобразования, либо только первые два преобразования, либо только первое преобразование.
В соответствии с еще одним вариантом, первый набор первых параметров описывает характеристики видеосигнала цветных выходных декодированных изображений, повторно отображенных посредством нескольких цветовых преобразований. Более конкретно, первые параметры описывают характеристики видеосигнала цветных выходных декодированных изображений, повторно отображенных посредством color_transform1 () или посредством color_transform2 () или посредством color_transform3 (), т.е. различные цветовые преобразования повторно отображают цветные выходные декодированные изображения в то же самое цветовое пространство. Рендерер будет применять только одно из нескольких цветовых преобразований. Выбор цветового преобразования, подлежащего применению, выполняется рендерером, например, в соответствии с его функциональными возможностями вычислительной архитектуры и/или его встроенными схемами. В качестве примера, в таблице 2 ниже закодированы два цветовых преобразования. Одно представлено посредством 3D LUT, а другое – матрицей и смещениями, как определено в таблице 9. Вместо применения последовательно двух преобразований, рендерер применяет только одно из них. В этом случае первые параметры описывают характеристики видеосигнала цветных выходных декодированных изображений, повторно отображенных посредством 3D_LUT_colour_data () либо посредством Matrix_Gain_Offset ().
colour_transform() в таблице 1, color_transform1 (), color_transform2 () или colour_transform3 () в таблице 2A определены, например, функцией 3D_LUT_colour_data () таблицы 3 или 4 или функцией Matrix_Gain_Offset () таблицы 9.
Цветовые преобразования в таблице 2В получены, например, из цветовых преобразований таблиц 3, 4 и 9. Однако закодирован дополнительный синтаксический элемент colour_map_model_id, который указывает тип преобразования (3D LUT, 1D LUT с матрицей, матрица… и т.д.). Синтаксический элемент colour_map_model_id является, например, первым элементом в обобщенном colour_transform().
nbpCode указывает размер 3D LUT, как приведено в таблице 5 для данного значения nbpCode.
В соответствии с вариантом, 3D_LUT_colour_data () определено, как показано ниже в таблице 4.
nbpCode указывает размер 3D LUT, как приведено в таблице 5 для данного значения nbpCode. Значение квантователя может быть закодировано посредством функции 3D_LUT_colour_data().
NbitsPerSample указывает количество битов, используемых для представления цветовых значений, т.е. битовую глубину выборок 3D LUT.
Выходом 3D LUT декодирования является 3-мерный массив LUT размера nbp×nbp×nbp. Каждый элемент массива LUT называется вершиной и ассоциирован с 3 реконструированными значениями выборок (recSamplesY, recSamplesU, recSamplesV) битовой глубины, равной (NbitsPerSample). Вершина lut[i][j][k] определяется как принадлежащая к слою layer_id, если значения i%(nbp>>layer_id), j%(nbp>>layer_id), k%(nbp>>layer_id) равны нулю. Одна вершина может принадлежать к различным слоям. Октант слоя layer_id состоит из 8 соседних вершин, принадлежащих к layer_id (Фиг. 4).
Декодирование октанта (layer_id, y,u,v) является рекурсивной функцией, как показано в таблице 6.
split_flag определяет, разделен ли октант на октанты с половинным горизонтальным и вертикальным размером. Значения (y,u,v) определяют местоположение первой вершины в 3D LUT.
Каждый октант состоит из 8 вершин (i=0,…7), ассоциированных с флагом (encoded_flag[i]), указывающим, кодированы ли остаточные значения компонентов (resY[i], resU[i], resV[i]) или все предполагаются равным нулю. Значения компонентов реконструируются путем добавления остатков к предсказанию значений компонентов. Предсказание значений компонентов вычисляется с использованием, например, трилинейной интерполяции 8 соседних вершин layer_id-1 (фиг. 5). После реконструкции вершина маркируется как реконструированная.
<b>Таблица 7</b>
<b>Значения values dy[i], du[i] и dv[i] в функции индекса i для вершин, принадлежащих к слою=layer_id.</b>
Если (y+dy[i]), (u+du[i]) и (v+dv[i]) являются координатами 8 дочерних октантов (координатами первых 3D цветовых вершин) текущего октанта (имеющего (y,u,v) в качестве координат первой вершины (i=0)), значения dy[i], du[i] и dv[i] для данного слоя приведены в таблице 7.i
dy[i]
du[i]
dv[i]
0
0
0
0
1
0
0
nbp>>layer_id
2
0
nbp>>layer_id
0
3
0
nbp>>layer_id
nbp>>layer_id
4
nbp>>layer_id
0
0
5
nbp>>layer_id
0
nbp>>layer_id
6
nbp>>layer_id
nbp>>layer_id
0
7
nbp>>layer_id
nbp>>layer_id
nbp>>layer_id
Реконструированные выборки 3D цветовой LUT (recSamplesY[i], recSamplesU[i], recSamplesV[i]) для вершины ((y+dy[i]), (u+du[i]), (v+dv[i])) принадлежащие к октанту слоя=layer_id задаются посредством:
recSamplesY[i]=resY[i]+predSamplesY[i]
recSamplesU[i]=resU[i]+predSamplesU[i] recSamplesV[i]=resV[i]+predSamplesV[i]
где значения predSampleY[i], predSamplesU[i] и predSamplesV[i] получены с использованием трилинейной интерполяции с 8 вершинами октанта слоя=layer_id-1, который содержит текущий октант.
В соответствии с первым вариантом осуществления, 3D_LUT_colour_data () в сообщении SEI, описанном выше, предпочтительно заменяется параметрами Three_1D_LUT_colour_data (), описывающими три 1D LUT.
В соответствии с вторым вариантом осуществления, 3D_LUT_colour_data () в сообщении SEI, описанном выше, предпочтительно заменяется параметрами, описывающими цветовое преобразование, такое как матрица передачи размерностью 3×3 плюс три смещения, как описано в таблицах 8 и 9. colour_transform() в таблице 1 или color_transform1 (), color_transform2 () или colour_transform3() в таблице 2b, например, определены функцией Matrix_Gain_Offset () таблицы 8.
Gain[i] представляет значения коэффициентов матрицы, и Offset[i] представляет значения смещений.
Фиг. 6A преставляет блок-схему последовательности операций способа декодирования в соответствии с примерным и не ограничивающим вариантом осуществления изобретения.
На этапе 200 первые параметры, которые описывают характеристики видеосигнала выходных декодированных изображений, подвергнутых цветовому отображению, декодируются из потока, например, из изображения SEI, как раскрыто выше.
На этапе 202 вторые параметры, которые описывают цветовое преобразование, декодируются из потока, например, из сообщения SEI.
В варианте, изображенном на фиг. 6В, способ дополнительно содержит декодирование (этап 204) цветных изображений из потока и повторное отображение (этап 206) декодированных цветных изображений с помощью цветового преобразования в выходные декодированные изображения, подвергнутые цветовому отображению. Выходные декодированные изображения, подвергнутые цветовому отображению, могут затем визуализироваться.
В соответствии с конкретным не ограничивающим вариантом осуществления, выходные декодированные изображения, подвергнутые цветовому отображению, и первые параметры передаются на дисплей. Первые параметры могут быть использованы дисплеем, чтобы интерпретировать выходные декодированные изображения, подвергнутые цветовому отображению.
Фиг. 7 представляет примерную архитектуру кодера 1, сконфигурированного для кодирования первых и вторых параметров в потоке. Кодер 1 содержит следующие элементы, которые связаны вместе шиной 64 данных и адресации:
- микропроцессор 61 (CPU), который представляет собой, например, DSP (цифровой сигнальный процессор);
- ROM (постоянная память) 62;
- RAM (оперативная память) 63;
- одно или несколько устройств 65 I/O (ввода/вывода), таких как, например, клавиатура, мышь, веб-камера; и
- источник 66 питания.
В соответствии с вариантом, источник 66 питания является внешним по отношению к кодеру. Каждый из этих элементов на фиг. 7 хорошо известен специалистам в данной области техники и далее не раскрывается дополнительно. В каждом из упомянутых блоков памяти, слово “регистр”, используемое в спецификации, обозначает в каждом из упомянутых блоков памяти как область памяти малой емкости (несколько двоичных данных), так и область памяти большой емкости (обеспечивающую возможность хранения целой программы или всех или части данных, представляющих вычисленные данные или данные, подлежащие визуализации). ROM 62 содержит программу и параметры кодирования. Алгоритм способа кодирования в соответствии с изобретением сохранен в ROM 62. При включении, CPU 61 загружает программу 620 в RAM и исполняет соответствующие инструкции.
RAM 63 содержит, в регистре, программу, исполняемую посредством CPU 61 и загружаемую после включения кодера 1, входные данные в регистре, кодированные данные в различном состоянии способа кодирования в регистре и другие переменные, используемые для кодирования, в регистре.
Фиг. 8 представляет примерную архитектуру декодера 2, сконфигурированного для декодирования первых параметров и вторых параметров из потока. Декодер 2 содержит следующие элементы, которые связаны вместе посредством шины 74 данных и адресации:
- микропроцессор 71 (CPU), который представляет собой, например, DSP (цифровой сигнальный процессор);
- ROM (постоянную память) 72;
- RAM (оперативную память) 73;
- I/O интерфейс 75 для приема данных, предназначенных для передачи, из приложения; и
- батарею 76.
В соответствии с вариантом, батарея 76 является внешней для кодера. Каждый из этих элементов на фиг. 8 является хорошо известным специалистам в данной области техники и далее не раскрывается дополнительно. В каждом из упомянутых блоков памяти, слово “регистр”, используемое в спецификации, может соответствовать области малой емкости (несколько битов) или очень большой области (например, целая программа или большой объем принятых или декодированных данных). ROM 72 содержит по меньшей мере программу и параметры декодера. Алгоритм способа декодирования в соответствии с изобретением сохранен в ROM 72. При включении, CPU 71 загружает программу 720 в RAM и исполняет соответствующие инструкции.
RAM 73 содержит, в регистре, программу, исполняемую посредством CPU 71 и загружаемую после включения декодера 2, входные данные в регистре, декодированные данные в различном состоянии способа декодирования в регистре и другие переменные, используемые для декодирования, в регистре.
После декодирования первых и вторых параметров, повторное отображение декодированных цветных изображений с помощью цветового преобразования может быть реализовано декодером в телевизионной приставке или Blu-Ray плеере. В этом случае выходные декодированые изображения, подвергнутые цветовому отображению, и первые параметры или часть из них могут быть переданы на дисплей (например, с использованием HDMI, SDI, порта дисплея, DVI). Дисплей может тогда использовать первые параметры, чтобы интерпретировать выходные декодированые изображения, подвергнутые цветовому отображению, перед их рендерингом. В варианте, повторное отображение декодированых цветных изображений с помощью цветового преобразования реализуется в TV-приставке, более конкретно, во встроенном декодере. В этом случае первые параметры используются для интерпретации выходных декодированых изображений, подвергнутых цветовому отображению, для рендеринга.
Реализации, описанные здесь, могут быть осуществлены, например, в способе или процессе, устройстве, программе, потоке данных или сигнале. Даже если обсуждено только в контексте одной формы реализации (например, обсуждено только как способ или устройство), реализация обсужденных признаков может также быть осуществлена в других формах (например, программе). Устройство может быть реализовано, например, в соответствующих аппаратных средствах, программном обеспечении и программно-аппаратных средствах. Способы могут быть реализованы, например, в устройстве, таком как, например, процессор, что относится к устройствам обработки в общем, включая, например, компьютер, микропроцессор, интегральную схему или программируемое логическое устройство. Процессоры также включают в себя устройства связи, такие как, например, компьютеры, сотовые телефоны, портативные/персональные цифровые помощники (PDA) и другие устройства, которые способствуют передаче информации между конечными пользователями.
Реализации различных процессов и признаков, описанных здесь, могут быть воплощены в многообразии различных устройств и приложений, в частности, например, в оборудовании или приложениях. Примеры такого оборудования включают в себя кодер, декодер, постпроцессор, обрабатывающий выходной сигнал декодера, препроцессор, предоставляющий входной сигнал для кодера, кодер видео, декодер видео, кодек видео, веб-сервер, телевизионную приставку, портативный компьютер, персональный компьютер, сотовый телефон, PDA и другие устройства связи. Должно быть понятно, что такое оборудование может быть мобильным и даже установленным в мобильном транспортном средстве.
Дополнительно, способы могут быть реализованы посредством инструкций, выполняемых процессором, и такие инструкции (и/или значения данных, создаваемые при реализации) могут быть сохранены на процессорно-читаемом носителе, таком как, например, интегральная схема, носитель программного обеспечения, или иное устройство хранения данных, такое как, например, жесткий диск, компакт-диск (CD), оптический диск (такой как DVD, часто называемый цифровым многофункциональным диском или цифровым видеодиском), оперативная память (RAM) или постоянная память (ROM). Инструкции могут формировать прикладную программу, материально воплощенную на процессорно-читаемом носителе. Инструкции могут быть, например, в аппаратных средствах, программно-аппаратных средствах, программном обеспечении или их комбинации. Инструкции могут быть, например, в операционной системе, отдельном приложении или их комбинации. Поэтому процессор может характеризоваться, например, как устройство, сконфигурированное для выполнения процесса, и устройство, которое включает в себя процессорно-читаемый носитель (такой как устройство хранения данных), имеющий инструкции для выполнения процесса. Далее, процессорно-читаемый носитель может хранить, в дополнение или вместо инструкций, значения данных, созданные посредством реализации.
Как будет понятно специалисту в данной области техники, реализации могут создавать многообразие сигналов, сформатированных, чтобы переносить информацию, которая может быть, например, сохранена или передана. Информация может включать в себя, например, инструкции для выполнения способа или данные, созданные одной из описанных реализаций. Например, сигнал может быть отформатирован, чтобы переносить в качестве данных правила для записи или считывания синтаксиса описанного варианта осуществления, или чтобы переносить в качестве данных действительные значения синтаксиса, записанные посредством описанного варианта осуществления. Такой сигнал может быть отформатирован, например, как электромагнитная волна (например, с использованием радиочастотной части спектра) или как сигнал базовой полосы. Форматирование может включать в себя, например, кодирование потока данных и модуляцию несущей потоком кодированных данных. Информация, которую несет сигнал, может быть, например, аналоговой или цифровой информацией. Сигнал может передаваться по разнообразным проводным или беспроводным линиям связи, как это известно. Сигнал может быть сохранен на процессорно-читаемом носителе.
Был описан ряд реализаций. Тем не менее, должно быть понятно, что могут быть выполнены различные модификации. Например, элементы различных реализаций могут быть объединены, дополнены, модифицированы или удалены, чтобы создать другие реализации. Дополнительно, специалисту в данной области техники должно быть понятно, что другие структуры и процессы могут быть использованы вместо раскрытых, и полученные в результате реализации будут выполнять по меньшей мере по существу ту же самую функцию(и), по меньшей мере по существу таким же путем (путями), чтобы достичь по меньшей мере по существу такой же результат(ы), что и в раскрытых реализациях. Соответственно эти и другие реализации предполагаются настоящей заявкой.