Способ и устройство для преобразования цвета при универсальном видеокодировании (VVC)
METHOD AND APPARATUS FOR COLOUR CONVERSION IN VERSATILE VIDEO CODING (VVC)

ВКЛЮЧЕНИЕ ПОСРЕДСТВОМ ССЫЛКИ
[0001] Настоящее изобретение испрашивает приоритет обычной заявки США №16/817,028, "METHOD AND APPARATUS FOR COLOR TRANSFORM IN VVC", поданной 12 марта 2020 г., которая испрашивает приоритет предварительной заявки США №62/817,500, "COLOR TRANSFORM IN VVC", поданной 12 марта 2019 г. Содержание предыдущих заявок, таким образом, включено посредством ссылки в полном объеме.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
[0002] В настоящей заявке описаны варианты осуществления, в целом относящиеся к видеокодированию.
ПРЕДПОСЫЛКИ ИЗОБРЕТЕНИЯ
[0003] Описание предпосылок создания изобретения приведено здесь с целью представления в целом контекста изобретения. Работа авторов изобретения, в той мере, в какой она описана в этом разделе, а также аспекты описания, которые не могут квалифицироваться как уровень техники на момент подачи заявки, ни прямо, ни косвенно не признаются уровнем техники, лежащим в основе настоящего изобретения.
[0004] Кодирование и декодирование видеосигнала может осуществляться с использованием предсказания между изображениями с компенсацией движения. Цифровое видео без сжатия может включать в себя последовательность изображений, каждое из которых имеет пространственный размер, например, 1920 х 1080 отсчетов яркости и связанных с ними отсчетов цветности. Последовательность изображений может иметь фиксированную или переменную частоту смены изображений (неформально также называемую частотой кадров), например, 60 изображений в секунду, или 60 Гц. Видео без сжатия предъявляет значительные требования к битовой скорости. Например, видео 1080р60 4:2:0 с 8 битами на отсчет (разрешение отсчетов яркости 1920x1080 при частоте кадров 60 Гц) требует полосы около 1,5 Гбит/с. Час такого видео требует объема памяти более 600 ГБ.
[0005] Одной целью кодирования и декодирования видеосигнала может быть снижение избыточности во входном видеосигнале путем сжатия. Сжатие может способствовать смягчению вышеупомянутых требований к полосе или объему памяти, в ряде случаев на два порядка величины или более. Можно использовать как сжатие без потерь, так и сжатие с потерями, а также их комбинацию. Сжатие без потерь относится к методам реконструкции точной копии исходного сигнала из сжатого исходного сигнала. При использовании сжатия с потерями реконструированный сигнал может быть не идентичен исходному сигналу, но расхождение между исходным и реконструированным сигналами достаточно мало, чтобы реконструированный сигнал можно было использовать для намеченного применения. Сжатие с потерями широко применяется для видео. Допустимая степень искажения зависит от применения; например, пользователи некоторых заказных потоковых приложений могут мириться с более высокими искажениями, чем пользователи телевещательных приложений. При достижимой степени сжатия более высокое разрешенное/допустимое искажение может давать более высокую степень сжатия.
[0006] Кодер и декодер видеосигнала может использовать методы из нескольких широких категорий, включающих в себя, например, компенсацию движения, преобразование, квантование и энтропийное кодирование.
[0007] Технологии видеокодека могут включать в себя методы, известные как внутреннее кодирование. При внутреннем (интра-) кодировании, значения отсчетов представляются без ссылки на отсчеты или другие данные из ранее реконструированных опорных изображений. В некоторых видеокодеках изображение пространственно разделяется на блоки отсчетов. Когда все блоки отсчетов кодируются в интра-режиме, изображение называется интра-изображением. Интра-изображения и их производные, например, изображения, полученные в режиме независимого обновления декодера, могут использоваться для сброса состояния декодера, что позволяет использовать их как первое изображение в битовом потоке кодированного видео и видеосеансе, или как неподвижное изображение. Отсчеты интра-блока могут подвергаться преобразованию, и коэффициенты преобразования могут квантоваться до энтропийного кодирования. Внутреннее предсказание может быть методом минимизации значений отсчетов в области предварительного преобразования. В ряде случаев, чем меньше значение DC (постоянной составляющей) после преобразования, и чем меньше коэффициенты АС (переменных составляющих), тем меньше битов требуется при данном размере шага квантования для представления блока после энтропийного кодирования.
[0008] Традиционное внутреннее кодирование, известное, например, из технологий кодирования поколения MPEG-2, не использует внутреннего предсказания. Однако некоторые более современные технологии сжатия видео включают в себя методы, которые пытаются сделать это, например, из данных окружающих отсчетов и/или метаданных, полученных в ходе кодирования/декодирования пространственно соседних и предшествующих, в порядке декодирования, блоков данных. Такие методы далее именуются методами "внутреннего предсказания". Заметим, что по меньшей мере в некоторых случаях внутреннее предсказание осуществляется только с использованием опорных данных из текущего изображения, подлежащего реконструкции, но не из опорных изображений.
[0009] Может существовать много разных форм внутреннего предсказания. Когда в данной технологии видеокодирования может использоваться более одного из таких методов, используемый метод может кодироваться в режиме внутреннего предсказания. В некоторых случаях, режимы могут иметь подрежимы и/или параметры, которые могут кодироваться по отдельности или включаться в кодовое слово режима. Использование того или иного кодового слова для данной комбинации режимов/подрежимов/параметров может оказывать влияние на выигрыш в эффективности кодирования посредством внутреннего предсказания и, следовательно, на технологию энтропийного кодирования, используемую для перевода кодовых слов в битовый поток.
[0010] Определенный режим внутреннего предсказания впервые был задан в Н.264, уточнен в Н.265, и дополнительно уточнен в более современных технологиях кодирования, например, модели совместного исследования (JEM, joint exploration model), универсального видеокодирования (VVC, versatile video coding) и наборе эталонов (BMS, benchmark set). Блок предсказателя может формироваться с использованием значений соседних отсчетов, принадлежащих уже доступным отсчетам. Значения соседних отсчетов копируются в блок предсказателя согласно направлению. Ссылка на используемое направление может кодироваться в битовом потоке или может сама предсказываться.
[0011] В нижнем правом углу фиг. 1А изображено подмножество из девяти направлений предсказателя множества, известного из 33 возможных направлений предсказателя Н.265 (соответствующих 33 угловым режимам из 35 интра-режимов). Точка (101), где сходятся стрелки, представляет предсказываемый отсчет. Стрелки представляют направление, из которого предсказывается отсчет. Например, стрелка (102) указывает, что отсчет (101) предсказывается из отсчета или отсчетов, расположенного(ых) вверху справа, под углом 45 градусов к горизонтали. Аналогично, стрелка (103) указывает, что отсчет (101) предсказывается из отсчета или отсчетов расположенного(ых) внизу слева от отсчета (101), под углом 22,5 градусов к горизонтали.
[0012] В верхнем левом углу фиг. 1А изображен квадратный блок (104) 4x4 отсчетов (указанный жирной пунктирной линией). Квадратный блок (104) включает в себя 16 отсчетов, каждый из которых обозначен буквой "S", позицией по оси Y (например, индексом строки) и позицией по оси X (например, индексом столбца). Например, отсчет S21 является вторым отсчетом по оси Y (сверху) и первым (слева) отсчетом по оси X. Аналогично, отсчет S44 является четвертым отсчетом в блоке (104) по обеим осям Y и X. Поскольку блок имеет размер 4x4 отсчета, S44 располагается внизу справа. Дополнительно показаны опорные отсчеты, которые следуют аналогичной схеме нумерации. Опорный отсчет обозначается буквой R, своей Y-позицией (например, индексом строки) и Х-позицией (индексом столбца) относительно блока (104). В обоих Н.264 и Н.265 предсказанные отсчеты соседствуют с блоком, подлежащим реконструкции; поэтому нет необходимости использовать отрицательные значения.
[0013] Предсказание внутри изображения может работать путем копирования опорных значений отсчетов из соседних отсчетов, указанных сигнализируемым направлением предсказания. Например, предположим, что битовый поток кодированного видео включает в себя сигнализацию, которая, для этого блока, указывает направление предсказания, обозначенное стрелкой (102) то есть отсчеты предсказываются из предсказанного(ых) отсчета или отсчетов, расположенного(ых) вверху справа, под углом 45 градусов к горизонтали. В этом случае отсчеты S41, S32, S23 и S14 предсказываются из одного и того же опорного отсчета R05. Затем отсчет S44 предсказывается из опорного отсчета R08.
[0014] В некоторых случаях значения множества опорных отсчетов можно комбинировать, например, посредством интерполяции для вычисления опорного отсчета; в особенности, когда направления не кратны 45 градусам.
[0015] Количество возможных направлений увеличивается по мере развития технологий видеокодирования. В Н.264 (2003 год) можно было представлять девять разных направлений. В Н.265 это количество увеличилось до 33 (2013 год), и JEM/VVC/BMS во время составления данного описания может поддерживать до 65 направлений. Были проведены эксперименты для выявления наиболее вероятных направлений, и некоторые методы энтропийного кодирования используются для представления этих вероятных направлений малым количеством битов, ценой утраты некоторых менее вероятных направлений. Дополнительно, сами направления иногда можно предсказывать из соседних направлений, используемых в соседних, уже декодированных, блоках.
[0016] Режимы внутреннего предсказания, применяемые в высокопроизводительном видеокодировании, представлены на фиг. 1В. Высокопроизводительное видеокодирование насчитывает 35 режимов внутреннего предсказания. При этом режим 10 горизонтальный, а режим 26 вертикальный. Режимы 2, 18 и 34 - диагональные режимы. Режимы внутреннего предсказания сигнализируются тремя режимами наибольшей вероятности и 32-умя остальными режимами.
[0017] Фиг. 1С изображает режимы внутреннего предсказания, используемые в высокопроизводительном видеокодировании. Согласно фиг. 1С, в высокопроизводительном видеокодировании существует 95 режимов внутреннего предсказания. Режим 18 горизонтальный, режим 50 вертикальный, а режимы 2, 34 и 66 диагональные. Режимы -1 ~ -14, а также режимы 67 ~ 80 называются широкоугольными режимами внутреннего предсказания (Wide-Angle Intra Prediction, WAIP).
[0018] Отображение битов направлений внутреннего предсказания в битовом потоке кодированного видео, которые представляют направление, может отличаться от одной технологии видеокодирования к другой технологии видеокодирования; и может охватывать, например, от простого прямого отображения направления предсказания до режима внутреннего предсказания, кодовых слов, сложных адаптивных схем, задействующих наиболее вероятные режимы, и аналогичных методов. Однако во всех случаях могут существовать некоторые направления, возникновение которых в видеоконтенте статистически менее вероятно, чем для некоторых других направлений. Поскольку целью сжатия видео является снижение избыточности, эти менее вероятные направления, в хорошо работающей технологии видеокодирования, будут представляться большим количеством битов, чем более вероятные направления.
[0019] Кодирование и декодирование видеосигнала может осуществляться с использованием предсказания между изображениями с компенсацией движения. Цифровое видео без сжатия может включать в себя последовательность изображений, каждое из которых имеет пространственный размер, например, 1920 х 1080 отсчетов яркости и связанных с ними отсчетов цветности. Последовательность изображений может иметь фиксированную или переменную частоту смены изображений (неформально также называемую частотой кадров), например, 60 изображений в секунду, или 60 Гц. Видео без сжатия предъявляет значительные требования к битовой скорости. Например, видео 1080р60 4:2:0 с 8 битами на отсчет (разрешение отсчетов яркости 1920x1080 при частоте кадров 60 Гц) требует полосы около 1,5 Гбит/с. Час такого видео требует объема памяти более 600 ГБ.
[0020] Компенсация движения может быть методом сжатия с потерями, а также методом, при котором блок данных отсчетов из предыдущего восстановленного изображения или его части (опорное изображение) после его перемещения в направлении, указанном вектором движения (далее ВД (MV, motion vector)), используется для предсказания заново восстановленного изображения или его части. В ряде случаев опорное изображение может соответствовать восстанавливаемому изображению. У ВД может быть два измерения, X и Y, или три измерения. Третье измерение - показатель используемого опорного изображения (последнее косвенно может быть временным измерением).
[0021] В некоторых методах видеокомпрессии ВД, применяемый в определенной области данных отсчетов, можно предсказывать из других ВД, например, из тех, которые относятся к другой области данных отсчетов, примыкающей к восстанавливаемой, и предшествуют этому ВД в порядке декодирования. Такой подход может значительно сократить количество данных, необходимых для кодирования ВД, сокращая тем самым избыточность и увеличивая сжатие. Предсказание ВД может быть эффективным. Например, при кодировании входного видеосигнала с камеры (несжатого видео) существует статистическая вероятность перемещения областей (которые превышают область применения единичного ВД) в одном направлении и, таким образом, в некоторых случаях возможно предсказание с помощью идентичного вектора движения из соседней области ВД. В итоге обнаруженный в заданной области ВД аналогичен или похож на ВД, предсказанный из соседних ВД, который, в свою очередь, может быть представлен после энтропийного кодирования в меньшем количестве битов, чем при прямом кодировании ВД. В некоторых случаях предсказание ВД может быть примером сжатия сигнала (ВД) без потерь, полученного из первоначального сигнала (потока отсчетов). В других случаях предсказание ВД может проходить с потерями, например, из-за ошибок округления при подсчете предсказателя по нескольким соседним ВД.
[0022] Различные механизмы предсказания ВД описаны в H.265/HEVC (ITU-T Rec. Н.265, "Высокоэффективное видеокодирование", декабрь, 2016 г.). Из множества механизмов предсказания ВД, предлагаемых Н.265, в данном документе представлен метод "пространственного слияния".
[0023] На фиг. 1D текущий блок (101) включает отсчеты, обнаруженные кодером в ходе поиска движения, предсказываемого из предыдущего блока идентичного размера с частичным смещением. Вместо кодирования этого ВД напрямую его можно получить из метаданных одного или более опорных изображений, используя ВД одного из пяти соседних отсчетов - А0, А1 и В0, B1, В2 (102 - 106 соответственно). При предсказании ВД посредством Н.265 могут использоваться предсказатели одного и того же опорного изображения, применяемого соседним блоком. Порядок составления списка кандидатов может быть следующим: А0 → В0 → В1 → А1 → В2.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0024] Согласно иллюстративному варианту осуществления, способ декодирования видео осуществляется кодером видео. Способ включает прием битового потока кодированного видео, включая текущее изображение. Далее выполняют обратное квантование на текущем блоке, включенном в текущее изображение. После обратного квантования выполняют обратное преобразование на текущем блоке. Далее, после обратного преобразования на текущем блоке, осуществляется предсказание с установлением исполнения или неисполнения предварительно заданного условия. При установлении выполнения предварительно заданного условия на текущем блоке осуществляется обратное цветовое преобразование.
[0025] Согласно иллюстративному варианту осуществления, видеодекодер для декодирования видео, включая схему обработки, настроен на получение кодированного видеопотока, включая текущее изображение. Далее схема обработки настраивается на выполнение обратного квантования на текущем блоке текущего изображения. После обратного квантования на текущем блоке схема обработки настраивается на обратное преобразование на текущем блоке. После обратное преобразования на текущем блоке схема обработки настраивается на предсказание на текущем блоке. После предсказания на текущем блоке схема обработки настраивается на установление выполнения (невыполнения) предварительно заданного условия. По установлении выполнения предварительно заданного условия схема обработки настраивается на обратное цветовое преобразование на текущем блоке.
[0026] Согласно иллюстративному варианту осуществления, машиночитаемый носитель информации хранит инструкции, которые при их исполнении процессором видеокодера заставляют видеокодер выполнять процедуру получения кодированного видеопотока с участием текущего изображения. Далее выполняют обратное квантование на текущем блоке текущего изображения. После обратного квантования выполняют обратное преобразование на текущем блоке. После обратного преобразования выполняют предсказание на текущем блоке. После предсказания на текущем блоке выполняют установление выполнения или невыполнения предварительно заданного условия. По установлении выполнения предварительно заданного условия на текущем блоке осуществляется обратное цветовое преобразование.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0027] Дополнительные особенности, характер и различные преимущества раскрытого изобретения будут понятны из нижеследующего подробного описания и прилагаемых чертежей, на которых:
[0028] фиг. 1А - схема иллюстративного подмножества режимов внутреннего предсказания;
[0029] фиг. 1В - схема направлений внутреннего предсказания.
[0030] фиг. 1С - схема направлений внутреннего предсказания.
[0031] фиг. 1D - схема текущего блока и его окружающих кандидатов для пространственного слияния в одном примере.
[0032] фиг. 2 - упрощенная блок-схема системы связи (200) в соответствии с вариантом осуществления.
[0033] фиг. 3 - упрощенная блок-схема системы связи (300) в соответствии с вариантом осуществления.
[0034] фиг. 4 - упрощенная блок-схема декодера в соответствии с вариантом осуществления.
[0035] фиг. 5 - упрощенная блок-схема кодера в соответствии с вариантом осуществления.
[0036] фиг. 6 - блок-схема кодера в соответствии с другим вариантом осуществления.
[0037] фиг. 7 - блок-схема декодера в соответствии с другим вариантом осуществления.
[0038] фиг. 8А - деление блоков в соответствии с вариантом осуществления.
[0039] фиг. 8В дерево деления блоков в соответствии с вариантом осуществления.
[0040] фиг. 9А - деление вертикального центрально-бокового тернарного дерева в соответствии с вариантом осуществления.
[0041] фиг. 9В - деление горизонтального центрально-бокового тернарного дерева в соответствии с вариантом осуществления.
[0042] фиг. 10A-10D - различные цветовые форматы в соответствии с вариантами осуществления.
[0043] фиг. 11 - пример кодера в соответствии с вариантом осуществления.
[0044] фиг. 12 - пример декодера в соответствии с вариантом осуществления.
[0045] фиг. 13 - прямая линия между минимальным и максимальным значением яркости в соответствии с вариантом осуществления.
[0046] фиг. 14А и 14В - положения отсчетов для получения α and β в LT_CCLM в соответствии с вариантом осуществления.
[0047] фиг. 15А и 15В - положения отсчетов для получения α и β в Т_CCLM в соответствии с вариантом осуществления.
[0048] фиг. 16А и 16В - положения отсчетов для получения α и β в L_CCLM в соответствии с вариантом осуществления.
[0049] фиг. 17 - пример классификации соседних отсчетов в две группы в соответствии с вариантом осуществления.
[0050] фиг. 18 - схема кодера и декодера в соответствии с вариантом осуществления.
[0051] фиг. 19 - схема варианта осуществления работы кодера.
[0052] фиг. 20 - схема варианта осуществления работы декодера.
[0053] фиг. 21 - схема компьютерной системы в соответствии с вариантом осуществления.
ПОДРОБНОЕ ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
[0054] На фиг. 2 показана упрощенная блок-схема системы связи (200) согласно варианту осуществления настоящего изобретения. Система связи (200) включает в себя множество оконечных устройств, которые могут осуществлять связь друг с другом, например, через сеть (250). Например, система связи (200) включает в себя первую пару оконечных устройств (210) и (220), соединенных между собой через сеть (250). В примере, приведенном на фиг. 2, первая пара оконечных устройств (210) и (220) осуществляет однонаправленную передачу данных. Например, оконечное устройство (210) может кодировать видеоданные (например, поток видеоизображений, захваченных оконечным устройством (210)) для передачи в другое оконечное устройство (220) через сеть (250). Кодированные видеоданные могут передаваться в форме одного или более битовых потоков кодированного видео. Оконечное устройство (220) может принимать кодированные видеоданные из сети (250), декодировать кодированные видеоданные для восстановления видеоизображений и отображения видеоизображений согласно восстановленным видеоданным. Однонаправленная передача данных может быть свойственна приложениям служб массовой информации и т.п.
[0055] В другом примере, система связи (200) включает в себя вторую пару оконечных устройств (230) и (240), которые осуществляют двунаправленную передачу кодированных видеоданных, которые могут возникать, например, в ходе видеоконференцсвязи. Для двунаправленной передачи данных, в порядке примера, каждое оконечное устройство из оконечных устройств (230) и (240) может кодировать видеоданные (например, поток видеоизображений, захваченных оконечным устройством) для передачи в другое оконечное устройство из оконечных устройств (230) и (240) через сеть (250). Каждое оконечное устройство из оконечных устройств (230) и (240) также может принимать кодированные видеоданные, передаваемые другим оконечным устройством из оконечных устройств (230) и (240), и может декодировать кодированные видеоданные для восстановления видеоизображений и отображать видеоизображения на доступном устройстве отображения согласно восстановленным видеоданным.
[0056] В примере, приведенном на фиг. 2, оконечные устройства (210), (220), (230) и (240) могут быть проиллюстрированы как серверы, персональные компьютеры и смартфоны, но это не ограничивает принципы настоящего изобретения. Варианты осуществления настоящего изобретения находят применение для портативных компьютеров, планшетных компьютеров, медиаплееров и/или специального оборудования для видеоконференцсвязи. Сеть (250) представляет любое количество сетей, которые переносят кодированные видеоданные между оконечными устройствами (210), (220), (230) и (240), включая, например, проводные и/или беспроводные сети связи. Сеть связи (250) позволяет обмениваться данными в режиме канальной коммутации и/или пакетной коммутации. Иллюстративные сети включают в себя телекоммуникационные сети, локальные сети, глобальные сети и/или интернет. В целях настоящего рассмотрения, архитектура и топология сети (250) могут не иметь отношения к настоящему изобретению, если конкретно не указаны ниже.
[0057] На фиг. 3 показано, в порядке примера применения раскрытого изобретения, размещение видеокодера и видеодекодера в окружении потоковой передачи. Раскрытое изобретение может быть в равной степени применимо к другим применениям обработки видео, включая, например, видеоконференцсвязь, цифровое телевидение, хранение сжатого видео на цифровых носителях, в том числе CD, DVD, карте памяти и т.п., и т.д.
[0058] Система потоковой передачи может включать в себя подсистему захвата (313), которая может включать в себя источник видеосигнала (301), например, цифровую камеру, создающую, например, поток видеоизображений (302), не подвергнутых сжатию. Например, поток видеоизображений (302) включает в себя отсчеты, взятые цифровой камерой. Поток видеоизображений (302), изображенный жирной линией, чтобы подчеркнуть большой объем данных по сравнению с кодированными видеоданными (304) (или битовыми потоками кодированного видео), может обрабатываться электронным устройством (320), которое включает в себя видеокодер (303), подключенный к источнику видеосигнала (301). Видеокодер (303) может включать в себя оборудование, программное обеспечение или их комбинацию для обеспечения или реализации аспектов раскрытого изобретения, как более подробно описано ниже. Кодированные видеоданные (304) (или битовый поток кодированного видео (304)), изображенные тонкой линией, чтобы подчеркнуть меньший объем данных по сравнению с потоком видеоизображений (302), могут храниться на потоковом сервере (305) для использования в будущем. Одна или более клиентских подсистем потоковой передачи, например, клиентские подсистемы (306) и (308) на фиг. 3, могут осуществлять доступ к потоковому серверу (305) для извлечения копий (307) и (309) кодированных видеоданных (304). Клиентская подсистема (306) может включать в себя видеодекодер (310), например, в электронном устройстве (330). Видеодекодер (310) декодирует входящую копию (307) кодированных видеоданных и создает исходящий поток видеоизображений (311), который может визуализироваться на дисплее (412) (например, отображающем экране) или другом устройстве визуализации (не показано). В некоторых системах потоковой передачи, кодированные видеоданные (304), (307) и (309) (например, битовые потоки видео) могут кодироваться согласно тем или иным стандартам кодирования/сжатия видео. Примеры этих стандартов включают в себя ITU-Т Recommendation Н.265. Например, разрабатывается стандарт видеокодирования под официальным названием "универсальное видеокодирование" (VVC, Versatile Video Coding). Раскрытое изобретение может использоваться в контексте VVC.
[0059] Заметим, что электронные устройства (320) и (330) могут включать в себя другие компоненты (не показаны). Например, электронное устройство (320) может включать в себя видеодекодер (не показан), и электронное устройство (330) также может включать в себя видеокодер (не показан).
[0060] На фиг. 4 показана блок-схема видеодекодера (410) согласно варианту осуществления настоящего изобретения. Видеодекодер (410) может входить в состав электронного устройства (430). Электронное устройство (430) может включать в себя приемник (431) (например, приемные схемы). Видеодекодер (410) может использоваться вместо видеодекодера (310) в примере, приведенном на фиг. 3.
[0061] Приемник (431) может принимать одну или более кодированных видеопоследовательностей для декодирования видеодекодером (410); в том же или другом варианте осуществления, по одной кодированной видеопоследовательности за раз, где декодирование каждой кодированной видеопоследовательности не зависит от других кодированных видеопоследовательностей. Кодированная видеопоследовательность может приниматься из канала (401), который может быть аппаратной/программной линией связи с запоминающим устройством, где хранятся кодированные видеоданные. Приемник (431) может принимать кодированные видеоданные с другими данными, например, кодированными аудиоданными и/или вспомогательными потоками данных, которые могут ретранслироваться на соответствующие использующие их объекты (не показаны). Приемник (431) может отделять кодированную видеопоследовательность от других данных. Для борьбы с джиттером сети, буферная память (415) может быть подключена между приемником (431) и энтропийным декодером / анализатором (420) (далее "анализатором (420)"). В некоторых вариантах применения буферная память (415) входит в состав видеодекодера (410). В других она может не входить в состав видеодекодера (410) (не показан). В прочих вариантах может существовать буферная память (не показана) вне видеодекодера (410), например, для борьбы с джиттером сети, помимо другой буферной памяти (415) в составе видеодекодера (410), например, для управления хронированием проигрывания. Когда приемник (431) принимает данные от устройства хранения/ретрансляции с достаточной полосой и управляемостью или из изосинхронной сети, буферная память (415) может быть не нужна или может быть мала. Для использования в пакетных сетях наилучшей попытки, например, Интернете, буферная память (415) может требоваться, может быть сравнительно большой и может иметь преимущественно адаптивный размер, и по меньшей мере частично может быть реализована в операционной системе или аналогичных элементах (не показаны) вне видеодекодера (410).
[0062] Видеодекодер (410) может включать в себя анализатор (420) для реконструкции символов (421) из кодированной видеопоследовательности. Категории этих символов включают в себя информацию, используемую для управления работой видеодекодера (410), и возможно информацию для управления устройством визуализации, например, устройством визуализации (412) (например, отображающим экраном), которое не является частью электронного устройства (430), а может быть подключено к электронному устройству (430), как показано на фиг. 4. Информация управления для устройств(а) визуализации может представлять собой сообщения информации дополнительного улучшения (SEI, Supplemental Enhancement Information) или фрагменты набора параметров информации пригодности видео (VUI, Video Usability Information) (не показаны). Анализатор (420) может анализировать / энтропийно декодировать принятую кодированную видеопоследовательность. Кодирование кодированной видеопоследовательности может соответствовать технологии или стандарту видеокодирования и может следовать различным принципам, в том числе кодированию с переменной длиной серии, кодированию по Хаффману, арифметическому кодированию с контекстной чувствительностью или без нее и т.д. Анализатор (420) может извлекать из кодированной видеопоследовательности набор параметров подгруппы для по меньшей мере одной из подгрупп пикселей в видеодекодере на основании по меньшей мере одного параметра, соответствующего группе. Подгруппы могут включать в себя группы изображений (GOP, Groups of Pictures), изображения, тайлы, слайсы, макроблоки, единицы кодирования (CU, Coding Units), блоки, единицы преобразования (TU, Transform Units), единицы предсказания (PU, Prediction Units) и т.д. Анализатор (420) также может извлекать из кодированной видеопоследовательности информацию, например, коэффициенты преобразования, значения параметров квантователя, векторы движения и т.д.
[0063] Анализатор (420) может осуществлять операцию энтропийного декодирования / анализа видеопоследовательности, принятой из буферной памяти (415), для создания символов (421).
[0064] Для реконструкции символов (421) могут использоваться несколько разных модулей в зависимости от типа кодированного видеоизображения или его частей (например: интер- и интра-изображения, интер- и интра-блока) и других факторов. Какие модули используются, и как, может определяться информацией управления подгруппами, выделенной из кодированной видеопоследовательности анализатором (420). Поток такой информации управления подгруппами между анализатором (420) и множественными модулями для простоты в дальнейшем не показан.
[0065] Помимо ранее упомянутых функциональных блоков, видеодекодер (410) может принципиально подразделяться на несколько функциональных модулей, как описано ниже. В практической реализации, работающей в условиях коммерческих ограничений, многие из этих модулей тесно взаимодействуют друг с другом и могут, по меньшей мере частично, встраиваться один в другой. Однако в целях описания раскрытого изобретения уместно принципиальное подразделение на нижеперечисленные функциональные модули.
[0066] Первым модулем является модуль масштабирования / обратного преобразования (451). Модуль масштабирования / обратного преобразования (451) принимает квантованный коэффициент преобразования, а также информацию управления, включающую в себя используемое преобразование, размер блока, коэффициент квантования, матрицы масштабирования квантования и т.д. в качестве символа(ов) (421) от анализатора (420). Модуль масштабирования / обратного преобразования (451) может выводить блоки, содержащие значения отсчетов, которые можно вводить в агрегатор (455).
[0067] В ряде случаев, выходные отсчеты блока масштабирования / обратного преобразования (451) могут относиться к внутренне-кодированному блоку; то есть к блоку, который не использует предсказанную информацию из ранее реконструированных изображений, но может использовать предсказанную информацию из ранее реконструированных частей текущего изображения. Такая предсказанная информация может обеспечиваться модулем предсказания внутри изображения (452). В ряде случаев модуль предсказания внутри изображения (452) генерирует блок такого же размера и формы как блок, подлежащий реконструкции, с использованием информации ранее реконструированного окружения, извлеченной из буфера текущего изображения (458). Буфер текущего изображения (458) буферизует, например, частично реконструированное текущее изображение и/или полностью реконструированное текущее изображение. Агрегатор (455) в ряде случаев добавляет для каждого отсчета информацию предсказания, генерированную модулем внутреннего предсказания (452), в информацию выходных отсчетов, обеспеченную модулем масштабирования / обратного преобразования (451).
[0068] В других случаях выходные отсчеты модуля масштабирования / обратного преобразования (451) могут относиться к внутренне кодированному блоку, возможно, с компенсацией движения. В таком случае, модуль предсказания с компенсацией движения (453) может осуществлять доступ к памяти опорных изображений (457) для извлечения отсчетов, используемых для предсказания. После применения компенсации движения к извлеченным отсчетам в соответствии с символами (421), относящимися к блоку, эти отсчеты могут добавляться агрегатором (455) к выходному сигналу модуля масштабирования / обратного преобразования (451) (в этом случае именуемому остаточными отсчетами или остаточным сигналом) для генерации информации выходных отсчетов. Адреса в памяти опорных изображений (457), откуда модуль предсказания с компенсацией движения (453) извлекает предсказанные отсчеты, могут регулироваться векторами движения, доступными модулю предсказания с компенсацией движения (453), в форме символов (421), которые могут иметь, например, компоненты X, Y и опорного изображения. Компенсация движения также может включать в себя интерполяцию значений отсчетов, извлеченных из памяти опорных изображений (457), когда используются точные векторы движения под-отсчетов, механизмы предсказания векторов движения и т.д.
[0069] К выходным отсчетам агрегатора (455) можно применять различные методы контурной фильтрации в модуле контурного фильтра (456). Технологии сжатия видео могут включать в себя технологии деблокирующего фильтра под управлением параметров, включенных в кодированную видеопоследовательность (также именуемую битовым потоком кодированного видео) и становиться доступными модулю контурного фильтра (456) в качестве символов (421) от анализатора (420), но также могут реагировать на метаинформацию, полученную в ходе декодирования предыдущих (в порядке декодирования) частей кодированного изображения или кодированной видеопоследовательности, а также реагировать на ранее реконструированные и подвергнутые контурной фильтрации значения отсчетов.
[0070] Модуль контурного фильтра (456) может выдавать поток отсчетов, который может поступать на устройство визуализации (412), а также сохраняться в памяти опорных изображений (457) для использования в будущем предсказании между изображениями.
[0071] Некоторые кодированные изображения, будучи полностью реконструированы, могут использоваться в качестве опорных изображений для будущего предсказания. Например, когда кодированное изображение, соответствующее текущему изображению, полностью реконструировано, и кодированное изображение идентифицировано как опорное изображение (например, анализатором (420)), буфер текущего изображения (458) может становиться частью памяти опорных изображений (457), и свежий буфер текущего изображения может повторно выделяться до начала реконструкции следующего кодированного изображения.
[0072] Видеодекодер (410) может осуществлять операции декодирования согласно заранее заданной технологии сжатия видео, например, по стандарту ITU-T Rec. Н.265. Кодированная видеопоследовательность может согласовываться с синтаксисом, заданным используемой/ым технологией или стандартом сжатия видео, в том смысле, что кодированная видеопоследовательность может придерживаться как синтаксиса технологии или стандарта сжатия видео, так и профилей, задокументированных в технологии или стандарте сжатия видео. В частности, профиль может выбирать некоторые инструменты как инструменты, доступные для использования только под этим профилем, из всех инструментов, доступных в технологии или стандарте сжатия видео. Также для согласованности может быть необходимо, чтобы сложность кодированной видеопоследовательности оставалась в границах, заданных уровнем технологии или стандарта сжатия видео. В ряде случаев, уровни ограничивают максимальный размер изображения, максимальную частоту кадров, максимальную частоту отсчетов для реконструкции (измеряемую, например, в мегаотсчетах в секунду), максимальный размер опорного изображения и т.д. Пределы, установленные уровнями, в ряде случаев могут дополнительно ограничиваться спецификациями гипотетического эталонного декодера (HRD, Hypothetical Reference Decoder) и метаданными для управления буфером HRD, сигнализируемыми в кодированной видеопоследовательности.
[0073] Согласно варианту осуществления, приемник (431) может принимать дополнительные (избыточные) данные с кодированным видео. Дополнительные данные могут быть включены как часть кодированной(ых) видеопоследовательности(ей). Дополнительные данные могут использоваться видеодекодером (410) для правильного декодирования данных и/или более точной реконструкции исходных видеоданных. Дополнительные данные могут представлять собой, например, слои улучшения во времени, пространстве или для отношения сигнал/шум (SNR, signal noise ratio), избыточные слайсы, избыточные изображения, коды прямой коррекции ошибок и т.д.
[0074] На фиг. 5 показана блок-схема видеокодера (503) согласно варианту осуществления настоящего изобретения. Видеокодер (503) входит в состав электронного устройства (520). Электронное устройство (520) включает в себя передатчик (540) (например, передающую схему). Видеокодер (503) может использоваться вместо видеокодера (303) в примере, приведенном на фиг. 3.
[0075] Видеокодер (503) может принимать отсчеты видео от источника видеосигнала (501) (который не входит в состав электронного устройства (520) в примере, показанном на фиг. 5), который может захватывать видеоизображение(я), подлежащее(ие) кодированию видеокодером (503). В другом примере источник видеосигнала (501) входит в состав электронного устройства (520).
[0076] Источник видеосигнала (501) может обеспечивать исходную видеопоследовательность, подлежащую кодированию видеокодером (503) в форме потока отсчетов цифрового видео любой подходящей битовой глубины (например: 8 бит, 10 бит, 12 бит, …), любого цветового пространства (например, ВТ.601 Y CrCB, RGB, …), и любой подходящей структуры дискретизации (например, Y CrCb 4:2:0, Y CrCb 4:4:4). В системе службы массовой информации источником видеосигнала (501) может быть запоминающее устройство, где хранится ранее подготовленное видео. В системе видеоконференцсвязи источником видеосигнала (501) может быть камера, которая захватывает информацию локального изображения как видеопоследовательность. Видеоданные могут обеспечиваться как множество отдельных изображений, которые создают ощущение движения при наблюдении в последовательности. Сами изображения могут быть организованы как пространственный массив пикселей, где каждый пиксель может содержать один или более отсчетов в зависимости от используемых структуры дискретизации, цветового пространства и т.д. Специалисту в данной области техники нетрудно понять соотношение между пикселями и отсчетами. Нижеследующее описание посвящено отсчетам.
[0077] Согласно варианту осуществления, видеокодер (503) может кодировать и сжимать изображения исходной видеопоследовательности в кодированную видеопоследовательность (543) в реальном времени или с учетом любых других временных ограничений, налагаемых применением. Установление надлежащей скорости кодирования является одной из функций контроллера (550). В некоторых вариантах осуществления контроллер (550) управляет другими функциональными модулями, как описано ниже, и функционально подключен к другим функциональным модулям. Подключение для простоты не показано. Параметры, установленные контроллером (550), могут включать в себя параметры, связанные с регулировкой частоты (пропуск изображения, квантователь, значение лямбда, применяемое при оптимизация скорости-искажения, …), размер изображения, схему групп изображений (GOP, group of pictures), максимальную зону поиска вектора движения и т.д. Контроллер (550) может быть выполнен с возможностью иметь другие подходящие функции, относящиеся к видеокодеру (503), оптимизированному для той или иной конструкции системы.
[0078] В некоторых вариантах осуществления видеокодер (503) выполнен с возможностью работать в петле кодирования. В качестве очень упрощенного описания, в порядке примера, петля кодирования может включать в себя исходный кодер (530) (например, отвечающий за создание символов, например, потока символов, на основе входного изображения, подлежащего кодированию, и опорного(ых) изображения(ий)) и (локальный) декодер (533), встроенный в видеокодер (503). Декодер (533) реконструирует символы для создания данных отсчетов, аналогично тому, как это делал бы (удаленный) декодер (поскольку любое сжатие между символами и битовым потоком кодированного видео происходит без потерь в технологиях сжатия видео, рассматриваемых в раскрытом изобретении). Реконструированный поток отсчетов (данные отсчетов) поступают в память опорных изображений (534). Поскольку декодирование потока символов приводит к результатам, с точностью до бита, не зависящим от положения декодера (локального или удаленного), содержимое памяти опорных изображений (534) также будет одинаковым с точностью до бита для локального и удаленного кодера. Другими словами, предсказанная часть кодера "видит" в качестве отсчетов опорного изображения точно такие же значения отсчетов, как "видел" бы декодер при использовании предсказания в ходе декодирования. Этот фундаментальный принцип синхронизма опорного изображения (и, в итоге, дрейф, если синхронизм не удается поддерживать, например, вследствие канальных ошибок) используется также в некоторых связанных областях техники.
[0079] "Локальный" декодер (533) может действовать таким же образом, как "удаленный" декодер, например, видеодекодер (410), подробно вышеописанный со ссылкой на фиг. 4. Однако, опять же, согласно фиг. 4, поскольку символы доступны, и кодирование/декодирование символов в кодированную видеопоследовательность энтропийным кодером (545) и анализатором (420) может осуществляться без потерь, части энтропийного декодирования видеодекодера (410), включающие в себя буферную память (415) и анализатор (420), могут быть не полностью реализованы в локальном декодере (533).
[0080] При этом можно сделать вывод, что любая технология декодирования, присутствующая в декодере, за исключением анализа/энтропийного декодирования, также обязательно должна присутствовать, по существу в идентичной функциональной форме, в соответствующем кодере. По этой причине раскрытое изобретение сконцентрировано на работе декодера. Описание технологий кодирования может быть сокращено, поскольку они являются обратными подробно описанным технологиям декодированная. Только в некоторых областях требуется более детальное описание, которое приведено ниже.
[0081] Согласно некоторым примерам, в ходе работы исходный кодер (530) может осуществлять кодирование с предсказанием и компенсацией движения, при котором входное изображение кодируется с предсказанием на основании одного или более ранее кодированных изображений из видеопоследовательности, указанных как "опорные изображения". Таким образом, машина кодирования (532) кодирует различия между пиксельными блоками входного изображения и пиксельными блоками опорного изображения(й), которое(ые) может(ут) выбираться в качестве предсказанной(ых) ссылки(ок) на входное изображение.
[0082] Локальный видеодекодер (533) может декодировать кодированные видеоданные изображений, которые могут быть указаны как опорные изображения, на основе символов, созданных исходным кодером (530). Операции машины кодирования (532) могут быть преимущественно процессами с потерями. Когда кодированные видеоданные могут декодироваться в видеодекодере (не показан на фиг. 5), реконструированная видеопоследовательность обычно может представлять собой копию исходной видеопоследовательности с некоторыми ошибками. Локальный видеодекодер (533) дублирует процессы декодирования, которые могут осуществляться видеодекодером на опорных изображениях, и может предписывать сохранение реконструированных опорных изображений в кэш-памяти (534) опорных изображений. Таким образом, видеокодер (503) может локально сохранять копии реконструированных опорных изображений, имеющие такое же содержимое, как реконструированные опорные изображения, которые будут получены видеодекодером на стороне приемника (в отсутствие ошибок передачи).
[0083] Предсказатель (535) может осуществлять поиски предсказания для машины кодирования (532). Таким образом, для нового изображения, подлежащего кодированию, предсказатель (535) может искать в памяти опорных изображений (534) данные отсчетов (в качестве кандидатов на роль опорных пиксельных блоков) или те или иные метаданные, например, векторы движения опорного изображения, формы блоков и т.д., которые могут служить надлежащей ссылкой для предсказания новых изображений. Предсказатель (535) может работать на основе "блоки отсчетов -пиксельные блоки", чтобы находить надлежащие ссылки для предсказания. В ряде случаев, согласно результатам поиска, полученным предсказателем (535), входное изображение может иметь ссылки для предсказания, извлеченные из множества опорных изображений, хранящихся в памяти опорных изображений (534).
[0084] Контроллер (550) может управлять операциями кодирования исходного кодера (530), включая, например, установление параметров и параметров подгруппы, используемых для кодирования видеоданных.
[0085] Выходной сигнал всех вышеупомянутых функциональных модулей может подвергаться энтропийному кодированию в энтропийном кодере (545). Энтропийный кодер (545) преобразует символы, сгенерированные различными функциональными модулями, в кодированную видеопоследовательность путем сжатия символов без потерь согласно технологиям, например, кодирования по Хаффману, кодирования с переменной длиной серии, арифметического кодирования и т.д.
[0086] Передатчик (540) может буферизовать кодированную(ые) видеопоследовательность(и), созданную энтропийным кодером (545), для подготовки к передаче через канал связи (560), который может быть аппаратной/программной линией связи с запоминающим устройством, где хранятся кодированные видеоданные. Передатчик (540) может объединять кодированные видеоданные от видеокодера (503) с другими данными, подлежащими передаче, например, кодированными аудиоданными и/или вспомогательными потоками данных (источники не показаны).
[0087] Контроллер (550) может управлять работой видеокодера (503). В ходе кодирования контроллер (550) может назначать каждому кодированному изображению тот или иной тип кодированного изображения, который может определять методы кодирования, применимые к соответствующему изображению. Например, изображениям часто могут назначаться следующие типы изображения:
[0088] Интра-изображение (I-изображение), которое можно кодировать и декодировать без использования какого-либо другого изображения в последовательности как источника предсказания. Некоторые видеокодеки допускают разные типы интра-изображений, включая, например, изображения в формате независимого обновления декодера ("IDR", Independent Decoder Refresh). Специалисту в данной области техники известны разновидности 1-изображений и их соответствующие варианты применения и особенности.
[0089] Предсказанное изображение (Р-изображение), которое можно кодировать и декодировать с использованием внутреннего предсказания или внешнего предсказания с использованием не более одного вектора движения и опорного индекса для предсказания значений отсчетов каждого блока.
[0090] Двунаправленно-предсказанное изображение (В-изображение), которое можно кодировать и декодировать с использованием внутреннего предсказания или внешнего предсказания посредством не более двух векторов движения и опорных индексов для предсказания значений отсчетов каждого блока. Аналогично, мультипредсказанные изображения могут использовать более двух опорных изображений и связанные метаданные для реконструкции единого блока.
[0091] Исходные изображения обычно допускают пространственное разделение на множество блоков отсчетов (например, блоки 4x4, 8x8, 4x8 или 16x16 отсчетов каждый) и кодирование на поблочной основе (блок за блоком). Блоки могут кодироваться предиктивно со ссылкой на другие (ранее кодированные) блоки, определенные назначением кодирования, применяемым к соответствующим изображениям этих блоков. Например, блоки I-изображений могут кодироваться без предсказания или с предсказанием со ссылкой на ранее кодированные блоки того же изображения (пространственным предсказанием или внутренним предсказанием). Пиксельные блоки Р-изображений могут кодироваться с предсказанием, посредством пространственного предсказания или временного предсказания со ссылкой на одно ранее кодированное опорное изображение. Блоки В-изображений могут кодироваться с предсказанием, посредством пространственного предсказания или временного предсказания со ссылкой на одно или два ранее кодированных опорных изображения.
[0092] Видеокодер (503) может осуществлять операции кодирования согласно заранее заданной технологии или стандарту видеокодирования, например, ITU-T Rec. Н.265. В своей работе видеокодер (503) может осуществлять различные операции сжатия, в том числе операции предиктивного кодирования, которые используют временные и пространственные избыточности во входной видеопоследовательности. Поэтому кодированные видеоданные могут согласовываться с синтаксисом, заданным используемой технологией или стандартом видеокодирования.
[0093] Согласно варианту осуществления, передатчик (540) может передавать дополнительные данные с кодированным видео. Исходный кодер (530) может включать такие данные как часть кодированной видеопоследовательности. Дополнительные данные могут содержать временные/пространственные/SNR слои улучшения, другие формы избыточных данных, например, избыточные изображения и слайсы, сообщения SEI, фрагменты набора параметров VUI и т.д.
[0094] Видео может захватываться как множество исходных изображений (видеоизображений) во временной последовательности. Предсказание внутри изображения (часто сокращенно именуемое внутренним предсказанием) использует пространственную корреляцию в данном изображении, а предсказание между изображениями использует (временную или иную) корреляцию между изображениями. Например, конкретное изображение, подлежащее кодированию/декодированию, которое именуется текущим изображением, разбивается на блоки. Когда блок в текущем изображении аналогичен опорному блоку в ранее кодированном и все еще буферизованном опорном изображении в видео, блок в текущем изображении может кодироваться вектором, который именуется вектором движения. Вектор движения указывает на опорный блок в опорном изображении и может иметь третье измерение, идентифицирующее опорное изображение в случае использования множественных опорных изображений.
[0095] В некоторых вариантах осуществления, метод двойного предсказания может использоваться в предсказании между изображениями. Согласно методу двойного предсказания, используются два опорных изображения, например, первое опорное изображение и второе опорное изображение, которые оба предшествуют в порядке декодирования текущему изображению в видео (но могут быть в прошлом и будущем, соответственно, в порядке отображения). Блок в текущем изображении может кодироваться первым вектором движения, который указывает на первый опорный блок в первом опорном изображении, и вторым вектором движения, который указывает на второй опорный блок во втором опорном изображении. Блок может предсказываться комбинацией первого и второго опорного блока.
[0096] Дополнительно, метод режима объединения может использоваться в предсказании между изображениями для повышения эффективности кодирования.
[0097] Согласно некоторым вариантам осуществления изобретения, предсказания, например, предсказания между изображениями и предсказания внутри изображения, осуществляются поблочно. Например, согласно стандарту HEVC, изображение в последовательности видеоизображений разбивается на единицы дерева кодирования (CTU, coding tree units) для сжатия, CTU в изображении имеют одинаковый размер, например 64x64 пикселя, 32x32 пикселя или 16x16 пикселей. В общем случае CTU включает в себя три блока дерева кодирования (СТВ, coding tree blocks), а именно, один СТВ яркости и два СТВ цветности. Каждый CTU может рекурсивно делиться квадрадеревом на одну или несколько единиц кодирования (CU). Например, CTU размером 64x64 пикселя может делиться на одну CU размером 64x64 пикселя или 4 CU размером 32x32 пикселя или 16 CU размером 16x16 пикселей. Например, каждая CU анализируется для определения типа предсказания для CU, например, типа внешнего предсказания или типа внутреннего предсказания. CU делится на одну или более единиц предсказания (PU, prediction unit) в зависимости от временного и/или пространственного предсказания. В целом, каждая PU включает в себя блок предсказания (РВ, prediction block) яркости и два РВ цветности. Согласно варианту осуществления, операция предсказания при кодировании (кодировании/декодировании) осуществляется в единице блока предсказания. Если использовать блок предсказания яркости в качестве примера блока предсказания, блок предсказания включает в себя матрицу значений (например, значений яркости) для пикселей, например, 8x8 пикселей, 16x16 пикселей, 8x16 пикселей, 16x8 пикселей и т.п.
[0098] На фиг. 6 показана схема видеокодера (603) согласно другому варианту осуществления изобретения. Видеокодер (603) выполнен с возможностью приема блока обработки (например, блока предсказания) значений отсчетов в текущем видеоизображении в последовательности видеоизображений и кодирования блока обработки в кодированное изображение, которое составляет часть кодированной видеопоследовательности. Например, видеокодер (603) используется вместо видеокодера (303) в примере, приведенном на фиг. 3.
[0099] В примере HEVC видеокодер (603) принимает матрицу значений отсчетов для блока обработки, например, блока предсказания 8x8 отсчетов и т.п. Видеокодер (603) определяет, наилучшим ли образом кодируется блок обработки в интра-режиме, интеррежиме или режиме двойного предсказания с использованием, например, оптимизации скорость-искажения. Когда блок обработки подлежит кодированию в интра-режиме, видеокодер (603) может использовать метод внутреннего предсказания для кодирования блока обработки в кодированное изображение; и когда блок обработки подлежит кодированию в интер-режиме или режиме двойного предсказания, видеокодер (603) может использовать метод внешнего предсказания или двойного предсказания, соответственно, для кодирования блока обработки в кодированное изображение. В некоторых технологиях видеокодирования, режим объединения может быть подрежимом предсказания между изображениями, где вектор движения выводится из одного или более предсказателей вектора движения без привлечения кодированного компонента вектора движения вне предсказателей. В некоторых других технологиях видеокодирования может присутствовать компонент вектора движения, применимый к данному блоку. В порядке примера, видеокодер (603) включает в себя другие компоненты, например, модуль определения режима (не показан) для определения режима блоков обработки.
[0100] В примере, приведенном на фиг. 6, видеокодер (603) включает в себя интер-кодер (630), интра-кодер (622), вычислитель остатка (623), переключатель (626), кодер остатка (624), общий контроллер (621) и энтропийный кодер (625), соединенные друг с другом как показано на фиг. 6.
[0101] Интер-кодер (630) выполнен с возможностью приема отсчетов текущего блока (например, блока обработки), сравнения блока с одним или более опорными блоками в опорных изображениях (например, с блоками в предыдущих изображениях и более поздних изображениях), генерации информации внешнего предсказания (например, описания избыточной информации согласно методу внутреннего кодирования, векторов движения, информации режима объединения), и вычисления результатов внешнего предсказания (например, блока предсказания) на основании информации внешнего предсказания с использованием любого подходящего метода. В некоторых примерах опорными изображениями являются декодированные опорные изображения, которые декодируются на основе информации кодированного видео.
[0102] Интра-кодер (622) выполнен с возможностью приема отсчетов текущего блока (например, блока обработки), в ряде случаев сравнения блока с блоками, ранее кодированными в том же изображении, генерирования квантованных коэффициентов после преобразования, и в ряде случаев также информации внутреннего предсказания (например, информации направления внутреннего предсказания согласно одному или более методам внутреннего кодирования). В порядке примера, интра-кодер (622) также вычисляет результаты внутреннего предсказания (например, блок предсказания) на основании информации внутреннего предсказания и опорных блоков в том же изображении.
[0103] Общий контроллер (621) выполнен с возможностью определения общих данных управления и управления другими компонентами видеокодера (703) на основе общих данных управления. Например, общий контроллер (621) определяет режим блока и выдает сигнал управления переключателю (626) на основе режима. Например, когда режим является интра-режимом, общий контроллер (621) управляет переключателем (626) для выбора результата интра-режима в целях использования вычислителя остатка (623), и энтропийным кодером (625) для выбора информации внутреннего предсказания и включения информации внутреннего предсказания в битовый поток; и когда режим является интер-режимом, общий контроллер (621) управляет переключателем (626) для выбора результата внешнего предсказания в целях использования вычислителя остатка (623), и энтропийным кодером (625) для выбора и включения информации внешнего предсказания в битовый поток.
[0104] Вычислитель остатка (623) выполнен с возможностью вычисления разности (данных остатка) между принятым блоком и результатами предсказания, выбранными из интра-кодера (622) или интер-кодера (630). Кодер остатка (624) выполнен с возможностью действовать на основе данных остатка для кодирования данных остатка в целях генерации коэффициентов преобразования. Например, кодер остатка (624) выполнен с возможностью преобразования данных остатка из пространственной области в частотную область и генерирования коэффициентов преобразования. Затем коэффициенты преобразования подвергаются обработке квантования для получения квантованных коэффициентов преобразования. В различных вариантах осуществления видеокодер (603) также включает в себя декодер остатка (628). Декодер остатка (628) выполнен с возможностью осуществления обратного преобразования и генерирования декодированных данных остатка. Декодированные данные остатка могут надлежащим образом использоваться интра-кодером (622) и интер-кодером (630). Например, интер-кодер (630) может генерировать декодированные блоки на основе декодированных данных остатка и информации внешнего предсказания, и интра-кодер (622) может генерировать декодированные блоки на основе декодированных данных остатка и информации внутреннего предсказания. Декодированные блоки надлежащим образом обрабатываются для генерации декодированных изображений, и декодированные изображения могут буферизоваться в схеме памяти (не показана) и в некоторых примерах использоваться в качестве опорных изображений.
[0105] Энтропийный кодер (625) выполнен с возможностью форматирования битового потока так, чтобы он включал в себя кодированный блок. Энтропийный кодер (625) выполнен с возможностью включать различную информацию согласно подходящему стандарту, например, стандарту HEVC. Например, энтропийный кодер (625) выполнен с возможностью включать общие данные управления, выбранную информацию предсказания (например, информацию внутреннего предсказания или информацию внешнего предсказания), информацию остатка и другую подходящую информацию в битовый поток. Заметим, что, согласно раскрытому изобретению, при кодировании блока в подрежиме объединения интер-режима или режима двойного предсказания, информация остатка отсутствует.
[0106] На фиг. 7 показана схема видеодекодера (710) согласно другому варианту осуществления изобретения. Видеодекодер (710) выполнен с возможностью приема кодированных изображений, составляющих часть кодированной видеопоследовательности, и декодирования кодированных изображений для генерации реконструированных изображений. Например, видеодекодер (710) используется вместо видеодекодера (310) в примере, приведенном на фиг. 3.
[0107] В примере, приведенном на фиг. 7, видеодекодер (710) включает в себя энтропийный декодер (771), интер-декодер (780), декодер остатка (773), модуль реконструкции (774) и интра-декодер (772), соединенные друг с другом как показано на фиг. 7.
[0108] Энтропийный декодер (771) может быть выполнен с возможностью реконструкции, из кодированного изображения, некоторых символов, которые представляют синтаксические элементы, образующие кодированное изображение. Такие символы могут включать в себя, например, режим кодирования блока (например, интра-режим, интер-режим, режим двойного предсказания, причем последние два в подрежиме объединения или другом подрежиме), информацию предсказания (например, информацию внутреннего предсказания или информацию внешнего предсказания), которая может идентифицировать определенный отсчет или метаданные, используемые для предсказания интра-декодером (772) или интер-декодером (780), соответственно, информацию остатка в форме, например, квантованных коэффициентов преобразования и т.п. Например, когда режим предсказания является режимом внутреннего или двойного предсказания, информация внешнего предсказания поступает на интер-декодер (780); а когда тип предсказания является типом внутреннего предсказания, информация внутреннего предсказания поступает на интра-декодер (772). Информация остатка может подвергаться обратному квантованию и поступать на декодер остатка (773).
[0109] Интер-декодер (780) выполнен с возможностью приема информации внешнего предсказания и генерирования результатов внешнего предсказания на основании информации внешнего предсказания.
[0110] Интра-декодер (772) выполнен с возможностью приема информации внутреннего предсказания и генерирования результатов предсказания на основании информации внутреннего предсказания.
[0111] Декодер остатка (773) выполнен с возможностью осуществления обратного квантования для извлечения деквантованных коэффициентов преобразования и обработки деквантованных коэффициентов преобразования с целью преобразования остатка из частотной области в пространственную область. Декодер остатка (773) также может требовать некоторой информации управления (включать параметр квантователя (QP, Quantizer Parameter)), и эта информация может обеспечиваться энтропийным декодером (771) (путь данных не показан, поскольку это может быть только информация управления малого объема).
[0112] Модуль реконструкции (774) выполнен с возможностью объединения в пространственной области остатка на выходе декодера остатка (773) и результатов предсказания (на выходе модулей внешнего или внутреннего предсказания, в зависимости от ситуации) для формирования реконструированного блока, который может входить в состав реконструированного изображения, которое, в свою очередь, может входить в состав реконструированного видео. Заметим, что другие подходящие операции, например, операция деблокирования и т.п., может осуществляться для повышения визуального качества.
[0113] Заметим, что видеокодеры (303), (503) и (603) и видеодекодеры (310), (410) и (710) могут быть реализованы с использованием любого подходящего метода. Согласно варианту осуществления, видеокодеры (303), (503) и (603) и видеодекодеры (310), (410) и (710) могут быть реализованы с использованием одной или более интегральных схем. В другом варианте осуществления видеокодеры (303), (503) и (603) и видеодекодеры (310), (410) и (710) могут быть реализованы с использованием одного или более процессоров, которые выполняют программные инструкции.
[0114] Согласно некоторым вариантам осуществления, единица дерева кодирования разбивается на единицы кодирования посредством структуры дерева квадрантов - двоичного дерева (QTBT, quad tree binary tree), известной как дерево кодирования для адаптации различных локальных характеристик индивидуальных блоков, включенных в единицы кодирования. Решение о кодировании области изображения посредством временного или пространственного предсказания изображений можно принимать на уровне единицы кодирования. Каждую единицу кодирования можно разбить на одну, две или четыре единицы предсказания, согласно типу разделения единиц предсказания. Согласно некоторым вариантам осуществления, внутри одной единицы предсказания осуществляется идентичный процесс предсказания, и необходимая информация передается декодеру на основании единицы предсказания. При получении остаточного блока путем процесса предсказания на основании типа разделения единиц предсказания, единицу кодирования можно разделить на единицы преобразования согласно другой структуре дерева квадрантов, похожей на структуру дерева квадрантов, применяемую для дерева кодирования и его единиц. В ряде других вариантов осуществления, единица предсказания содержит только одну единицу преобразования, той же формы, что и единица предсказания.
[0115] Дерево кодирования для единиц дерева кодирования может включать различные разделы, включая единицы кодирования, единицы предсказания и единицы преобразования. В некоторых вариантах осуществления единица кодирования или преобразования представлена исключительно квадратной формой, а единица предсказания может быть квадратной или прямоугольной для блока внутреннего предсказания. В других вариантах осуществления допускаются прямоугольные единицы кодирования, предсказания и преобразования. На границе изображения может применяться неявное дерево квадрантов, так что блок продолжает разделение дерева квадрантов, пока размер отделенного блока не будет подогнан под границу изображения. В некоторых вариантах осуществления неявное разделение означает скрытие флага разделения. Например, неявное дерево квадрантов (QT) означает разрешение на разделение QT для пограничного блока изображения. Флаг разделения не сигнализируется на границе изображения. Другой пример: при допуске разделения двоичного дерева (ВТ) на границе изображения неявное разделение является бинарным разделением. В некоторых вариантах осуществления при допуске QT и ВТ на границе изображения неявное разделение отсутствует, а метод разделения сигнализируется в явном виде.
[0116] Согласно некоторым вариантам осуществления, структура дерева квадрантов - двоичного дерева (QTBT) не включает множество типов разделения (например, QTBT не включает разделения единиц кодирования, предсказания и преобразования) и является более гибкой для форм разделения единиц кодирования. Например, в блочной структуре QTBT единица кодирования может быть квадратной или прямоугольной. Фиг. 8А иллюстрирует пример единицы дерева кодирования (800), разделенной структурой QTBT. Например, единица дерева кодирования (800) поделена на 4 подъединицы кодирования (А), (В), (С) и (D). Фиг. 8В изображает соответствующее дерево кодирования с ветвями, соответствующими подъединицам кодирования (А), (В), (С) и (D). Сплошные линии обозначают разделение дерева квадрантов, а пунктирные линии - разделение двоичного дерева. Структура двоичного дерева может включать два типа разделения: (i) симметричное горизонтальное разделение и (ii) симметричное вертикальное разделение. В каждом разделенном (то есть не листовом) узле двоичного дерева один флаг может быть сигнализирован для указания типа применяемого разделения (например, горизонтального или вертикального), где 0 обозначает горизонтальное разделение, а 1 - вертикальное разделение, или наоборот. Для разделения дерева квадрантов тип разделения не указывается, поскольку при соответствующем разделении происходит одновременно горизонтальное и вертикальное разделение блока для получения четырех субблоков одинакового размера.
[0117] Согласно изображениям фиг. 8А и 8В, подъединица кодирования (А) сначала разделяется на два субблока посредством вертикального деления с последующим вертикальным делением левого субблока. Далее подъединица кодирования (В) проходит горизонтальное деление. Далее подъединица кодирования (С) делится четверным делением. Верхний левый субблок подъединицы кодирования (С) делится вертикально с последующим горизонтальным делением. Далее нижний правый субблок подъединицы кодирования (С) делится горизонтально. Верхний правый и нижний левый субблоки подъединицы кодирования (С) не подлежат дальнейшему делению. Подъединица кодирования (D) не подлежит дальнейшему делению и, таким образом, не включает дополнительные листовые узлы дерева кодирования ниже ветви "D".
[0118] Листовые узлы двоичного дерева могут относиться к единицам кодирования, где двоичное деление можно применять для обработки предсказания и преобразования без последующего деления. Это означает, что у единиц кодирования, предсказания и преобразования одинаковый по размерам блок в структуре кодирования блоков QTBT. Единица кодирования может включать блоки кодирования различных цветовых компонентов. Например, одна единица кодирования может содержать один блок кодирования яркости и два блока кодирования цветности в случае слайсов Р и В цветового формата 4:2:0 и иногда может содержать блок кодирования единичного компонента (например, одна единица кодирования содержит только один блок кодирования яркости или всего лишь два блока кодирования цветности в случае внутренне-кодированных изображений или слайсов). В некоторых вариантах осуществления у внутренне-кодированных изображений или слайсов ширина или высота единицы преобразования ограничивается (например, 64 для яркости и 32 для цветности). Если ширина или высота блока кодирования превышает предел, то единица преобразования делится до тех пор, пока размер не перестанет превышать заданный предел.
[0119] Согласно некоторым вариантам осуществления, схема разделения QTBT включает следующие параметры: CTU size: размер корневого узла дерева квадрантов MinQTSize: минимально допустимый размер листового узла дерева квадрантов MaxBTSize: максимально допустимый размер корневого узла двоичного дерева MaxBTDepth: максимально допустимая глубина двоичного дерева MinBTSize: минимально допустимый размер листового узла двоичного дерева.
[0120] В одном примере структуры деления QTBT размер единицы дерева кодирования составляет 128×128 отсчетов яркости с соответствующими блоками отсчетов цветности размером 64×64, MinQTSize составляет 16×16, MaxBTSize - 64×64, MinBTSize (по ширине и высоте) - 4×4, MaxBTDepth - 4. Структура деления QTBT применяется к единице дерева кодирования для формирования листовых узлов дерева квадрантов. Размеры листовых узлов дерева квадрантов: от 16×16 (то есть MinQTSize) до 128×128 (то есть размер единицы дерева кодирования). Если размер узла листа дерева квадрантов 128×128, узел листа дерева квадрантов не будет далее делиться двоичным деревом, поскольку его размер превышает MaxBTSize (64×64). В противном случае узел листа дерева квадрантов может быть снова поделен двоичным деревом. Таким образом, узел листа дерева квадрантов также является корневым узлом двоичного дерева и лист дерева квадрантов имеет нулевую глубину двоичного дерева. При достижении максимальной глубины двоичного дерева MaxBTDepth (например, 4) дальнейшее деление не производится. Если ширина узла двоичного дерева минимальна MinBTSize (например, 4), дальнейшее горизонтальное деление не производится. Аналогично, если высота узла двоичного дерева минимальна MinBTSize, дальнейшее вертикальное деление не производится. Далее листовые узлы двоичного дерева обрабатываются предсказанием и преобразованием без дальнейшего деления. В некоторых вариантах осуществления максимальный размер единиц дерева кодирования составляет 256×256 отсчетов яркости.
[0121] Также структура деления QTBT может поддерживать способность компонентов яркости и цветности иметь отдельные структуры QTBT. Например, для слайсов Р и В, блоки яркости и цветности дерева кодирования в одной единице дерева кодирования могут иметь одинаковую структуру QTBT. Однако для I-слайсов яркость блока дерева кодирования делится на единицы кодирования посредством одной структуры QTBT, а блоки цветности дерева кодирования делятся на единицы кодирования цветности другой структурой QTBT. Таким образом, в данном примере единица кодирования в I-слайсе содержит блок кодирования компонента яркости или блоки кодирования двух компонентов цветности, а единица кодирования в слайсе Р или В содержит блоки кодирования всех трех цветовых компонентов.
[0122] В некоторых вариантах осуществления внешнее предсказание для малых блоков ограничено в целях сокращения требований доступа к памяти для компенсации движения, чтобы двунаправленное предсказание не поддерживалось для блоков 4×8 и 8×4, а внешнее предсказание не поддерживалось для блоков 4×4. В других вариантах осуществления схема деления QTBT не включает эти ограничения.
[0123] Согласно некоторым вариантам осуществления, структура многотипового дерева (МТТ, Multi-type-tree) включает (i) разделение дерева квадрантов, (ii) разделение двоичного дерева и (iii) горизонтальные и вертикальные тернарные центрально-боковые деревья. На фиг. 9А показан вариант осуществления вертикального тернарного центрально-бокового дерева, а на фиг. 9В - пример горизонтального тернарного центрально-бокового дерева. По сравнению со структурой QTBT структура многотипового дерева может быть более гибкой, поскольку разрешены дополнительные структуры.
D
[0124] Разделение тернарного дерева включают существенно полезные функции, например, предоставление дополнения к разделению дерева квадрантов и бинарного дерева, при котором деление тернарного дерева способно захватывать объекты, расположенные в центре блока при разделении дерева квадрантов и двоичного дерева по центру блока. Другое преимущество деления тернарного дерева - ширина и высота делений предлагаемых тернарных деревьев умножаются на 2, так что дополнительных трансформаций не требуется. Преимущество двухуровневого дерева заключается в снижении сложности. Например, сложность обхода дерева T, где Т - количество типов делений, a D - глубина дерева.
[0125] Существуют различные форматы YUV, или форматы цветности, представленные на фиг. 10A-10D. Каждый формат цветности задает свою сетку понижения частоты отсчетов различных цветовых компонентов.
[0126] Цвет отсчетов видео может быть представлен в различных цветовых форматах (например, в формате YCbCr или RGB). В формате RGB у трех компонентов имеются сильные корреляции (то есть у R, G и В), приводящие к статистической избыточности трех цветовых компонентов. Цветовое представление отсчетов видео можно преобразовывать в другое цветовое пространство с помощью линейных преобразований. Преобразование цветового пространства RGB в цветовое пространство YUV происходит следующим образом:
[0127] Преобразование цветового пространства RGB в цветовое пространство YUV может происходить следующим образом:
[0128] Для эффективного кодирования видеоконтента RGB был разработан метод контурного адаптивного преобразования цвета (ACT, Adaptive Colour Transform), работающий в области остатка. Флаг уровня единиц кодирования может быть сигнализирован для указания на применение ACT. Прямое преобразование цвета по методу ACT (например, преобразование, выполняемое кодером) может выполняться следующим образом:
[0129] Обратное цветовое преобразование ACT (например, обратное преобразование, выполняемое декодером) можно осуществлять следующим образом:
[0130] На фиг. 11 изображен пример кодера 1100 для выполнения преобразования цветового пространства. На фиг. 11 предсказание выполняется до выполнения преобразования цветового пространства. Например, внутреннее или внешнее предсказание выполняется на текущем блоке для формирования остаточного сигнала. Остаточный сигнал образуется посредством блока (1102) преобразования цветового пространства для выполнения прямого преобразования как в Ур. (7). Результат прямого преобразования цветового пространства передается на блок (1102) формирования кросс-компонентов (ССР, cross component production). Выходной сигнал от ССР (1102) передается в блок (1106) преобразования (Т, transform) для выполнения преобразований типа дискретного косинусного преобразования (DCT). Результат преобразователя (1106) передается на квантователь (Q) (1108) для получения коэффициентов. Коэффициенты передаются на энтропийный кодер (1110) для обеспечения битового потока. Энтропийный кодер (1110) может получить сигнал режима/mv для выбора определенного режима работы энтропийного кодера.
[0131] Кодер (1100) может также включать компоненты для конвертации битового потока в остаточный сигнал. Например, битовый поток, производимый энтропийным кодером (1110), может передаваться на обратный квантователь (IQ) (1112). Результат обратного квантователя (IQ) может передаваться на обратный преобразователь (IT) (1114). Результат обратного преобразователя (IT) (1114) может передаваться в блок обратного СРР (1116). Выходной сигнал блока обратного СРР (1116) может передаваться на обратный преобразователь цветового пространства (1118), выполняющий преобразование согласно Ур. (8).
[0132] Фиг. 12 демонстрирует иллюстративный декодер (1200) для конвертации битового потока в остаточный сигнал. Битовый поток, представленный на фиг. 12 может генерироваться энтропийным кодером (1110) (фиг. 11). Битовый поток может передаваться на энтропийный кодер (1200). Результат энтропийного кодера (1202) можно передавать на обратный квантователь (IQ) (1202). Результат обратного квантователя (IQ) можно передавать на обратный преобразователь (IT) (1204). Результат обратного преобразователя (IT) (1204) можно передавать в блок обратного СРР (1206). Результат обратного СРР (1206) можно передавать на обратный преобразователь цветового пространства (1208), представленный, например, в Ур. (8), который может генерировать остаточный сигнал. Внутреннее или внешнее предсказание можно осуществлять по остаточному сигналу для декодирования текущего блока. Устройства на фиг. 11 и 12 можно применять через программы посредством процессора или посредством схем, например, посредством специальной интегральной схемы, спроектированной для выполнения функции каждого устройства.
[0133] Для цветового компонента внутренней единицы предсказания (PU) кодер может выбрать лучшие режимы предсказания цветов из 8, включая планарный, прямого кодирования, постоянной составляющей, горизонтальный, вертикальный, прямого копирования режима внутреннего предсказания (DM) из компонента яркости, левый и верхний линейный кросс-компонентный режим (LT_CCLM), левый линейный кросс-компонентный режим (L_CCLM), а также верхний линейный кросс-компонентный режим (T_CCLM). Режимы LT_CCLM, L_CCLM и T_CCLM можно включить в группу линейного кросс-компонентного режима (CCLM). Разница между этими тремя режимами заключается в возможности применения различных областей соседних отсчетов для получения параметров α и β. Для LT_CCLM левый и верхний соседние отсчеты могут применяться, чтобы получить параметры α и β. Для L_CCLM в ряде примеров только левые соседние отсчеты применяются, чтобы получить параметры α и β. Для Т_CCLM в ряде примеров только верхние соседние отсчеты применяются, чтобы получить параметры α и β.
[0134] Режимы предсказания линейной кросс-компонентной модели (CCLM) могут применяться для сокращения кросс-компонентной избыточности, при которой отсчеты цветности предсказываются на основании восстановленных отсчетов яркости той же CU посредством применения квантователя линейной модели следующим образом:
c
L
где pred(i,j) - предсказанные отсчеты цветности в единице кодирования, а rec(i,j) - восстановленные отсчеты яркости пониженного разрешения той же единицы кодирования CU. Параметры α и β можно получить из уравнения прямой линии, которое может также называться максимально-минимальным методом. Поскольку данный процесс вычисления может выполняться в рамках процесса декодирования, а не просто как операция поиска кодером, синтаксис для передачи значений α и β может не использоваться.
[0135] Для формата цветности 4:2:0 предсказание CCLM может применять шестиотводный интерполяционный фильтр для получения отсчета яркости пониженного разрешения, соответствующего отсчету цветности на фиг. 13. По формуле вычисляется отсчет Rec'L[x, у] яркости пониженного разрешения из восстановленных отсчетов яркости.
[0136] Отсчеты яркости пониженного разрешения могут применяться для нахождения максимальной и минимальной точек отсчетов. Две точки (пара яркость и цветность) (А, В) могут быть минимальным и максимальным значениями внутри набора соседних отсчетов яркости, как показано на фиг. 13.
[0137] Параметры линейной модели α и β можно получить по следующим уравнениям:
[0138] Операции деления можно эффективно избежать посредством операций сдвига и умножения. Одну справочную таблицу (LUT) можно применять для хранения предварительно вычисляемых значений, а значения абсолютной разности между минимальным и максимальным отсчетами яркости можно использовать для обозначения указателя записи LUT. Размер LUT может составлять 512.
[0139] На фиг. 14А и 14В изображены иллюстративные положения отсчетов, применяемых для получения α и β в LT_CCLM. В режиме T_CCLM, в некоторых примерах используются только вышеуказанные соседние отсчеты (включающие 2*W отсчетов) для расчета коэффициентов линейной модели. На фиг. 15А и 15В изображены иллюстративные положения отсчетов, применяемых для получения α и β в T_CCLM.
[0140] В режиме L_CCLM, в ряде примеров, только левые соседние отсчеты (включающие отсчеты 2*Н отсчетов) применяются для расчета коэффициентов линейной модели. На фиг. 16А и 16В изображены иллюстративные положения отсчетов, применяемых для получения α и β в L_CCLM.
[0141] Режим предсказания CCLM может также включать предсказание между двумя компонентами цветности (например, компонент Cr предсказывается из компонента Cb). Вместо применения восстановленного сигнала отсчета можно использовать предсказание CCLM Cb-Cr в остаточной области. Предсказание CCLM Cb-Cr можно применять, добавляя взвешенное восстановленное остаточное предсказание Cb к исходному внутреннему предсказанию Cr, для формирования конечного предсказания Cr:
[0142] Режим предсказания яркость-цветность CCLM можно добавить как дополнительный режим внутреннего предсказания цветности. Со стороны кодера производится дополнительная проверка стоимости искажения-скорость передачи (RD) для компонентов цветности в целях выбора режима внутреннего предсказания цветности. При применении режима внутреннего предсказания для компонентов цветности единицы кодирования, отличающегося от режима предсказания яркость-цветность CCLM, для компонента Cr применяется предсказание CCLM Cb-Cr.
[0143] Множественная модель CCLM (MMLM) - другое расширение CCLM с возможностью наличия нескольких моделей (например, 2 или более моделей). В MMLM соседние отсчеты яркости и цветности текущего блока можно классифицировать по двум группам, и каждую из групп можно использовать как обучающий набор для получения линейной модели (то есть определенные α и β получают для определенной группы). Далее отсчеты текущего блока яркости можно также классифицировать на основании одного и того же правила классификации соседних отсчетов яркости.
[0144] Фиг. 17 демонстрирует пример классификации соседних отсчетов в две группы. Порог, представленный на фиг. 17, можно рассчитать как среднее значение соседних восстановленных отсчетов яркости. Если Rec'L[x,y] <= Threshold (Порог), соседний отсчет определен в группу 1, а если Rec'L[x,y] > Threshold, соседний отсчет определен в группу 2.
[0145] Для проведения контурного цветового преобразования в универсальном видеокодировании с целью эффективной кодировки входного видеосигнала в формате RGB необходимо отрегулировать взаимодействие между преобразованием цветности и несколькими инструментами кодировки (например, кросс-компонентная линейная модель и метод разделения дуального дерева) в универсальном видеокодировании. Варианты осуществления настоящего изобретения предоставляют крайне эффективные функции регулировки преобразования цветности кодирующим инструментарием универсального видеокодирования.
[0146] Варианты осуществления настоящего изобретения могут применяться раздельно или вместе в любом порядке. Также каждый из способов, кодер и декодер, согласно вариантам осуществления настоящего изобретения, может быть выполнен обрабатывающей схемой (например, одним или более процессорами или одной или более интегральными схемами). В одном примере один или несколько процессоров выполняют программу, хранящуюся на машиночитаемом носителе информации. Согласно вариантам осуществления настоящего изобретения, под термином "блок" может пониматься блок предсказания, блок кодировки или единица кодирования (то есть CU). Согласно вариантам осуществления настоящего изобретения, термин "компонент яркости" может относиться к любому цветовому компоненту, кодированному как первый компонент в порядке кодирования (например, красный (R) или зеленый (G) цветовой компонент). Далее, согласно вариантам осуществления настоящего изобретения, под термином "компонент цветности" может пониматься любой цветовой компонент, не кодируемый как первый компонент в порядке кодирования.
[0147] Согласно некоторым вариантам осуществления настоящего изобретения, цветовое преобразование, такое как ACT? применяется перед предсказанием кодера, а после кодер осуществляет восстановление. В кодере преобразование ACT может выполняться перед предсказанием (например, перед внутренним или внешним предсказанием), а опорные отсчеты и входящие начальные отсчеты могут отображаться в другом цветовом пространстве, если ACT применяется для текущей единицы кодирования. При пиксельном восстановлении декодером, если ACT применяется для восстанавливаемого блока, опорные отсчеты могут отображаться в альтернативном цветовом пространстве перед их использованием для предсказания, а восстановленные отсчеты могут снова отображаться в первоначальном цветовом пространстве.
[0148] На фиг. 18 показаны варианты осуществления процессов кодирования и декодирования с помощью ACT. Блоки, представленные на фиг. 18, можно реализовать в виде программ процессором или схемой, например, специальной интегральной схемой, разработанной для выполнения функции каждого блока, представленного на фиг. 18. ACT блоки (1800) и (1804) выполняют ACT преобразование на опорном и входном сигнале, соответственно. ACT преобразование, выполняемое ACT блоками кодера (1800) и (1804), может быть ACT преобразованием, раскрытым в Ур. (7). Результат ACT (1800) предоставляется блоку предсказания (1802). Далее опорный сигнал передается блоку предсказания (1806). Блоки предсказания (1802) и (1806) могут выполнять внутреннее или внешнее предсказание. Блок преобразования 1808 получает (i) разницу между результатом (выходным сигналом) блока предсказания (1802) и результатом блока ACT (1804) или (ii) разницу между результатом блока предсказания (1806) и входящим сигналом. Блок преобразования (1808) может выполнять операцию преобразования, например, дискретное косинусное преобразование (DCT). Результат блока преобразования (1808) передается квантователю (Q) (1810) для проведения квантования с последующим получением ряда коэффициентов.
[0149] Обратный квантователь (IQ) декодера (1812) получает коэффициенты для выполнения обратного квантования. Результат обратного квантователя (IQ) (1812) передается на обратный преобразователь (IT) (1814) для проведения обратного преобразования. Блок ACT (1820) получает итоговый результат блока предсказания (1818), а также результат блока обратного преобразования (IT) (1814). Блок ACT (1816) получает результат блока предсказания (1818). Блоки ACT (1816) и (1820) могут выполнять обратное преобразование цвета как в Ур. (8). Блоки преобразования (1818) и (1822) могут выполнять внешнее или внутреннее предсказание. Восстановленный опорный сигнал обеспечивается результатом блока ACT (1816), а восстановленный первоначальный сигнал обеспечивается результатом блока ACT (1820).
[0150] Согласно некоторым вариантам осуществления, в процессе ACT 2-ой и 3-ий цветовые компоненты смещаются на постоянную "с" после и до цветового преобразования для прямого и обратного преобразования, соответственно. Ур. (14) изображает модифицированное прямое преобразование, а Ур. (15) - модифицированное обратное преобразование.
[0151] В некоторых вариантах осуществления постоянная с определяется как 1<<(bitDepth-1), где bitDepth - битовая глубина входного отсчета.
[0152] Согласно некоторым вариантам осуществления, преобразование цвета применяется только при кодировании различных цветовых компонентов с помощью дерева единицы преобразования. В одном варианте осуществления, при использовании дуального дерева (DualTree) на интра-слайсе, цветовое преобразование применяется только для интер-слайса.
[0153] Согласно некоторым вариантам осуществления, при использовании цветового преобразовании режим CCLM не применяется или не сигнализируется, поскольку генерация остаточных отсчетов из одного компонента зависит от восстановления другого компонента. В другом варианте осуществления при использовании режима CCLM преобразование цвета не применяется или не сигнализируется. В одном варианте осуществления при использовании цветового преобразования на остаточных отсчетах внутреннего кодирования режим CCLM не применяется или не сигнализируется, поскольку генерация остаточных отсчетов из одного компонента зависит от восстановления другого компонента. В одном варианте осуществления при использовании цветового преобразования на остаточном отсчете и применении режима CCLM, цветовое преобразование не применяется или не сигнализируется.
[0154] Согласно некоторым вариантам осуществления, цветовое преобразование сигнализируется для каждой единицы дерева кодирования, которая является самой крупной единицей кодирования.
[0155] В некоторых вариантах осуществления цветовое преобразование сигнализируется и применяется только для блоков внутреннего кодирования или только для блоков внешнего кодирования. В некоторых вариантах осуществления при применении цветового преобразования дуальное дерево не применяется (то есть различные цветовые компоненты используют одинаковое разделение единиц преобразования).
[0156] Фиг. 19 демонстрирует вариант осуществления процесса, выполняемого кодером (603). Процесс может запуститься на этапе (S1900) определения, выполнено ли условие цветового преобразования. Например, условием цветового преобразования может быть флаг, указывающий на разрешение цветового преобразования для текущего блока. Другой пример: условием цветового преобразования может быть флаг, указывающий на разрешение цветового преобразования для каждого блока в CTU. При выполнении условия цветового преобразования процесс переходит к этапу (S1902), на котором цветовое преобразование выполняется на текущем блоке. Например, цветовым преобразованием может выступать операция ACT, представленная в Ур. (7).
[0157] Процесс переходит от этапа (S1902) к этапу (S1904) для выполнения предсказания для текущего блока с цветовым преобразованием. Предсказание может быть внутренним или внешним. Если на этапе (S1900) условие цветового преобразования не выполняется, процесс переходит на этап (S1904). Процесс переходит с этапа (S1904) на этап (S1906) для выполнения, например, дискретного косинусного преобразования (DCT) на предсказанном текущем блоке. Процесс переходит на этап (S1908) для выполнения квантования на преобразованном текущем блоке. Результатом квантования может быть набор коэффициентов, включаемый в битовый поток, передаваемый декодеру. Процесс, представленный на рис. 19, можно заканчивать после выполнения этапа (S1908).
[0158] Фиг. 20 демонстрирует вариант осуществления процесса, выполняемого декодером (710). Процесс может запускаться на этапе (S2000) при получении битового потока кодированного видео. Этот битовый поток включает коэффициенты, генерируемые на этапе (S1908) (фиг. 19). Процесс переходит на этап (S2002) выполнения обратного квантования на ряде коэффициентов, соответствующих текущему блоку. Процесс переходит на этап (S2004) выполнения обратного преобразования на результате обратного квантования для текущего блока. Процесс переходит на этап (S2006), где внутреннее или внешнее предсказание выполняется на результате обратного преобразования, соответствующего текущему блоку. На этапе (S2008) определяется выполнение условия цветового преобразования для текущего блока. Например, условием цветового преобразования может быть флаг, указывающий, что цветовое преобразование разрешено для текущего блока. Другой пример: условием цветового преобразования может быть флаг, указывающий, что цветовое преобразование разрешено для каждого блока в CTU. При выполнении условия цветового преобразования процесс переходит к этапу (S2010) выполнения обратного цветового преобразования на текущем блоке. Например, обратное цветовое преобразование может представлять собой операцию ACT, представленную в Ур. (8). При невыполнении условия цветового преобразования, завершается процесс, изображенный на фиг. 20. Процесс, изображенный на фиг. 20, может также быть выполнен по завершении этапа (S2010).
[0159] Вышеописанные методы могут быть реализованы в виде компьютерного программного обеспечения, использующего компьютерно-считываемые инструкции и физически хранящегося на одном или более компьютерно-считываемых носителях. Например, на фиг. 21 показана компьютерная система (2100), пригодная для реализации некоторых вариантов осуществления раскрытого изобретения.
[0160] Компьютерное программное обеспечение может кодироваться с использованием любого подходящего машинного кода или компьютерного языка, который может подвергаться ассемблированию, компиляции, редактированию связей или аналогичной обработке для создания кода, содержащего инструкции, которые могут выполняться напрямую, или посредством интерпретации, выполнения микрокода и т.п., одним или более компьютерными центральными процессорами (CPU, central processing units), графическими процессорами (GPU, Graphics Processing Units) и т.п.
[0161] Инструкции могут выполняться на компьютерах различных типов или их компонентах, включая, например, персональные компьютеры, планшетные компьютеры, серверы, смартфоны, игровые устройства, устройства интернета вещей и т.п.
[0162] Компоненты компьютерной системы (2100), показанные на фиг. 21, носят иллюстративный характер и не призваны налагать какое-либо ограничение на объем применения или функциональные возможности компьютерного программного обеспечения, реализующего варианты осуществления настоящего изобретения. Конфигурацию компонентов также не следует интерпретировать как имеющую какую-либо зависимость или требование в связи с любым одним или комбинацией компонентов, показанных в иллюстративном варианте осуществления компьютерной системы (2100).
[0163] Компьютерная система (2100) может включать в себя некоторые устройства ввода интерфейса с человеком. Такое устройство ввода может отвечать за ввод одним или более пользователями посредством, например, тактильного ввода (например, нажатий на клавиши, махов, движений информационной перчатки), аудио-ввода (например, голосового, хлопков), визуального ввода (например, жестов), обонятельного ввода (не показан). Устройства интерфейса также могут использоваться для захвата некоторых информационных носителей, не обязательно напрямую связанных с осознанным вводом человеком, например, звука (например, речи, музыки, внешнего звука), изображений (например, отсканированных изображений, фотографических изображений, полученных от камеры неподвижных изображений), видео (например, двухмерного видео, трехмерного видео, включающего в себя стереоскопическое видео).
[0164] Входные интерфейсные устройства могут быть представлены одним или несколькими устройствами (по одному из изображенных): клавиатурой (2101), мышью (2102), сенсорной панелью (2103), сенсорным экраном (2110), информационной перчаткой (не показана), джойстиком (2105), микрофоном (2106), сканером (2107), камерой (2108).
[0165] Компьютерная система (2100) также может включать в себя некоторые устройства вывода интерфейса с человеком. Такие устройства вывода могут стимулировать органы чувств одного или более пользователей посредством, например, тактильного вывода, звука, света и запаха/вкуса. Такие устройства вывода могут включать в себя устройства тактильного вывода (например, тактильной обратной связи посредством сенсорного экрана (2110), информационной перчатки (не показана) или джойстика (2105), но также могут быть устройствами тактильной обратной связи, которые не служат устройствами ввода), устройства вывода аудио (например: громкоговорители (2109), наушники (не показаны)), устройства визуального вывода (например, экраны (2110), в том числе CRT-экраны, LCD-экраны, плазменные экраны, OLED-экраны, каждый с возможностями сенсорного экранного ввода или без них, каждый с возможностями тактильной обратной связи или без них, некоторые из которых способны к двухмерному визуальному выводу или более чем трехмерному выводу посредством, например, стереографического вывода; очков виртуальной реальности (не показаны), голографических дисплеев, дымовых баков (не показаны) и принтеров (не показаны).
[0166] Компьютерная система (2100) также может включать в себя доступные человеку запоминающие устройства и связанные с ними носители, например, оптические носители, включающие в себя CD/DVD ROM/RW (2120) с носителями CD/DVD (2121) и т.п., карты флэш-памяти (2122), сменный жесткий диск или твердотельный диск (2123), традиционные магнитные носители, например, ленту и флоппи-диск (не показан), специализированные устройства на основе ROM/ASIC/PLD, например, защитные аппаратные ключи (не показаны) и т.п.
[0167] Специалисты в данной области техники также должны понимать, что термин "компьютерно-считываемые носители", используемый в связи с раскрытым здесь изобретением, не охватывает среды передачи, несущие волны или другие кратковременные сигналы.
[0168] Компьютерная система (2100) также может включать в себя интерфейс к одной или более сетям связи. Сети могут быть, например, беспроводными, проводными, оптическими. Сети могут быть, дополнительно, локальными, глобальными, городскими, транспортными и промышленными, реального времени, допускающими задержку и т.д. Примеры сетей включают в себя локальные сети, например, Ethernet, беспроводные LAN, сотовые сети, в том числе GSM, 3G, 4G, 5G, LTE и т.п., глобальные цифровые сети проводного или беспроводного телевидения, в том числе кабельное телевидение, спутниковое телевидение и наземное телевещание, транспортные и промышленные включают в себя CANBus и т.д. Некоторые сети обычно требуют внешних адаптеров сетевого интерфейса, которые подключены к некоторым портам данных общего назначения или периферийным шинам (2149) (например, USB-порты компьютерной системы (2100)); другие обычно встраиваются в ядро компьютерной системы (2100) путем подключения к системной шине, как описано ниже (например, интерфейс Ethernet в компьютерную систему PC или интерфейс сотовой сети в компьютерную систему смартфона). Используя любую из этих сетей, компьютерная система (2100) может осуществлять связь с другими объектами. Такая связь может быть однонаправленной с возможностью только приема (например, телевещания), однонаправленной с возможностью только передачи (например, CANbus к некоторым устройствам CANbus) или двунаправленной, например, к другим компьютерным системам с использованием локальной или глобальной цифровой сети. Некоторые протоколы и стеки протоколов могут использоваться в каждой из этих сетей и вышеописанных сетевых интерфейсах.
[0169] Вышеупомянутые устройства человеческого интерфейса, доступные человеку запоминающие устройства и сетевые интерфейсы могут подключаться к ядру (2140) компьютерной системы (2100).
[0170] Ядро (2140) может включать в себя один или более центральных процессоров (CPU) (2141), графические процессоры (GPU) (2142), специализированные программируемые модули обработки в форме вентильных матриц, программируемых пользователем (FPGA, Field Programmable Gate Areas) (1543), аппаратные ускорители (2144) для некоторых задач и т.д. Эти устройства, совместно с постоянной памятью (ROM) (2145), оперативной памятью (2146), внутренним хранилищем данных большой емкости, например, внутренними жесткими дисками, недоступными пользователю, SSD и т.п.(2147), могут соединяться посредством системной шины (2148). В некоторых компьютерных системах системная шина (2148) может быть доступна в форме одного или более физических разъемов для обеспечения расширений за счет дополнительных CPU, GPU и т.п. Периферийные устройства могут подключаться либо напрямую к системной шине ядра (2148), либо через периферийную шину (1549). Архитектуры периферийной шины включают в себя PCI, USB и т.п.
[0171] CPU (2141), GPU (2142), FPGA (2143) и ускорители (2144) могут выполнять некоторые инструкции, которые совместно могут составлять вышеупомянутый компьютерный код. Этот компьютерный код может храниться в ROM (2145) или RAM (2146). Переходные данные также могут храниться в RAM (2146), тогда как постоянные данные могут храниться, например, во внутреннем хранилище (2147) данных большой емкости. Быстрое сохранение и извлечение из любого запоминающего устройства может обеспечиваться за счет использования кэш-памяти, которая может быть тесно связана с один или более CPU (1541), GPU (1542), хранилищем данных большой емкости (2147), ROM (2145), RAM (2146) и т.п.
[0172] На компьютерно-считываемых носителях может храниться компьютерный код для осуществления различных компьютерно-реализуемых операций. Носители и компьютерный код могут быть специально созданы в целях настоящего изобретения или могут относиться к хорошо известным и доступным специалистам в области компьютерного программного обеспечения.
[0173] В порядке примера, но не ограничения, компьютерная система, имеющая архитектуру (2100), и, в частности, ядро (2140) может обеспечивать функциональные возможности благодаря выполнению процессором(ами) (включающим(и) в себя CPU, GPU, FPGA, ускорители и т.п.) программного обеспечения, воплощенного в одном или более материальных компьютерно-считываемых носителей. Такие компьютерно-считываемые носители могут быть носителями, связанными с доступным пользователю хранилищем данных большой емкости, представленным выше, а также некоторым хранилищем ядра (2140), носящим долговременный характер, например, внутренним хранилищем (2147) данных большой емкости или ROM (2145). Программное обеспечение, реализующее различные варианты осуществления настоящего изобретения, может храниться в таких устройствах и выполняться ядром (2140). Компьютерно-считываемый носитель может включать в себя одно или более запоминающих устройств или микросхем, в соответствии с конкретными нуждами. Программное обеспечение может предписывать ядру (2140) и, в частности, его процессорам (включая CPU, GPU, FPGA и т.п.) выполнять конкретные процессы или конкретные части описанных здесь конкретных процессов, включая задание структур данных, хранящихся в RAM (2146), и модификацию таких структур данных согласно процессам, заданным программным обеспечением. Дополнительно или альтернативно компьютерная система может обеспечивать функциональные возможности благодаря логике, зашитой или иным образом воплощенной в схеме (например, ускоритель (2144)), который может действовать вместо или совместно с программным обеспечением для выполнения конкретных процессов или конкретных частей описанных здесь конкретных процессов. Ссылка на программное обеспечение может охватывать логику, и наоборот, когда это уместно. Ссылка на компьютерно-считываемые носители может охватывать схему (например, интегральную схему (IC, integrated circuit)), где хранится программное обеспечение для выполнения, схему, воплощающую логику для выполнения, или обе из них, когда это уместно. Настоящее изобретение охватывает любую подходящую комбинацию оборудования и программного обеспечения.
Приложение А: Сокращения
JEM: модель совместного исследования
VVC: универсальное видеокодирование
BMS: набор эталонов
MV: вектор движения
HEVC: высокопроизводительное видеокодирование
SEI: информация дополнительного улучшения
VUI: информация пригодности видео
GOP: группа изображений
TU: единица преобразования
PU: единица предсказания
CTU: единица дерева кодирования
СТВ: блок дерева кодирования
РВ: блок предсказания
HRD: гипотетический эталонный декодер
SNR: отношение сигнал/шум
CPU: центральный процессор
GPU: графический процессор
CRT: кинескоп
LCD: жидкокристаллический дисплей
OLED: органический светодиод
CD: компакт-диск
DVD: цифровой видеодиск
ROM: постоянная память
RAM: оперативная память
ASIC: специализированная интегральная схема
PLD: программируемое логическое устройство
LAN: локальная сеть
GSM: глобальная система мобильной связи
LTE: проект долгосрочного развития систем связи
CANBus: шина контроллерной сети
USB: универсальная последовательная шина
PCI: межсоединение периферийных компонентов
FPGA: вентильные матрицы, программируемые пользователем
SSD: твердотельный привод
IC: интегральная схема
CU: единица кодирования.
[0174] Хотя здесь описано несколько иллюстративных вариантов осуществления, возможны изменения, перестановки и различные эквиваленты для замены, которые укладываются в объем изобретения. Таким образом, специалисты в данной области техники могут предложить многочисленные системы и способы, которые, хотя в явном виде здесь не показаны и не описаны, воплощают принципы изобретения и, таким образом, соответствуют его сущности и объему.
[0175] (1) Способ видеодекодирования, выполняемый видеодекодером, заключается в получении битового потока кодированного видео, включая текущее изображение; в выполнении обратного квантования на текущем блоке текущего изображения; после обратного квантования в выполнении обратного преобразования на текущем блоке; в выполнении предсказания на текущем блоке после обратного преобразования; после предсказания на текущем блоке в определении выполнения предварительно заданного условия; и в выполнении обратного цветового преобразования на текущем блоке после определения выполнения предварительно заданного условия.
[0176] (2) Способ в соответствии с (1), в котором обратное цветовое преобразование является обратным адаптивным цветовым преобразованием (ACT), а выполнение обратного цветового преобразования преобразует восстановленный текущий блок из цветового-пространственного преобразования в формат RGB.
[0177] (3) Способ в соответствии с (1) или (2), в котором выполнение обратного цветового преобразования включает вычитание постоянной из одного или более цветовых компонентов обратного цветового преобразования.
[0178] (4) Способ в соответствии с (3), в котором постоянная получается операцией сдвига влево для битовой глубины входного отсчета минус единица.
[0179] (5) Способ в соответствии с одним из (1)-(4), в котором предварительно заданное условие выполняется в ответ на определение сигнализации цветового преобразования для текущего блока.
[0180] (6) Способ в соответствии с (5), в котором цветовое преобразование сигнализируется для каждой единицы дерева кодирования (CTU) с самой большой единицей кодирования.
[0181] (7) Способ в соответствии с одним из признаков (1)-(6), в котором предварительно заданное условие выполняется в ответ на определение того, что различные цветовые компоненты обратного цветового преобразования кодированы с помощью одного и того же дерева деления единиц преобразования.
[0182] (8) Способ в соответствии с (7), в котором обратное цветовое преобразование применяется только на интер-слайсе в ответ на определение применения дуального дерева на интра-слайсе.
[0183] (9) Способ в соответствии с одним из признаков (1)-(8), в котором в ответ на определение выполнения предварительно заданного условия не применяется кросс-компонентный линейный режим (CCLM) для блоков цветности текущего блока.
[0184] (10) Способ видеодекодирования в соответствии с одним из признаков (1)-(9), в котором процесс предсказания представляет собой внешнее или внутреннее предсказание.
[0185] (11) Видеодекодер для декодирования видео, включающий схему обработки, настроенную на получение битового потока кодированного видео, включающего текущее изображение, выполнение обратного квантования на текущем блоке текущего изображения, выполнение обратного преобразования после выполнения обратного квантования на текущем блоке, выполнение процесса предсказания на текущем блоке после выполнения обратного преобразования, определение выполнения предварительно заданного условия после выполнения предсказания на текущем блоке и выполнение обратного цветового преобразования на текущем блоке в ответ на установление выполнения предварительно заданного условия.
[0186] (12) Видеодекодер в соответствии с (11), в котором обратное цветовое преобразование является обратным адаптивным цветовым преобразованием (ACT), а выполнение обратного цветового преобразования преобразует восстановленный текущий блок из цветового-пространственного преобразования в формат RGB.
[0187] (13) Видеодекодер в соответствии с (11) или (12), в котором выполнение обратного цветового преобразования включает схему обработки, настроенную на вычитание постоянной из одного или более цветовых компонентов обратного цветового преобразования.
[0188] (14) Видеодекодер в соответствии с (13), в котором постоянная получается операцией сдвига влево на битовую глубину входного отсчета минус единица.
[0189] (15) Видеодекодер в соответствии с одним из признаков (11)-(14), в котором предварительно заданное условие выполняется в ответ на определение сигнализации о цветовом преобразовании для текущего блока.
[0190] (16) Видеодекодер в соответствии с (15), в котором цветовое преобразование сигнализируется для каждой единицы дерева кодирования (CTU) с самой большой единицей кодирования (CU).
[0191] (17) Видеодекодер в соответствии с одним из признаков (11)-(16), в котором предварительно заданное условие выполняется в ответ на определение кодировки различных цветовых компонентов обратного цветового преобразования с помощью одного и того же дерева деления единиц преобразования.
[0192] (18) Видеодекодер в соответствии с (17), в котором обратное цветовое преобразование применяется только к интра-слайсу в ответ на определение применения дуального дерева к интра-слайсу.
[0193] (19) Видеодекодер особенности (11), в котором в ответ на определение выполнения предварительно заданного условия не применяется кросс-компонентный линейный режим (CCLM) для блоков цветности текущего блока.
[0194] (20) Машиночитаемый носитель информации с инструкциями, при выполнении которых процессор видеодекодера выполняет следующее: получение битового потока кодированного видео, включая текущее изображение, выполнение обратного квантования на текущем блоке текущего изображения, выполнение обратного преобразования после выполнения обратного квантования на текущем блоке, выполнение процесса предсказания на текущем блоке после выполнения обратного преобразования, определение выполнения предварительно заданного условия после выполнения предсказания на текущем блоке и выполнение обратного цветового преобразования на текущем блоке в ответ на установление выполнения предварительно заданного условия.