РЕГУЛИРОВКА ДИНАМИЧЕСКОГО ДИАПАЗОНА ДЛЯ КОДИРОВАНИЯ ВИДЕО С РАСШИРЕННЫМ ДИНАМИЧЕСКИМ ДИАПАЗОНОМ И ШИРОКОЙ ЦВЕТОВОЙ ГАММОЙ
DYNAMIC RANGE ADJUSTMENT FOR VIDEO ENCODING WITH EXTENDED DYNAMIC RANGE AND WIDE COLOUR GAMMA

[0001] Данная заявка притязает на преимущество предварительной заявки США № 62/149446, поданной 17 апреля 2015 г., все содержание которой включается в этот документ посредством ссылки.
ОБЛАСТЬ ТЕХНИКИ
[0002] Данное раскрытие изобретения относится к обработке видео.
УРОВЕНЬ ТЕХНИКИ
[0003] Возможности цифрового видео могут встраиваться в широкий диапазон устройств, включая цифровые телевизоры, системы цифрового прямого вещания, системы беспроводного вещания, персональные цифровые помощники (PDA), переносные или настольные компьютеры, планшетные компьютеры, электронные книги, цифровые камеры, цифровые записывающие устройства, цифровые мультимедийные проигрыватели, видеоигровые устройства, игровые приставки, сотовые или спутниковые радиотелефоны, так называемые "смартфоны", устройства для видеоконференцсвязи, устройства для потокового видео и т. п. Цифровые видеоустройства реализуют методики кодирования видео, например описанные в стандартах, заданных MPEG-2, MPEG-4, H.263 ITU-T, H.264/MPEG-4 ITU-T, часть 10, Улучшенное кодирование видео (AVC), H.265 ITU-T, Высокоэффективное кодирование видео (HEVC), и расширениях таких стандартов. Видеоустройства могут эффективнее передавать, принимать, кодировать, декодировать и/или хранить цифровую видеоинформацию с помощью реализации таких методик кодирования видео.
[0004] Методики кодирования видео включают в себя пространственное (внутреннее) предсказание и/или временное (внешнее) предсказание для уменьшения или устранения избыточности, присущей видеопоследовательностям. Для блочного кодирования видео можно разбить секцию (slice) видео (например, видеокадр или часть видеокадра) на видеоблоки, которые также могут называться блоками дерева, единицами кодирования (CU) и/или узлами кодирования. Видеоблоки в секции с внутренним кодированием (I) изображения кодируются с использованием пространственного предсказания относительно эталонных выборок в соседних блоках в том же изображении. Видеоблоки в секции с внешним кодированием (P или B) изображения могут использовать пространственное предсказание относительно эталонных выборок в соседних блоках в том же изображении или временное предсказание относительно эталонных выборок в других эталонных изображениях. Изображения могут называться кадрами, а эталонные изображения могут называться эталонными кадрами.
[0005] Пространственное или временное предсказание приводит к блоку с предсказанием для блока, который будет кодироваться. Остаточные данные представляют собой разности пикселей между исходным блоком, который будет кодироваться, и блоком с предсказанием. Блок с внешним кодированием кодируется в соответствии с вектором движения, который указывает на блок эталонных выборок, образующих блок с предсказанием, и остаточными данными, указывающими разность между кодированным блоком и блоком с предсказанием. Блок с внутренним кодированием кодируется в соответствии с режимом внутреннего кодирования и остаточными данными. Для дополнительного сжатия остаточные данные могут быть преобразованы из области пикселей в область преобразования, что приводит к остаточным коэффициентам преобразования, которые затем можно квантовать. Квантованные коэффициенты преобразования, организованные первоначально в двумерный массив, можно сканировать для создания одномерного вектора коэффициентов преобразования, и для достижения еще большего сжатия может применяться энтропийное кодирование.
[0006] Общее количество значений цвета, которые можно захватывать, кодировать и отображать, может быть задано с помощью цветовой гаммы. Цветовая гамма относится к диапазону цветов, который устройство может захватывать (например, камера) или воспроизводить (например, дисплей). Часто цветовые гаммы отличаются от одного устройства к другому. Для кодирования видео может использоваться предопределенная цветовая гамма для видеоданных, так что каждое устройство в процессе кодирования видео может конфигурироваться для обработки значений пикселей в одной и той же цветовой гамме. Некоторые цветовые гаммы задаются с большим диапазоном цветов, нежели цветовые гаммы, которые традиционно использовались для кодирования видео. Такие цветовые гаммы с большим диапазоном цветов могут называться широкой цветовой гаммой (WCG).
[0007] Другим аспектом видеоданных является динамический диапазон. Динамический диапазон обычно задается как отношение между минимальной и максимальной яркостью (например, светимостью) видеосигнала. Динамический диапазон распространенных видеоданных, используемых в прошлом, считается стандартным динамическим диапазоном (SDR). Другие примерные спецификации для видеоданных задают цветовые данные, которые обладают большим отношением между минимальной и максимальной яркостью. Такие видеоданные можно описывать как обладающие расширенным динамическим диапазоном (HDR).
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0008] Данное раскрытие изобретения относится к обработке видеоданных, включая обработку видеоданных для соответствия цветовому контейнеру HDR/WCG. Как будет подробнее объясняться ниже, методики из раскрытия изобретения применяют параметры регулировки динамического диапазона (DRA) к видеоданным, чтобы лучше использовать цветовой контейнер HDR/WCG. Методики из данного раскрытия изобретения также могут включать в себя сигнализацию синтаксических элементов, которые позволяют видеодекодеру или устройству постобработки видео обращать методики DRA из данного раскрытия изобретения для восстановления исходного или собственного цветового контейнера видеоданных.
[0009] В одном примере из раскрытия изобретения способ обработки видеоданных содержит прием видеоданных, связанных с первым цветовым контейнером, при этом видеоданные, связанные с первым цветовым контейнером, задаются первой цветовой гаммой и первым цветовым пространством, выведение одного или нескольких параметров регулировки динамического диапазона, при этом параметры регулировки динамического диапазона основываются на характеристиках видеоданных, которые связаны с первым цветовым контейнером, и выполнение регулировки динамического диапазона над видеоданными в соответствии с одним или несколькими параметрами регулировки динамического диапазона.
[0010] В другом примере из раскрытия изобретения устройство, сконфигурированное для обработки видеоданных, которое содержит запоминающее устройство, сконфигурированное для хранения видеоданных, и один или несколько процессоров, сконфигурированных для приема видеоданных, связанных с первым цветовым контейнером, при этом видеоданные, связанные с первым цветовым контейнером, задаются первой цветовой гаммой и первым цветовым пространством, выведения одного или нескольких параметров регулировки динамического диапазона, при этом параметры регулировки динамического диапазона основываются на характеристиках видеоданных, которые связаны с первым цветовым контейнером, и выполнения регулировки динамического диапазона над видеоданными в соответствии с одним или несколькими параметрами регулировки динамического диапазона.
[0011] В другом примере из раскрытия изобретения устройство, сконфигурированное для обработки видео, содержит средство для приема видеоданных, связанных с первым цветовым контейнером, при этом видеоданные, связанные с первым цветовым контейнером, задаются первой цветовой гаммой и первым цветовым пространством, средство для выведения одного или нескольких параметров регулировки динамического диапазона, при этом параметры регулировки динамического диапазона основываются на характеристиках видеоданных, которые связаны с первым цветовым контейнером, и средство для выполнения регулировки динамического диапазона над видеоданными в соответствии с одним или несколькими параметрами регулировки динамического диапазона.
[0012] В другом примере данное раскрытие изобретения описывает машиночитаемый носитель информации, хранящий команды, которые при исполнении побуждают один или несколько процессоров принять видеоданные, связанные с первым цветовым контейнером, при этом видеоданные, связанные с первым цветовым контейнером, задаются первой цветовой гаммой и первым цветовым пространством, вывести один или несколько параметров регулировки динамического диапазона, при этом параметры регулировки динамического диапазона основываются на характеристиках видеоданных, которые связаны с первым цветовым контейнером, и выполнить регулировку динамического диапазона над видеоданными в соответствии с одним или несколькими параметрами регулировки динамического диапазона.
[0013] Подробности одного или нескольких примеров излагаются на прилагаемых чертежах и в описании ниже. Другие признаки, цели и преимущества станут очевидны из описания, чертежей и формулы изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0014] Фиг. 1 - блок-схема, иллюстрирующая примерную систему кодирования и декодирования видео, сконфигурированную для реализации методик из раскрытия изобретения.
[0015] Фиг. 2 - концептуальный чертеж, иллюстрирующий идеи данных HDR.
[0016] Фиг. 3 - концептуальная схема, иллюстрирующая примерные цветовые гаммы.
[0017] Фиг. 4 - блок-схема алгоритма, иллюстрирующая пример преобразования представления HDR/WCG.
[0018] Фиг. 5 - блок-схема алгоритма, иллюстрирующая пример обратного преобразования HDR/WCG.
[0019] Фиг. 6 - концептуальная схема, иллюстрирующая пример электрооптических передаточных функций (EOTF), используемых для преобразования видеоданных (включая SDR и HDR) из однородных по восприятию кодовых уровней в линейную светимость.
[0020] Фиг. 7A и 7B - концептуальные схемы, иллюстрирующие визуализацию цветового распределения в двух примерных цветовых гаммах.
[0021] Фиг. 8 - блок-схема, иллюстрирующая примерное устройство преобразования HDR/WCG, работающее в соответствии с методиками из данного раскрытия изобретения.
[0022] Фиг. 9 - блок-схема, иллюстрирующая примерное устройство обратного преобразования HDR/WCG в соответствии с методиками из данного раскрытия изобретения.
[0023] Фиг. 10 - блок-схема, иллюстрирующая пример видеокодера, который может реализовать методики из данного раскрытия изобретения.
[0024] Фиг. 11 - блок-схема, иллюстрирующая пример видеодекодера, который может реализовать методики из данного раскрытия изобретения.
[0025] Фиг. 12 - блок-схема алгоритма, иллюстрирующая примерный процесс преобразования HDR/WCG в соответствии с методиками из данного раскрытия изобретения.
[0026] Фиг. 13 - блок-схема алгоритма, иллюстрирующая примерный процесс обратного преобразования HDR/WCG в соответствии с методиками из данного раскрытия изобретения.
ПОДРОБНОЕ ОПИСАНИЕ
[0027] Данное раскрытие изобретения имеет отношение к обработка и/или кодированию видеоданных с представлениями расширенного динамического диапазона (HDR) и широкой цветовой гаммы (WCG). Точнее говоря, методики из данного раскрытия изобретения включают в себя сигнализацию и связанные операции, применяемые к видеоданным в некоторых цветовых пространствах, чтобы сделать возможным более эффективное сжатие видеоданных HDR и WCG. Описанные в этом документе методики и устройства могут повысить эффективность сжатия у гибридных систем кодирования видео (например, H.265/HEVC, H.264/AVC и т. п.), используемых для кодирования видеоданных HDR и WCG.
[0028] Стандарты кодирования видео, включающие в себя гибридные стандарты кодирования видео, включают в себя H.261 ITU-T, MPEG-1 Visual ISO/IEC, H.262 ITU-T или MPEG-2 Visual ISO/IEC, H.263 ITU-T, MPEG-4 Visual ISO/IEC и H.264 ITU-T (также известный как MPEG-4 AVC ISO/IEC), включая его расширения масштабируемого кодирования видео (SVC) и многовидового кодирования видео (MVC). Объединенной командой по кодированию видео (JCT-VC) из Экспертной группы в области кодирования видео (VCEG) ITU-T и Экспертной группы по движущимся изображениям (MPEG) ISO/IEC завершен проект нового стандарта кодирования видео, а именно Высокоэффективное кодирование видео (HEVC, также называемое H.265). Проект спецификации HEVC, называемый рабочим вариантом 10 HEVC (WD10), Bross и др., "High efficiency video coding (HEVC) text specification draft 10 (for FDIS & Last Call)", Объединенная команда по кодированию видео (JCT-VC) из SG16 WP3 ITU-T и JTC1/SC29/WG11 ISO/IEC, 12-ое заседание: Женева, CH, 14-23 января 2013 г., JCTVC-L1003v34, доступен по адресу http://phenix.int-evry.fr/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC-L1003-v34.zip. Завершенный стандарт HEVC называется версией 1 HEVC.
[0029] Отчет о дефектах, Wang и др., "High efficiency video coding (HEVC) Defect Report", Объединенная команда по кодированию видео (JCT-VC) из SG16 WP3 ITU-T и JTC1/SC29/WG11 ISO/IEC, 14-ое заседание: Вена, AT, 25 июля - 2 августа 2013, JCTVC-N1003v1, доступен по адресу http://phenix.int-evry.fr/jct/doc_end_user/documents/14_Vienna/wg11/JCTVC-N1003-v1.zip. Документ с завершенным стандартом HEVC опубликован как ITU-T H.265, Series H: Audiovisual and Multimedia Systems, Infrastructure of audiovisual services - Coding of moving video, High efficiency video coding, Сектор стандартизации электросвязи в Международном союзе электросвязи (ITU), апрель 2013 г., а другая версия завершенного стандарта HEVC была опубликована в октябре 2014 г. Копию спецификации H.265/HEVC можно загрузить по адресу http://www.itu.int/rec/T-REC-H.265-201504-I/en.
[0030] Фиг. 1 - блок-схема, иллюстрирующая примерную систему 10 кодирования и декодирования видео, которая может использовать методики из данного раскрытия изобретения. Как показано на фиг. 1, система 10 включает в себя устройство-источник 12, которое предоставляет кодированные видеоданные, которые позднее будут декодированы устройством-адресатом 14. В частности, устройство-источник 12 предоставляет видеоданные устройству-адресату 14 посредством машиночитаемого носителя 16. Устройство-источник 12 и устройство-адресат 14 могут быть выполнены в виде любого из широкого диапазона устройств, включающего в себя настольные компьютеры, блокнотные (то есть переносные) компьютеры, планшетные компьютеры, телевизионные приставки, телефонные трубки, например так называемые "интеллектуальные" телефоны, так называемые "интеллектуальные" планшеты, телевизоры, камеры, устройства отображения, цифровые мультимедийные проигрыватели, игровые приставки, устройства для потокового видео или т. п. В некоторых случаях устройство-источник 12 и устройство-адресат 14 могут быть оборудованы для беспроводной связи.
[0031] Устройство-адресат 14 может принимать кодированные видеоданные, которые будут декодированы, посредством машиночитаемого носителя 16. Машиночитаемый носитель 16 может быть выполнен в виде любого типа носителя или устройства, допускающего перемещение кодированных видеоданных от устройства-источника 12 к устройству-адресату 14. В одном примере машиночитаемый носитель 16 может быть выполнен в виде средства связи, чтобы дать устройству-источнику 12 возможность передавать кодированные видеоданные непосредственно к устройству-адресату 14 в реальном масштабе времени. Кодированные видеоданные могут модулироваться в соответствии со стандартом связи, например протоколом проводной или беспроводной связи, и передаваться устройству-адресату 14. Средство связи может быть выполнено в виде любого средства беспроводной или проводной связи, например радиочастотного (РЧ) спектра или одной или нескольких физических линий передачи. Средство связи может образовывать часть пакетной сети, например локальной сети, региональной сети или глобальной сети, такой как Интернет. Средство связи может включать в себя маршрутизаторы, коммутаторы, базовые станции или любое другое оборудование, которое может быть полезно для упрощения связи от устройства-источника 12 к устройству-адресату 14.
[0032] В других примерах машиночитаемый носитель 16 может включать в себя долговременные носители информации, например жесткий диск, флэш-накопитель, компакт-диск, цифровой видеодиск, диск Blu-ray или другие машиночитаемые носители. В некоторых примерах сетевой сервер (не показан) может принимать кодированные видеоданные от устройства-источника 12 и предоставлять кодированные видеоданные устройству-адресату 14, например, посредством сетевой передачи. Аналогичным образом вычислительное устройство из оборудования по производству носителей, например оборудования по штамповке оптических дисков, может принять кодированные видеоданные от устройства-источника 12 и произвести диск, содержащий кодированные видеоданные. Поэтому в различных примерах машиночитаемый носитель 16 может подразумеваться включающим в себя один или несколько машиночитаемых носителей различных видов.
[0033] В некоторых примерах кодированные данные могут выводиться из интерфейса 22 вывода в запоминающее устройство. Аналогичным образом к кодированным данным можно обращаться из запоминающего устройства с помощью интерфейса ввода. Запоминающее устройство может включать в себя любой из ряда распределенных или локально доступных носителей информации, например жесткий диск, диски Blu-ray, DVD, CD-ROM, флэш-память, энергозависимое или энергонезависимое запоминающее устройство либо любые другие подходящие цифровые носители информации для хранения кодированных видеоданных. В дополнительном примере запоминающее устройство может соответствовать файловому серверу или другому промежуточному запоминающему устройству, которое может хранить кодированное видео, сформированное устройством-источником 12. Устройство-адресат 14 может обращаться к сохраненным видеоданным из запоминающего устройства посредством потоковой передачи или загрузки. Файловый сервер может быть любым типом сервера, допускающим хранение кодированных видеоданных и передачу кодированных видеоданных устройству-адресату 14. Примерные файловые серверы включают в себя веб-сервер (например, для веб-сайта), FTP-сервер, сетевые устройства хранения (NAS) или локальный накопитель на дисках. Устройство-адресат 14 может обращаться к кодированным видеоданным посредством любого стандартного информационного соединения, включая Интернет-соединение. Это соединение может включать в себя радиоканал (например, соединение Wi-Fi), проводное соединение (например, DSL, кабельный модем и т. п.) или сочетание их обоих, которое подходит для обращения к кодированным видеоданным, сохраненным на файловом сервере. Передача кодированных видеоданных из запоминающего устройства может быть потоковой передачей, загрузкой или их сочетанием.
[0034] Методики из данного раскрытия изобретения не обязательно ограничиваются беспроводными приложениями или настройками. Методики могут применяться к кодированию видео в пользу любого из ряда мультимедийных приложений, таких как эфирные телевизионные передачи, кабельные телевизионные передачи, спутниковые телевизионные передачи, передачи потокового видео по Интернету, например динамическая адаптивная потоковая передача по HTTP (DASH), цифровое видео, которое кодируется на носителе информации, декодирование цифрового видео, сохраненного на носителе информации, или других приложений. В некоторых примерах система 10 может конфигурироваться для поддержки однонаправленной или двунаправленной передачи видео для поддержки таких приложений, как потоковая передача видео, воспроизведение видео, телевизионное вещание и/или видеотелефония.
[0035] В примере из фиг. 1 устройство-источник 12 включает в себя источник 18 видео, видеокодер 20 и интерфейс 22 вывода. Устройство-адресат 14 включает в себя интерфейс 28 ввода, модуль 19 регулировки динамического диапазона (DRA), видеодекодер 30 и устройство 32 отображения. В соответствии с данным раскрытием изобретения модуль 19 DRA в устройстве-источнике 12 может конфигурироваться для реализации методик из данного раскрытия изобретения, включающих сигнализацию и связанные операции, применяемые к видеоданным в некоторых цветовых пространствах, чтобы сделать возможным более эффективное сжатие видеоданных HDR и WCG. В некоторых примерах модуль 19 DRA может быть обособленным от видеокодера 20. В других примерах модуль 19 DRA может быть частью видеокодера 20. В других примерах устройство-источник и устройство-адресат могут включать в себя другие компоненты или компоновки. Например, устройство-источник 12 может принимать видеоданные из внешнего источника 18 видео, например внешней камеры. Также устройство-адресат 14 может взаимодействовать с внешним устройством отображения вместо включения в себя встроенного устройства отображения.
[0036] Проиллюстрированная система 10 из фиг. 1 является всего лишь одним примером. Методики для обработки видеоданных HDR и WCG могут выполняться любым устройством цифрового кодирования видео и/или декодирования видео. Кроме того, методики из данного раскрытия изобретения также могут выполняться препроцессором видео и/или постпроцессором видео. Препроцессор видео может быть любым устройством, сконфигурированным для обработки видеоданных перед кодированием (например, перед кодированием HEVC). Постпроцессор видео может быть любым устройством, сконфигурированным для обработки видеоданных после декодирования (например, после декодирования HEVC). Устройство-источник 12 и устройство-адресат 14 являются всего лишь примерами таких устройств кодирования, в которых устройство-источник 12 формирует кодированные видеоданные для передачи устройству-адресату 14. В некоторых примерах устройства 12, 14 могут работать практически симметрично, так что каждое из устройств 12, 14 включает в себя компоненты кодирования и декодирования видео, а также препроцессор видео и постпроцессор видео (например, модуль 19 DRA и модуль 31 обратной DRA соответственно). Поэтому система 10 может поддерживать однонаправленную или двунаправленную передачу видео между видеоустройствами 12, 14, например для потоковой передачи видео, воспроизведения видео, телевизионного вещания или видеотелефонии.
[0037] Источник 18 видео в устройстве-источнике 12 может включать в себя устройство видеозахвата, например видеокамеру, видеоархив, содержащий ранее захваченное видео, и/или интерфейс источника видеосигнала для приема видео от поставщика видеоконтента. В качестве дополнительной альтернативы источник 18 видео может формировать данные на основе компьютерной графики в качестве исходного видео, или сочетание "реального" видео, архивного видео и сформированного компьютером видео. В некоторых случаях, если источником 18 видео является видеокамера, то устройство-источник 12 и устройство-адресат 14 могут образовывать так называемые камерофоны или видеотелефоны. Однако, как упоминалось выше, описанные в данном раскрытии изобретения методики в целом могут быть применимы к кодированию видео и обработке видео и могут применяться к беспроводным и/или проводным приложениям. В каждом случае захваченное, предварительно захваченное или сформированное компьютером видео может кодироваться видеокодером 20. Затем кодированная видеоинформация может выводиться с помощью интерфейса 22 вывода на машиночитаемый носитель 16.
[0038] Интерфейс 28 ввода в устройстве-адресате 14 принимает информацию с машиночитаемого носителя 16. Информация с машиночитаемого носителя 16 может включать в себя синтаксическую информацию, заданную видеокодером 20, которая также используется видеодекодером 30, которая включает в себя синтаксические элементы, которые описывают характеристики и/или обработку блоков и других кодированных единиц, например групп изображений (GOP). Устройство 32 отображения отображает пользователю декодированные видеоданные и может быть выполнено в виде любого из ряда устройств отображения, таких как электронно-лучевая трубка (CRT), жидкокристаллический дисплей (LCD), плазменный дисплей, дисплей на органических светоизлучающих диодах (OLED) или другой тип устройства отображения.
[0039] Каждый из видеокодера 20 и видеодекодера 30 можно реализовать в виде любой из ряда подходящих схем кодера, например одного или нескольких микропроцессоров, цифровых процессоров сигналов (DSP), специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA), дискретной логики, программного обеспечения, аппаратных средств, микропрограммного обеспечения или любых их сочетаний. Когда методики реализуются частично в программном обеспечении, устройство может хранить команды для программного обеспечения на подходящем долговременном машиночитаемом носителе и исполнять команды на аппаратных средствах, использующих один или несколько процессоров, для выполнения методик из данного раскрытия изобретения. Каждый из видеокодера 20 и видеодекодера 30 может включаться в один или несколько кодеров или декодеров, любой из которых может встраиваться как часть объединенного кодера/декодера (кодека) в соответствующем устройстве.
[0040] Каждый из модуля 19 DRA и модуля 31 обратной DRA можно реализовать в виде любой из ряда подходящих схем кодера, например одного или нескольких микропроцессоров, DSP, ASIC, FPGA, дискретной логики, программного обеспечения, аппаратных средств, микропрограммного обеспечения или любых их сочетаний. Когда методики реализуются частично в программном обеспечении, устройство может хранить команды для программного обеспечения на подходящем долговременном машиночитаемом носителе и исполнять команды на аппаратных средствах, использующих один или несколько процессоров, для выполнения методик из данного раскрытия изобретения.
[0041] В некоторых примерах видеокодер 20 и видеодекодер 30 работают в соответствии со стандартом сжатия видео, например MPEG-4 Visual ISO/IEC и H.264 ITU-T (также известным как MPEG-4 AVC ISO/IEC), включающим его расширение по масштабируемому кодированию видео (SVC), расширение по многовидовому кодированию видео (MVC) и расширение трехмерного видео (3DV) на основе MVC. В некоторых случаях любой поток двоичных сигналов, соответствующий 3DV на основе MVC, всегда содержит субпоток двоичных сигналов, который соответствует профилю MVC, например, профилю Stereo High. Кроме того, ведется постоянная работа по формированию расширения кодирования 3DV к H.264/AVC, а именно 3DV на основе AVC. Другие примеры стандартов кодирования видео включают в себя H.261 ITU-T, MPEG-1 Visual ISO/IEC, H.262 ITU-T или MPEG-2 Visual ISO/IEC, H.263 ITU-T, MPEG-4 Visual ISO/IEC и H.264 ITU-T, ISO/IEC Visual. В других примерах видеокодер 20 и видеодекодер 30 могут конфигурироваться для работы в соответствии со стандартом HEVC.
[0042] Как будет подробнее объясняться ниже, модуль 19 DRA и модуль 31 обратной DRA могут конфигурироваться для реализации методик из данного раскрытия изобретения. В некоторых примерах модуль 19 DRA и/или модуль 31 обратной DRA может конфигурироваться для приема видеоданных, связанных с первым цветовым контейнером, при этом первый цветовой контейнер задается первой цветовой гаммой и первым цветовым пространством, выведения одного или нескольких параметров регулировки динамического диапазона, при этом параметры регулировки динамического диапазона основываются на характеристиках видеоданных, и выполнения регулировки динамического диапазона над видеоданными в соответствии с одним или несколькими параметрами регулировки динамического диапазона.
[0043] Каждый из модуля 19 DRA и модуля 31 обратной DRA можно реализовать в виде любой из ряда подходящих схем кодера, например одного или нескольких микропроцессоров, цифровых процессоров сигналов (DSP), специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA), дискретной логики, программного обеспечения, аппаратных средств, микропрограммного обеспечения или любых их сочетаний. Когда методики реализуются частично в программном обеспечении, устройство может хранить команды для программного обеспечения на подходящем долговременном машиночитаемом носителе и исполнять команды на аппаратных средствах, использующих один или несколько процессоров, для выполнения методик из данного раскрытия изобретения. Как обсуждалось выше, модуль 19 DRA и модуль 31 обратной DRA могут быть обособленными устройствами от видеокодера 20 и видеодекодера 30 соответственно. В других примерах модуль 19 DRA можно объединить с видеокодером 20 в одно устройство, а модуль 31 обратной DRA можно объединить с видеодекодером 30 в одно устройство.
L
Cb
Cr
L
Cb
Cr
[0044] В HEVC и других стандартах кодирования видео видеопоследовательность обычно включает в себя последовательность изображений. Изображения также могут называться "кадрами". Изображение может включать в себя три массива выборок, обозначенные S, S и S. S является двумерным массивом (то есть блоком) выборок яркости. S является двумерным массивом выборок цветности Cb. S является двумерным массивом выборок цветности Cr. Выборки цветности в этом документе также могут называться выборками "цветности". В иных случаях изображение может быть монохромным и может включать в себя только массив выборок яркости.
[0045] Видеокодер 20 может формировать набор единиц дерева кодирования (CTU). Каждая из CTU может содержать блок дерева кодирования из выборок яркости, два соответствующих блока дерева кодирования из выборок цветности и синтаксические структуры, используемые для кодирования выборок блоков дерева кодирования. В монохромном изображении или изображении, которое содержит три отдельные цветовые плоскости, CTU может содержать один блок дерева кодирования и синтаксические структуры, используемые для кодирования выборок блока дерева кодирования. Блок дерева кодирования может быть блоком выборок NxN. CTU также может называться "блоком дерева" или "наибольшей единицей кодирования" (LCU). CTU в HEVC могут быть аналогичны в общих чертах макроблокам из других стандартов кодирования видео, например H.264/AVC. Однако CTU не обязательно ограничивается конкретным размером и может включать в себя одну или несколько единиц кодирования (CU). Секция может включать в себя целое число CTU, упорядоченных последовательно при растровом сканировании.
[0046] Данное раскрытие изобретения может использовать термин "единица видео" или "видеоблок" для ссылки на один или несколько блоков выборок и синтаксических структур, используемых для кодирования выборок из одного или нескольких блоков выборок. Примерные типы единиц видео могут включать в себя CTU, CU, PU, единицы преобразования (TU) в HEVC или макроблоки, разделы макроблоков и так далее в других стандартах кодирования видео.
[0047] Чтобы сформировать кодированную CTU, видеокодер 20 может рекурсивно выполнить разбиение квадродерева над блоками дерева кодирования в CTU, чтобы разделить блоки дерева кодирования на блоки кодирования, отсюда название "единицы дерева кодирования". Блок кодирования является блоком выборок NxN. CU может содержать блок кодирования из выборок яркости и два соответствующих блока кодирования из выборок цветности изображения, которое имеет массив выборок яркости, массив выборок Cb и массив выборок Cr, и синтаксические структуры, используемые для кодирования выборок блоков кодирования. В монохромном изображении или изображении, которое содержит три отдельные цветовые плоскости, CU может содержать один блок кодирования и синтаксические структуры, используемые для кодирования выборок блока кодирования.
[0048] Видеокодер 20 может разбить блок кодирования в CU на один или несколько блоков предсказания. Блок предсказания может быть прямоугольным (то есть квадратным или неквадратным) блоком выборок, к которому применяется одинаковое предсказание. Единица предсказания (PU) в CU может содержать блок предсказания из выборок яркости, два соответствующих блока предсказания из выборок цветности изображения и синтаксические структуры, используемые для предсказания выборок блока предсказания. В монохромном изображении или изображении, которое содержит три отдельные цветовые плоскости, PU может содержать один блок предсказания и синтаксические структуры, используемые для предсказания выборок блока предсказания. Видеокодер 20 может формировать блоки яркости, Cb и Cr с предсказанием для блоков предсказания яркости, Cb и Cr у каждой PU в CU.
[0049] Видеокодер 20 может использовать внутреннее предсказание или внешнее предсказание для формирования блоков с предсказанием для PU. Если видеокодер 20 использует внутреннее предсказание для формирования блоков с предсказанием в PU, то видеокодер 20 может формировать блоки с предсказанием в PU на основе декодированных выборок изображения, ассоциированного с PU.
[0050] Если видеокодер 20 использует внешнее предсказание для формирования блоков с предсказанием в PU, то видеокодер 20 может формировать блоки с предсказанием в PU на основе декодированных выборок одного или нескольких изображений помимо изображения, ассоциированного с PU. Внешнее предсказание может быть однонаправленным внешним предсказанием (то есть однонаправленным предсказанием) или двунаправленным внешним предсказанием (то есть двунаправленным предсказанием). Для выполнения однонаправленного предсказания или двунаправленного предсказания видеокодер 20 может формировать первый список эталонных изображений (RefPicList0) и второй список эталонных изображений (RefPicList1) для текущей секции.
[0051] Каждый из списков эталонных изображений может включать в себя одно или несколько эталонных изображений. При использовании однонаправленного предсказания видеокодер 20 может искать эталонные изображения в любом или в обоих RefPicList0 и RefPicList1, чтобы определить эталонное местоположение в эталонном изображении. Кроме того, при использовании однонаправленного предсказания видеокодер 20 может формировать выборочные блоки с предсказанием для PU по меньшей мере частично на основе выборок, соответствующих эталонному местоположению. Кроме того, при использовании однонаправленного предсказания видеокодер 20 может формировать один вектор движения, который указывает пространственное смещение между блоком предсказания PU и эталонным местоположением. Для указания пространственного смещения между блоком предсказания PU и эталонным местоположением вектор движения может включать в себя горизонтальную составляющую, задающую горизонтальное смещение между блоком предсказания PU и эталонным местоположением, и может включать в себя вертикальную составляющую, задающую вертикальное смещение между блоком предсказания PU и эталонным местоположением.
[0052] При использовании двунаправленного предсказания для кодирования PU видеокодер 20 может определить первое эталонное местоположение в эталонном изображении в RefPicList0 и второе эталонное местоположение в эталонном изображении в RefPicList1. Затем видеокодер 20 может формировать блоки с предсказанием для PU по меньшей мере частично на основе выборок, соответствующих первому и второму эталонным местоположениям. Кроме того, при использовании двунаправленного предсказания для кодирования PU видеокодер 20 может формировать первое движение, указывающее пространственное смещение между выборочным блоком PU и первым эталонным местоположением, и второе движение, указывающее пространственное смещение между блоком предсказания PU и вторым эталонным местоположением.
[0053] После того, как видеокодер 20 формирует блоки яркости, Cb и Cr с предсказанием для одной или нескольких PU в CU, видеокодер 20 может сформировать остаточный блок яркости для CU. Каждая выборка в остаточном блоке яркости у CU указывает разность между выборкой яркости в одном из блоков яркости с предсказанием у CU и соответствующей выборкой в исходном блоке кодирования яркости у CU. К тому же видеокодер 20 может формировать остаточный блок Cb для CU. Каждая выборка в остаточном блоке Cb у CU может указывать разность между выборкой Cb в одном из блоков Cb с предсказанием у CU и соответствующей выборкой в исходном блоке кодирования Cb у CU. Видеокодер 20 также может формировать остаточный блок Cr для CU. Каждая выборка в остаточном блоке Cr у CU может указывать разность между выборкой Cr в одном из блоков Cr с предсказанием у CU и соответствующей выборкой в исходном блоке кодирования Cr у CU.
[0054] Кроме того, видеокодер 20 может использовать разбиение квадродерева для разложения остаточных блоков яркости, Cb и Cr в CU на один или несколько блоков преобразования яркости, Cb и Cr. Блок преобразования может быть прямоугольным блоком выборок, к которому применяется одинаковое преобразование. Единица преобразования (TU) в CU может содержать блок преобразования из выборок яркости, два соответствующих блока преобразования из выборок цветности и синтаксические структуры, используемые для преобразования выборок блока преобразования. В монохромном изображении или изображении, которое содержит три отдельные цветовые плоскости, TU может содержать один блок преобразования и синтаксические структуры, используемые для преобразования выборок блока преобразования. Таким образом, каждая TU в CU может ассоциироваться с блоком преобразования яркости, блоком преобразования Cb и блоком преобразования Cr. Блок преобразования яркости, ассоциированный с TU, может быть субблоком остаточного блока яркости у CU. Блок преобразования Cb может быть субблоком остаточного блока Cb у CU. Блок преобразования Cr может быть субблоком остаточного блока Cr у CU.
[0055] Видеокодер 20 может применить одно или несколько преобразований к блоку преобразования яркости у TU, чтобы сформировать блок коэффициентов яркости для TU. Блок коэффициентов может быть двумерным массивом коэффициентов преобразования. Коэффициент преобразования может быть скалярной величиной. Видеокодер 20 может применить одно или несколько преобразований к блоку преобразования Cb у TU, чтобы сформировать блок коэффициентов Cb для TU. Видеокодер 20 может применить одно или несколько преобразований к блоку преобразования Cr у TU, чтобы сформировать блок коэффициентов Cr для TU.
[0056] После формирования блока коэффициентов (например, блока коэффициентов яркости, блока коэффициентов Cb или блока коэффициентов Cr) видеокодер 20 может квантовать блок коэффициентов. Квантование в целом относится к процессу, в котором коэффициенты преобразования квантуются, чтобы уменьшить по возможности объем данных, используемый для представления коэффициентов преобразования, обеспечивая дополнительное сжатие. Кроме того, видеокодер 20 может обратно квантовать коэффициенты преобразования и применить обратное преобразование к коэффициентам преобразования, чтобы восстановить блоки преобразования в TU в CU изображения. Видеокодер 20 может использовать восстановленные блоки преобразования в TU в CU и блоки с предсказанием в PU в CU, чтобы восстановить блоки кодирования CU. Путем восстановления блоков кодирования каждой CU изображения видеокодер 20 может восстановить изображение. Видеокодер 20 может хранить восстановленные изображения в буфере декодированных изображений (DPB). Видеокодер 20 может использовать восстановленные изображения в DPB для внешнего предсказания и внутреннего предсказания.
[0057] После того, как видеокодер 20 квантует блок коэффициентов, видеокодер 20 может энтропийно кодировать синтаксические элементы, которые указывают квантованные коэффициенты преобразования. Например, видеокодер 20 может выполнить контекстно-адаптивное двоичное арифметическое кодирование (CABAC) над синтаксическими элементами, указывающими квантованные коэффициенты преобразования. Видеокодер 20 может вывести энтропийно кодированные синтаксические элементы в поток двоичных сигналов.
[0058] Видеокодер 20 может вывести поток двоичных сигналов, который включает в себя последовательность разрядов, которая образует представление кодированных изображений и ассоциированные данные. Поток двоичных сигналов может содержать последовательность единиц на уровне абстракции сети (NAL). Каждая из единиц NAL включает в себя заголовок единицы NAL и заключает в себя полезную нагрузку необработанной последовательности байтов (RBSP). Заголовок единицы NAL может включать в себя синтаксический элемент, который указывает код типа единицы NAL. Код типа единицы NAL, заданный заголовком единицы NAL у единицы NAL, указывает тип единицы NAL. RBSP может быть синтаксической структурой, содержащей целое число байтов, которая заключается в единицу NAL. В некоторых случаях RBSP включает в себя нулевые разряды.
[0059] Разные типы единиц NAL могут заключать в себя разные типы RBSP. Например, первый тип единицы NAL может заключать в себя RBSP для набора параметров изображения (PPS), второй тип единицы NAL может заключать в себя RBSP для кодированной секции, третий тип единицы NAL может заключать в себя RBSP для дополнительной информации расширения (SEI), и так далее. PPS является синтаксической структурой, которая может содержать синтаксические элементы, которые применяются к нулю или более полностью кодированных изображений. Единицы NAL, которые заключают в себя RBSP для данных кодирования видео (в отличие от RBSP для наборов параметров и сообщений SEI), могут называться единицами NAL на уровне кодирования видео(VCL). Единица NAL, которая заключает в себя кодированную секцию, в этом документе может называться единицей NAL кодированной секции. RBSP для кодированной секции может включать в себя заголовок секции и данные секции.
[0060] Видеодекодер 30 может принять поток двоичных сигналов. К тому же видеодекодер 30 может проанализировать поток двоичных сигналов, чтобы декодировать синтаксические элементы из этого потока двоичных сигналов. Видеодекодер 30 может восстановить изображения в видеоданных по меньшей мере частично на основе синтаксических элементов, декодированных из потока двоичных сигналов. Процесс для восстановления видеоданных в целом может быть обратным процессу, выполненному видеокодером 20. Например, видеодекодер 30 может использовать векторы движения PU для определения блоков с предсказанием для PU в текущей CU. Видеодекодер 30 может использовать вектор движения или векторы движения PU для формирования блоков с предсказанием для PU.
[0061] К тому же видеодекодер 30 может обратно квантовать блоки коэффициентов, ассоциированные с TU в текущей CU. Видеодекодер 30 может выполнить обратные преобразования над блоками коэффициентов, чтобы восстановить блоки преобразования, ассоциированные с TU в текущей CU. Видеодекодер 30 может восстановить блоки кодирования в текущей CU путем сложения выборок выборочных блоков с предсказанием для PU в текущей CU с соответствующими выборками блоков преобразования у TU в текущей CU. Путем восстановления блоков кодирования для каждой CU изображения видеодекодер 30 может восстановить изображение. Видеодекодер 30 может хранить декодированные изображения в буфере декодированных изображений для вывода и/или для использования при декодировании других изображений.
[0062] Ожидается, что видеоприложения следующего поколения будут работать с видеоданными, представляющими захваченное окружение с HDR и WCG. Параметры используемого динамического диапазона и цветовой гаммы являются двумя независимыми атрибутами видеоконтента, и их спецификация для целей цифрового телевидения и мультимедийных услуг задается несколькими международными стандартами. Например, ITU-R Rec. BT.709, "Parameter values for the HDTV standards for production and international programme exchange", задает параметры для HDTV (телевидение высокой четкости), например стандартный динамический диапазон (SDR) и стандартную цветовую гамму, а ITU-R Rec. BT.2020, "Parameter values for ultra-high definition television systems for production and international programme exchange", задает параметры UHDTV (телевидение сверхвысокой четкости), например HDR и WCG. Также имеются другие документы от организаций, разрабатывающих стандарты (SDO), которые задают атрибуты динамического диапазона и цветовой гаммы в других системах, например, цветовая гамма DCI-P3 задается в SMPTE-231-2 (Общество инженеров кино и телевидения), а некоторые параметры HDR задаются в SMPTE-2084. Ниже предоставляется краткое описание динамического диапазона и цветовой гаммы для видеоданных.
[0063] Динамический диапазон обычно задается как отношение между минимальной и максимальной яркостью (например, светимостью) видеосигнала. Динамический диапазон также можно измерять в показателях "деления диафрагмы", где одно деление диафрагмы соответствует удвоению динамического диапазона сигнала. По определению MPEG HDR-контент является контентом, который характеризует изменение яркости более чем с 16 делениями диафрагмы. В некоторых условиях уровни между 10 и 16 делениями диафрагмы считаются промежуточным динамическим диапазоном, но в других определениях это считается HDR. В некоторых примерах из данного раскрытия изобретения видеоконтент HDR может быть любым видеоконтентом, который обладает большим динамическим диапазоном, чем традиционно используемый видеоконтент со стандартным динамическим диапазоном (например, видеоконтент, который задан ITU-R Rec. BT.709).
[0064] Зрительная система человека (HVS) допускает восприятие гораздо больших динамических диапазонов, чем SDR-контент и HDR-контент. Однако HVS включает в себя механизм адаптации для сужения динамического диапазона HVS до так называемого одновременного диапазона. Ширина одновременного диапазона может зависеть от текущих условий освещения (например, текущей яркости). Визуализация динамического диапазона, предусмотренного SDR в HDTV, предполагаемого HDR в UHDTV и динамического диапазона HVS показана на фиг. 2.
[0065] Современные видеоприложения и услуги нормируются ITU Rec.709 и предоставляют SDR, обычно поддерживающий диапазон яркости (например, светимости) примерно от 0,1 до 100 канделл (кд) на кв. м (часто называемых "нитами"), что приводит менее чем к 10 делениям диафрагмы. Предполагается, что некоторые примерные видеоуслуги следующего поколения обеспечат динамический диапазон вплоть до 16 делений диафрагмы. Хотя подробные спецификации для такого контента разрабатываются в настоящее время, некоторые начальные параметры заданы в SMPTE-2084 и ITU-R Rec. 2020.
[0066] Другим аспектом для более реалистичного восприятия видео, помимо HDR, является цветовое измерение. Цветовое измерение обычно задается с помощью цветовой гаммы. Фиг. 3 - концептуальная схема, показывающая цветовую гамму SDR (треугольник 100 на основе основных цветов BT.709) и более широкую цветовую гамму для UHDTV (треугольник 102 на основе основных цветов BT.2020). Фиг. 3 также изображает так называемую линию спектральных цветностей (ограниченную областью 104 в виде языка), представляющую ограничения естественных цветов. Как проиллюстрировано фиг. 3, двигаясь от BT.709 (треугольник 100) к BT.2020 (треугольник 102), основные цвета стремятся снабдить услуги UHDTV примерно на 70% больше цветов. D65 задает примерный белый цвет для спецификаций BT.709 и/или BT.2020.
[0067] Примеры спецификаций цветовых гамм для цветовых пространств DCI-P3, BT.709 и BT.2020 показаны в таблице 1.
Таблица 1 - Параметры цветовых гамм
Параметры цветового пространства RGB
Цветовое пространство
Точка белого
Основные цвета
xx<sub>W</sub>
yy<sub>W</sub>
xx<sub>R</sub>
yy<sub>R</sub>
xx<sub>G</sub>
yy<sub>G</sub>
xx<sub>B</sub>
yy<sub>B</sub>
DCI-P3
0,314
0,351
0,680
0,320
0,265
0,690
0,150
0,060
ITU-R BT.709
0,3127
0,3290
0,64
0,33
0,30
0,60
0,15
0,06
ITU-R BT.2020
0,3127
0,3290
0,708
0,292
0,170
0,797
0,131
0,046
[0068] Как видно в таблице 1, цветовая гамма может задаваться значениями X и Y точки белого и значениями X и Y основных цветов (например, красного (R), зеленого (G) и синего (B)). Значения X и Y представляют цветность (X) и яркость (Y) цветов, как задается цветовым пространством CIE 1931. Цветовое пространство CIE 1931 задает связи между чистыми цветами (например, в показателях длин волн) и тем, как человеческий глаз воспринимает такие цвета.
[0069] Видеоданные HDR/WCG обычно получаются и сохраняются с очень высокой точностью на каждую компоненту (даже плавающая запятая) в формате цветовой субдискретизации 4:4:4 и очень широком цветовом пространстве (например, XYZ CIE). Это представление ориентировано на высокую точность и математически почти не допускает потерь. Однако такой формат для хранения видеоданных HDR/WCG может включать в себя много избыточностей и может быть не оптимальным для сжатия. Формат меньшей точности с основанными на HVS предположениями обычно используется для видеоприложений современного уровня.
[0070] Один пример процесса преобразования формата видеоданных для целей сжатия включает в себя три основных процесса, как показано на фиг. 4. Методики из фиг. 4 могут выполняться устройством-источником 12. Линейные данные 110 RGB могут быть видеоданными HDR/WCG и могут храниться в представлении с плавающей запятой. Линейные данные 110 RGB можно уплотнять с использованием нелинейной передаточной функции (TF) 112 для уплотнения динамического диапазона. Передаточная функция 112 может уплотнять линейные данные 110 RGB с использованием любого количества нелинейных передаточных функций, например PQ TF, которая задана в SMPTE-2084. В некоторых примерах процесс 114 преобразования цветов преобразует уплотненные данные в более плотное или надежное цветовое пространство (например, цветовое пространство YUV или YCrCb), которое больше подходит для сжатия гибридным видеокодером. Затем эти данные квантуются с использованием модуля 116 квантования представления чисел с плавающей запятой в целые числа, чтобы создать преобразованные данные 118 HDR'. В этом примере данные 118 HDR' имеют целочисленное представление. Теперь данные HDR' имеют формат, более подходящий для сжатия гибридным видеокодером (например, видеокодером 20, применяющим методики HEVC). Порядок процессов, изображенный на фиг. 4, приведен в качестве примера и может меняться в других применениях. Например, преобразование цветов может предшествовать процессу TF. К тому же к цветовым компонентам может применяться дополнительная обработка, например пространственная субдискретизация.
[0071] Обратное преобразование на стороне декодера изображается на фиг. 5. Методики из фиг. 5 могут выполняться устройством-адресатом 14. Преобразованные данные 120 HDR' можно получить в устройстве-адресате 14 посредством декодирования видеоданных с использованием гибридного видеодекодера (например, видеодекодера 30, применяющего методики HEVC). Затем данные 120 HDR' можно обратно квантовать с помощью модуля 122 обратного квантования. Затем к обратно квантованным данным HDR' может применяться процесс 124 обратного преобразования цветов. Процесс 124 обратного преобразования цветов может быть инверсией процесса 114 преобразования цветов. Например, процесс 124 обратного преобразования цветов может преобразовывать данные HDR' из формата YCrCb обратно в формат RGB. Далее обратная передаточная функция 126 может применяться к данным для добавления динамического диапазона, который был уплотнен передаточной функцией 112, чтобы восстановить линейные данные 128 RGB.
[0072] Сейчас будут подробнее обсуждаться изображенные на фиг. 4 методики. Вообще передаточная функция применяется к данным (например, видеоданным HDR/WCG) для уплотнения динамического диапазона данных. Такое уплотнение позволяет представлять данные меньшим количеством разрядов. В одном примере передаточная функция может быть одномерной (1D) нелинейной функцией и может отражать инверсию электрооптической передаточной функции (EOTF) дисплея конечного пользователя, например, которая задана для SDR в Rec. 709. В другом примере передаточная функция может приблизительно выражать восприятие HVS изменений яркости, например, передаточная функция PQ, заданная в SMPTE-2084 для HDR. Обратным процессом к OETF является EOTF (электрооптическая передаточная функция), которая отображает кодовые уровни обратно в светимость. Фиг. 6 показывает несколько примеров нелинейной передаточной функции, используемой для уплотнения динамического диапазона некоторых цветовых контейнеров. Передаточные функции также могут применяться отдельно к каждой компоненте R, G и B.
[0073] Применительно к данному раскрытию изобретения термины "значение сигнала" или "значение цвета" могут использоваться для описания уровня светимости, соответствующего значению определенной цветовой компоненты (например R, G, B или Y) для элемента изображения. Значение сигнала обычно представляет линейный уровень света (значение светимости). Термины "кодовый уровень" или "значение цифрового кода" могут относиться к цифровому представлению значения сигнала изображения. Как правило, такое цифровое представление соответствует нелинейному значению сигнала. EOTF представляет отношение между нелинейными значениями сигнала, предоставленными устройству отображения (например, устройству 32 отображения), и линейными значениями цвета, созданными устройством отображения.
[0074] Данные RGB обычно используются в качестве входного цветового пространства, поскольку RGB является типом данных, который обычно создается датчиками захвата изображения. Однако цветовое пространство RGB обладает высокой избыточностью среди своих компонент и не оптимально для компактного представления. Для достижения более компактного и более надежного представления компоненты RGB обычно преобразуются (например, выполняется преобразование цветов) в большей степени некоррелированное цветовое пространство, которое больше подходит для сжатия, например YCbCr. Цветовое пространство YCbCr разделяет яркость в виде светимости (Y) и информации о цвете (CrCb) на разные менее коррелированные компоненты. В этом смысле надежное представление может относиться к цветовому пространству, характеризующемуся более высокими уровнями устойчивости к ошибкам при сжатии с ограниченной скоростью передачи битов.
[0075] После преобразования цветов входные данные в целевом цветовом пространстве по-прежнему можно представлять с большой битовой глубиной (например, точность с плавающей запятой). Данные с большой битовой глубиной можно преобразовать в целевую битовую глубину, например, с использованием процесса квантования. Некоторые исследования показывают, что точности в 10-12 разрядов совместно с передаточной PQ достаточно для обеспечения данных HDR с 16 делениями диафрагмы при искажении ниже едва заметного различия (JND). Вообще JND является величиной чего-либо (например, видеоданных), которая должна измениться, чтобы разница была заметной (например, посредством HVS). Данные, представленные с 10-разрядной точностью, можно дальше кодировать с помощью большинства решений по кодированию видео современного уровня. Это квантование является элементом кодирования с потерями и является источником погрешности, внесенной в преобразованные данные.
[0076] Ожидается, что видеоприложения HDR/WCG следующего поколения будут работать с видеоданными, захваченными с разными параметрами HDR и CG. Примерами разной конфигурации могут быть захват видеоконтента HDR с пиковой яркостью вплоть до 1000 нитов, или вплоть до 10 000 нитов. Примеры разной цветовой гаммы могут включать в себя BT.709, BT.2020, также заданный SMPTE P3, или другие.
[0077] Также ожидается, что в будущем будет использоваться единое цветовое пространство, например целевой цветовой контейнер, которое заключает в себе все другие используемые в настоящее время цветовые гаммы. Одним примером такого целевого цветового контейнера является BT.2020. Поддержка единого целевого цветового контейнера значительно упростила бы стандартизацию, реализацию и развертывание систем HDR/WCG, поскольку декодеру (например, видеодекодеру 30)нужно поддерживать уменьшенное количество рабочих точек (например, количество цветовых контейнеров, цветовых пространств, алгоритмов преобразования цветов и т. п.) и/или уменьшенное количество необходимых алгоритмов.
[0078] В одном примере такой системы контент, захваченный с собственной цветовой гаммой (например, P3 или BT.709), отличной от целевого цветового контейнера (например, BT.2020), можно преобразовать в целевой контейнер перед обработкой (например, перед кодированием видео). Ниже приведены несколько примеров такого преобразования:
Преобразование RGB из цветового контейнера BT.709 в BT.2020:
2020
709
709
709
R=0,627404078626 * R+0,329282097415 * G+0,043313797587 * B
2020
709
709
709
G=0,069097233123 * R+0,919541035593 * G+0,011361189924 * B
2020
709
709
709
B=0,016391587664 * R+0,088013255546 * G+0,895595009604 * B
(1)
Преобразование RGB из цветового контейнера P3 в BT.2020:
2020
P3
P3
P3
R=0,753832826496 * R+0,198597635641 * G+0,047569409186 * B
2020
P3
P3
P3
G=0,045744636411 * R+0,941777687331 * G+0,012478735611 * B
2020
P3
P3
P3
B=-0,001210377285 * R+0,017601107390 * G+0,983608137835 * B
(2)
[0079] Во время этого преобразования динамический диапазон сигнала, захваченного в цветовой гамме P3 или BT.709, можно уменьшить в представлении BT.2020. Поскольку данные представляются с точностью с плавающей запятой, потери нет; однако при объединении с преобразованием цветов (например, преобразованием из RGB в YCrCB, показанным в уравнении 3 ниже) и квантованием (пример, в уравнении 4 ниже) сокращение динамического диапазона приводит к увеличенной ошибке квантования для входных данных.
Y'=0,2627 * R'+0,6780 * G'+0,0593 * B';   (3)
(4)
Y'
Cb
Cr
Y
Cr
Cb
В уравнении (4) D является квантованной компонентой Y', D является квантованной компонентой Cb, а D является квантованной компонентой Cr. Элемент << представляет собой поразрядный сдвиг вправо. BitDepth, BitDepth и BitDepth являются соответственно нужными битовыми глубинами квантованных компонент.
[0080] К тому же в реальной системе кодирования кодирование сигнала с уменьшенным динамическим диапазоном может приводить к значительной потере точности для кодированных компонент цветности, и это наблюдалось бы зрителем как артефакты кодирования, например несоответствие цветов и/или обесцвечивание.
[0081] Также может возникать проблема, когда цветовая гамма у контента такая же, как цветовая гамма у целевого цветового контейнера, но контент не полностью занимает гамму всего цветового контейнера (например, в некоторых кадрах или для одной компоненты). Эта ситуация показана на фиг. 7A и 7B, где цвета последовательностей HDR изображаются на цветовой плоскости xy. Фиг. 7A показывает цвета тестовой последовательности "Tibul", захваченной в собственном цветовом пространстве BT.709 (треугольник 150). Однако цвета тестовой последовательности (показанные в виде точки) не занимают полную цветовую гамму BT.709. На фиг. 7A и 7B треугольник 152 представляет цветовую гамму BT.2020. Фиг. 7B показывает цвета тестовой последовательности HDR "Bikes" с собственной цветовой гаммой P3 (треугольник 154). Как видно на фиг. 7B, цвета не занимают полный диапазон собственной цветовой гаммы (треугольник 154) на цветовой плоскости xy.
[0082] Для решения описанных выше проблем можно рассмотреть следующие методики. Одна примерная методика включает в себя HDR-кодирование в собственном цветовом пространстве. В такой методике система кодирования HDR-видео поддерживала бы различные типы известных в настоящее время цветовых гамм и допускала бы расширения стандарта кодирования видео для поддержки будущих цветовых гамм. Эта поддержка не ограничивалась бы только поддержкой разных преобразований цветов, например RGB в YCbCr, и их обратных преобразований, но также задавала бы функции преобразования, которые подстраиваются под каждую из цветовых гамм. Поддержка такого многообразия инструментов была бы сложной и дорогой.
[0083] Другая примерная методика включает в себя информированный о цветовой гамме видеокодек. В такой методике гипотетический видеокодер конфигурируется для оценки собственной цветовой гаммы у входного сигнала и регулировки параметров кодирования (например, параметров квантования для кодированных компонент цветности) для уменьшения любого искажения, обусловленного уменьшенным динамическим диапазоном. Однако такая методика не способна восстановить потерю точности, которая может происходить из-за квантования, проведенного в уравнении (4) выше, поскольку все входные данные предоставляются типичному кодеку в точности до целого числа.
[0084] В связи с вышеупомянутым данное раскрытие изобретения предлагает методики, способы и устройства для выполнения регулировки динамического диапазона (DRA), чтобы компенсировать изменения динамического диапазона, внесенные в представления сигнала HDR преобразованием цветовой гаммы. Регулировка динамического диапазона может помочь предотвратить и/или уменьшить любое искажение, вызванное преобразованием цветовой гаммы, включая несоответствие цветов, обесцвечивание и т. п. В одном или нескольких примерах из раскрытия изобретения DRA проводится над значениями каждой цветовой компоненты целевого цветового пространства, например YCbCr, перед квантованием на стороне кодера (например, устройством-источником 12) и после обратного квантования на стороне декодера (например, устройством-адресатом 14).
[0085] Фиг. 8 - блок-схема, иллюстрирующая примерное устройство преобразования HDR/WCG, работающее в соответствии с методиками из данного раскрытия изобретения. На фиг. 8 сплошные линии задают поток данных, а пунктирные линии задают управляющие сигналы. Методики из данного раскрытия изобретения могут выполняться модулем 19 DRA в устройстве-источнике 12. Как обсуждалось выше, модуль 19 DRA может быть обособленным от видеокодера 20 устройством. В других примерах модуль 19 DRA может быть встроенным в то же устройство, что и видеокодер 20.
[0086] Как показано на фиг. 8, видеоданные 200 RGB с собственной CG вводятся в модуль 19 DRA. Применительно к предварительной обработке видео модулем 19 DRA видеоданные 200 RGB с собственной CG задаются с помощью входного цветового контейнера. Входной цветовой контейнер задает цветовую гамму видеоданных 200 (например, BT.709, BT.2020, P3 и т. п.) и задает цветовое пространство видеоданных 200 (например, RGB, XYZ, YCrCb, YUV и т. п.). В одном примере из раскрытия изобретения модуль 19 DRA может конфигурироваться для преобразования цветовой гаммы и цветового пространства у видеоданных 200 RGB с собственной CB в целевой цветовой контейнер для данных 216 HDR'. Как и входной цветовой контейнер, целевой цветовой контейнер может задавать как цветовую гамму, так и цветовое пространство. В одном примере из раскрытия изобретения видеоданные 200 RGB с собственной CB могут быть видео HDR/WCG, могут иметь цветовую гамму BT.2020 или P3 (или любую WCG) и могут находиться в цветовом пространстве RGB. В другом примере видеоданные 200 RGB с собственной CB могут быть видео SDR и могут иметь цветовую гамму BT.709. В одном примере целевой цветовой контейнер для данных 216 HDR' может быть сконфигурирован для видео HDR/WCG (например, цветовая гамма BT.2020) и может оптимальнее использовать цветовое пространство для кодирования видео (например, YCrCb).
[0087] В одном примере из раскрытия изобретения преобразователь 202 CG может конфигурироваться для преобразования цветовой гаммы у видеоданных 200 RGB с собственной CG из цветовой гаммы входного цветового контейнера (например, первого цветового контейнера) в цветовую гамму целевого цветового контейнера (например, второго цветового контейнера). В качестве одного примера преобразователь 202 CG может преобразовать видеоданные 200 RGB с собственной CG из цветового представления BT.709 в цветовое представление BT.2020, пример чего показан ниже.
709
709
709
2020
2020
2020
[0088] Процесс для преобразования выборок RGB BT.709 (R, G, B) в выборки RGB BT.2020 (R, G, B) можно реализовать с помощью двухэтапного преобразования, которое включает в себя преобразование сначала в представление XYZ с последующим преобразованием из XYZ в RGB BT.2020, используя подходящие матрицы преобразования.
709
709
709
X=0,412391 * R+0,357584 * G+0,180481 * B
709
709
709
Y=0,212639 * R+0,715169 * G+0,072192 * B (5)
709
709
709
Z=0,019331 * R+0,119195 * G+0,950532 * B
2020
2020
2020
[0089] Преобразование из XYZ в RGB (BT.2020)
2020
R=clipRGB( 1,716651 * X - 0,355671 * Y - 0,253366 * Z )
2020
G=clipRGB( -0,666684 * X+1,616481 * Y+0,015768 * Z ) (6)
2020
B=clipRGB( 0,017640 * X - 0,042771 * Y+0,942103 * Z )
Аналогичным образом один этап и рекомендованный способ выглядит следующим образом:
2020
709
709
709
R=clipRGB( 0,627404078626 * R+0,329282097415 * G+0,043313797587 * B )
2020
709
709
709
G=clipRGB( 0,069097233123 * R+0,919541035593 * G+0,011361189924 * B ) (7)
2020
709
709
709
B=clipRGB( 0,016391587664 * R+0,088013255546 * G+0,895595009604 * B )
[0090] Результирующие видеоданные после преобразования CG показаны на фиг. 8 как видеоданные 204 RGB с целевой CG. В других примерах из раскрытия изобретения цветовая гамма для входного цветового контейнера и выходного цветового контейнера может быть одинаковой. В таком примере преобразователю 202 CG не нужно выполнять никакое преобразование над видеоданными 200 RGB с собственной CG.
[0091] Далее модуль 206 передаточной функции уплотняет динамический диапазон видеоданных 204 RGB с целевой CG. Модуль 206 передаточной функции может конфигурироваться для применения передаточной функции для уплотнения динамического диапазона таким же образом, как обсуждалось выше со ссылкой на фиг. 4. Модуль 208 преобразования цветов преобразует цветовые данные 204 RGB с целевой CG из цветового пространства входного цветового контейнера (например, RGB) в цветовое пространство целевого цветового контейнера (например, YCrCb). Как объяснялось выше со ссылкой на фиг. 4, модуль 208 преобразования цветов преобразует уплотненные данные в более плотное или надежное цветовое пространство (например, цветовое пространство YUV или YCrCb), которое больше подходит для сжатия гибридным видеокодером (например, видеокодером 20).
[0092] Модуль 210 регулировки конфигурируется для выполнения регулировки динамического диапазона (DRA) у видеоданных с преобразованными цветами в соответствии с параметрами DRA, выведенными модулем 212 оценки параметров DRA. Вообще после преобразования CG с помощью преобразователя 202 CG и уплотнения динамического диапазона с помощью модуля 206 передаточной функции значения фактических цветов у результирующих видеоданных могут не использовать все доступные кодовые слова (например, уникальные двоичные последовательности, которые представляют каждый цвет), выделенные для цветовой гаммы конкретного целевого цветового контейнера. То есть в некоторых обстоятельствах преобразование видеоданных 200 RGB с собственной CG из входного цветового контейнера в выходной цветовой контейнер может чрезмерно уплотнять значения цвета (например, Cr и Cb) у видеоданных, так что результирующие уплотненные видеоданные не эффективно используют все возможные цветовые представления. Как объяснялось выше, кодирование сигнала с уменьшенным диапазоном значений для цветов может приводить к значительной потере точности для кодированных компонент цветности, и это наблюдалось бы зрителем как артефакты кодирования, например несоответствие цветов и/или обесцвечивание.
[0093] Модуль 210 регулировки может конфигурироваться для применения параметров DRA к цветовым компонентам (например, YCrCb) видеоданных, например, видеоданных 204 RGB с целевой CG, после уплотнения динамического диапазона и преобразования цветов, чтобы полностью использовать кодовые слова, доступные для конкретного целевого цветового контейнера. Модуль 210 регулировки может применять параметр DRA к видеоданным на уровне пикселя. Вообще, параметры DRA задают функцию, которая расширяет кодовые слова, используемые для представления фактических видеоданных, до как можно большего количества кодовых слов, доступных для целевого цветового контейнера.
[0094] В одном примере из раскрытия изобретения параметры DRA включают в себя значение масштаба и смещения, которые применяются к компонентам видеоданных. Вообще, чем меньше динамический диапазон значений цветовых компонент у видеоданных, тем больший масштабный коэффициент может использоваться. Параметр смещения используется для центрирования значений цветовых компонент по центру доступных кодовых слов для целевого цветового контейнера. Например, если целевой цветовой контейнер включает в себя 1024 кодовых слова на цветовую компоненту, то значение смещения можно выбрать так, что центральное кодовое слово перемещается в кодовое слово 512 (например, среднее кодовое слово).
[0095] В одном примере модуль 210 регулировки применяет параметры DRA к видеоданным в целевом цветовом пространстве (например, YCrCb) следующим образом:
- Y''=scale1 *Y'+offset1
- Cb''=scale2 *Cb'+offset2 (8) - Cr''=scale3 *Cr'+offset3
где составляющие Y', Cb' и Cr' сигнала являются сигналом, созданным из преобразования RGB в YCbCr (пример, в уравнении 3). Отметим, что Y', Cr' и Cr' также могут быть видеосигналом, декодированным видеодекодером 30. Y'', Cbʺ и Cr'' являются цветовыми компонентами видеосигнала после того, как параметры DRA применены к каждой цветовой компоненте. Как видно в примере выше, каждая цветовая компонента имеет отношение к разным параметрам масштаба и смещения. Например, scale1 и offset1 используются для компоненты Y', scale2 и offset2 используются для компоненты Cb', и scale3 и offset3 используются для компоненты Cr'. Следует понимать, что это всего лишь пример. В других примерах одинаковые значения масштаба и смещения могут использоваться для каждой цветовой компоненты.
[0096] В других примерах каждая цветовая компонента может ассоциироваться с несколькими параметрами масштаба и смещения. Например, фактическое распределение значений цветности для цветовых компонент Cr или Cb может отличаться для разных частей кодовых слов. В качестве одного примера может быть больше уникальных кодовых слов, используемых над центральным кодовым словом (например, кодовым словом 512), чем находится под центральным кодовым словом. В таком примере модуль 210 регулировки может конфигурироваться для применения одного набора параметров масштаба и смещения для значений цветности над центральным кодовым словом (например, имеющих значения больше центрального кодового слова) и применения другого набора параметров масштаба и смещения для значений цветности под центральным кодовым словом (например, имеющих значения меньше центрального кодового слова).
[0097] Как видно в вышеприведенном примере, модуль 210 регулировки применяет параметры масштаба и смещения DRA в виде линейной функции. По существу, модулю 210 регулировки не нужно применять параметры DRA в целевом цветовом пространстве после преобразования цветов с помощью модуля 208 преобразования цветов. Причина в том, что преобразование цветов само по себе является линейным процессом. По существу, в других примерах модуль 210 регулировки может применять параметры DRA к видеоданным в собственном цветовом пространстве (например, RGB) перед любым процессом преобразования цветов. В этом примере модуль 208 преобразования цветов применял бы преобразование цветов после того, как модуль 210 регулировки применяет параметры DRA.
[0098] В другом примере из раскрытия изобретения модуль 210 регулировки может применять параметры DRA либо в целевом цветовом пространстве, либо в собственном цветовом пространстве следующим образом:
- Y''=(scale1 *(Y' - offsetY)+offset1)+offsetY;
- Cb''=scale2 *Cb'+offset2 (9)
- Cr''=scale3 *Cr'+offset3
В этом примере параметр scale1, scale2, scale3, offset1, offset2 и offset3 имеют такой же смысл, как описан выше. Параметр offsetY является параметром, отражающим яркость сигнала, и может быть равен среднему значению Y'.
[0099] В другом примере из раскрытия изобретения модуль 210 регулировки может конфигурироваться для применения параметров DRA в цветовом пространстве помимо собственного цветового пространства или целевого цветового пространства. Вообще, модуль 210 регулировки может конфигурироваться для применения параметров DRA следующим образом:
- X'=scale1 *X+offset1;
- Y'=scale2 *Y+offset2 (10)
- Z'=scale3 *Z+offset3
где составляющие X, Y и Z сигнала являются составляющими сигнала в цветовом пространстве, которое отличается от целевого цветового пространства, например RGB, или промежуточного цветового пространства.
[0100] В других примерах из раскрытия изобретения модуль 210 регулировки для выполнения DRA конфигурируется для применения линейной передаточной функции к видео. Такая передаточная функция отличается от передаточной функции, используемой модулем 206 передаточной функции для уплотнения динамического диапазона. Аналогично заданным выше терминам масштаба и смещения передаточная функция, применяемая модулем 210 регулировки, может использоваться для расширения и центрирования значений цвета по доступным кодовым словам в целевом цветовом контейнере. Пример применения передаточной функции для выполнения DRA показан ниже:
- Y''=TF2 (Y')
- Cb''=TF2 (Cb')
- Cr''=TF2 (Cr')
Элемент TF2 задает передаточную функцию, применяемую модулем 210 регулировки.
[0101] В другом примере из раскрытия изобретения модуль 210 регулировки может конфигурироваться для применения параметров DRA совместно с преобразованием цветов в модуле 208 преобразования цветов в одном процессе. То есть линейные функции модуля 210 регулировки и модуля 208 преобразования цветов могут объединяться. Ниже показан пример объединенного применения, где f1 и f2 являются сочетанием матрицы RGB в YCbCr и масштабных коэффициентов DRA:
[0102] В другом примере из раскрытия изобретения после применения параметров DRA модуль 210 регулировки может конфигурироваться для выполнения процесса отсечения, чтобы предотвратить наличие значений видеоданных за пределами диапазона кодовых слов, заданного для некоторого целевого цветового контейнера. В некоторых обстоятельствах параметры масштаба и смещения, применяемые модулем 210 регулировки, могут вызвать превышение диапазона допустимых кодовых слов у некоторых значений цветовых компонент. В этом случае модуль 210 регулировки может конфигурироваться для отсечения значений компонент, которые превышают диапазон, до максимального значения в диапазоне.
[0103] Параметры DRA, применяемые модулем 210 регулировки, могут определяться модулем 212 оценки параметров DRA. То, как часто модуль 212 оценки параметров DRA обновляет параметры DRA, поддается изменению. Например, модуль 212 оценки параметров DRA может обновлять параметры DRA на временном уровне. То есть новые параметры DRA могут определяться для группы изображений (GOP) или одиночного изображения (кадра). В этом примере видеоданные 200 RGB с собственной CG могут быть GOP или одиночным изображением. В других примерах модуль 212 оценки параметров DRA может обновлять параметры DRA на пространственном уровне, например, на уровне секции, фрагмента или блока. В этом смысле блок видеоданных может быть макроблоком, единицей дерева кодирования (CTU), единицей кодирования или блоком любого другого размера и формы. Блок может иметь квадратную, прямоугольную или любую другую форму. Соответственно, параметры DRA могут использоваться для более эффективного временного и пространственного предсказания и кодирования.
[0104] В одном примере из раскрытия изобретения модуль 212 оценки параметров DRA может выводить параметры DRA на основе соответствия собственной цветовой гаммы у видеоданных 200 RGB с собственной CG и цветовой гаммы у целевого цветового контейнера. Например, модуль 212 оценки параметров DRA может использовать набор предопределенных правил для определения значений масштаба и смещения, принимая во внимание некоторую собственную цветовую гамму (например, BT.709) и цветовую гамму у целевого цветового контейнера (например, BT.2020).
[0105] Например, предположим, что собственная цветовая гамма и целевой цветовой контейнер задаются в виде координат основных цветов в пространстве xy и координат точки белого. Один пример такой информации для BT.709 и BT.2020 показан ниже в таблице 2.
Таблица 2 - параметры цветового пространства RGB
Параметры цветового пространства RGB
Цветовое пространство
Точка белого
Основные цвета
xx<sub>W</sub>
yy<sub>W</sub>
xx<sub>R</sub>
yy<sub>R</sub>
xx<sub>G</sub>
yy<sub>G</sub>
xx<sub>B</sub>
yy<sub>B</sub>
DCI-P3
0,314
0,351
0,680
0,320
0,265
0,690
0,150
0,060
ITU-R BT.709
0,3127
0,3290
0,64
0,33
0,30
0,60
0,15
0,06
ITU-R BT.2020
0,3127
0,3290
0,708
0,292
0,170
0,797
0,131
0,046
[0106] В одном примере BT.2020 является цветовой гаммой целевого цветового контейнера, а BT.709 является цветовой гаммой собственного цветового контейнера. В этом примере модуль 210 регулировки применяет параметры DRA к целевому цветовому пространству YCbCr. Модуль 212 оценки параметров DRA может конфигурироваться для оценивания и перенаправления параметров DRA в модуль 210 регулировки следующим образом:
scale1=1; offset1=0;
scale2=1,0698; offset2=0;
scale3=2,1735; offset3=0;
[0107] В качестве другого примера при BT.2020, являющейся целевой цветовой гаммой, и P3, являющейся собственной цветовой гаммой, и DRA, применяемой в целевом цветовом пространстве YCbCr, модуль 212 оценки параметров DRA может конфигурироваться для оценки параметров DRA в виде:
scale1=1; offset1=0;
scale2=1,0068; offset2=0;
scale3=1,7913; offset3=0;
[0108] В примерах выше модуль 212 оценки параметров DRA может конфигурироваться для определения вышеперечисленных значений масштаба и смещения, справляясь в справочной таблице, которая указывает параметры DRA для использования, принимая во внимание некоторую собственную цветовую гамму и некоторую целевую цветовую гамму. В других примерах модуль 212 оценки параметров DRA может конфигурироваться для вычисления параметров DRA из значений основных цветов и пространства белого у собственной цветовой гаммы и целевой цветовой гаммы, например, как показано в таблице 2.
[0109] Например, рассмотрим целевой (T) цветовой контейнер, заданный координатами (xXt, yXt) основных цветов, где X установлен для цветовых компонент R,G,B:
и собственную (N) цветовую гамму, заданную координатами (xXn, yXn) основных цветов, где X установлен для цветовых компонент R,G,B:
Координата точки белого для обеих гамм равна whiteP=(xW,yW). Модуль 212 оценки параметров DRA может вывести параметры scale2 и scale3 для DRA в зависимости от расстояний между координатами основных цветов до точки белого. Один пример такой оценки приведен ниже:
rdT=sqrt((primeT(1,1) - whiteP(1,1))^2+(primeN(1,2) - whiteP(1,2))^2)
gdT=sqrt((primeT(2,1) - whiteP(1,1))^2+(primeN(2,2) - whiteP(1,2))^2)
bdT=sqrt((primeT(3,1) - whiteP(1,1))^2+(primeN(3,2) - whiteP(1,2))^2)
rdN=sqrt((primeN(1,1) - whiteP(1,1))^2+(primeN(1,2) - whiteP(1,2))^2)
gdN=sqrt((primeN(2,1) - whiteP(1,1))^2+(primeN(2,2) - whiteP(1,2))^2)
bdN=sqrt((primeN(3,1) - whiteP(1,1))^2+(primeN(3,2) - whiteP(1,2))^2)
scale2=bdT/bdN
scale3=sqrt ( (rdT/rdN)^2+(gdT/gdN)^2 )
[0110] В некоторых примерах модуль 212 оценки параметров DRA может конфигурироваться для оценки параметров DRA путем определения координат основных цветов в primeN из фактического распределения значений цвета в видеоданных 200 RGB с собственной CG, а не из предопределенных значений основных цветов у собственной цветовой гаммы. То есть модуль 212 оценки параметров DRA может конфигурироваться для анализа фактических цветов, присутствующих в видеоданных 200 RGB с собственной CG, и использования значений основных цветов и точки белого, определенных из такого анализа, в описанной выше функции, чтобы вычислить параметры DRA. Приближение некоторых заданных выше параметров могло бы использоваться в качестве DRA для упрощения вычисления. Например, scale3=2,1735 можно приблизительно выразить как scale3=2, что в некоторых архитектурах допускает более простую реализацию.
[0111] В других примерах из раскрытия изобретения модуль 212 оценки параметров DRA может конфигурироваться для определения параметров DRA не только на основе цветовой гаммы целевого цветового контейнера, но также на основе целевого цветового пространства. Фактические распределения значений компонент могут отличаться от одного цветового пространства к другому цветовому пространству. Например, распределения значений цветности могут отличаться для цветовых пространств YCbCr, имеющих постоянную светимость, по сравнению с цветовыми пространствами YCbCr, имеющими непостоянную светимость. Модуль 212 оценки параметров DRA может использовать цветовые распределения разных цветовых пространств для определения параметров DRA.
[0112] В других примерах из раскрытия изобретения модуль 212 оценки параметров DRA может конфигурироваться для выведения значений для параметров DRA, чтобы минимизировать некоторые функции стоимости, ассоциированные с предварительной обработкой и/или кодированием видеоданных. В качестве одного примера модуль 212 оценки параметров DRA может конфигурироваться для оценивания параметров DRA, которые минимизируют ошибку квантования, внесенную модулем 214 квантования (например, см. уравнение (4) выше). Модуль 212 оценки параметров DRA может минимизировать такую ошибку путем выполнения проверок ошибок квантования над видеоданными, к которым применены разные наборы параметров DRA. Затем модуль 212 оценки параметров DRA может выбрать параметры DRA, которые создали наименьшую ошибку квантования.
[0113] В другом примере модуль 212 оценки параметров DRA может выбрать параметры DRA, которые минимизируют функцию стоимости, ассоциированную с DRA, выполненной модулем 210 регулировки, и кодированием видео, выполненным видеокодером 20. Например, модуль 212 оценки параметров DRA может выполнять DRA и кодировать видеоданные с несколькими разными наборами параметров DRA. Затем модуль 212 оценки параметров DRA может вычислить функцию стоимости для каждого набора параметров DRA путем образования взвешенной суммы скорости передачи битов, получающейся в результате DRA и кодирования видео, а также искажения, внесенного двумя этими процессами с потерями. Затем модуль 212 оценки параметров DRA может выбрать набор параметров DRA, который минимизирует функцию стоимости.
[0114] В каждой из вышеупомянутых методик для оценки параметров DRA модуль 212 оценки параметров DRA может определять параметры DRA отдельно для каждой компоненты с использованием информации о той компоненте. В других примерах модуль 212 оценки параметров DRA может определять параметры DRA с использованием межкомпонентной информации. Например, параметры DRA, выведенные для компоненты Cr, могут использоваться для выведения параметров DRA для компоненты CB.
[0115] В дополнение к выведению параметров DRA модуль 212 оценки параметров DRA может конфигурироваться для сигнализации параметров DRA в кодированном потоке двоичных сигналов. Модуль 212 оценки параметров DRA может сигнализировать один или несколько синтаксических элементов, которые непосредственно указывают параметры DRA, или может конфигурироваться для предоставления видеокодеру 20 одного или нескольких синтаксических элементов для сигнализации. Такие синтаксические элементы в параметрах могут сигнализироваться в потоке двоичных сигналов, так что видеодекодер 30 и/или модуль 31 обратной DRA может выполнять инверсию процесса в модуле 19 DRA, чтобы восстановить видеоданные в собственном цветовом контейнере. Ниже обсуждаются примерные методики для сигнализации параметров DRA.
[0116] В одном примере модуль 212 оценки параметров DRA может сигнализировать один или несколько синтаксических элементов в кодированном потоке двоичных сигналов видео как метаданные, в сообщении дополнительной информации расширения (SEI), в информации по используемости видео (VUI), в наборе параметров видео (VPS), в наборе параметров последовательности (SPS), в наборе параметров изображения, в заголовке секции, в заголовке CTU или в любой другой синтаксической структуре, подходящей для указания параметров DRA для размера видеоданных (например, GOP, изображения, блоки, макроблок, CTU и т. п.).
[0117] В некоторых примерах один или несколько синтаксических элементов указывают параметры DRA в явном виде. Например, один или несколько синтаксических элементов могут быть различными значениями масштаба и смещения для DRA. В других примерах один или несколько синтаксических элементов могут быть одним или несколькими индексами к справочной таблице, которая включает в себя значения масштаба и смещения для DRA. В еще одном примере один или несколько синтаксических элементов могут быть индексами к справочной таблице, которая задает линейную передаточную функцию для использования для DRA.
[0118] В других примерах параметры DRA не сигнализируются в явном виде, а точнее, модуль 19 DRA и модуль 31 обратной DRA конфигурируются для выведения параметров DRA с использованием одного и того же предопределенного процесса, использующего одну и ту же информацию и/или характеристики видеоданных, которые прослеживаются из потока двоичных сигналов. В качестве одного примера модуль 31 обратной DRA может конфигурироваться для указания собственного цветового контейнера видеоданных, а также целевого цветового контейнера кодированных видеоданных в кодированном потоке двоичных сигналов. Тогда модуль 31 обратной DRA может конфигурироваться для выведения параметров DRA из такой информации с использованием такого же процесса, как задан выше. В некоторых примерах один или несколько синтаксических элементов, которые идентифицируют собственный и целевой цветовые контейнеры, добавляются в синтаксическую структуру. Такие синтаксические элементы могут указывать цветовые контейнеры в явном виде либо могут быть индексами к справочной таблице. В другом примере модуль 19 DRA может конфигурироваться для сигнализации одного или нескольких синтаксических элементов, которые указывают значения XY у основных цветов и точку белого для конкретного цветового контейнера. В другом примере модуль 19 DRA может конфигурироваться для сигнализации одного или нескольких синтаксических элементов, которые указывают значения XY у основных цветов и точку белого у значений фактических цветов (основные цвета контента и точка белого контента) в видеоданных на основе анализа, выполненного модулем 212 оценки параметров DRA.
r_content
r
r_bt709
r
r_bt2020
g
b
r
[0119] В качестве одного примера могли бы сигнализироваться основные цвета в наименьшей цветовой гамме, содержащей цвет в контенте, и в видеодекодере 30 и/или модуле 31 обратной DRA параметры DRA выводятся с использованием основных цветов контейнера и основных цветов контента. В одном примере основные цвета контента могут сигнализироваться с использованием компонент x и y для R, G и B, как описано выше. В другом примере основные цвета контента могут сигнализироваться в виде отношения между двумя известными наборами основных цветов. Например, основные цвета контента могут сигнализироваться в виде линейного положения между основными цветами BT.709 и основными цветами BT.2020: x=alfa * x+(1-alfa) * x (с аналогичным уравнением с alfa и alfa для компонент G и B), где параметр alfa задает отношение между двумя известными наборами основных цветов. В некоторых примерах сигнализированные и/или выведенные параметры DRA могут использоваться видеокодером 20 и/или видеодекодером 30 для упрощения методик на основе взвешенного предсказания, используемых для кодирования видеоданных HDR/WCG.
wp
wp
[0120] В схемах кодирования видео, использующих взвешенное предсказание, выборка из кодируемого в настоящее время изображения Sc предсказывается из выборки (для однонаправленного предсказания) эталонного изображения Sr, взятой с весом (W) и смещением (O), что приводит к предсказанной выборке Sp:
wp
wp
Sp= Sr⋅* W+O.
cur
cur
ref
ref
[0121] В некоторых примерах, использующих DRA, выборки из эталонного и кодируемого в настоящее время изображения могут обрабатываться с помощью DRA, применяющей разный параметры, а именно { scale1, offset1 } для текущего изображения и { scale1, offset1 } для эталонного изображения. В таких вариантах осуществления параметры взвешенного предсказания могут выводиться из DRA, например:
wp
cur
ref
W=scale1/scale1
wp
cur
ref
O=offset1 - offset1
[0122] После того, как модуль 210 регулировки применяет параметры DRA, модуль 19 DRA может квантовать видеоданные с использованием модуля 214 квантования. Модуль 214 квантования может работать таким же образом, как описано выше со ссылкой на фиг. 4. После квантования видеоданные теперь отрегулированы в целевом цветовом пространстве и целевой цветовой гамме целевого цветового контейнера данных 316 HDR'. Затем данные 316 HDR' можно отправить видеокодеру 20 для сжатия.
[0123] Фиг. 9 - блок-схема, иллюстрирующая примерное устройство обратного преобразования HDR/WCG в соответствии с методиками из данного раскрытия изобретения. Как показано на фиг. 9, модуль 31 обратной DRA может конфигурироваться для применения инверсии методик, выполняемых модулем 19 DRA из фиг. 8. В других примерах методики в модуле 31 обратной DRA могут встраиваться и выполняться видеодекодером 30.
[0124] В одном примере видеодекодер 30 может конфигурироваться для декодирования видеоданных, кодированных видеокодером 20. Затем декодированные видеоданные (данные 316 HDR' в целевом цветовом контейнере) перенаправляются модулю 31 обратной DRA. Модуль 314 обратного квантования выполняет процесс обратного квантования над данными 316 HDR', чтобы обратить процесс квантования, выполненный модулем 214 квантования из фиг. 8.
[0125] Видеодекодер 30 также может конфигурироваться для декодирования и отправки любого из одного или нескольких синтаксических элементов, созданных модулем 212 оценки параметров DRA из фиг. 8, модулю 312 выведения параметров DRA в модуле 13 обратной DRA. Модуль 312 выведения параметров DRA может конфигурироваться для определения параметров DRA на основе одного или нескольких синтаксических элементов, как описано выше. В некоторых примерах один или несколько синтаксических элементов указывают параметры DRA в явном виде. В других примерах модуль 312 выведения параметров DRA конфигурируется для выведения параметров DRA с использованием таких же методик, используемых модулем 212 оценки параметров DRA из фиг. 8.
[0126] Параметры, выведенные модулем 312 выведения параметров DRA, отправляются в модуль 310 обратной регулировки. Модуль 310 обратной регулировки использует параметры DRA для выполнения инверсии линейной регулировки DRA, выполненной модулем 210 регулировки. Модуль 310 обратной регулировки может применять инверсию любой из методик регулировки, описанных выше для модуля 210 регулировки. К тому же, как и в случае модуля 210 регулировки, модуль 310 обратной регулировки может применять обратную DRA до или после любого обратного преобразования цветов. По существу, модуль 310 обратной регулировки может применять параметр DRA к видеоданным в целевом цветовом контейнере или собственном цветовом контейнере.
[0127] Модуль 308 обратного преобразования цветов преобразует видеоданные из целевого цветового пространства (например, YCbCr) в собственное цветовое пространство (например, RGB). Затем обратная передаточная функция 306 применяет инверсию передаточной функции, применяемой передаточной функцией 206, для разуплотнения динамического диапазона видеоданных. Результирующие видеоданные (RGB 304 с целевой CG) по-прежнему находятся в целевой цветовой гамме, но теперь в собственном динамическом диапазоне и собственном цветовом пространстве. Далее обратный преобразователь 302 CG преобразует RGB 304 с целевой CG в собственную цветовую гамму, чтобы восстановить RGB 300 с собственной CG.
[0128] В некоторых примерах модулем 31 обратной DRA могут применяться методики дополнительной постобработки. Применение DRA может вывести видео из фактической собственной цветовой гаммы. Этапы квантования, выполняемые модулем 214 квантования и модулем 314 обратного квантования, а также методики повышающей и понижающей дискретизации, выполняемые модулем 210 регулировки и модулем 310 обратной регулировки, могут вносить вклад в результирующие значения цвета в собственном цветовом контейнере, которые выходят из собственной цветовой гаммы. Когда известна собственная цветовая гамма (или фактические наименьшие основные цвета контента, если сигнализируются, как описано выше), то к видеоданным 304 RGB с собственной CG может применяться дополнительный процесс, чтобы преобразовать значения цвета (например, RGB или Cb и Cr) обратно в предназначенную гамму, в качестве постобработки для DRA. В других примерах такая постобработка может применяться после квантования или после применения DRA.
[0129] Фиг. 10 - блок-схема, иллюстрирующая пример видеокодера 20, который может реализовать методики из данного раскрытия изобретения. Видеокодер 20 может выполнять внутреннее и внешнее кодирование видеоблоков в секциях видео в целевом цветовом контейнере, которые обработаны модулем 19 DRA. Внутреннее кодирование опирается на пространственное предсказание, чтобы уменьшить или устранить пространственную избыточность в видео в данном видеокадре или изображении. Внешнее кодирование опирается на временное предсказание, чтобы уменьшить или устранить временную избыточность в видео в соседних кадрах или изображениях видеопоследовательности. Внутренний режим (I-режим) может относиться к любому из нескольких режимов пространственного кодирования. Внешние режимы, например однонаправленное предсказание (P-режим) или двунаправленное предсказание (B-режим), могут относиться к любому из нескольких режимов временного кодирования.
[0130] Как показано на фиг. 10, видеокодер 20 принимает текущий видеоблок в видеокадре, который будет кодироваться. В примере из фиг. 10 видеокодер 20 включает в себя модуль 40 выбора режима, память 41 видеоданных, буфер 64 декодированных изображений, сумматор 50, модуль 52 обработки с преобразованием, модуль 54 квантования и модуль 56 энтропийного кодирования. Модуль 40 выбора режима в свою очередь включает в себя модуль 44 компенсации движения, модуль 42 оценки движения, модуль 46 обработки с внутренним предсказанием и модуль 48 разбиения. Для восстановления видеоблока видеокодер 20 также включает в себя модуль 58 обратного квантования, модуль 60 обработки с обратным преобразованием и сумматор 62. Также может включаться фильтр уменьшения блочности (не показан на фиг. 10) для фильтрации границ блока, чтобы удалить артефакты блочности из восстановленного видео. При желании фильтр уменьшения блочности обычно фильтровал бы вывод сумматора 62. Также могут использоваться дополнительные фильтры (в цикле или после цикла) в дополнение к фильтру уменьшения блочности. Такие фильтры для краткости не показаны, но при желании могут фильтровать вывод сумматора 50 (в качестве фильтра в цикле).
[0131] Память 41 видеоданных может хранить видеоданные для кодирования с помощью компонентов видеокодера 20. Видеоданные, сохраненные в памяти 41 видеоданных, можно получить, например, из источника 18 видео. Буфер 64 декодированных изображений может быть запоминающим устройством эталонных изображений, которое хранит эталонные видеоданные для использования при кодировании видеоданных видеокодером 20, например, в режимах внутреннего или внешнего кодирования. Память 41 видеоданных и буфер 64 декодированных изображений могут быть образованы любым из ряда запоминающих устройств, например, динамическим оперативным запоминающим устройством (DRAM), включая синхронное DRAM (SDRAM), магниторезистивное RAM (MRAM), резистивное RAM (RRAM) или другие типы запоминающих устройств. Память 41 видеоданных и буфер 64 декодированных изображений могут предоставляться одним запоминающим устройством либо отдельными запоминающими устройствами. В различных примерах память 41 видеоданных может находиться на кристалле с другими компонентами видеокодера 20 или вне кристалла относительно тех компонентов.
[0132] Во время процесса кодирования видеокодер 20 принимает видеокадр или секцию, которые будут кодироваться. Кадр или секцию можно разделить на несколько видеоблоков. Модуль 42 оценки движения и модуль 44 компенсации движения выполняют кодирование с внешним предсказанием принятого видеоблока относительно одного или нескольких блоков в одном или нескольких эталонных кадрах, чтобы обеспечить временное предсказание. Модуль 46 обработки с внутренним предсказанием в качестве альтернативы может выполнять кодирование с внутренним предсказанием принятого видеоблока относительно одного или нескольких соседних блоков в том же кадре или секции в качестве блока, который будет кодироваться, чтобы обеспечить пространственное предсказание. Видеокодер 20 может выполнять несколько проходов кодирования, например, для выбора подходящего режима кодирования для каждого блока видеоданных.
[0133] Кроме того, модуль 48 разбиения может разбить блоки видеоданных на субблоки на основе оценки предыдущих схем разбиения в предыдущих проходах кодирования. Например, модуль 48 разбиения может сначала разбить кадр или секцию на LCU, и разбить каждую из LCU на суб-CU на основе анализа искажения в зависимости от скорости передачи (например, оптимизации искажения в зависимости от скорости передачи). Модуль 40 выбора режима дополнительно может создать структуру данных квадродерева, указывающую разбиение LCU на суб-CU. CU листа в квадродереве могут включать в себя одну или несколько PU и одну или несколько TU.
[0134] Модуль 40 выбора режима может выбрать один из режимов кодирования, внутренний или внешний, например, на основе ошибочных результатов и предоставляет результирующий блок с внутренним или внешним кодированием сумматору 50, чтобы сформировать данные остаточного блока, и сумматору 62, чтобы восстановить кодированный блок для использования в качестве эталонного кадра. Модуль 40 выбора режима также предоставляет синтаксические элементы, например векторы движения, индикаторы внутреннего режима, информацию о разбиении и другую такую синтаксическую информацию, модулю 56 энтропийного кодирования.
[0135] Модуль 42 оценки движения и модуль 44 компенсации движения могут быть существенно объединены, но иллюстрируются отдельно с концептуальной целью. Оценка движения, выполняемая модулем 42 оценки движения, является процессом формирования векторов движения, которые оценивают движение для видеоблоков. Вектор движения может указывать, например, смещение PU видеоблока в текущем видеокадре или изображении относительно блока с предсказанием в эталонном изображении (или другой кодированной единице) относительно текущего блока, кодируемого в текущем изображении (или другой кодированной единице). Блок с предсказанием является блоком, который признан точно совпадающим с блоком, который будет кодироваться, в показателях разности пикселей, которая может определяться с помощью суммы абсолютных разностей (SAD), суммы квадратов разностей (SSD) или других показателей разности. В некоторых примерах видеокодер 20 может вычислять значения для положений субцелого пикселя в эталонных изображениях, сохраненных в буфере 64 декодированных изображений. Например, видеокодер 20 может интерполировать значения положений одной четверти пикселя, положений одной восьмой пикселя или других положений дробного пикселя в эталонном изображении. Поэтому модуль 42 оценки движения может выполнить поиск движения относительно положений полного пикселя и положений дробного пикселя и вывести вектор движения с точностью до дробного пикселя.
[0136] Модуль 42 оценки движения вычисляет вектор движения для PU видеоблока в секции с внешним кодированием путем сравнения положения PU с положением блока с предсказанием в эталонном изображении. Эталонное изображение может выбираться из первого списка эталонных изображений (Список 0) или второго списка эталонных изображений (Список 1), каждый из которых идентифицирует одно или несколько эталонных изображений, сохраненных в буфере 64 декодированных изображений. Модуль 42 оценки движения отправляет вычисленный вектор движения модулю 56 энтропийного кодирования и модулю 44 компенсации движения.
[0137] Компенсация движения, выполняемая модулем 44 компенсации движения, может включать в себя выборку или формирование блока с предсказанием на основе вектора движения, определенного модулем 42 оценки движения. Снова в некоторых примерах модуль 42 оценки движения и модуль 44 компенсации движения могут быть объединены функционально. После приема вектора движения для PU текущего видеоблока модуль 44 компенсации движения может найти блок с предсказанием, на который указывает вектор движения, в одном из списков эталонных изображений. Сумматор 50 образует остаточный видеоблок путем вычитания значений пикселей блока с предсказанием из значений пикселей текущего кодируемого видеоблока, образуя значения разности пикселей, которые обсуждаются ниже. Обычно модуль 42 оценки движения выполняет оценку движения относительно компонент яркости, а модуль 44 компенсации движения использует векторы движения, вычисленные на основе компонент яркости, для компонент цветности и компонент яркости. Модуль 40 выбора режима также может формировать синтаксические элементы, ассоциированные с видеоблоками и секцией видео, для использования видеодекодером 30 при декодировании видеоблоков в секции видео.
[0138] Модуль 46 обработки с внутренним предсказанием может внутренне предсказать текущий блок в качестве альтернативы внешнему предсказанию, выполняемому модулем 42 оценки движения и модулем 44 компенсации движения, как описано выше. В частности, модуль 46 обработки с внутренним предсказанием может определить режим внутреннего предсказания, чтобы использовать его для кодирования текущего блока. В некоторых примерах модуль 46 обработки с внутренним предсказанием может кодировать текущий блок с использованием различных режимов внутреннего предсказания, например, во время отдельных проходов кодирования, и модуль 46 обработки с внутренним предсказанием (или модуль 40 выбора режима в некоторых примерах) может выбирать подходящий режим внутреннего предсказания для использования из проверенных режимов.
[0139] Например, модуль 46 обработки с внутренним предсказанием может вычислить значения искажения в зависимости от скорости передачи, используя анализ искажения в зависимости от скорости передачи для различных проверенных режимов внутреннего предсказания, и выбрать режим внутреннего предсказания, имеющий наилучшие характеристики искажения в зависимости от скорости передачи среди проверенных режимов. Анализ искажения в зависимости от скорости передачи, как правило, определяет величину искажения (или ошибки) между кодированным блоком и исходным, некодированным блоком, который кодировался для создания кодированного блока, а также скорость передачи битов (то есть количество битов), используемую для создания кодированного блока. Модуль 46 обработки с внутренним предсказанием может вычислить отношения из искажений и скоростей для различных кодированных блоков, чтобы определить, какой режим внутреннего предсказания демонстрирует наилучшее значение искажения в зависимости от скорости передачи для блока.
[0140] После выбора режима внутреннего предсказания для блока модуль 46 обработки с внутренним предсказанием может предоставить модулю 56 энтропийного кодирования информацию, указывающую выбранный режим внутреннего предсказания для блока. Модуль 56 энтропийного кодирования может кодировать информацию, указывающую выбранный режим внутреннего предсказания. Видеокодер 20 может включить в переданный поток двоичных сигналов конфигурационные данные, которые могут включать в себя множество таблиц индексов режимов внутреннего предсказания и множество таблиц индексов измененных режимов внутреннего предсказания (также называемых таблицами отображения кодовых слов), определения контекстов кодирования для различных блоков и указания наиболее вероятного режима внутреннего предсказания, таблицы индексов режимов внутреннего предсказания и таблицы индексов измененного режима внутреннего предсказания для использования для каждого из контекстов.
[0141] Видеокодер 20 образует остаточный видеоблок путем вычитания данных предсказания от модуля 40 выбора режима из исходного кодируемого видеоблока. Сумматор 50 представляет собой компонент или компоненты, которые выполняют эту операцию вычитания. Модуль 52 обработки с преобразованием применяет к остаточному блоку преобразование, например дискретное косинусное преобразование (DCT) или концептуально сходное преобразование, создавая видеоблок, содержащий значения остаточных коэффициентов преобразования. Модуль 52 обработки с преобразованием может выполнять и другие преобразования, которые концептуально сходны с DCT. Также могли бы использоваться вейвлет-преобразования, целочисленные преобразования, преобразования поддиапазонов или другие типы преобразований. В любом случае модуль 52 обработки с преобразованием применяет преобразование к остаточному блоку, создавая блок остаточных коэффициентов преобразования. Преобразование может преобразовывать остаточную информацию из области значений пикселей в область преобразования, например частотную область. Модуль 52 обработки с преобразованием может отправить результирующие коэффициенты преобразования модулю 54 квантования.
[0142] Модуль 54 квантования квантует коэффициенты преобразования для дополнительного уменьшения скорости передачи битов. Процесс квантования может уменьшить битовую глубину, ассоциированную с некоторыми или всеми коэффициентами. Степень квантования можно изменять путем регулирования параметра квантования. В некоторых примерах модуль 54 квантования затем может выполнить сканирование матрицы, включающей в себя квантованные коэффициенты преобразования. В качестве альтернативы сканирование может выполнить модуль 56 энтропийного кодирования.
[0143] После квантования модуль 56 энтропийного кодирования энтропийно кодирует квантованные коэффициенты преобразования. Например, модуль 56 энтропийного кодирования может выполнять контекстно-адаптивное кодирование с переменной длиной (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC), синтаксическое контекстно-адаптивное двоичное арифметическое кодирование (SBAC), энтропийное кодирование с разбиением на интервалы вероятности (PIPE) или другую методику энтропийного кодирования. В случае контекстного энтропийного кодирования контекст может основываться на соседних блоках. После энтропийного кодирования с помощью модуля 56 энтропийного кодирования кодированный поток двоичных сигналов может передаваться другому устройству (например, видеодекодеру 30) или архивироваться для последующей передачи или извлечения.
[0144] Модуль 58 обратного квантования и модуль 60 обработки с обратным преобразованием применяют обратное квантование и обратное преобразование соответственно, чтобы восстановить остаточный блок в области пикселей, например, для последующего использования в качестве эталонного блока. Модуль 44 компенсации движения может вычислить эталонный блок путем добавления остаточного блока к блоку с предсказанием в одном из кадров в буфере 64 декодированных изображений. Модуль 44 компенсации движения также может применить один или несколько интерполирующих фильтров к восстановленному остаточному блоку, чтобы вычислить значения субцелых пикселей для использования при оценке движения. Сумматор 62 добавляет восстановленный остаточный блок к блоку предсказания с компенсированным движением, созданному модулем 44 компенсации движения, чтобы создать восстановленный видеоблок для сохранения в буфере 64 декодированных изображений. Восстановленный видеоблок может использоваться модулем 42 оценки движения и модулем 44 компенсации движения в качестве эталонного блока, чтобы внешне кодировать блок в последующем видеокадре.
[0145] Фиг. 11 - блок-схема, иллюстрирующая пример видеодекодера 30, который может реализовать методики из данного раскрытия изобретения. В частности, видеодекодер 30 может декодировать видеоданные в целевой цветовой контейнер, который затем можно обрабатывать с помощью модуля 31 обратной DRA, как описано выше. В примере из фиг. 11 видеодекодер 30 включает в себя модуль 70 энтропийного декодирования, память 71 видеоданных, модуль 72 компенсации движения, модуль 74 обработки с внутренним предсказанием, модуль 76 обратного квантования, модуль 78 обработки с обратным преобразованием, буфер 82 декодированных изображений и сумматор 80. Видеодекодер 30 в некоторых примерах может выполнять проход декодирования, в целом обратный по отношению к проходу кодирования, описанному по отношению к видеокодеру 20 (фиг. 10). Модуль 72 компенсации движения может формировать данные предсказания на основе векторов движения, принятых от модуля 70 энтропийного декодирования, тогда как модуль 74 обработки с внутренним предсказанием может формировать данные предсказания на основе индикаторов режима внутреннего предсказания, принятых от модуля 70 энтропийного декодирования.
[0146] Память 71 видеоданных может хранить видеоданные, например кодированный поток двоичных сигналов видео, для декодирования с помощью компонентов видеодекодера 30. Видеоданные, сохраненные в памяти 71 видеоданных, можно получить, например, с машиночитаемого носителя 16, например, из локального источника видео, например камеры, посредством проводной или беспроводной сетевой передачи видеоданных или путем обращения к физическим носителям информации. Память 71 видеоданных может образовывать буфер кодированных изображений (CPB), который хранит кодированные видеоданные из кодированного потока двоичных сигналов видео. Буфер 82 декодированных изображений может быть запоминающим устройством эталонных изображений, которое хранит эталонные видеоданные для использования при декодировании видеоданных видеодекодером 30, например, в режимах внутреннего или внешнего кодирования. Память 71 видеоданных и буфер 82 декодированных изображений могут быть образованы любым из ряда запоминающих устройств, например, динамическим оперативным запоминающим устройством (DRAM), включая синхронное DRAM (SDRAM), магниторезистивное RAM (MRAM), резистивное RAM (RRAM) или другие типы запоминающих устройств. Память 71 видеоданных и буфер 82 декодированных изображений могут предоставляться одним запоминающим устройством либо отдельными запоминающими устройствами. В различных примерах память 71 видеоданных может находиться на кристалле с другими компонентами видеодекодера 30 или вне кристалла относительно тех компонентов.
[0147] Во время процесса декодирования видеодекодер 30 принимает от видеокодера 20 кодированный поток двоичных сигналов видео, который представляет собой видеоблоки кодированной секции видео и ассоциированные синтаксические элементы. Модуль 70 энтропийного декодирования в видеодекодере 30 энтропийно декодирует поток двоичных сигналов, чтобы сформировать квантованные коэффициенты, векторы движения или индикаторы режима внутреннего предсказания, и другие синтаксические элементы. Модуль 70 энтропийного декодирования перенаправляет векторы движения и другие синтаксические элементы в модуль 72 компенсации движения. Видеодекодер 30 может принять синтаксические элементы на уровне секции видео и/или уровне видеоблока.
[0148] Когда секция видео кодируется в виде секции с внутренним кодированием (I), модуль 74 обработки с внутренним предсказанием может сформировать данные предсказания для видеоблока текущей секции видео на основе сигнализированного режима внутреннего предсказания и данных из ранее декодированных блоков текущего кадра или изображения. Когда видеокадр кодируется в виде секции с внешним кодированием (то есть B или P), модуль 72 компенсации движения создает блоки с предсказанием для видеоблока текущей секции видео на основе векторов движения и других синтаксических элементов, принятых от модуля 70 энтропийного декодирования. Блоки с предсказанием могут создаваться из одного из эталонных изображений в одном из списков эталонных изображений. Видеодекодер 30 может построить списки эталонных изображений, Список 0 и Список 1, используя методики построения по умолчанию на основе эталонных изображений, сохраненных в буфере 82 декодированных изображений. Модуль 72 компенсации движения определяет информацию предсказания для видеоблока текущей секции видео путем синтаксического анализа векторов движения и других синтаксических элементов и использует информацию предсказания для создания блоков с предсказанием для текущего декодируемого видеоблока. Например, модуль 72 компенсации движения использует некоторые из принятых синтаксических элементов для определения режима предсказания (например, внутреннее или внешнее предсказание), используемого для кодирования видеоблоков в секции видео, типа секции внешнего предсказания (например, B-секция или P-секция), информации построения для одного или нескольких списков эталонных изображений для секции, векторов движения для каждого видеоблока с внешним кодированием в секции, состояния внешнего предсказания для каждого видеоблока с внешним кодированием в секции и другой информации для декодирования видеоблоков в текущей секции видео.
[0149] Модуль 72 компенсации движения также может выполнить интерполяцию на основе интерполирующих фильтров. Модуль 72 компенсации движения может использовать интерполирующие фильтры, которые использовались видеокодером 20 во время кодирования видеоблоков, чтобы вычислить интерполированные значения для субцелых пикселей эталонных блоков. В этом случае модуль 72 компенсации движения может определить интерполирующие фильтры, используемые видеокодером 20, из принятых синтаксических элементов и использовать интерполирующие фильтры для создания блоков с предсказанием.
Y
[0150] Модуль 76 обратного квантования обратно квантует, то есть деквантует, квантованные коэффициенты преобразования, предоставленные в потоке двоичных сигналов и декодированные модулем 70 энтропийного декодирования. Процесс обратного квантования может включать в себя использование параметра QP квантования, вычисленного видеодекодером 30 для каждого видеоблока в секции видео, чтобы определить степень квантования, а также степень обратного квантования, которое следует применить. Модуль 78 обработки с обратным преобразованием применяет к коэффициентам преобразования обратное преобразование, например обратное DCT, обратное целочисленное преобразование или концептуально сходный процесс обратного преобразования, чтобы создать остаточные блоки в области пикселей.
[0151] После того, как модуль 72 компенсации движения сформирует блок с предсказанием для текущего видеоблока на основе векторов движения и других синтаксических элементов, видеодекодер 30 образует декодированный видеоблок путем суммирования остаточных блоков от модуля 78 обработки с обратным преобразованием с соответствующими блоками с предсказанием, сформированными модулем 72 компенсации движения. Сумматор 80 представляет собой компонент или компоненты, которые выполняют эту операцию суммирования. При желании также можно применить фильтр уменьшения блочности для фильтрации декодированных блоков, чтобы удалить артефакты блочности. Другие фильтры цикла (либо в цикле кодирования, либо после цикла кодирования) также могут использоваться для сглаживания переходов пикселей или иного повышения качества видео. Декодированные видеоблоки в заданном кадре или изображении затем сохраняются в буфере 82 декодированных изображений, который хранит эталонные изображения, используемые для последующей компенсации движения. Буфер 82 декодированных изображений также хранит декодированное видео для последующего представления на устройстве отображения, например устройстве 32 отображения из фиг. 1.
[0152] Фиг. 12 - блок-схема алгоритма, иллюстрирующая примерный процесс преобразования HDR/WCG в соответствии с методиками из данного раскрытия изобретения. Методики из фиг. 12 могут исполняться устройством-источником 12 из фиг. 1, включающим в себя одно или несколько из модуля 19 DRA и/или видеокодера 20.
[0153] В одном примере из раскрытия изобретения устройство-источник 12 может конфигурироваться для приема видеоданных, связанных с первым цветовым контейнером, при этом видеоданные, связанные с первым цветовым контейнером, задаются первой цветовой гаммой и первым цветовым пространством (1200), выведения одного или нескольких параметров регулировки динамического диапазона, при этом параметры регулировки динамического диапазона основываются на характеристиках видеоданных, которые связаны с первым цветовым контейнером (1210), и выполнения регулировки динамического диапазона над видеоданными в соответствии с одним или несколькими параметрами регулировки динамического диапазона (1220). В примере из фиг. 12 видеоданные являются входными видеоданными перед кодированием видео, где первый цветовой контейнер является собственным цветовым контейнером, и где второй цветовой контейнер является целевым цветовым контейнером. В одном примере видеоданные являются одним из группы изображений в видеоданных, изображения в видеоданных, макроблока в видеоданных, блока в видеоданных или единицы кодирования видеоданных.
[0154] В одном примере из раскрытия изобретения характеристики видеоданных включают в себя первую цветовую гамму. В одном примере устройство-источник 12 конфигурируется для выведения одного или нескольких параметров регулировки динамического диапазона на основе соответствия первой цветовой гаммы первого цветового контейнера и второй цветовой гаммы второго цветового контейнера, при этом второй цветовой контейнер задается второй цветовой гаммой и вторым цветовым пространством.
[0155] В другом примере из раскрытия изобретения устройство-источник 12 конфигурируется для сигнализации одного или нескольких синтаксических элементов, указывающих первую цветовую гамму и второй цветовой контейнер в кодированном потоке двоичных сигналов видео, в одном или нескольких из метаданных, сообщения дополнительной информации расширения, информации по используемости видео, набора параметров видео, набора параметров последовательности, параметра изображения, заголовка секции или заголовка CTU.
[0156] В другом примере из раскрытия изобретения устройство-источник 12 конфигурируется для сигнализации одного или нескольких синтаксических элементов, указывающих в явном виде параметры регулировки динамического диапазона в кодированном потоке двоичных сигналов видео, в одном или нескольких из метаданных, сообщения дополнительной информации расширения, информации по используемости видео, набора параметров видео, набора параметров последовательности, параметра изображения, заголовка секции или заголовка CTU.
[0157] В другом примере из раскрытия изобретения характеристики видеоданных включают в себя информацию о яркости, и устройство-источник 12 конфигурируется для выведения одного или нескольких параметров регулировки динамического диапазона на основе информации о яркости видеоданных. В другом примере из раскрытия изобретения характеристики видеоданных включают в себя значения цвета, и устройство-источник 12 конфигурируется для выведения одного или нескольких параметров регулировки динамического диапазона на основе значений цвета видеоданных.
[0158] В другом примере из раскрытия изобретения устройство-источник 12 конфигурируется для выведения одного или нескольких параметров регулировки динамического диапазона путем минимизации одного из ошибки квантования, ассоциированной с квантованием видеоданных, или функции стоимости, ассоциированной с кодированием видеоданных.
[0159] В другом примере из раскрытия изобретения один или несколько параметров регулировки динамического диапазона включают в себя масштаб и смещение для каждой цветовой компоненты видеоданных, и устройство-источник 12 дополнительно конфигурируется для регулирования каждой цветовой компоненты видеоданных в соответствии с функцией масштаба и смещения для каждой соответствующей цветовой компоненты.
[0160] В другом примере из раскрытия изобретения один или несколько параметров динамического диапазона включают в себя первую передаточную функцию, и устройство-источник 12 дополнительно конфигурируется для применения первой передаточной функции к видеоданным.
[0161] Фиг. 13 - блок-схема алгоритма, иллюстрирующая примерный процесс обратного преобразования HDR/WCG в соответствии с методиками из данного раскрытия изобретения. Методики из фиг. 13 могут исполняться устройством-адресатом 14 из фиг. 1, включающим в себя одно или несколько из модуля 31 обратной DRA и/или видеодекодера 30.
[0162] В одном примере из раскрытия изобретения устройство-адресат 14 может конфигурироваться для приема видеоданных, связанных с первым цветовым контейнером, при этом видеоданные, связанные с первым цветовым контейнером, задаются первой цветовой гаммой и первым цветовым пространством (1300), выведения одного или нескольких параметров регулировки динамического диапазона, при этом параметры регулировки динамического диапазона основываются на характеристиках видеоданных, которые связаны с первым цветовым контейнером (1310), и выполнения регулировки динамического диапазона над видеоданными в соответствии с одним или несколькими параметрами регулировки динамического диапазона (1320). В примере из фиг. 13 видеоданные являются декодированными видеоданными, где первый цветовой контейнер является целевым цветовым контейнером, и где второй цветовой контейнер является собственным цветовым контейнером. В одном примере видеоданные являются одним из группы изображений в видеоданных, изображения в видеоданных, макроблока в видеоданных, блока в видеоданных или единицы кодирования видеоданных.
[0163] В одном примере из раскрытия изобретения характеристики видеоданных включают в себя первую цветовую гамму, и устройство-адресат 14 может конфигурироваться для выведения одного или нескольких параметров регулировки динамического диапазона на основе соответствия первой цветовой гаммы первого цветового контейнера и второй цветовой гаммы второго цветового контейнера, при этом второй цветовой контейнер задается второй цветовой гаммой и вторым цветовым пространством.
[0164] В другом примере из раскрытия изобретения устройство-адресат 14 может конфигурироваться для приема одного или нескольких синтаксических элементов, указывающих первую цветовую гамму и второй цветовой контейнер, и выведения одного или нескольких параметров регулировки динамического диапазона на основе одного или нескольких принятых синтаксических элементов. В другом примере из раскрытия изобретения устройство-адресат 14 может конфигурироваться для выведения параметров взвешенного предсказания из одного или нескольких параметров регулировки динамического диапазона для кодируемого в настоящее время изображения и эталонного изображения. В другом примере из раскрытия изобретения устройство-адресат 14 может конфигурироваться для приема одного или нескольких синтаксических элементов, указывающих в явном виде параметры регулировки динамического диапазона.
[0165] В другом примере из раскрытия изобретения характеристики видеоданных включают в себя информацию о яркости, и устройство-адресат 14 конфигурируется для выведения одного или нескольких параметров регулировки динамического диапазона на основе информации о яркости видеоданных. В другом примере из раскрытия изобретения характеристики видеоданных включают в себя значения цвета, и устройство-адресат 14 конфигурируется для выведения одного или нескольких параметров регулировки динамического диапазона на основе значений цвета видеоданных.
[0166] В другом примере из раскрытия изобретения один или несколько параметров регулировки динамического диапазона включают в себя масштаб и смещение для каждой цветовой компоненты видеоданных, и устройство-адресат 14 дополнительно конфигурируется для регулирования каждой цветовой компоненты видеоданных в соответствии с функцией масштаба и смещения для каждой соответствующей цветовой компоненты.
[0167] В другом примере из раскрытия изобретения один или несколько параметров динамического диапазона включают в себя первую передаточную функцию, и устройство-адресат 14 дополнительно конфигурируется для применения первой передаточной функции к видеоданным.
[0168] Некоторые аспекты данного раскрытия изобретения с целью иллюстрации описаны по отношению к расширениям стандарта HEVC. Однако описанные в данном раскрытии изобретения методики могут быть полезны для других процессов кодирования видео, включая другие, еще не разработанные, стандартные или частные процессы кодирования видео.
[0169] Кодировщик видео, как описано в данном раскрытии изобретения, может относиться к видеокодеру или видеодекодеру. Аналогичным образом модуль кодирования видео может относиться к видеокодеру или видеодекодеру. Также кодирование видео может, в зависимости от обстоятельств, относиться к кодированию видео или декодированию видео.
[0170] Нужно признать, что в зависимости от примера некоторые действия или события в любой из описанных в этом документе методик можно выполнять в иной последовательности, можно добавлять, объединять или полностью пропускать (например, не все описанные действия или события необходимы для применения методик на практике). Кроме того, в некоторых примерах действия или события могут выполняться одновременно, например, посредством многопоточной обработки, обработки прерываний или нескольких процессоров, а не последовательно.
[0171] В одном или нескольких примерах описываемые функции могут быть реализованы в аппаратных средствах, программном обеспечении, микропрограммном обеспечении или любом их сочетании. Если они реализованы в программном обеспечении, то функции могут храниться или передаваться в виде одной или нескольких команд либо кода на машиночитаемом носителе и исполняться аппаратным модулем обработки. Машиночитаемые носители могут включать в себя машиночитаемые носители информации, которые соответствуют материальному носителю, такому как носители информации, или средства связи, включающие в себя любой носитель, который облегчает перенос компьютерной программы из одного места в другое, например, в соответствии с неким протоколом связи. Таким образом, машиночитаемые носители в целом могут соответствовать (1) материальным машиночитаемым носителям информации, которые являются долговременными, или (2) средству связи, такому как сигнал или несущая. Носители информации могут быть любыми доступными носителями, к которым можно обращаться с помощью одного или нескольких компьютеров либо одного или нескольких процессоров для извлечения команд, кода и/или структур данных для реализации методик, описанных в данном раскрытии изобретения. Компьютерный программный продукт может включать в себя машиночитаемый носитель.
[0172] В качестве примера, а не ограничения, такие машиночитаемые носители информации могут быть выполнены в виде RAM, ROM, EEPROM, компакт-диска или другого накопителя на оптических дисках, накопителя на магнитных дисках или других магнитных запоминающих устройств, флэш-памяти или любого другого носителя, который может использоваться для хранения нужного программного кода в виде команд или структур данных и к которому [носителю] можно обращаться с помощью компьютера. Также любое соединение корректно называть машиночитаемым носителем. Например, если команды передаются с веб-сайта, сервера или другого удаленного источника с использованием коаксиального кабеля, оптоволоконного кабеля, витой пары, цифровой абонентской линии (DSL) или беспроводных технологий, например ИК-связи, радиочастотной связи и СВЧ-связи, то коаксиальный кабель, оптоволоконный кабель, витая пара, DSL или беспроводные технологии, например ИК-связь, радиочастотная связь и СВЧ-связь, включаются в определение носителя. Однако следует понимать, что машиночитаемые носители информации и носители информации не включают в себя соединения, несущие, сигналы или другие кратковременные носители, а вместо этого ориентированы на долговременные, материальные носители информации. Диски при использовании в данном документе включают в себя компакт-диск (CD), лазерный диск, оптический диск, цифровой универсальный диск (DVD), гибкий диск и диск Blu-ray, где диски (disks) обычно воспроизводят данные магнитным способом, тогда как диски (discs) воспроизводят данные оптически с помощью лазеров. Сочетания вышеперечисленного также следует включить в область машиночитаемых носителей.
[0173] Команды могут исполняться одним или несколькими процессорами, например одним или несколькими цифровыми процессорами сигналов (DSP), универсальными микропроцессорами, специализированными интегральными схемами (ASIC), программируемыми пользователем логическими матрицами (FPGA) или другими эквивалентными интегральными либо дискретными логическими схемами. Соответственно, термин "процессор" при использовании в данном документе может относиться к любой вышеупомянутой структуре или к любой другой структуре, подходящей для реализации описанных в этом документе методик. К тому же в некоторых аспектах функциональные возможности, описанные в этом документе, могут быть предоставлены в специализированных аппаратных и/или программных модулях, сконфигурированных для кодирования и декодирования, или встроены в объединенный кодек. Также методики можно было бы полностью реализовать в одной или нескольких схемах или логических элементах.
[0174] Методики из данного раскрытия изобретения могут быть реализованы в широком спектре устройств, включая беспроводную телефонную трубку, интегральную схему (ИС) или набор ИС (например, набор микросхем). Различные компоненты, модули или блоки описываются в данном раскрытии изобретения для подчеркивания функциональных аспектов устройств, сконфигурированных для выполнения раскрытых методик, но не обязательно требуют реализации с помощью разных аппаратных модулей. Точнее, как описано выше, различные модули могут объединяться в аппаратный модуль кодека или предоставляться с помощью совокупности взаимодействующих аппаратных модулей, включающих в себя один или несколько процессоров, как описано выше, в сочетании с подходящим программным обеспечением и/или микропрограммным обеспечением.
[0175] Описаны различные примеры. Эти и другие примеры входят в объем нижеследующей формулы изобретения.