Способ и устройство для видеокодирования
METHOD AND APPARATUS FOR VIDEO ENCODING

ВКЛЮЧЕНИЕ ПОСРЕДСТВОМ ССЫЛКИ
[0001] Настоящее изобретение испрашивает приоритет патентной заявки США №17/096,674, "METHOD AND APPARATUS FOR VIDEO CODING", поданной 12 ноября 2020 г., которая испрашивает приоритет предварительной заявки США №62/958,694, "SIGNALING OF CHROMA PRESENT FLAG FOR SUPPORTING VARIOUS CHROMA FORMAT", поданной 8 января 2020 г. Содержание предыдущих заявок, таким образом, включено посредством ссылки в полном объеме.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
[0002] В настоящей заявке описаны варианты осуществления, в целом относящиеся к видеокодированию.
УРОВЕНЬ ТЕХНИКИ
[0003] Описание уровня техники приведено здесь с целью представления в целом контекста изобретения. Работа авторов изобретения, в той мере, в какой она описана в этом разделе, а также аспекты описания, которые не могут квалифицироваться как уровень техники на момент подачи заявки, ни прямо, ни косвенно не признаются уровнем техники, лежащим в основе настоящего изобретения.
[0004] Кодирование и декодирование видеосигнала может осуществляться с использованием предсказания между изображениями с компенсацией движения. Цифровое видео без сжатия может включать в себя последовательность изображений, каждое из которых имеет пространственный размер, например, 1920×1080 отсчетов яркости и связанных с ними отсчетов цветности. Последовательность изображений может иметь фиксированную или переменную частоту смены изображений (неформально также называемую частотой кадров), например, 60 изображений в секунду, или 60 Гц. Видео без сжатия предъявляет значительные требования к битовой скорости. Например, видео 1080р60 4:2:0 с 8 битами на отсчет (разрешение отсчетов яркости 1920×1080 при частоте кадров 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). Блок предсказателя может формироваться с использованием значений соседних отсчетов, принадлежащих уже доступным отсчетам. Значения соседних отсчетов копируются в блок предсказателя согласно направлению. Ссылка на используемое направление может кодироваться в битовом потоке или может сама предсказываться.
[ООП] В нижнем правом углу фиг. 1А изображено подмножество из девяти направлений предсказателя множества, известного из 33 возможных направлений предсказателя Н.265 (соответствующих 33 угловым режимам из 35 интра-режимов). Точка (101), где сходятся стрелки, представляет предсказываемый отсчет. Стрелки представляют направление, из которого предсказывается отсчет. Например, стрелка (102) указывает, что отсчет (101) предсказывается из отсчета или отсчетов, расположенного(ых) вверху справа, под углом 45 градусов к горизонтали. Аналогично, стрелка (103) указывает, что отсчет (101) предсказывается из отсчета или отсчетов расположенного(ых) внизу слева от отсчета (101), под углом 22,5 градусов к горизонтали.
[0012] В верхнем левом углу фиг. 1А изображен квадратный блок (104) 4×4 отсчетов (указанный жирной пунктирной линией). Квадратный блок (104) включает в себя 16 отсчетов, каждая из которых обозначена буквой "S", позицией по оси Y (например, индексом строки) и позицией по оси X (например, индексом столбца). Например, отсчет S21 является вторым отсчетом по оси Y (сверху) и первым (слева) отсчетом по оси X. Аналогично, отсчет S44 является четвертым отсчетом в блоке (104) по обеим осям Y и X. Поскольку блок имеет размер 4×4 отсчета, 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В показана диаграмма (180), где изображено 65 направлений внутреннего предсказания согласно JEM для иллюстрации увеличения количества направлений предсказания с течением времени.
[0017] Отображение битов направлений внутреннего предсказания в битовом потоке кодированного видео, которые представляют направление, может отличаться от одной технологии видеокодирования к другой технологии видеокодирования; и может охватывать, например, от простого прямого отображения направления предсказания до режима внутреннего предсказания, кодовых слов, сложных адаптивных схем, задействующих наиболее вероятные режимы, и аналогичных методов. Однако во всех случаях могут существовать некоторые направления, возникновение которых в видеоконтенте статистически менее вероятно, чем для некоторых других направлений. Поскольку целью сжатия видео является снижение избыточности, эти менее вероятные направления, в хорошо работающей технологии видеокодирования, будут представляться большим количеством битов, чем более вероятные направления.
[0018] Кодирование и декодирование видеосигнала может осуществляться с использованием предсказания между изображениями с компенсацией движения. Цифровое видео без сжатия может включать в себя последовательность изображений, каждое из которых имеет пространственный размер, например, 1920×1080 отсчетов яркости и связанных с ними отсчетов цветности. Последовательность изображений может иметь фиксированную или переменную частоту смены изображений (неформально также называемую частотой кадров), например, 60 изображений в секунду, или 60 Гц. Видео без сжатия предъявляет значительные требования к битовой скорости. Например, видео 1080р60 4:2:0 с 8 битами на отсчет (разрешение отсчетов яркости 1920×1080 при частоте кадров 60 Гц) требует полосы около 1,5 Гбит/с. Час такого видео требует объема памяти более 600 ГБ.
[0019] Одной целью кодирования и декодирования видеосигнала может быть снижение избыточности во входном видеосигнале путем сжатия. Сжатие может способствовать смягчению вышеупомянутых требований к полосе или объему памяти, в ряде случаев на два порядка величины или более. Можно использовать как сжатие без потерь, так и сжатие с потерями, а также их комбинацию. Сжатие без потерь относится к методам реконструкции точной копии исходного сигнала из сжатого исходного сигнала. При использовании сжатия с потерями реконструированный сигнал может быть не идентичен исходному сигналу, но расхождение между исходным и реконструированным сигналами достаточно мало, так чтобы реконструированный сигнал можно было использовать для намеченного применения. Сжатие с потерями широко применяется для видео. Допустимая степень искажения зависит от применения; например, пользователи некоторых заказных потоковых приложений могут мириться с более высокими искажениями, чем пользователи телевещательных приложений. Достижимая степень сжатия может отражать, что более высокое разрешенное/допустимое искажение может давать более высокую степень сжатия.
[0020] Компенсация движения может представлять собой метод сжатия с потерями и может относиться к методам, в которых блок данных отсчетов из ранее восстановленного изображения или его части (опорного изображения) после пространственного сдвига в направлении, указанном вектором движения (далее MV), используется для предсказания реконструированного изображения или его части. В некоторых случаях опорное изображение может совпадать с реконструируемым изображением. Векторы движения могут иметь две координаты X и Y или три координаты, третья из которых является указанием используемого опорного изображения (последнее, косвенно, может быть временным измерением.
[0021] В некоторых методах сжатия видео MV, применимый к определенной области данных отсчетов, может быть предсказан на основании других MV, например, тех, которые относятся к другой области данных отсчетов, пространственно прилегающей к реконструируемой области, и предшествующей этому MV в порядке декодирования. Это может существенно уменьшить объем данных, необходимых для кодирования MV, тем самым устраняя избыточность и увеличивая сжатие. Предсказание MV может работать эффективно, например, потому, что при кодировании входного видеосигнала, полученного от камеры (известного как естественное видео), существует статистическая вероятность того, что области, большие, чем область, к которой применим один MV, перемещаются в аналогичном направлении и, следовательно, в некоторых случаях могут быть предсказаны с использованием аналогичного вектора движения, полученного из MV соседней области. Это приводит к тому, что MV, найденный для данной области, аналогичен или совпадает с MV, предсказанным из окружающих MV, и это, в свою очередь, позволяет (после энтропийного кодирования) уменьшить количество битов по сравнению с количеством битов при непосредственном кодировании MV. В некоторых случаях предсказание MV может быть примером сжатия сигнала (а именно, MV), полученного из исходного сигнала (а именно, потока отсчетов), без потерь. В других случаях само предсказание MV может осуществляться с потерями, например, из-за ошибок округления при вычислении предсказателя из нескольких окружающих MV.
[0022] Различные механизмы предсказания MV описаны в Н. 265/HEVC (ITU-T Rec. Н.265, "High Efficiency Video Coding", декабрь 2016 г.). Из многих механизмов предсказания MV, которые предлагаются в Н.265, здесь описан метод, далее именуемый "пространственным слиянием".
[0023] В соответствии с фиг. 2 текущий блок (201) содержит отсчеты, найденные кодером в процессе поиска движения для возможности предсказания из смещенного в пространстве предыдущего блока того же размера. Вместо непосредственного кодирования, MV может быть получен из метаданных, связанных с одним или несколькими опорными изображениями, например, из самого последнего (в порядке декодирования) опорного изображения, с использованием MV, связанного с одним из пяти окружающих отсчетов, обозначенных А0, А1, и В0, B1, В2 (с 202 по 206, соответственно). В Н.265 для предсказания MV могут использоваться предсказатели из того же опорного изображения, которое использует соседний блок.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0024] Аспекты изобретения предусматривают способы и устройства для кодирования/декодирования видеосигнала. В некоторых примерах устройство для видеодекодирования включает в себя схему обработки. Схема обработки декодирует первый элемент синтаксиса из битового потока кодированного видео. Первый элемент синтаксиса указывает, основывается ли кодирование первого компонента битового потока кодированного видео на втором компоненте битового потока кодированного видео. Схема обработки может определить необходимость декодирования одного или более вторых синтаксических элементов для инструмента кодирования, относящегося к цветности, на основе первого синтаксического элемента. Инструмент кодирования цветности представляет собой (i) инструмент кодирования "отображение яркости с масштабированием цветности" (LMCS, luma mapping with chroma scaling) и (ii) кросс-компонентный адаптивный контурный фильтр (CC-ALF, cross-component adaptive loop filter). Схема обработки может декодировать один или более вторых синтаксических элементов инструмента кодирования цветности на основе первого синтаксического элемента, указывающего на то, что кодирование первого компонента основано на втором компоненте битового потока кодированного видео, и первый компонент представляет собой цветовой компонент. Один или более вторых синтаксических элементов для инструмента кодирования цветности не декодируют на основе первого синтаксического элемента, указывающего на то, что первый компонент не кодирован на основе второго компонента битового потока кодированного видео.
[0025] Согласно варианту осуществления, первый синтаксический элемент передают в наборе параметров адаптации (APS, adaptation parameter set).
[0026] Согласно варианту осуществления, первый синтаксический элемент указывает на уровне последовательности, кодирован ли первый компонент на основе второго компонента.
[0027] Согласно варианту осуществления, на основе первого синтаксического элемента, указывающего на то, что первый компонент кодирован на основе второго компонента, второй компонент представляет собой один из второго компонента цветности и компонента яркости битового потока кодированного видео. На основе первого синтаксического элемента, указывающего на то, что первый компонент не кодирован на основе второго компонента, (i) первый компонент представляет собой единственный компонент битового потока кодированного видео или (ii) битовый поток кодированного видео включает в себя, по меньшей мере, первый компонент и второй компонент, при этом первый компонент не кодирован на основе второго компонента. Согласно примеру, битовый поток кодированного видео включает в себя первый компонент цветности, второй компонент цветности и компонент яркости в формате 4:4:4. Первый компонент представляет собой первый компонент цветности. Второй компонент представляет собой второй компонент цветности или компонент яркости. Первый компонент цветности, второй компонент цветности и компонент яркости кодированы независимо друг от друга.
[0028] Согласно варианту осуществления, схема обработки может запретить инструмент кодирования цветности на основе первого синтаксического элемента, указывающего на то, что первый компонент не кодирован на основе второго компонента битового потока кодированного видео.
[0029] Согласно варианту осуществления, инструмент кодирования цветности представляет собой инструмент кодирования LMCS. Один или более вторых синтаксических элементов инструмента кодирования LMCS включает первый LMCS параметр, являющийся абсолютным значением переменной для масштабирования остатка цветности (CRS, chroma residual scaling) LMCS. Схема обработки может декодировать второй LMCS параметр инструмента кодирования LMCS на основе абсолютного значения переменной для масштабирования остатка цветности (CRS) LMCS больше 0. Один или более вторых синтаксических элементов включают в себя второй LMCS параметр, являющийся знаком переменной для CRS LMCS. Второй LMCS параметр инструмента кодирования LMCS не декодируется на основе абсолютного значения переменной для CRS LMCS не больше 0.
[0030] Согласно варианту осуществления, инструментом кодирования цветности является CC-ALF. Один или более вторых синтаксических элементов CC-ALF включают в себя первый CC-ALF флаг и второй CC-ALF флаг. Первый CC-ALF флаг указывает на то, включен ли второй CC-ALF в битовый поток кодированного видео. Схема обработки может декодировать синтаксические элементы первого CC-ALF на основе первого CC-ALF флага, указывающего на сигнализацию первого CC-ALF. Один или более вторых синтаксических элемента CC-ALF включают синтаксические элементы первого CC-ALF. Синтаксические элементы первого CC-ALF не декодируются на основе первого CC-ALF флага, указывающего на то, что первый CC-ALF не сигнализируется. Схема обработки может декодировать синтаксические элементы второго CC-ALF на основе второго CC-ALF флага, указывающего на сигнализацию второго CC-ALF. Один или более вторых синтаксических элемента CC-ALF не декодируются на основе второго CC-ALF флага, указывающего на то, что второй CC-ALF не сигнализируется.
[0031] Аспекты изобретения также предусматривают компьютерно-считываемый носитель, где хранятся инструкции, которые, при выполнении компьютером для видеодекодирования, предписывают компьютеру осуществлять описанный способ видеодекодирования.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0032] Дополнительные особенности, характер и различные преимущества раскрытого изобретения будут понятны из нижеследующего подробного описания и прилагаемых чертежей, на которых:
[0033] фиг. 1А - схема иллюстративного подмножества режимов внутреннего предсказания;
[0034] фиг. 1В - схема иллюстративных направлений внутреннего предсказания;
[0035] фиг. 2 - схема текущего блока и его ближайших кандидатов пространственного слияния в одном примере.
[0036] фиг. 3 - упрощенная блок-схема системы (300) связи в соответствии с вариантом осуществления;
[0037] фиг. 4 - упрощенная блок-схема системы (400) связи в соответствии с вариантом осуществления;
[0038] фиг. 5 - упрощенная блок-схема декодера в соответствии с вариантом осуществления;
[0039] фиг. 6 - упрощенная блок-схема кодера в соответствии с вариантом осуществления;
[0040] фиг. 7 - блок-схема кодера в соответствии с другим вариантом осуществления;
[0041] фиг. 8 - блок-схема декодера в соответствии с другим вариантом осуществления;
[0042] фиг. 9A-9G иллюстративный синтаксис полезной нагрузки последовательности исходных байтов (RBSP, raw byte sequence payload) набора параметров последовательности (SPS, sequence parameter set) в соответствии с вариантом осуществления;
[0043] фиг. 10А-10D иллюстративный синтаксис RBSP набора параметров изображения (PPS, picture parameter set) в соответствии с вариантом осуществления;
[0044] фиг. 11А-11В - иллюстративный синтаксис данных адаптивного контурного фильтра (ALF) в соответствии с вариантом осуществления;
[0045] фиг. 12 - иллюстративный синтаксис RBSP SPS в соответствии с вариантом осуществления;
[0046] фиг. 13 - иллюстративный синтаксис RBSP SPS в соответствии с вариантом осуществления;
[0047] фиг. 14 - иллюстративный синтаксис RBSP PPS в соответствии с вариантом осуществления;
[0048] фиг. 15 - иллюстративный синтаксис RBSP APS в соответствии с вариантом осуществления;
[0049] фиг. 16 - иллюстративный синтаксис данных адаптивного контурного фильтра (ALF) в соответствии с вариантом осуществления;
[0050] фиг. 17 - структурная схема с описанием процесса (1700) в соответствии с вариантом осуществления;
[0051] фиг. 18 - структурная схема с описанием процесса (1800) в соответствии с вариантом осуществления;
[0052] фиг. 19 - структурная схема с описанием процесса (1900) в соответствии с вариантом осуществления;
[0053] фиг. 20 - иллюстративная архитектура инструмента кодирования "отображение яркости с масштабированием цветности" (LMCS) в соответствии с вариантом осуществления;
[0054] фиг. 21 - иллюстративный синтаксис данных LMCS в соответствии с вариантом осуществления;
[0055] фиг. 22А-22В - иллюстративный синтаксис данных ALF в соответствии с вариантом осуществления.;
[0056] фиг. 23 - структурная схема с описанием процесса (2300) в соответствии с вариантом осуществления;
[0057] на фиг. 24 представлена схематическая иллюстрация компьютерной системы в соответствии с вариантом осуществления.
ПОДРОБНОЕ ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
[0058] На фиг. 3 показана упрощенная блок-схема системы (300) связи согласно варианту осуществления настоящего изобретения. Система (300) связи включает в себя множество оконечных устройств, которые могут осуществлять связь друг с другом, например, через сеть (350). Например, система (300) связи включает в себя первую пару оконечных устройств (310) и (320), соединенных между собой через сеть (350). В примере, приведенном на фиг. 3, первая пара оконечных устройств (310) и (320) осуществляет однонаправленную передачу данных. Например, оконечное устройство (310) может кодировать видеоданные (например, поток видеоизображений, захваченных оконечным устройством (310)), для передачи в другое оконечное устройство (320) через сеть (350). Кодированные видеоданные могут передаваться в форме одного или более битовых потоков кодированного видео. Оконечное устройство (320) может принимать кодированные видеоданные из сети (350), декодировать кодированные видеоданные для восстановления видеоизображений и отображения видеоизображений согласно восстановленным видеоданным. Однонаправленная передача данных может быть свойственна приложениям служб массовой информации и т.п.
[0059] В другом примере, система (300) связи включает в себя вторую пару оконечных устройств (330) и (340) которые осуществляют двунаправленную передачу кодированных видеоданных, которые могут возникать, например, в ходе видеоконференцсвязи. Для двунаправленной передачи данных, в порядке примера, каждое оконечное устройство из оконечных устройств (330) и (340) может кодировать видеоданные (например, поток видеоизображений, захваченных оконечным устройством) для передачи в другое оконечное устройство из оконечных устройств (330) и (340) через сеть (350). Каждое оконечное устройство из оконечных устройств (330) и (340) также может принимать кодированные видеоданные, передаваемые другим оконечным устройством из оконечных устройств (330) и (340), и может декодировать кодированные видеоданные для восстановления видеоизображений и отображать видеоизображения на доступном устройстве отображения согласно восстановленным видеоданным.
[0060] В примере, приведенном на фиг. 3, оконечные устройства (310), (320), (330) и (340) могут быть проиллюстрированы как серверы, персональные компьютеры и смартфоны, но это не ограничивает принципы настоящего изобретения. Варианты осуществления настоящего изобретения находят применение для портативных компьютеров, планшетных компьютеров, медиаплееров и/или специального оборудования для видеоконференцсвязи. Сеть (350) представляет любое количество сетей, которые переносят кодированные видеоданные между оконечными устройствами (310), (320), (330) и (340), включая, например, проводные и/или беспроводные сети связи. Сеть (350) связи позволяет обмениваться данными в режиме канальной коммутации и/или пакетной коммутации. Иллюстративные сети включают в себя телекоммуникационные сети, локальные сети, глобальные сети и/или интернет. В целях настоящего рассмотрения, архитектура и топология сети (350) могут не иметь отношения к настоящему изобретению, если конкретно не указаны ниже.
[0061] На фиг. 4 показано, в порядке примера применения раскрытого изобретения, размещение видеокодера и видеодекодера в окружении потоковой передачи. Раскрытое изобретение может быть в равной степени применимо к другим применениям обработки видео, включая, например, видеоконференцсвязь, цифровое телевидение, хранение сжатого видео на цифровых носителях, в том числе CD, DVD, карте памяти и т.п., и т.д.
[0062] Система потоковой передачи может включать в себя подсистему (413) захвата, которая может включать в себя источник (401) видеосигнала, например, цифровую камеру, создающую, например, поток (402) видеоизображений, не подвергнутых сжатию. Например, поток (402) видеоизображений включает в себя отсчеты, взятые цифровой камерой. Поток (402) видеоизображений, изображенный жирной линией, чтобы подчеркнуть большой объем данных по сравнению с кодированными видеоданными (404) (или битовыми потоками кодированного видео), может обрабатываться электронным устройством (420), которое включает в себя видеокодер (403), подключенный к источнику (401) видеосигнала. Видеокодер (403) может включать в себя оборудование, программное обеспечение или их комбинацию для обеспечения или реализации аспектов раскрытого изобретения, как более подробно описано ниже. Кодированные видеоданные (404) (или битовый поток (404) кодированного видео), изображенные тонкой линией, чтобы подчеркнуть меньший объем данных по сравнению с потоком (402) видеоизображений, могут храниться на потоковом сервере (405) для использования в будущем. Одна или более клиентских подсистем потоковой передачи, например, клиентские подсистемы (406) и (408) на фиг. 4, могут осуществлять доступ к потоковому серверу (405) для извлечения копий (407) и (409) кодированных видеоданных (404). Клиентская подсистема (406) может включать в себя видеодекодер (410), например, в электронном устройстве (430). Видеодекодер (410) декодирует входящую копию (407) кодированных видеоданных и создает исходящий поток (411) видеоизображений, который может визуализироваться на дисплее (412) (например, отображающем экране) или другом устройстве визуализации (не показано). В некоторых системах потоковой передачи, кодированные видеоданные (404), (407) и (409) (например, битовые потоки видео) могут кодироваться согласно тем или иным стандартам кодирования/сжатия видео. Примеры этих стандартов включают в себя ITU-Т Recommendation Н.265. Например, разрабатывается стандарт видеокодирования под официальным названием "универсальное видеокодирование" (VVC, Versatile Video Coding). Раскрытое изобретение может использоваться в контексте VVC.
[0063] Заметим, что электронные устройства (420) и (430) могут включать в себя другие компоненты (не показаны). Например, электронное устройство (420) может включать в себя видеодекодер (не показан), и электронное устройство (430) также может включать в себя видеокодер (не показан).
[0064] На фиг. 5 показана блок-схема видеодекодера (510) согласно варианту осуществления настоящего изобретения. Видеодекодер (510) может входить в состав электронного устройства (530). Электронное устройство (530) может включать в себя приемник (531) (например, приемные схемы). Видеодекодер (510) может использоваться вместо видеодекодера (410) в примере, приведенном на фиг. 4.
[0065] Приемник (531) может принимать одну или более кодированных видеопоследовательностей для декодирования видеодекодером (510); в том же или другом варианте осуществления, по одной кодированной видеопоследовательности за раз, где декодирование каждой кодированной видеопоследовательности не зависит от других кодированных видеопоследовательностей. Кодированная видеопоследовательность может приниматься из канала (501), который может быть аппаратной/программной линией связи с запоминающим устройством, где хранятся кодированные видеоданные. Приемник (531) может принимать кодированные видеоданные с другими данными, например, кодированными аудиоданными и/или вспомогательными потоками данных, которые могут ретранслироваться на соответствующие использующие и объекты (не показаны). Приемник (531) может отделять кодированную видеопоследовательность от других данных. Для борьбы с джиттером сети, буферная память (515) может быть подключена между приемником (531) и энтропийным декодером / анализатором (520) (далее "анализатором (520)"). В некоторых вариантах применения буферная память (515) входит в состав видеодекодера (510). В других она может не входить в состав видеодекодера (510) (не показан). В прочих вариантах может существовать буферная память (не показана) вне видеодекодера (510), например, для борьбы с джиттером сети, помимо другой буферной памяти (515) в составе видеодекодера (510), например, для управления хронированием проигрывания. Когда приемник (531) принимает данные от устройства хранения/ретрансляции с достаточной полосой и управляемостью или из изосинхронной сети, буферная память (515) может быть не нужна или может быть мала. Для использования в пакетных сетях наилучшей попытки, например, Интернете, буферная память (515) может требоваться, может быть сравнительно большой и может иметь преимущественно адаптивный размер, и по меньшей мере частично может быть реализована в операционной системе или аналогичных элементах (не показаны) вне видеодекодера (510).
[0066] Видеодекодер (510) может включать в себя анализатор (520) для реконструкции символов (521) из кодированной видеопоследовательности. Категории этих символов включают в себя информацию, используемую для управления работой видеодекодера (510), и возможно информацию для управления устройством визуализации, например, устройством (512) визуализации (например, отображающим экраном), которое не является неотъемлемой частью электронного устройства (530), но может быть подключено к электронному устройству (530), как показано на фиг. 5. Информация управления для устройств(а) визуализации может представлять собой сообщения информации дополнительного улучшения (SEI, Supplemental Enhancement Information) или фрагменты набора параметров информации пригодности видео (VUI, Video Usability Information) (не показаны). Анализатор (520) может анализировать / энтропийно декодировать принятую кодированную видеопоследовательность. Кодирование кодированной видеопоследовательности может осуществляться в соответствии с технологией или стандартом видеокодирования и может следовать различным принципам, в том числе кодированию с переменной длиной серии, кодированию по Хаффману, арифметическому кодированию с контекстной чувствительностью или без нее и т.д. Анализатор (520) может извлекать из кодированной видеопоследовательности набор параметров подгруппы для по меньшей мере одной из подгрупп пикселей в видеодекодере на основании по меньшей мере одного параметра, соответствующего группе. Подгруппы могут включать в себя группы изображений (GOP, Groups of Pictures), изображения, тайлы, слайсы, макроблоки, единицы кодирования (CU, Coding Unit), блоки, единицы преобразования (TU, Transform Unit), единицы предсказания (PU, Prediction Unit) и т.д. Анализатор (520) также может извлекать из кодированной видеопоследовательности информацию, например, коэффициенты преобразования, значения параметров квантователя, векторы движения и т.д.
[0067] Анализатор (520) может осуществлять операцию энтропийного декодирования / анализа видеопоследовательности, принятой из буферной памяти (515), для создания символов (521).
[0068] Для реконструкции символов (521) могут использоваться несколько разных модулей в зависимости от типа кодированного видеоизображения или его частей (например, интер- и интра-изображения, интер- и интра-блока) и других факторов. Какие модули используются, и как, может определяться информацией управления подгруппами, выделенной из кодированной видеопоследовательности анализатором (520). Поток такой информации управления подгруппами между анализатором (520) и множественными модулями для простоты в дальнейшем не показан.
[0069] Помимо ранее упомянутых функциональных блоков, видеодекодер (510) может принципиально подразделяться на несколько функциональных модулей, как описано ниже. В практической реализации, работающей в условиях коммерческих ограничений, многие из этих модулей тесно взаимодействуют друг с другом и могут, по меньшей мере частично, встраиваться один в другой. Однако в целях описания раскрытого изобретения уместно принципиальное подразделение на нижеперечисленные функциональные модули.
[0070] Первым модулем является модуль (551) масштабирования / обратного преобразования. Модуль (551) масштабирования / обратного преобразования принимает квантованный коэффициент преобразования, а также информацию управления, включающую в себя используемое преобразование, размер блока, коэффициент квантования, матрицы масштабирования квантования и т.д. в качестве символа(ов) (521) от анализатора (520). Модуль (551) масштабирования / обратного преобразования может выводить блоки, содержащие значения отсчетов, которые можно вводить в агрегатор (555).
[0071] В ряде случаев, выходные отсчеты блока (551) масштабирования / обратного преобразования могут относиться к внутренне кодированному блоку; то есть блоку, который не использует предсказанную информацию из ранее реконструированных изображений, но может использовать предсказанную информацию из ранее реконструированных частей текущего изображения. Такая предсказанная информация может обеспечиваться модулем (552) предсказания внутри изображения. В ряде случаев модуль (552) предсказания внутри изображения генерирует блок такого же размера и формы, как блок, подлежащий реконструкции, с использованием информации ранее реконструированного окружения, извлеченной из буфера (558) текущего изображения. Буфер (558) текущего изображения буферизует, например, частично реконструированное текущее изображение и/или полностью реконструированное текущее изображение. Агрегатор (555) в ряде случаев добавляет, для каждого отсчета, информацию предсказания, сгенерированную модулем (552) внутреннего предсказания, в информацию выходных отсчетов, обеспеченную модулем (551) масштабирования / обратного преобразования.
[0072] В других случаях выходные отсчеты модуля (551) масштабирования / обратного преобразования могут относиться к внутренне кодированному блоку, возможно, с компенсацией движения. В таком случае, модуль (553) предсказания с компенсацией движения может осуществлять доступ к памяти (557) опорных изображений для извлечения отсчетов, используемых для предсказания. После применения компенсации движения к извлеченным отсчетам в соответствии с символами (521), относящимися к блоку, эти отсчеты могут добавляться агрегатором (555) к выходному сигналу модуля (551) масштабирования / обратного преобразования (в этом случае именуемому остаточными отсчетами или остаточным сигналом) для генерации информации выходных отсчетов. Адреса в памяти (557) опорных изображений, откуда модуль (553) предсказания с компенсацией движения извлекает предсказанные отсчеты, могут регулироваться векторами движения, доступными модулю (553) предсказания с компенсацией движения, в форме символов (521), которые могут иметь, например, компоненты X, Y и опорного изображения. Компенсация движения также может включать в себя интерполяцию значений отсчетов, извлеченных из памяти (557) опорных изображений, когда используются точные векторы движения под-отсчетов, механизмы предсказания векторов движения и т.д.
[0073] К выходным отсчетам агрегатора (555) можно применять различные методы контурной фильтрации в модуле (556) контурного фильтра. Технологии сжатия видео могут включать в себя технологии деблокирующего фильтра под управлением параметров, включенных в кодированную видеопоследовательность (также именуемую битовым потоком кодированного видео) и становиться доступными модулю (556) контурного фильтра в качестве символов (521) от анализатора (520), но также могут реагировать на метаинформацию, полученную в ходе декодирования предыдущих (в порядке декодирования) частей кодированного изображения или кодированной видеопоследовательности, а также реагировать на ранее реконструированные и подвергнутые контурной фильтрации значения отсчетов.
[0074] Модуль (556) контурного фильтра может выдавать поток отсчетов, который может поступать на устройство (512) визуализации, а также сохраняться в памяти (557) опорных изображений для использования в будущем предсказании между изображениями.
[0075] Некоторые кодированные изображения, будучи полностью реконструированы, могут использоваться в качестве опорных изображений для будущего предсказания. Например, когда кодированное изображение, соответствующее текущему изображению, полностью реконструировано, и кодированное изображение идентифицировано как опорное изображение (например, анализатором (520)), буфер (558) текущего изображения может становиться частью памяти (557) опорных изображений, и свежий буфер текущего изображения может повторно выделяться до начала реконструкции следующего кодированного изображения.
[0076] Видеодекодер (510) может осуществлять операции декодирования согласно заранее заданной технологии сжатия видео, например, по стандарту ITU-T Rec. Н.265. Кодированная видеопоследовательность может согласовываться с синтаксисом, заданным используемой/ым технологией или стандартом сжатия видео, в том смысле, что кодированная видеопоследовательность может придерживаться как синтаксиса технологии или стандарта сжатия видео, так и профилей, задокументированных в технологии или стандарте сжатия видео. В частности, профиль может выбирать некоторые инструменты как инструменты, доступные для использования только под этим профилем, из всех инструментов, доступных в технологии или стандарте сжатия видео. Также для согласованности может быть необходимо, чтобы сложность кодированной видеопоследовательности оставалась в границах, заданных уровнем технологии или стандарта сжатия видео. В ряде случаев, уровни ограничивают максимальный размер изображения, максимальную частоту кадров, максимальную частоту отсчетов для реконструкции (измеряемую, например, в мегаотсчетах в секунду), максимальный размер опорного изображения и т.д. Пределы, установленные уровнями, в ряде случаев могут дополнительно ограничиваться спецификациями гипотетического эталонного декодера (HRD, Hypothetical Reference Decoder) и метаданными для управления буфером HRD, сигнализируемого в кодированной видеопоследовательности.
[0077] Согласно варианту осуществления, приемник (531) может принимать дополнительные (избыточные) данные с кодированным видео. Дополнительные данные могут быть включены как часть кодированной(ых) видеопоследовательности(ей). Дополнительные данные могут использоваться видеодекодером (510) для правильного декодирования данных и/или более точной реконструкции исходных видеоданных. Дополнительные данные могут представлять собой, например, слои улучшения во времени, пространстве или отношения сигнал/шум (SNR, signal noise ratio), избыточные слайсы, избыточные изображения, коды прямой коррекции ошибок и т.д.
[0078] На фиг. 6 показана блок-схема видеокодера (603) согласно варианту осуществления настоящего изобретения. Видеокодер (603) входит в состав электронного устройства (620). Электронное устройство (620) включает в себя передатчик (640) (например, передающую схему). Видеокодер (603) может использоваться вместо видеокодера (403) в примере, приведенном на фиг. 4.
[0079] Видеокодер (603) может принимать отсчеты видео от источника (601) видеосигнала (который не входит в состав электронного устройства (620) в примере, показанном на фиг. 6), который может захватывать видеоизображение(я), подлежащее(ие) кодированию видеокодером (603). В другом примере источник (601) видеосигнала входит в состав электронного устройства (620).
[0080] Источник (601) видеосигнала может обеспечивать исходную видеопоследовательность, подлежащую кодированию видеокодером (603) в форме потока отсчетов цифрового видео любой подходящей битовой глубины (например, 8 бит, 10 бит, 12 бит,…), любого цветового пространства (например, ВТ.601 Y CrCB, RGB, …), и любой подходящей структуры дискретизации (например, Y CrCb 4:2:0, Y CrCb 4:4:4). В системе службы массовой информации источником (601) видеосигнала может быть запоминающее устройство, где хранится ранее подготовленное видео. В система видеоконференцсвязи источником (601) видеосигнала может быть камера, которая захватывает информацию локального изображения как видеопоследовательность. Видеоданные могут обеспечиваться как множество отдельных изображений, которые создают ощущение движения при наблюдении в последовательности. Сами изображения могут быть организованы как пространственный массив пикселей, где каждый пиксель может содержать один или более отсчетов в зависимости от используемых структуры дискретизации, цветового пространства и т.д. Специалисту в данной области техники нетрудно понять соотношение между пикселями и отсчетами. Нижеследующее описание посвящено отсчетам.
[0081] Согласно варианту осуществления, видеокодер (603) может кодировать и сжимать изображения исходной видеопоследовательности в кодированную видеопоследовательность (643) в реальном времени или с учетом любых других временных ограничений, налагаемых применением. Установление надлежащей скорости кодирования является одной из функций контроллера (650). В некоторых вариантах осуществления контроллер (650) управляет другими функциональными модулями, как описано ниже, и функционально подключен к другим функциональным модулям. Подключение для простоты не показано. Параметры, установленные контроллером (650), могут включать в себя параметры, связанные регулировкой частоты (пропуск изображения, квантователь, значение лямбда, применяемое при оптимизация скорости-искажения, …), размер изображения, схему групп изображений (GOP, group of pictures), максимальную зону поиска вектора движения и т.д. Контроллер (650) может быть выполнен с возможностью иметь другие подходящие функции, относящиеся к видеокодеру (603), оптимизированному для той или иной конструкции системы.
[0082] В некоторых вариантах осуществления видеокодер (603) выполнен с возможностью работать в петле кодирования. В качестве очень упрощенного описания, в порядке примера, петля кодирования может включать в себя исходный кодер (630) (например, отвечающий за создание символов, например, потока символов, на основе входного изображения, подлежащего кодированию, и опорного(ых) изображения(ий)) и (локальный) декодер (633), встроенный в видеокодер (603). Декодер (633) реконструирует символы для создания данных отсчетов, аналогично тому, как это делал бы (удаленный) декодер (поскольку любое сжатие между символами и битовым потоком кодированного видео происходит без потерь в технологиях сжатия видео, рассматриваемых в раскрытом изобретении). Реконструированный поток отсчетов (данные отсчетов) поступают в память (634) опорных изображений. Поскольку декодирование потока символов приводит к результатам, с точностью до бита, не зависящим от положения декодера (локального или удаленного), содержимое памяти (634) опорных изображений также будет одинаковым с точностью до бита для локального кодера и удаленного кодера. Другими словами, предсказанная часть кодера "видит" в качестве отсчетов опорного изображения точно такие же значения отсчетов, как "видел" бы декодер при использовании предсказания в ходе декодирования. Этот фундаментальный принцип синхронизма опорного изображения (и, в итоге, дрейф, если синхронизм не удается поддерживать, например, вследствие канальных ошибок) используется также в некоторых связанных областях техники.
[0083] "Локальный" декодер (633) может действовать таким же образом, как "удаленный" декодер, например, видеодекодер (510), подробно вышеописанный со ссылкой на фиг. 5. Однако, опять же, согласно фиг. 5, поскольку символы доступны, и кодирование/декодирование символов в кодированную видеопоследовательность энтропийным кодером (645) и анализатором (520) может осуществляться без потерь, части энтропийного декодирования видеодекодера (510), включающие в себя буферную память (515) и анализатор (520), могут быть не полностью реализованы в локальном декодере (633).
[0084] При этом можно сделать вывод, что любая технология декодирования, присутствующая в декодере, за исключением анализа/энтропийного декодирования, также обязательно должна присутствовать, по существу, в идентичной функциональной форме в соответствующем кодере. По этой причине раскрытое изобретение сконцентрировано на работе декодера. Описание технологий кодирования может быть сокращено, поскольку они являются обратными подробно описанным технологиям декодированная. Только в некоторых областях требуется более детальное описание, которое приведено ниже.
[0085] Согласно некоторым примерам, в ходе работы исходный кодер (630) может осуществлять кодирование с предсказанием и компенсацией движения, при котором входное изображение кодируется с предсказанием на основании одного или более ранее кодированных изображений из видеопоследовательности, указанных как "опорные изображения". Таким образом, машина (632) кодирования кодирует различия между пиксельными блоками входного изображения и пиксельными блоками опорного изображения(й), которое(ые) может(ут) выбираться в качестве предсказанной(ых) ссылки(ок) на входное изображение.
[0086] Локальный видеодекодер (633) может декодировать кодированные видеоданные изображений, которые могут быть указаны как опорные изображения, на основе символов, созданных исходным кодером (630). Операции машины (632) кодирования могут быть преимущественно процессами с потерями. Когда кодированные видеоданные могут быть декодированы в видеодекодере (не показан на фиг. 6), реконструированная видеопоследовательность обычно может представлять собой копию исходной видеопоследовательности с некоторыми ошибками. Локальный видеодекодер (633) дублирует процессы декодирования, которые могут осуществляться видеодекодером на опорных изображениях, и может предписывать сохранение реконструированных опорных изображений в кэш-памяти (634) опорных изображений. Таким образом, видеокодер (603) может локально сохранять копии реконструированных опорных изображений, имеющие такое же содержимое как реконструированные опорные изображения, которые будут получены видеодекодером на стороне приемника (в отсутствие ошибок передачи).
[0087] Предсказатель (635) может осуществлять поиски предсказания для машины (632) кодирования. Таким образом, для нового изображения, подлежащего кодированию, предсказатель (635) может искать в памяти (634) опорных изображений данные отсчетов (в качестве кандидатов на роль опорных пиксельных блоков) или те или иные метаданные, например, векторы движения опорного изображения, формы блоков и т.д., которые могут служить надлежащей ссылкой для предсказания новых изображений. Предсказатель (635) может работать на основе "блоки отсчетов × пиксельные блоки" для нахождения надлежащих ссылок для предсказания. В ряде случаев, согласно результатам поиска, полученным предсказателем (635), входное изображение может иметь ссылки для предсказания, извлеченные из множества опорных изображений, хранящихся в памяти (634) опорных изображений.
[0088] Контроллер (650) может управлять операциями кодирования исходного кодера (630), включая, например, установление параметров и параметров подгруппы, используемых для кодирования видеоданных.
[0089] Выходной сигнал всех вышеупомянутых функциональных модулей может подвергаться энтропийному кодированию в энтропийном кодере (645). Энтропийный кодер (645) переводит символы, сгенерированные различными функциональными модулями, в кодированную видеопоследовательность путем сжатия символов без потерь согласно технологиям, например, кодирования по Хаффману, кодирования с переменной длиной серии, арифметического кодирования и т.д.
[0090] Передатчик (640) может буферизовать кодированную(ые) видеопоследовательность(и), созданную энтропийным кодером (645), для подготовки к передаче через канал (660) связи, который может быть аппаратной/программной линией связи с запоминающим устройством, где хранятся кодированные видеоданные. Передатчик (640) может объединять кодированные видеоданные от видеокодера (603) с другими данными, подлежащими передаче, например, кодированными аудиоданными и/или вспомогательными потоками данных (источники не показаны).
[0091] Контроллер (650) может управлять работой видеокодера (603). В ходе кодирования контроллер (650) может назначать каждому кодированному изображению тот или иной тип кодированного изображения, который может определять методы кодирования, применимые к соответствующему изображению. Например, изображениям часто могут назначаться следующие типы изображения:
[0092] Интра-изображение (I-изображение), которое можно кодировать и декодировать без использования какого-либо другого изображения в последовательности в качестве источника предсказания. Некоторые видеокодеки допускают разные типы интра-изображений, включая, например, изображения в формате независимого обновления декодера ("IDR", Independent Decoder Refresh). Специалисту в данной области техники известны разновидности I-изображений и их соответствующие варианты применения и особенности.
[0093] Предсказанное изображение (Р-изображение), которое можно кодировать и декодировать с использованием внутреннего предсказания или внешнего предсказания с использованием не более одного вектора движения и опорного индекса для предсказания значений отсчетов каждого блока.
[0094] Двунаправленно-предсказанное изображение (В-изображение), которое можно кодировать и декодировать с использованием внутреннего предсказания или внешнего предсказания с использованием не более двух векторов движения и опорных индексов для предсказания значений отсчетов каждого блока. Аналогично, мул ьтипред сказанные изображения могут использовать более двух опорных изображений и связанные метаданные для реконструкции единого блока.
[0095] Исходные изображения обычно допускают пространственное разделение на множество блоков отсчетов (например, блоки 4×4, 8×8, 4×8 или 16×16 отсчетов каждый) и кодирование на поблочной основе (блок за блоком). Блоки могут кодироваться предиктивно со ссылкой на другие (ранее кодированные) блоки, определенные назначением кодирования, применяемым к соответствующим изображениям этих блоков. Например, блоки I-изображений могут кодироваться без предсказания или с предсказанием со ссылкой на ранее кодированные блоки того же изображения (пространственным предсказанием или внутренним предсказанием). Пиксельные блоки Р-изображений могут кодироваться с предсказанием, посредством пространственного предсказания или временного предсказания со ссылкой на одно ранее кодированное опорное изображение. Блоки В-изображений могут кодироваться с предсказанием, посредством пространственного предсказания или временного предсказания со ссылкой на одно или два ранее кодированных опорных изображения.
[0096] Видеокодер (603) может осуществлять операции кодирования согласно заранее заданной технологии или стандарту видеокодирования, например, ITU-T Rec. Н.265. В своей работе видеокодер (603) может осуществлять различные операции сжатия, в том числе операции предиктивного кодирования, которые используют временные и пространственные избыточности во входной видеопоследовательности. Поэтому кодированные видеоданные могут согласовываться с синтаксисом, заданным используемой технологией или стандартом видеокодирования.
[0097] Согласно варианту осуществления, передатчик (640) может передавать дополнительные данные с кодированным видео. Исходный кодер (630) может включать такие данные как часть кодированной видеопоследовательности. Дополнительные данные могут содержать временные/пространственные/SNR слои улучшения, другие формы избыточных данных, например, избыточные изображения и слайсы, сообщения SEI, фрагменты набора параметров VUI и т.д.
[0098] Видео может захватываться как множество исходных изображений (видеоизображений) во временной последовательности. Предсказание внутри изображения (часто сокращенно именуемое внутренним предсказанием) использует пространственную корреляцию в данном изображении, а предсказание между изображениями использует (временную или иную) корреляцию между изображениями. Например, конкретное изображение, подлежащее кодированию/декодированию, которое именуется текущим изображением, разбивается на блоки. Когда блок в текущем изображении аналогичен опорному блоку в ранее кодированном и все еще буферизованном опорном изображении в видео, блок в текущем изображении может кодироваться вектором, который называется вектором движения. Вектор движения указывает на опорный блок в опорном изображении и может иметь третье измерение, идентифицирующее опорное изображение, в случае использования множественных опорных изображений.
[0099] В некоторых вариантах осуществления, метод двойного предсказания может использоваться в предсказании между изображениями. Согласно методу двойного предсказания, используются два опорных изображения, например, первое опорное изображение и второе опорное изображение, которые оба предшествуют в порядке декодирования текущему изображению в видео (но могут быть в прошлом и будущем, соответственно, в порядке отображения). Блок в текущем изображении может кодироваться первым вектором движения, который указывает на первый опорный блок в первом опорном изображении, и вторым вектором движения, который указывает на второй опорный блок во втором опорном изображении. Блок может предсказываться комбинацией первого опорного блока и второго опорного блока.
[0100] Дополнительно, метод режима слияния может использоваться в предсказании между изображениями для повышения эффективности кодирования.
[0101] Согласно некоторым вариантам осуществления изобретения, предсказания, например, предсказания между изображениями и предсказания внутри изображения, осуществляются поблочно. Например, согласно стандарту HEVC, изображение в последовательности видеоизображений разбивается на единицы дерева кодирования (CTU, coding tree unit) для сжатия, CTU в изображении имеют одинаковый размер, например 64×64 пикселя, 32×32 пикселя или 16×16 пикселей. В общем случае CTU включает в себя три блока дерева кодирования (СТВ, coding tree block), а именно, один СТВ яркости и два СТВ цветности. Каждый CTU может рекурсивно делиться квадрадеревом на одну или несколько единиц кодирования (CU). Например, CTU размером 64×64 пикселя может делиться на одну CU размером 64×64 пикселя или 4 CU размером 32×32 пикселя или 16 CU размером 16×16 пикселей. Например, каждая CU анализируется для определения типа предсказания для CU, например, типа внешнего предсказания или типа внутреннего предсказания. CU делится на одну или более единиц предсказания (PU) в зависимости от временной и/или пространственной предсказуемости. В целом, каждая PU включает в себя блок (РВ) предсказания яркости и два РВ цветности. Согласно варианту осуществления, операция предсказания при кодировании (кодировании/декодировании) осуществляется в единице блока предсказания. Используя блок предсказания яркости в качестве примера блока предсказания, блок предсказания включает в себя матрицу значений (например, значений яркости) для пикселей, например, 8×8 пикселей, 16×16 пикселей, 8×16 пикселей, 16×8 пикселей и т.п.
[0102] На фиг. 7 показана схема видеокодера (703) согласно другому варианту осуществления изобретения. Видеокодер (703) выполнен с возможностью приема блока обработки (например, блока предсказания) значений отсчетов в текущем видеоизображении в последовательности видеоизображений и кодирования блока обработки в кодированное изображение, которое составляет часть кодированной видеопоследовательности. Например, видеокодер (703) используется вместо видеокодера (403) в примере, приведенном на фиг. 4.
[0103] В примере HEVC видеокодер (703) принимает матрицу значений отсчетов для блока обработки, например, блока предсказания 8×8 отсчетов и т.п. Видеокодер (703) определяет, наилучшим ли образом кодируется блок обработки в интра-режиме, интеррежиме или режиме двойного предсказания с использованием, например, оптимизации скорость-искажения. Когда блок обработки подлежит кодированию в интра-режиме, видеокодер (703) может использовать метод внутреннего предсказания для кодирования блока обработки в кодированное изображение; и когда блок обработки подлежит кодированию в интер-режиме или режиме двойного предсказания, видеокодер (703) может использовать метод внешнего предсказания или двойного предсказания, соответственно, для кодирования блока обработки в кодированное изображение. В некоторых технологиях видеокодирования, режим объединения может быть подрежимом предсказания между изображениями, где вектор движения выводится из одного или более предсказателей вектора движения без привлечения кодированного компонента вектора движения вне предсказателей. В некоторых других технологиях видеокодирования может присутствовать компонент вектора движения, применимый к данному блоку. В порядке примера, видеокодер (703) включает в себя другие компоненты, например, модуль определения режима (не показан) для определения режима блоков обработки.
[0104] В примере, приведенном на Фиг. 7, видеокодер (703) включает в себя интер-кодер (730), интра-кодер (722), вычислитель (723) остатка, переключатель (726), кодер (724) остатка, общий контроллер (721) и энтропийный кодер (725), соединенные друг с другом, как показано на Фиг. 7.
[0105] Интер-кодер (730) выполнен с возможностью приема отсчетов текущего блока (например, блока обработки), сравнения блока с одним или более опорными блоками в опорных изображениях (например, блоками в предыдущих изображениях и более поздних изображениях), генерации информации внешнего предсказания (например, описания избыточной информации согласно методу внутреннего кодирования, векторов движения, информации режима объединения), и вычисления результатов внешнего предсказания (например, блока предсказания) на основании информации внешнего предсказания с использованием любого подходящего метода. В некоторых примерах опорными изображениями являются декодированные опорные изображения, которые декодируются на основе информации кодированного видео.
[0106] Интра-кодер (722) выполнен с возможностью приема отсчетов текущего блока (например, блока обработки), в ряде случаев сравнения блока с блоками, ранее кодированными в том же изображении, генерирования квантованных коэффициентов после преобразования, и в ряде случаев также информации внутреннего предсказания (например, информации направления внутреннего предсказания согласно одному или более методам внутреннего кодирования). В порядке примера, интра-кодер (722) также вычисляет результаты внутреннего предсказания (например, блок предсказания) на основании информации внутреннего предсказания и опорных блоков в том же изображении.
[0107] Общий контроллер (721) выполнен с возможностью определения общих данных управления и управления другими компонентами видеокодера (703) на основе общих данных управления. Например, общий контроллер (721) определяет режим блока и выдает сигнал управления на переключатель (726) на основе режима. Например, когда режим является интра-режимом, общий контроллер (721) управляет переключателем (726) для выбора результата интра-режима для использования вычислителем (723) остатка, и управляет энтропийным кодером (725) для выбора информации внутреннего предсказания и включения информации внутреннего предсказания в битовый поток; и когда режим является интер-режимом, общий контроллер (721) управляет переключателем (726) для выбора результата внешнего предсказания для использования вычислителем (723) остатка, и управляет энтропийным кодером (725) для выбора информации внешнего предсказания и включения информации внешнего предсказания в битовый поток.
[0108] Вычислитель (723) остатка выполнен с возможностью вычисления разности (данных остатка) между принятым блоком и результатами предсказания, выбранными из интра-кодера (722) или интер-кодера (730). Кодер (724) остатка выполнен с возможностью действовать на основе данных остатка для кодирования данных остатка для генерации коэффициентов преобразования. Например, кодер (724) остатка выполнен с возможностью преобразования данных остатка из пространственной области в частотную область и генерирования коэффициентов преобразования. Затем коэффициенты преобразования подвергаются обработке квантованием для получения квантованных коэффициентов преобразования. В различных вариантах осуществления видеокодер (703) также включает в себя декодер (728) остатка. Декодер (728) остатка выполнен с возможностью осуществления обратного преобразования и генерирования декодированных данных остатка. Декодированные данные остатка могут надлежащим образом использоваться интра-кодером (722) и интер-кодером (730). Например, интеркодер (730) может генерировать декодированные блоки на основе декодированных данных остатка и информации внешнего предсказания, и интра-кодер (722) может генерировать декодированные блоки на основе декодированных данных остатка и информации внутреннего предсказания. Декодированные блоки надлежащим образом обрабатываются для генерации декодированных изображений, и декодированные изображения могут буферизоваться в схеме памяти (не показана) и в некоторых примерах использоваться в качестве опорных изображений.
[0109] Энтропийный кодер (725) выполнен с возможностью форматирования битового потока так, чтобы он включал в себя кодированный блок. Энтропийный кодер (725) выполнен с возможностью включать различную информацию согласно подходящему стандарту, например, стандарту HEVC. Например, энтропийный кодер (725) выполнен с возможностью включать общие данные управления, выбранную информацию предсказания (например, информацию внутреннего предсказания или информацию внешнего предсказания), информацию остатка и другую подходящую информацию в битовый поток. Заметим, что, согласно раскрытому изобретению, при кодировании блока в подрежиме объединения любого из интер-режима и режима двойного предсказания, информация остатка отсутствует.
[0110] На фиг. 8 показана схема видеодекодера (810) согласно другому варианту осуществления изобретения. Видеодекодер (810) выполнен с возможностью приема кодированных изображений, составляющих часть кодированной видеопоследовательности, и декодирования кодированных изображений для генерации реконструированных изображений. Например, видеодекодер (810) используется вместо видеодекодера (410) в примере, приведенном на Фиг. 4.
[0111] В примере, приведенном на Фиг. 8, видеодекодер (810) включает в себя энтропийный декодер (871), интер-декодер (880), декодер (873) остатка, модуль (874) реконструкции и интра-декодер (872), соединенные друг с другом как показано на Фиг. 8.
[0112] Энтропийный декодер (871) может быть выполнен с возможностью реконструкции из кодированного изображения некоторых символов, которые представляют синтаксические элементы, образующие кодированное изображение. Такие символы могут включать в себя, например, режим кодирования блока (например, интра-режим, интер-режим, режим двойного предсказания, причем последние два в подрежиме объединения или другом подрежиме), информацию предсказания (например, информацию внутреннего предсказания или информацию внешнего предсказания), которая может идентифицировать определенный отсчет или метаданные, используемые для предсказания интра-декодером (872) или интер-декодером (880), соответственно, информацию остатка в форме, например, квантованных коэффициентов преобразования и т.п. Например, когда режим предсказания является режимом внутреннего или двойного предсказания, информация внешнего предсказания поступает на интер-декодер (880); а когда тип предсказания является типом внутреннего предсказания, информация внутреннего предсказания поступает на интра-декодер (872). Информация остатка может подвергаться обратному квантованию и поступать на декодер (873) остатка.
[0113] Интер-декодер (880) выполнен с возможностью приема информации внешнего предсказания и генерирования результатов внешнего предсказания на основании информации внешнего предсказания.
[0114] Интра-декодер (872) выполнен с возможностью приема информации внутреннего предсказания и генерирования результатов предсказания на основании информации внутреннего предсказания.
[0115] Декодер (873) остатка выполнен с возможностью осуществления обратного квантования для извлечения деквантованных коэффициентов преобразования и обработки деквантованных коэффициентов преобразования для преобразования остатка из частотной области в пространственную область. Декодер (873) остатка также может требовать некоторой информации управления (включать параметр квантователя (QP, Quantizer Parameter)), и эта информация может обеспечиваться энтропийным декодером (871) (путь данных не показан, поскольку это может быть только информация управления малого объема).
[0116] Модуль (874) реконструкции выполнен с возможностью объединения в пространственной области остатка на выходе декодера (873) остатка и результатов предсказания (на выходе модулей внешнего или внутреннего предсказания, в зависимости от ситуации) для формирования реконструированного блока, который может входить в состав реконструированного изображения, которое, в свою очередь, может входить в состав реконструированного видео. Заметим, что другие подходящие операции, например, операция деблокирования и т.п., может осуществляться для повышения визуального качества.
[0117] Заметим, что видеокодеры (403), (603) и (703) и видеодекодеры (410), (510) и (810) могут быть реализованы с использованием любого подходящего метода. Согласно варианту осуществления, видеокодеры (403), (603) и (703) и видеодекодеры (410), (510) и (810) могут быть реализованы с использованием одной или более интегральных схем. В другом варианте осуществления видеокодеры (403), (603) и (603) и видеодекодеры (410), (510) и (810) могут быть реализованы с использованием одного или более процессоров, которые выполняют программные инструкции.
[0118] Например, источник видеосигнала, представленный битовым потоком видео, может представлять собой последовательность изображений в порядке кодирования (например, в порядке кодирования, в порядке декодирования). Источник видеосигнала (например, кодированное изображение, последовательность изображений) может включать в себя один или более массивов отсчетов (также именуемых компонентами или плоскостями), таких как (1) только компонент яркости (Y) (монохромный) (или монохроматический компонент), (2) компонент яркости и два компонента цветности (например, YCbCr или YCgCo), (3) зеленый компонент, синий компонент и красный компонент (GBR, также известные как RGB), и (4) массивы, представляющие другие не специфицированные монохромные или трехцветные цветовые отсчеты (например, YZX, также известный как XYZ).
[0119] Как описано выше, источник видеосигнала может включать в себя множество компонентов, таких как компонент яркости и два компонента цветности (например, YCbCr или YCgCo), три компонента цветности (например, RGB) и т.п. Компонент источника видео может относиться к компоненту яркости (например, Y) или компоненту цветности (например, Cb, Cr, R, G или В).
[0120] Если источник видео (например, видеопоследовательность) включает в себя множество компонентов, то компоненты такого множества можно кодировать совместно, например, кодирование одного (например, первого компонента цветности) из множества компонентов может быть основано на другом компоненте из множества компонентов или зависеть от него (например, от второго компонента цветности или от компонента яркости). Компонент цветности присутствует в источнике видеосигнала (например, компонент цветности присутствует в множестве совместно кодированных компонентов), например, когда компонент цветности кодируется совместно с или на основании одного из множества компонентов.
[0121] В качестве альтернативы, если источник видео (например, видео последовательность) включает в себя множество компонентов, то компоненты такого множества можно кодировать независимо друг от друга. Например, кодирование одного (например, первого компонента цветности) из множества компонентов не основано на или не зависит от другого компонента (например, второго компонента цветности или компонента яркости) из такого множества компонентов. Таким образом, кодирование одного (например, первого компонента цветности) из множества компонентов осуществляется независимо от кодирования другого (например, второго компонента цветности или компонента яркости) компонента из такого множества компонентов. Данное множество компонентов можно назвать множеством раздельно кодированных компонентов. В приведенном примере множество раздельно кодированных компонентов называется множеством раздельно кодированных цветовых плоскостей или компонентов цветности.
[0122] Например, компонент цветности отсутствует, если источник видеосигнала включает в себя только монохроматический компонент. Альтернативно, компонент цветности отсутствует, если множество компонентов в источнике видеосигнала кодируются независимо или отдельно друг от друга. Например, если множество компонентов в источнике видео кодируются независимо друг от друга, то каждый из множества компонентов можно рассматривать в качестве монохроматического компонента (например, компонента цветности), и, таким образом, компонент цветности (например, компонент цветности, кодированный на основе одного из множества компонентов) отсутствует в источнике видеосигнала. Если множество компонентов в источнике видеосигнала кодируются независимо друг от друга, то отсутствует необходимость в различных инструментах кодирования, относящихся к цветности, так как каждый из множества компонентов можно считать монохроматическим компонентом.
[0123] В некоторых примерах видеопоследовательность, подлежащая кодированию, включает в себя множество цветовых плоскостей, и различные комбинации множества цветовых плоскостей можно кодировать совместно. Например, цветовая плоскость относится к компоненту цветности или компоненту яркости. В некоторых случаях применения, монохроматический видеосигнал или цветовые плоскости видеосигнала подлежат независимому кодированию, таким образом, определенные инструменты для совместного кодирования цветовых плоскостей не применяются. Для поддержки применений, в которых необходимо выполнить кодирование монохроматической плоскости или независимое кодирование цветовых плоскостей, аспекты изобретения, выходя за пределы универсального видеокодирования (VCC), могут предусматривать синтаксис и семантику, например, для блокирования, при необходимости, одного или более инструментов совместного кодирования цветовых плоскостей.
[0124] Индекс цветового формата (например, chroma_format_idc) может указывать на цветовой формат суботсчетов (или цветовой формат), например, между блоком(ами) цветности и соответствующим блоком яркости. Например, если индекс цветового формата (например, chroma_format_idc) равен 0, то цветовой формат может быть «монохромным», соответствующим монохромному отсчету с единственным массивом отсчетов, который обычно считается массивом яркости. Если индекс цветового формата равен 1, то цветовой формат может быть 4:2:0 (например, каждый из двух цветовых массивов равен половине высоты и половине ширины соответствующего массива яркости). Если индекс цветового формата равен 2, то цветовой формат может быть 4:2:2 (например, каждый из двух цветовых массивов имеет одинаковую высоту и половину ширины массива яркости). Если индекс цветового формата равен 3, то цветовой формат может быть 4:4:4, в зависимости от значения флага отдельной цветовой плоскости (например, separate_colour_plane_flag). Например, если флаг отдельной цветовой плоскости равен 0, то цветовым форматом будет 4:4:4 (например, каждый из двух цветовых массивов имеет одинаковую высоту и ширину с массивом яркости). В противном случае, флаг цветовой плоскости равен 1, и обработку трех цветовых плоскостей, как трех монохромных изображений, можно осуществлять по отдельности.
[0125] В некоторых примерах, таких как VVC, поддерживается (i) кодирование монохроматического видео и/или (ii) отдельное кодирование трех компонентов цветности в цветовом формате 4:4:4. Для поддержки (i) кодирования монохроматического видео и/или (ii) отдельного кодирования трех компонентов цветности в цветовом формате 4:4:4, можно определить переменную (или тип цветового массива) (например, ChromaArrayType), чтобы, например, в VVC, разрешать или запрещать соответствующие инструменты кодирования. Соответствующий инструмент кодирования может применяться или не применяться в зависимости от того, является ли входной видеосигнал монохроматическим и/или необходимо ли отдельное и независимое кодирование компонентов цветности входного видеосигнала.
Например, если входной видеосигнал монохроматический и/или если необходимо отдельное и независимое кодирование компонентов цветности входного видеосигнала, то соответствующий инструмент кодирования не применяется и, таким образом, блокирован. В противном случае, соответствующий инструмент кодирования применяется и, таким образом, разрешен.
[0126] Согласно примеру, такому как VVC, значение типа цветового массива (например, ChromaArrayType) назначается на основе значения флага отдельной цветовой плоскости (например, separate_colour_plane_flag). Согласно примеру, флаг отдельной цветовой плоскости (например, separate_colour_plane_flag) указывает на то, используются ли отдельно кодированные цветовые плоскости. Если флаг отдельной цветовой плоскости (например, separate_colour_plane_flag) равен 0, указывая на то, что отдельно кодированные цветовые плоскости не используются, то тип цветового массива (например, ChromaArrayType) устанавливается равным цветовому формату (также называемому форматом цветовых суботсчетов, например, определенному посредством chroma_format_idc). В противном случае, если флаг отдельной цветовой плоскости (например, separate_colour_plane_flag) равен 1, указывая на то, что используются отдельно кодированные цветовые плоскости, то тип цветового массива (например, ChromaArrayType) устанавливается равным 0.
[0127] Если тип цветового массива (например, ChromaArrayType) равен 0, то входной видеосигнал может быть монохроматическим или может иметь цветовой формат 4:4:4 (или цветовой формат 4:4:4) с отдельно кодированными цветовыми плоскостями. В некоторых примерах, желательно запретить использование определенных инструментов кодирования, не применимых к монохроматическому видеосигналу и/или к видеосигналу, каждый компонент цветности которого кодирован так, как если бы он был монохроматическим. В некоторых примерах, таких как VVC, один или более определенных инструментов кодирования нельзя запретить, если тип цветового массива (например, ChromaArrayType) равен 0. Например, определенные инструменты кодирования включают в себя инструменты кодирования, разрешенные флагом совместного кодирования (например, sps_joint_cbcr_enabled_flag), который может указывать на совместное кодирование остатков цветности, а также флагом присутствия совместного смещения PPS (например, pps_joint_cbcr_qp_offset_present_flag), соответственно. Флаг присутствия совместного смещения может указывать на то, присутствуют ли значение совместного смещения CbCr QP PPS и список совместного смещения CbCr QP в структуре синтаксиса PPS RBSP.
[0128] Аспекты изобретения могут предусматривать варианты/способы блокирования некоторых инструментов кодирования, например, в случае монохроматического входного видеосигнала, или когда входной видеосигнал имеет множество отдельно кодированных компонентов (например, кодирование одного компонента из множества компонентов независимо от другого компонента из множества компонентов). Согласно примеру, входной видеосигнал имеет цветовой формат 4:4:4 с отдельно кодированными цветовыми плоскостями.
[0129] На Фиг. 9A-9G представлена иллюстративная таблица синтаксиса полезной нагрузки последовательности исходных байтов (RBSP) набора параметров последовательности (SPS), например, из VVC.
[0130] На Фиг. 10A-10D представлена иллюстративная таблица синтаксиса RBSP набора параметров изображения (PPS), например, из VVC.
[0130] На Фиг. 11А-11В представлена иллюстративная таблица синтаксиса данных адаптивного контурного фильтра (ALF), например, из VVC.
[0132] На Фиг. 12 представлен иллюстративный синтаксис RBSP SPS.
[0133] Как показано в таблицах, представленных на Фиг. 9A-9G и Фиг. 12, флаг совместного кодирования (например, sps_joint_cbcr_enabled_flag) может указывать на совместное кодирование остатков цветности. Флаг совместного кодирования (например, sps_joint_cbcr_enabled_flag), равный 0, может указывать на запрещение совместного кодирования остатков цветности. Флаг совместного кодирования (например, sps_joint_cbcr_enabled_flag), равный 1, может указывать на разрешение совместного кодирования остатков цветности. При отсутствии флага совместного кодирования (например, sps_joint_cbcr_enabled_flag), можно сделать вывод, что флаг совместного кодирования (например, sps_joint_cbcr_enabled_flag) имеет значение по умолчанию, равное 0.
[0134] См. строку (910) на Фиг. 9D, флаг совместного кодирования (например, sps_joint_cbcr_enabled_flag) может быть передан независимо от значения типа цветового массива (например, ChromaArrayType). См. строки (1201)-(1202) на Фиг. 12, передача флага совместного кодирования (например, sps_joint_cbcr_enabled_flag) зависит от типа цветового массива (например, ChromaArrayType). Если тип цветового массива (например, ChromaArrayType) равен 0, то флаг совместного кодирования (например, sps_joint_cbcr_enabled_flag) не анализируется, например, в SPS, представленном на Фиг. 12, и можно сделать вывод, что он равен 0. Таким образом, совместное кодирование остатков цветности (например, совместное кодирование остатка Cb и Cr), как кодирование остатка цветности, блокировано во избежание ненужного процесса декодирования.
[0135] В некоторых примерах в битовом потоке видео компонент цветности отсутствует, флаг присутствия цветности передают в PPS, в наборе параметров адаптации (APS) и т.п. для того, чтобы предотвратить декодирование относящегося(ихся) к цветности элемента(ов) синтаксиса. Флаг присутствия цветности может быть передан в PPS в качестве флага присутствия цветности PPS (например, pps_chromat_present_flag), в APS в качестве флага присутствия цветности APS (например, aps_chromat_present_flag) и т.д. для указания, присутствует ли компонент цветности в битовом потоке видео, таком как видеопоследовательность. Согласно примеру, компонент цветности присутствует, если компонент цветности кодирован совместно с другим компонентом (например, компонентом яркости, другим компонентом цветности).
[0136] Флаг присутствия цветности PPS (например, pps_chromat_present_flag) может указывать на то, присутствует ли компонент цветности. Если флаг присутствия цветности PPS (например, pps_chromat_present_flag) равен 1, то компонент цветности присутствует, и в PPS может присутствовать относящийся к цветности синтаксис. Флаг присутствия цветности PPS (например, pps_chromat_present_flag) равный 0, может указывать на то, что компонент цветности отсутствует. Требованием для соответствия битового потока может быть флаг присутствия цветности PPS (например, pps_chromat_present_flag) равный 0, если тип цветового массива (например, ChromaArrayType) равен 0.
[0137] Флаг присутствия цветности APS (например, aps_chromat_present_flag) может указывать на то, присутствует ли компонент цветности. Если флаг присутствия цветности APS (например, aps_chromat_present_flag) равен 1, то компонент цветности присутствует, и таким образом, в APS может присутствовать синтаксис, относящийся к цветности. Флаг присутствия цветности APS (например, aps_chromat_present_flag) равный 0, может указывать на отсутствие компонента цветности и отсутствие синтаксиса, относящегося к цветности. Требованием для соответствия битового потока может быть флаг присутствия цветности APS (например, aps_chromat_present_flag) равный 0, если тип цветового массива (например, ChromaArrayType) равен 0.
[0138] Для обеспечения отсутствия конфликта при передаче типа цветового массива (например, ChromaArrayType) и соответствующих элементов синтаксиса, синтаксис SPS RBSP на Фиг. 9A-9G, синтаксис PPS RBSP на Фиг. 10A-10D и синтаксис данных ALF на Фиг. 11А-11 В можно изменить, как показано на Фиг. 13-16. Эти изменения выделены в строках и текстом с зачеркиванием, указывающим на удаленный текст.
[0139] Ссылаясь на строки (911)-(912) на Фиг. 9E-9F, цветовой формат (например, chroma_format_idc), равный 3, можно отнести к цветовому формату 4:4:4 с флагом отдельной цветовой плоскости (например, separate_colour_plane_flag), равным 0 или 1. Таким образом, флаг разрешения цветности дифференциальной импульсно-кодовой модуляции на основе блока (BDPCM, block-based delta pulse code modulation) SPS (например, sps_bdpcm_chroma_enabled_flag), флаг разрешения палитры SPS (например, sps_palette_enabled_flag) и флаг разрешения адаптивного преобразования цвета (ACT, adaptive color transform) SPS (например, sps_act_enabled_flag), которые указывают на инструменты кодирования только цветности и/или инструменты кодирования, использующие компонент(ы) цветности, передаются независимо от значения флага отдельной цветовой плоскости (например, separate_colour_plane_flag). Сравнивая строки (911)-(912) на Фиг. 9E-9F со строками (1301)-(1302) на Фиг. 13, соответственно, тип цветового массива (например, ChromaArrayType) на Фиг. 13 может заменить цветовой формат (например, chroma_format_idc) в таблице, представленной на Фиг. 9E-9F, и, таким образом, синтаксис «ChromaArrayType = 3» на Фиг. 13 может заменить синтаксис "chroma_format_idc = 3" в таблице на Фиг. 9E-9F. Как описано выше, тип цветового формата (например, ChromaArrayType), равный 3, может указывать на то, что имеется цветовой формат 4:4:4 и флаг отдельной цветовой плоскости (например, separate_colour_plane_flag) равен 0. Соответственно, флаг разрешения цветности BDPCM SPS (например, sps_bdpcm_chroma_enabled_flag), флаг разрешения палитры SPS (например, sps_palette_enabled_flag) и флаг разрешения ACT SPS (например, sps_act_enabled_flag) могут передаваться только тогда, когда тип цветового массива (например, ChromaArrayType) равен 3 (например, когда присутствует компонент цветности и цветовой формат 4:4:4). Согласно примеру, при отсутствии компонента цветности, тип цветового массива (например, ChromaArrayType) равен 0, и, таким образом, флаг разрешения цветности BDPCM SPS (например, sps_bdpcm_chroma_enabled_flag), флаг разрешения палитры SPS (например, sps_palette_enabled_flag), и флаг разрешения ACT SPS (например, sps_act_enabled_flag) не передаются. Соответственно, флаги, относящиеся к инструментам кодирования цветности, не передаются при отсутствии компонента цветности, и, таким образом, можно сократить издержки на передачу и улучшить эффективность кодирования.
[0140] Смещения QP PPS (например, pps_cb_qp_offset и pps_cr_qp_offset) могут указывать на смещения QP яркости (например, Qp'Y), используемого для выведения QP цветности (например, Qp'Cb и Qp'Cr), соответственно. Значения смещений QP PPS (например, pps_cb_qp_offset и pps_cr_qp_offset) могут находиться в пределах от -12 до +12, включительно. Если тип цветового массива (например, ChromaArrayType) равен 0, то смещения PPS QP (например, pps_cb_qp_offset и pps_cr_qp_offset) не используются в процессе декодирования, и декодер может проигнорировать значения смещений QP PPS.
[0141] Флаг присутствия совместного смещения PPS (например, pps_joint_cbcr_qp_offset_present_flag), равный 1, может указывать на то, что в структуре синтаксиса PPS RBSP присутствуют значение совместного смещения CbCr QP PPS (например, pps_joint_cbcr_qp_offset_value) и список совместного смещения CbCr QP PPS (например, joint_cbcr_qp_offset_list[i]). Флаг присутствия совместного смещения PPS (например, pps_joint_cbcr_qp_offset_present_flag) равный 0, может указывать на то, что в структуре синтаксиса PPS RBSP отсутствуют значение совместного смещения CbCr QP PPS (например, pps_joint_cbcr_qp_offset_value) и список совместного смещения CbCr QP PPS (например, joint_cbcr_qp_offset_list[i]). Если флаг присутствия совместного смещения PPS (например, pps_joint_cbcr_qp_offset_present_flag) отсутствует, то можно сделать вывод, что флаг присутствия совместного смещения PPS (например, pps_joint_cbcr_qp_offset_present_flag) равен 0.
[0142] Флаг слайса PPS (например, pps_slice_chroma_qp_offsets_present_flag), равный 1, может указывать на то, что в соответствующих заголовках слайса присутствуют элемент синтаксиса смещения слайса Cb QP (например, slice_cb_qp_offset) и элемент синтаксиса смещения слайса Cr QP (например, slice_cr_qp_offset). Флаг слайса PPS (например, pps_slice_chroma_qp_offsets_present_flag) равный 0, может указывать на то, что в соответствующих заголовках слайса отсутствуют элемент синтаксиса смещения слайса Cb QP (например, slice_cb_qp_offset) и элемент синтаксиса смещения слайса Cr QP (например, slice_cr_qp_offset). Если флаг слайса PPS (например, pps_slice_chroma_qp_offsets_present_flag), отсутствует, то это может означать, что флаг слайса PPS (например, pps_slice_chroma_qp_offsets_present_flag) равен 0.
[0143] Флаг CU PPS (например, pps_cu_chroma_qp_offset_list_enabled_flag), равный 1, может указывать на то, что элемент синтаксиса внутреннего слайса (например, pic_cu_chroma_qp_offset_subdiv_intra_slice) и элемент синтаксиса внешнего слайса (например, pic_cu_chroma_qp_offset_subdiv_inter_slice) присутствуют в заголовках изображения, ссылающихся на PPS, и что флаг CU (например, а cu_chroma_qp_offset_flag) может присутствовать в синтаксисе единицы преобразования и в синтаксисе кодирования палитры. Флаг PPS CU (например, pps_cu_chroma_qp_offset_list_enabled_flag), равный 0, может устанавливать, что элемент синтаксиса внутреннего слайса (например, pic_cu_chroma_qp_offset_subdiv_intra_slice) и элемент синтаксиса внешнего слайса (например, pic_cu_chroma_qp_offset_subdiv_inter_slice) отсутствуют в заголовках изображения, ссылающихся на PPS, и что флаг CU (например, cu_chroma_qp_offset_flag) отсутствует в синтаксисе единицы преобразования и в синтаксисе кодирования палитры. Если отсутствует флаг PPS CU (например, pps_cu_chroma_qp_offset_list_enabled_flag), это может означать, что флаг PPS CU (например, pps_cu_chroma_qp_offset_list_enabled_flag) равен 0.
[0144] Ссылаясь на строки (1001)-(1102) на Фиг. 10С, определенный синтаксис PPS, такой как смещения параметра квантования (QP) PPS (например, pps_cb_qp_offset и pps_cr_qp_offset) для соответствующих компонентов цветности (например, компонента Cb и компонента Cr), флаг присутствия совместного смещения PPS (например, pps_joint_cbcr_qp_offset_present_flag), флаг слайса PPS (например, pps_slice_chroma_qp_offsets_present_flag), и/или флаг PPS CU (например, pps_cu_chroma_qp_offset_list_enabled_flag), которые указывают информацию, относящуюся к цветности, могут быть переданы в синтаксис PPS RSRP, например, в присутствии или отсутствии компонента цветности, как показано на Фиг. 10A-10D. Ссылаясь на Фиг. 14, если флаг присутствия цветности PPS (например, pps_chromat_present_flag) равен 1, указывая на присутствие компонента цветности, то синтаксис PPS, такой как смещения QP PPS (например, pps_cb_qp_offset и pps_cr_qp_offset), флаг присутствия совместного смещения PPS (например, pps_joint_cbcr_qp_offset_present_flag), флаг слайса PPS (например, pps_slice_chroma_qp_offsets_present_flag), и/или флаг CU PPS (например, pps_cu_chroma_qp_offset_list_enabled_flag), указывают на то, что относящаяся к цветности информация может быть передана в синтаксисе RSRP PPS. В противном случае, если флаг присутствия цветности PPS (например, pps_chromat_present_flag) равен 0, указывая на отсутствие компонента цветности, передача синтаксиса PPS не осуществляется. Таким образом, можно улучшить эффективность кодирования.
[0145] Если тип цветового массива (например, ChromaArrayType) равен 0, то источник видеосигнала может иметь один компонент (например, монохроматический компонент) или источник видеосигнала может иметь цветовой формат 4:4:4 со множеством компонентов, и компоненты такого множества кодируются по отдельности или независимо друг от друга. Соответственно, например, отсутствует компонент цветности, кодированный на основе другого компонента. Таким образом, если тип цветового массива (например, ChromaArrayType) равен 0, то видеокомпонент можно кодировать, как если бы этот видеокомпонент был монохроматическим или имеет цветовой формат 4:4:4 с отдельно кодированными цветовыми плоскостями.
[0146] На Фиг. 17 представлена схема процесса (1700) согласно другому варианту осуществления изобретения. Анализ синтаксиса QP цветности можно запретить, если флаг присутствия цветности PPS (например, pps_chroma_present_flag) равен 0, указывая на отсутствие компонента цветности, например, во избежание ненужного процесса декодирования. Можно сделать вывод, что элементы синтаксиса, включая смещения PPS QP (например, pps_cb_qp_offset и pps_cr_qp_offset), флаг присутствия совместного смещения PPS (например, pps_joint_cbcr_qp_offset_present_flag), флаг слайса PPS (например, pps_slice_chroma_qp_offsets_present_flag) и/или флаг PPS CU (например, pps_cu_chroma_qp_offset_list_enabled_flag) равны 0, и, таким образом, не применяются в процессе выведения QP на стороне декодирования.
[0147] Согласно примеру, процесс (1700) начинается с (S1701) и переходит к (S1710).
[0148] На этапе (S1710), можно определить, равен ли 1 флаг присутствия цветности PPS. Если определено, что флаг присутствия цветности PPS не равен 1, то процесс (1700) переходит к (S1720). В противном случае, если определено, что флаг присутствия цветности PPS равен 1, процесс (1700) переходит к (S1730).
[0149] На этапе (S1720), можно сделать вывод, что элемент синтаксиса QP цветности, например, одно из смещений PPS QP (например, pps_cb_qp_offset и pps_cr_qp_offset), флаг присутствия совместного смещения PPS (например, pps_joint_cbcr_qp_offset_present_flag), флаг слайса PPS (например, pps_slice_chroma_qp_offsets_present_flag), флаг CU PPS (например, pps_cu_chroma_qp_offset_list_enabled_flag) и т.п. равен 0. Процесс (1700) переходит к (S1740).
[0150] На этапе (S1740), элемент синтаксиса QP цветности, равный 0, не применяется. Процесс (1700) переходит к (S1799) и заканчивается.
[0151] На этапе (S1730), можно осуществить декодирование элемента синтаксиса QP цветности. Процесс (1700) переходит к (S1750).
[0152] На этапе (S1750), можно определить, что флаг присутствия цветности PPS не равен 0. Если определено, что флаг присутствия цветности PPS равен 0, то процесс (1700) переходит к (S1740). В противном случае, если определено, что флаг присутствия цветности PPS не равен 0, процесс (1700) переходит к (S1760).
[0153] На этапе (S1760), применяется элемент синтаксиса QP цветности, не равный 0. Процесс (1700) переходит к (S1799) и заканчивается.
[0154] Флаг передачи фильтра цветности ALF (например, alf_chroma_filter_signal_flag) равный 1, может указывать на передачу фильтра цветности ALF. Флаг передачи фильтра цветности ALF (например, alf_chroma_filter_signal_flag) равный 0, может указывать на отсутствие передачи фильтра цветности ALF. При отсутствии флага передачи фильтра цветности ALF (например, alf_chroma_filter_signal_flag), можно сделать вывод, что флаг передачи фильтра цветности ALF (например, alf_chroma_filter_signal_flag) равен 0.
[0155] В строке (1101) на Фиг. 11А показано, что флаг передачи фильтра цветности ALF (например, alf_chroma_filter_signal_flag) передается в синтаксис данных ALF. В строке (1102) на Фиг. 11 В показано, что если флаг передачи фильтра цветности ALF (например, alf_chroma_filter_signal_flag) равен 1, то можно выполнить анализ информации о фильтре цветности ALF для соответствующего фильтра цветности ALF. Ссылаясь на строку (1601) на Фиг. 16, если флаг присутствия цветности ALF (например, alf_chroma_present_flag) равен 1, указывая на присутствие компонента цветности, то выполняется сигнализация флага передачи фильтра цветности ALF (например, alf_chroma_filter_signal_flag). Далее, ссылаясь на строку (1602), если флаг передачи фильтра цветности ALF (например, alf_chroma_filter_signal_flag) равен 1, то можно выполнить анализ информации о фильтре цветности ALF для соответствующего фильтра цветности ALF. Альтернативно, если флаг присутствия цветности ALF (например, alf_chroma_present_flag) равен 0, указывая на отсутствие компонента цветности, то передача флага передачи фильтра цветности ALF (например, alf_chroma_filter_signal_flag) не выполняется. Как следствие, анализ информации о фильтре цветности ALF для соответствующего фильтра цветности ALF не выполняется и, таким образом, сокращаются издержки на передачу и повышается эффективность кодирования.
[0156] На Фиг. 18 представлена схема процесса (1800) согласно другому варианту осуществления изобретения. Фильтр цветности ALF можно запретить в качестве фильтра цветности, если флаг присутствия цветности APS (например, aps_chroma_present_flag) равен 0, например, во избежание ненужного процесса декодирования. Поэтому можно сделать вывод, что флаг передачи фильтра цветности ALF (например, alf_chroma_filter_signal_flag) равен 0.
[0157] Согласно примеру, процесс (1800) начинается с (S1801) и переходит к (S1810).
[0158] На этапе (S1810), можно определить, равен ли 1 флаг присутствия цветности APS. Если определено, что флаг присутствия цветности APS не равен 1, и, таким образом, отсутствует компонент цветности, процесс (1800) переходит к (S1820). В противном случае, если определено, что флаг присутствия цветности APS равен 1, процесс (1800) переходит к (S1830).
[0159] На этапе (S1820), можно сделать вывод, что флаг передачи фильтра цветности ALF равен 0. Процесс (1800) переходит к (S1840).
[0160] На этапе (S1840), фильтр цветности ALF не применяется к компоненту цветности, так как компонент цветности отсутствует. Процесс (1800) переходит к (S1899) и заканчивается.
[0161] На этапе (S1830), можно осуществить декодирование флага передачи фильтра цветности ALF. Процесс (1800) переходит к (S1850).
[0162] На этапе (S1850), можно определить, равен ли 1 флаг передачи фильтра цветности ALF. Если определено, что флаг передачи фильтра цветности ALF не равен 1 (например, равен 0), то процесс (1800) переходит к (S1840). В противном случае, если определено, что флаг передачи фильтра цветности ALF равен 1, процесс (1800) переходит к (S1860).
[0163] На этапе (S1860), фильтр цветности ALF можно применить к присутствующему компоненту цветности. Процесс (1800) переходит к (S1899) и заканчивается.
[0164] На Фиг. 19 представлена схема процесса (1900) согласно другому варианту осуществления изобретения. В некоторых примерах, таких как VVC, определенные инструменты кодирования (например, BDPCM для цветности, кодирование режима палитры и ACT) применяются только с цветовым форматом 4:4:4 без отдельных цветовых плоскостей. Анализ элементов синтаксиса, относящихся к определенным инструментам кодирования, не выполняется для цветового формата 4:4:4 с отдельными цветовыми плоскостями (например, компонент цветности кодируется как компонент яркости). Поэтому, во избежание ненужного процесса декодирования, анализ элементов синтаксиса выполняется только в том случае, если тип цветового массива (например, ChromaArrayType) равен 3.
[0165] Согласно примеру, процесс (1900) начинается с (S1901) и переходит к (S1910).
[0166] На этапе (S1910), можно определить, равен ли 3 тип цветового массива. Тип цветового массива, равный 3, может указывать на цветовой формат 4:4:4 без отдельных цветовых плоскостей. Если определено, что цветовой формат 4:4:4 без отдельных цветовых плоскостей не является форматом типа цветового массива, то процесс (1900) переходит к (S1920). В противном случае, если определено, что цветовой формат 4:4:4 без отдельных цветовых плоскостей является форматом типа цветового массива, то процесс (1900) переходит к (S1930).
[0167] На этапе (S1920), можно сделать вывод, что элемент синтаксиса, такой как флаг разрешения цветности SPS BDPCM (например, sps_bdpcm_chroma_enabled_flag), флаг разрешения палитры SPS (например, sps_palette_enabled_flag) или флаг разрешения SPS ACT (например, sps_act_enabled_flag), относящиеся к цветовому формату 4:4:4 без отдельных цветовых плоскостей, равен 0. Процесс (1900) переходит к (S1940).
[0168] На этапе (S1940), инструмент кодирования (например, BDPCM, кодирование палитры или ACT), относящийся к цветовому формату 4:4:4 без отдельных цветовых плоскостей, не применяется. Процесс (1900) переходит к (S1999) и заканчивается.
[0169] На этапе (S1930), элемент синтаксиса, относящийся к цветовому формату 4:4:4 без отдельных цветовых плоскостей, можно декодировать. Процесс (1900) переходит к (S1950).
[0170] На этапе (S1950), можно определить, равен ли элемент синтаксиса 1. Если определено, что элемент синтаксиса не равен 1 (например, равен 0), то процесс (1900) переходит к (S1940). В противном случае, если определено, что элемент синтаксиса равен 1, то процесс (1900) переходит к (S1960).
[0171] На этапе (S1960), можно применить элемент синтаксиса, относящийся к цветовому формату 4:4:4 без отдельных цветовых плоскостей. Процесс (1900) переходит к (S1999) и заканчивается.
[0172] Если компонент цветности, такой как монохромный или в формате 4:4:4 без отдельных цветовых плоскостей, отсутствует в битовом потоке видео, желательно не декодировать относящиеся к цветности элементы синтаксиса в синтаксисе высокого уровня, такие как SPS, PPS, ASP, заголовок изображения и т.п.
[0173] Для обеспечения отсутствия конфликта передачи между типом цветового массива (например, ChromaArrayType) и соответствующими элементами синтаксиса, в других вариантах осуществления и/или раскрытия изобретения, синтаксис RBSP SPS, синтаксис RBSP PPS и/или синтаксис данных ALF можно модифицировать.
pred
res
pred
pred
pred
[0174] На Фиг. 20 представлена иллюстративная архитектура (например, на стороне декодера) инструмента кодирования "отображение яркости с масштабированием цветности" (LMCS, luma mapping with chroma scaling) согласно другому варианту осуществления. Согласно примеру, также как в VVC, инструмент кодирования LMCS добавляется перед контурными фильтрами в качестве нового блока обработки. Инструмент кодирования LMCS может включать в себя два компонента: 1) внутриконтурное отображение компонента яркости на основе адаптивных кусочно-линейных моделей, 2) яркостно-зависимое масштабирование остатка цветности (CRS), применяемое к компоненту(ам) цветности. Множество блоков (например, блоки (2011), (2012) и (2015)) может указывать на то, где в отображаемой области применяется обработка, и может включать в себя блок обратного квантования и обратного преобразования (2011), блок внутреннего предсказания яркости (2015) и блок реконструкции (2012), что позволяет добавить предсказание яркости Y' вместе с остатком яркости Y. Предсказание яркости Y' может быть получено из блока внутреннего предсказания яркости (2016) или из блока прямого преобразования (2018) сигнала яркости Y'. Сигнал яркости Y' может генерироваться блоком предсказания с компенсацией движения (2016), который может иметь входные данные из буфера декодированного изображения (DPB) (2014). DPB (2014) может быть буфером для хранения декодированных изображений.
pred
res
pred
resscale
resscale
[0175] Множество блоков (например, блоки (2002), (2003), (2005), (2006)) может указывать на то, где в неотображаемой области применяется обработка, и может включать в себя контурные фильтры (2003), такие как деблокирующий, ALF и SAO, блок предсказания с компенсацией движения (2006), блок внутреннего предсказания цветности (2005), блок реконструкции (2002), которые позволяют добавить предсказание цветности C вместе с остатком цветности C, и сохранить декодированные изображения в качестве опорных изображений в DPB (2004). Функциональные блоки LMCS могут включать в себя блок прямого преобразования (2018) сигнала яркости Y, блок обратного преобразования (2017) сигнала яркости и блок обработки для яркостно-зависимого масштабирования остатка цветности (2001). Обратное квантование и блок обратного преобразования (2011) могут обеспечить наличие параметра масштабирования остатка цветности (например, C) для блока обработки для яркостно-зависимого масштабирования остатка цветности (2001). Блок обработки для яркостно-зависимого масштабирования остатка цветности (2001) может генерировать остаток цветности на основе параметра масштабирования остатка цветности (например, C) и параметра (например, cScaleInv). Параметр (например, cScaleInv) можно определить с помощью блока реконструкции (например, на основе реконструированного(ых) соседнего(них) компонента(ов) яркости, такого как верхний и/или левый соседний компонент текущего блока данных виртуального конвейера (VDPU, virtual pipeline data unit)). Выходные данные, полученные из блока обратного преобразования (2017), можно отфильтровать контурными фильтрами (2013) и затем сохранить в DPB (2014). Инструмент кодирования LMCS можно разрешить или запретить на уровне последовательности с помощью флага SPS.
[0176] Согласно аспектам изобретения, первый элемент синтаксиса можно декодировать из битового потока кодированного видео. Первый элемент синтаксиса может указывать на то, кодирован ли первый элемент битового потока кодированного видео на основе второго компонента битового потока кодированного видео. На основе первого элемента синтаксиса можно определить, декодировать ли один или более вторых элементов синтаксиса для относящегося к цветности инструмента кодирования. Относящийся к цветности инструмент кодирования может быть инструментом кодирования, используемым только для компонента(ов) цветности, или инструментом кодирования, использующим компонент(ы) цветности. Согласно примерам, относящимся к цветности инструментом кодирования является либо (i) инструмент кодирования LMCS, либо (ii) кросс-компонентный адаптивный контурный фильтр (CC-ALF, cross-component adaptive loop filter).
[0177] Один или более вторых элементов синтаксиса относящегося к цветности инструмента кодирования можно декодировать на основе первого элемента синтаксиса, указывающего на то, что первый компонент кодирован на основе второго компонента битового потока кодированного видео, и первый компонент является компонентом цветности. Один или более вторых элементов синтаксиса относящегося к цветности инструмента кодирования не декодируют на основе первого элемента синтаксиса, указывающего на то, что первый компонент в кодированном битовом потоке видео кодирован независимо, например, первый компонент не кодирован на основе второго компонента битового потока кодированного видео.
[0178] Первый элемент синтаксиса можно передать в APS. Первый элемент синтаксиса может быть флагом присутствия цветности APS (например, aps_chroma_present_flag). Первый элемент синтаксиса может на уровне последовательности указывать на то, кодирован ли первый компонент на основе второго компонента.
[0179] Первый элемент синтаксиса может указывать на то, присутствует ли компонент цветности в битовом потоке кодированного видео.
[0180] Если первый элемент синтаксиса указывает на то, что первый компонент кодирован на основе второго компонента, то второй компонент может быть либо вторым компонентом цветности, либо компонентом яркости битового потока кодированного видео. Соответственно, компонент цветности (например, первый компонент цветности) присутствует в битовом потоке кодированного видео.
[0181] Если первый элемент синтаксиса указывает на то, что первый компонент кодирован независимо, например, первый компонент не кодирован на основе второго компонента, то (i) первый компонент является единственным компонентом в кодированной видеопоследовательности или (ii) битовый поток кодированного видео включает в себя, по меньшей мере, первый компонент и второй компонент, и первый компонент кодирован независимо от второго компонента. Соответственно, определяется, что компонент цветности отсутствует в битовом потоке кодированного видео. Например, битовый поток кодированного видео включает в себя, по меньшей мере, первый компонент и второй компонент, которые кодированы независимо друг от друга. Если первый компонент является компонентом цветности, то первый компонент обрабатывается как монохроматический компонент, или как компонент яркости, при отсутствии необходимости использования инструмента кодирования, относящегося к цветности. Таким образом, компонент цветности, подлежащий кодированию на основе другого компонента битового потока кодированного видео, отсутствует.
[0182] Согласно примеру, битовый поток кодированного видео включает в себя первый компонент цветности, второй компонент цветности и компонент яркости в цветовом формате 4:4:4. Первый компонент является первым компонентом цветности. Второй компонент является вторым компонентом цветности или компонентом яркости. Первый компонент цветности, второй компонент цветности и компонент яркости кодированы независимо друг от друга.
[0183] Инструмент кодирования, относящийся к цветности, можно запретить на основе первого элемента синтаксиса, указывающего на то, что первый компонент кодирован независимо в битовом потоке кодированного видео, например, первый компонент не кодирован на основе второго компонента битового потока кодированного видео.
[0184] В другом варианте осуществления инструмент кодирования, относящийся к цветности, является инструментом кодирования LMCS. Первый элемент синтаксиса может указывать на то, что первый компонент цветности кодирован на основе второго компонента. Один или более вторых элементов синтаксиса для инструмента кодирования LMCS могут включать в себя первый параметр LMCS, указывающий на абсолютное значение переменной (например, lmcsDeltaCrs) масштабирования остатка цветности (CRS) LMCS. Второй параметр LMCS для инструмента кодирования LMCS можно декодировать, если абсолютное значение переменной для CRS LMCS больше 0. Второй параметр LMCS может указывать на знак переменной для CRS LMCS. Один или более вторых элементов синтаксиса могут включать в себя второй параметр LMCS. Второй параметр LMCS для инструмента кодирования LMCS не декодируют, если абсолютное значение переменной для CRS LMCS не больше 0.
[0185] LMCS является инструментом масштабирования остатка и может применяться к компоненту яркости и к одному или более компонентам цветности. Если компонент цветности отсутствует в битовом потоке видео, то относящиеся к цветности элементы синтаксиса (например, первый параметр LMCS, второй параметр LMCS) для инструмента кодирования LMCS не нужны, например, в APS.
[0186] Первый параметр LMCS (например, lmcs_delta_abs_crs) может указывать на абсолютное значение кодового слова переменной (например, lmcsDeltaCrs) для CRS LMCS. Если первый параметр LMCS (например, lmcs_delta_abs_crs) отсутствует, то можно сделать вывод, что первый параметр LMCS (например, lmcs_delta_abs_crs) равен 0.
[0187] Второй параметр LMCS (например, lmcs_delta_sign_crs_flag) может указывать на знак переменной (например, lmcsDeltaCrs). Если второй параметр LMCS (например, lmcs_delta_sign_crs_flag) отсутствует, то можно сделать вывод, что второй параметр LMCS (например, lmcs_delta_sign_crs_flag) равен 0.
[0188] Согласно аспектам изобретения, относящиеся к цветности элементы синтаксиса (например, первый параметр LMCS, второй параметр LMCS) для инструмента кодирования LMCS могут не передаваться. Если флаг присутствия цветности APS (например, aps_chroma_present_flag) равен 1, то компонент цветности присутствует (например, компонент цветности подлежит кодированию на основе другого компонента битового потока кодированного видео), и, таким образом, относящийся к цветности синтаксис для инструмента кодирования LMCS может передаваться в битовом потоке видео. Если флаг присутствия цветности APS (например, aps_chroma_present_flag) равен 0, то компонент цветности отсутствует, и относящийся к цветности синтаксис для инструмента кодирования LMCS не передается в битовом потоке видео. Таким образом, относящийся к цветности синтаксис не анализируется и не декодируется с помощью декодера. Соответственно, избыточную сигнализацию можно уменьшить путем запрета передачи относящихся к цветности элементов синтаксиса для инструмента кодирования LMCS, если относящиеся к цветности элементы синтаксиса для инструмента кодирования LMCS не нужны, и улучшить эффективность кодирования.
[0189] На Фиг. 21 представлен иллюстративный синтаксис данных LMCS, согласно другому варианту осуществления. См. строки (2101), на основе флага присутствия цветности APS (например, aps_chroma_present_flag) можно определить, передается ли относящийся к цветности синтаксис для инструмента кодирования LMCS. Если флаг присутствия цветности APS (например, aps_chroma_present_flag) равен 1, то компонент цветности присутствует. Согласно примеру, один относящийся к цветности элемент синтаксиса для инструмента кодирования LMCS, такой как первый параметр LMCS (например, lmcs_delta_abs_crs), передается в битовом потоке видео. Передавать ли другой относящийся к цветности элемент(ы) синтаксиса для инструмента кодирования LMCS, можно определить на основе первого параметра LMCS (например, lmcs_delta_abs_crs). Согласно примеру, если первый параметр LMCS (например, lmcs_delta_abs_crs) больше 0, то второй параметр LMCS (например, lmcs_delta_sign_crs_flag), т.е. относящийся к цветности элемент синтаксиса для инструмента кодирования LMCS, передается. В противном случае, второй параметр LMCS (например, lmcs_delta_sign_crs_flag) не передается.
[0190] См. строки (2101), если флаг присутствия цветности APS (например, aps_chroma_present_flag) равен 0, то компонент цветности отсутствует. Относящиеся к цветности элементы синтаксиса для инструмента кодирования LMCS, такие как первый параметр LMCS (например, lmcs_delta_abs_crs) и второй параметр LMCS (например, lmcs_delta_sign_crs_flag), не передаются в битовом потоке видео.
[0191] В другом варианте осуществления относящимся к цветности инструментом кодирования является CC-ALF. Первый элемент синтаксиса указывает на то, что первый компонент цветности кодирован на основе второго компонента. Один или более вторых элементов синтаксиса для CC-ALF могут включать в себя первый флаг CC-ALF и второй флаг CC-ALF. Первый флаг CC-ALF может указывать, передается ли первый CC-ALF в битовом потоке кодированного видео, и второй флаг CC-ALF может указывать на то, передается ли второй CC-ALF в битовом потоке кодированного видео. Элементы синтаксиса для первого CC-ALF можно декодировать на основе первого флага CC-ALF, указывающего на то, что первый флаг CC-ALF передается. Один или более вторых элементов синтаксиса для CC-ALF могут включать в себя элементы синтаксиса для первого CC-ALF. Элементы синтаксиса для первого CC-ALF не декодируются, если первый флаг CC-ALF указывает на то, что первый CC-ALF не передается.
[0192] Элементы синтаксиса второго CC-ALF можно декодировать на основе второго флага CC-ALF, указывающего на то, что второй CC-ALF передается. Один или более вторых элементов синтаксиса для CC-ALF могут включать в себя элементы синтаксиса для второго CC-ALF. Элементы синтаксиса для второго CC-ALF не декодируют, если второй флаг CC-ALF указывает на то, что второй CC-ALF не передается.
[0193] CC-ALF представляет собой ALF, применяемый к компоненту(ам) цветности. Относящиеся к цветности элементы синтаксиса для CC-ALF, могут включать в себя первый флаг CC-ALF (например, (alf_cross_component_cb_filter_signal_flag), указывающий, передается ли первый CC-ALF в битовом потоке кодированного видео, второй флаг CC-ALF (например, alf_cross_component_cr_filter_signal_flag), указывающий, передается ли второй CC-ALF в битовом потоке кодированного видео, элементы синтаксиса для первого CC-ALF, элементы синтаксиса для второго CC-ALF и т.п.
[0194] Первый флаг CC-ALF (например, (alf_cross_component_cb_filter_signal_flag) равный 1, может указывать на то, что первый CC-ALF (например, кросс-компонентный Cb фильтр) передается. Первый флаг CC-ALF (например, (alf_cross_component_cb_filter_signal_flag) равный 0, может указывать на то, что первый CC-ALF (например, кросс-компонентный Cb фильтр) не передается. Если первый флаг CC-ALF (например, (alf_cross_component_cb_filter_signal_flag) отсутствует, то можно сделать вывод, что первый флаг CC-ALF (например, кросс-компонентный Cb фильтр) равен 0.
[0195] Второй флаг CC-ALF (например, (alf_cross_component_cr_filter_signal_flag), равный 1, может указывать на то, что второй CC-ALF (например, кросс-компонентный Cr фильтр) передается. Второй флаг CC-ALF (например, (alf_cross_component_cr_filter_signal_flag), равный 0, может указывать на то, что второй CC-ALF (например, кросс-компонентный Cr фильтр) не передается. Если второй флаг CC-ALF (например, (alf_cross_component_cr_filter_signal_flag) отсутствует, то можно сделать вывод, что второй флаг CC-ALF (например, кросс-компонентный Cr фильтр) равен 0.
[0196] Отсутствие компонента цветности в битовом потоке видео может указывать на то, что каждый компонент в битовом потоке видео кодирован независимо друг от друга как монохроматический компонент или как компонент яркости. Таким образом, для этого компонента CC-ALF не нужен, и, таким образом, относящиеся к цветности элементы синтаксиса для CC-ALF не нужны, например, в APS. Соответственно, относящиеся к цветности элементы синтаксиса для CC-ALF могут не передаваться.
[0197] Если флаг присутствия цветности APS (например, (aps_chroma_present_flag) равен 1, то присутствует компонент цветности, и один или более (например, первый флаг CC-ALF, второй флаг CC-ALF) относящихся к цветности элементов синтаксиса для CC-ALF могут передаваться в битовом потоке видео. Если флаг присутствия цветности APS (например, (aps_chroma_present_flag) равен 0, то компонент цветности отсутствует и, таким образом, относящиеся к цветности элементы синтаксиса не передаются в битовом потоке видео. Соответственно, избыточную сигнализацию можно уменьшить путем запрета передачи относящихся к цветности элементов синтаксиса, если относящиеся к цветности элементы синтаксиса для CC-ALF не нужны, и улучшить эффективность кодирования.
[0198] На Фиг. 22А-22В представлен иллюстративный синтаксис данных ALF, согласно другому варианту осуществления. См. строки (2201), на основании флага присутствия цветности APS (например, (aps_chroma_present_flag), можно определить, передаются ли один или более относящихся к цветности элементов синтаксиса для CC-ALF в битовом потоке видео. Если флаг присутствия цветности APS (например, aps_chroma_present_flag) равен 1, то присутствует компонент цветности, и один или более (например, первый флаг CC-ALF, второй флаг CC-ALF) относящихся к цветности элементов синтаксиса для CC-ALF могут передаваться в битовом потоке видео.
[0199] На основании одного или более (например, первый флаг CC-ALF, второй флаг CC-ALF) относящихся к цветности элементов синтаксиса для CC-ALF можно определить, передаются ли дополнительные элементы относящихся к цветности элементов синтаксиса для CC-ALF. См. строки (2202), если первый флаг CC-ALF равен 1, то элементы синтаксиса для первого CC-ALF могут передаваться в битовом потоке видео, и, таким образом, анализироваться и декодироваться с помощью декодера. См. строки (2203), если второй флаг CC-ALF равен 1, то элементы синтаксиса для второго CC-ALF могут передаваться в битовом потоке видео, и, таким образом, анализироваться и декодироваться с помощью декодера.
[0200] Вновь, ссылаясь на строки (2201)-(2203), если флаг присутствия цветности APS (например, aps_chroma_present_flag) равен 0, то компонент цветности отсутствует и, таким образом, относящиеся к цветности элементы синтаксиса для CC-ALF не передаются в битовом потоке видео.
[0201] На Фиг. 23 представлены схема, описывающая процесс (2030) согласно другому варианту осуществления. Процесс (2300) может использоваться для передачи флага присутствия цветности (например, флага присутствия цветности APS, флага присутствия цветности PPS) для поддержки различных цветовых форматов и относящихся к цветности инструментов кодирования (например, инструмента кодирования LMCS, CC-ALF). В других вариантах осуществления, процесс (2300) реализуется с помощью схемы обработки, такой как схема обработки оконечных устройств (310), (320), (330) и (340), схема обработки, выполняющая функции видеокодера (403), схема обработки, выполняющая функции видеодекодера (410), схема обработки, выполняющая функции видеодекодера (510), схема обработки, выполняющая функции видеокодера (603) и т.п. В некоторых вариантах осуществления, процесс (2300) реализуется в программных командах, таким образом, если схема выполняет программные команды, то схема обработки выполняет процесс (2300). Процесс начинается с (S2301) и заканчивается (S2310).
[0202] На этапе (S2310), можно декодировать первый элемент синтаксиса из битового потока кодированного видео. Первый элемент синтаксиса может указывать, кодирован ли первый компонент битового потока кодированного видео на основе второго компонента битового потока кодированного видео.
[0203] На этапе (S2320), на основе первого элемента синтаксиса можно определить, можно ли декодировать один или более вторых элементов синтаксиса для относящегося к цветности инструмента кодирования. Относящимся к цветности инструментом кодирования может быть либо (i) инструмент кодирования "отображение яркости с масштабированием цветности" (LMCS), либо (ii) кросс-компонентный адаптивный контурный фильтр (CC-ALF). Если первый элемент синтаксиса указывает на то, что первый компонент кодирован на основе второго компонента битового потока кодированного видео, то процесс (2300) переходит к (S2330). В противном случае, если первый элемент синтаксиса указывает на то, что первый компонент кодирован независимо в битовом потоке кодированного видео, например, первый компонент не кодирован на основе второго компонента битового потока кодированного видео, то процесс (2300) переходит к (S2399) без декодирования одного или более вторых элементов синтаксиса относящегося к цветности инструмента кодирования.
[0204] На этапе (S2330), можно декодировать один или более вторых элементов синтаксиса для относящегося к цветности инструмента кодирования. Первый компонент цветности присутствует в битовом потоке кодированного видео. Процесс (2300) переходит к (S2399) и заканчивается.
[0205] Декодирование одного или более вторых элементов синтаксиса для относящегося к цветности инструмента кодирования можно пропустить, если в битовом потоке кодированного видео отсутствует информация цветности. Относящийся к цветности инструмент кодирования не нужен, и, таким образом, относящиеся к цветности элементы синтаксиса для относящегося к цветности инструмента кодирования не передаются в битовом потоке кодированного видео и не декодируются на стороне декодера, что приводит к уменьшению избыточной сигнализации и улучшению эффективности кодирования.
[0206] Процесс (2300) можно адаптировать соответствующим образом. Шаг(и) в процессе (2300) можно изменить и/или пропустить. Можно добавить дополнительные шаги. Можно использовать любой соответствующих порядок реализации. Например, если максимальное количество кандидатов слияния не удовлетворяет условию, то параметр уровня изображения не декодируется.
[0207] Варианты осуществления изобретения можно использовать по отдельности или в сочетании друг с другом. Кроме того, каждый метод (осуществление), кодер, декодер можно реализовать с помощью схемы обработки (например, один или более процессоров или одна или более интегральных схем). Согласно примеру, один или более процессоров выполняют программу, которая сохраняется на носителе, предназначенном для хранения информации.
[0208] Описанные выше методы можно реализовать в виде компьютерного обеспечения с помощью машиночитаемых команд и физически сохранить на одном или более машиночитаемых носителях. Например, на Фиг. 24 представлена компьютерная система (2400), пригодная для реализации определенных вариантов осуществления изобретения.
[0209] Кодирование программного обеспечения можно выполнять с помощью соответствующего машинного кода или языка программирования, который можно ассемблировать, компилировать, связывать или использовать другие аналогичные механизмы для создания кода, включающего в себя команды, исполняемые непосредственно или через интерпретацию, исполнение микропрограмм и т.п.одним более центральным процессором (CPU), графическим процессором (GPU) и т.п.
[0210] Команды могут исполняться различными компьютерами или их компонентами, включая, например, персональные компьютеры, планшетные компьютеры, серверы, смартфоны, игровые устройства, устройства интернета вещей и т.п.
[0211] Компоненты вычислительной системы (2400), представленные на Фиг. 24, иллюстративны по своей природе и не предназначены для установления каких-либо ограничений в отношении области использования или функциональности программного обеспечения, реализующего варианты осуществления данного изобретения. Конфигурацию компонентов также нельзя истолковывать как зависимую от или устанавливающую требования к любой комбинации компонентов, приведенных для примера в иллюстративном варианте осуществления вычислительной системы (2400).
[0212] Вычислительная система (2400) может включать в себя определенные устройства ввода человеко-машинного интерфейса. Такое устройство ввода человеко-машинного интерфейса может откликаться на ввод данных одним или более пользователями, например, тактильный ввод (например, нажатие на клавиши, проведение пальцем, цифровая перчатка), аудио ввод (например, голос, хлопок), визуальный ввод (например, жесты), обонятельный ввод (не показан). Устройства человеко-машинного интерфейса можно также использовать для захвата определенных носителей, которые совсем не обязательно непосредственно относятся к сознательному вводу данных человеком, такие как аудио (например, речь, музыка, звуки окружающей среды), изображения (например, сканированные изображения, фотографические изображения, полученные с помощью камеры получения неподвижных изображений), видео (например, 2D-видео, 3D-видео, включая стереоскопическое видео).
[0213] Устройства ввода человеко-машинного интерфейса могут включать в себя одно или более перечисленных ниже устройств (только одно из представленных): клавиатуру (2401), мышь (2402), сенсорную панель (2403), сенсорный экран (2410), цифровую перчатку (не показана), джойстик (2405), микрофон (2406), сканер (2407), камеру (2408).
[0214] Вычислительная система (2400) может также включать в себя определенные устройства вывода человеко-машинного интерфейса. Такими устройствами вывода человеко-машинного интерфейса могут быть устройства, стимулирующие чувствительность одного или более пользователей посредством, например, сенсорного вывода, звука, света и запаха/вкуса. Такие устройства вывода человеко-машинного интерфейса могут включать в себя тактильные устройства вывода данных (например, тактильная обратная связь через сенсорный экран (2410), цифровая перчатка (не показана) или джойстик (2405), но также могут быть тактильные устройства обратной связи, не выполняющие функцию устройства ввода), устройства вывода звуковой информации (такие как: динамики (2409), наушники (не показаны)), устройства вывода видео информации (такие как экраны (2410), включая экраны ЭЛТ, ЖК-экраны, плазменные экраны, OLED-экраны, каждый с возможностью ввода информации с сенсорной панели или без данной функции, каждый с возможностью тактильной обратной связи или без данной функции - некоторые из них могут выводить видео информацию в 2D-формате или в форматах выше 3D посредством стереографического вывода информации; очков виртуальной реальности (не показаны), голографических дисплеев и дымовых завес (не показаны), и принтеров (не показаны).
[0215] Вычислительная система (2400) также может включать в себя доступные пользователям запоминающие устройства и соответствующие носители, такие как оптические носители, включая CD/DVD ROM/RW (2420) с CD/DVD или аналогичные носители (2421), флэш-накопители (2422), съемный жесткий диск или твердотельный накопитель (2423), архаичные магнитные накопители, такие как магнитные ленты и гибкие диски (не показаны), специальные устройства на основе ROM/ASIC/PLD, такие как электронные ключи безопасности (не показаны) и т.п.
[0216] Специалисты в данной области техники также должны понимать, что термин «машиночитаемый носитель», используемый здесь в связи с раскрываемым изобретением, не включает в себя среды передачи данных, несущие волны или иные переходные сигналы.
[0217] Вычислительная система (2400) также может включать в себя интерфейс (2454) для одной или более вычислительных сетей (2455). Сети, например, могут быть беспроводными, проводными, оптическими. Кроме того, сети могут быть локальными, широкого доступа, сетями метрополии, транспортными и промышленными, реального времени, устойчивыми к задержке и т.п.Примеры сетей включают в себя локальные сети, такие как Ethernet, беспроводные локальные (LAN) сети, сети мобильной связи, включая GSM, 3G, 4G, 5G, LTE и т.п., проводные и беспроводные цифровые телевизионные сети широкого доступа, включая кабельное телевидение, спутниковое телевидение и цифровое телевидение для мобильных и фиксированных устройств, транспортные и промышленные сети, включая CANBus, и т.д. Для некоторых сетей требуется общий интерфейсный адаптер для внешних сетей, подключаемый к определенным стандартным портам передачи данных или к периферийным шинам (2449) (такие как, например, USB-порты вычислительной системы (2400)); другие сети совместно встраивают в ядро вычислительной системы (2400) путем подключения к системной шине, как описано ниже (например, интерфейс Ethernet в систему персонального компьютера или интерфейс мобильной сети в компьютер смартфона). Используя любую из таких сетей, вычислительная система (2400) может осуществлять связь с другими устройствами. Такая связь может быть однонаправленной, работающей только на прием данных (например, телевещание), однонаправленной, работающей только на передачу данных (например, CANBus на определенные CANBus устройства), или двунаправленной, например, связь с другими вычислительными системами с помощью цифровых локальных сетей или цифровых сетей широкого доступа. Для каждой из таких сетей и сетевых интерфейсов можно использовать определенные протоколы и пакеты протоколов, как описано выше.
[0218] Вышеупомянутые устройства человеко-машинного интерфейса, доступные пользователям накопительные устройства и сетевые интерфейсы могут подключаться к ядру (2440) вычислительной системы (2400).
[0219] Ядро (2440) может включать в себя один или более центральных процессоров (CPU) (2441), графических процессоров (GPU) (2442), специальных программируемых процессоров в виде программируемых логических интегральных схем (FPGA) (2443), аппаратных ускорителей для выполнения определенных задач (2444), графических адаптеров (2450) и т.д. Такие устройства вместе с постоянной памятью (ROM) (2445), оперативной памятью (2446), внутренними устройствами хранения информации, такими как внутренние недоступные для пользователя жесткие диски, SSD и т.п. (24447), могут подключаться к системной шине (2448). В некоторых вычислительных системах системная шина (2448) может быть доступна в виде одного или более физических разъемов, позволяющих расширить возможности подключением CPUs, GPUs и т.п. Периферические устройства можно подключать непосредственно к системной шине ядра (2448) или через периферийную шину (2449). Согласно примеру, экран (2410) можно подключить к графическому адаптеру (2450). К архитектуре периферийный шины относятся PCL USB и т.п.
[0220] CPU (2441), GPU (2442), FPGA (2443) и ускорители (2444) могут выполнять определенные команды, которые в комбинации, могут создавать вышеупомянутый компьютерный код. Такой компьютерный код можно хранить в ROM (2445) или RAM (2446). Переходные данные можно также хранить в RAM (2446), тогда как постоянные данные можно хранить, например, на внутренних устройствах хранения информации (2447). Быстрое сохранение и извлечение данных на/из любого из устройств хранения данных можно осуществлять с использованием быстродействующей буферной памяти, которая может быть тесто связана с одним или более CPU (2441), GPU (2442), устройством хранения информации (2447), ROM (2445), RAM (2446) и т.п.
[0221] Машиночитаемые носители могут иметь компьютерный код для выполнения различных вычислительных операций. Коды для носителей и компьютера могут специально разрабатываться в целях раскрытия настоящего изобретения, либо могут быть хорошо известны и доступны специалистам в области компьютерного программного обеспечения.
[0222] В качестве примера, но не ограничиваясь им, вычислительная система с архитектурой (2400) и, конкретно ядро (2440), могут обеспечивать функциональность в результате встраивания исполнительных блоков процессора(ов) (включая CPU, GPU, FPGA, ускорители и т.п.) в один или более материальных машиночитаемых носителей. Таким машиночитаемым носителем может быть носитель, ассоциируемый с упомянутым выше доступным пользователям устройством хранения информации, а также определенное устройство хранения в ядре процессора (2440) непереходного характера, такое как внутреннее устройство хранения данных в ядре процессора (2447) или ROM (2445). Хранение программного обеспечения, реализующего различные варианты осуществления данного изобретения, можно осуществлять на таких устройствах и исполнять с помощью ядра процессора (2440). Машиночитаемые носители могут включать в себя одно или более запоминающих устройств или чипов, согласно конкретным применениям. Программное обеспечение может заставить ядро (2240) и конкретно процессоры (включая CPU, GPU, FPGA и т.п.) исполнить конкретные процессы или конкретные части конкретных процессов, описанных в настоящем документе, включая определение сохраненных в RAM (2446) структур данных и изменение таких структур данных в соответствии с процессами, определенными программным обеспечением. Кроме того, или в качестве альтернативы, вычислительная система может обеспечить функциональность в результате аппаратно-реализованной или иным образом встроенной в схему логики (например, ускоритель (2444)), которая может работать вместо или вместе с программным обеспечением для исполнения конкретных процессов или конкретных частей конкретных процессов, описанных в настоящем документе. Ссылка на программное обеспечение может относиться к логике, и наоборот, в соответствующих случаях. Ссылка на машиночитаемый носитель может относиться к схеме (например, интегральная схема (IC)), на которой хранится ПО для исполнения, к схеме с логикой для исполнения или к обеим схемам, в соответствующих случаях. Раскрываемое здесь изобретение относится к любой соответствующей комбинации программного и аппаратного обеспечения.
Приложение А: Сокращения
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: шина CAN
USB: универсальная последовательная проводная шина
PCI: межсоединение периферийных компонентов
FPGA: программируемая логическая интегральная схема
SSD: твердотельная память
IC: интегральная схема
CU: единица кодирования
[0223] Хотя здесь описано несколько иллюстративных вариантов осуществления, возможны изменения, перестановки и различные эквиваленты для замены, которые находятся в объеме изобретения. Таким образом, специалисты в данной области техники могут предложить многочисленные системы и способы, которые, хотя в явном виде здесь не показаны и не описаны, воплощают принципы изобретения и, таким образом, соответствуют его сущности и объему.