Способ и устройство для кросс-компонентной фильтрации

Изобретение относится к видеокодированию. Техническим результатом является повышение эффективности кодирования и декодирования видео. Предложены способ и устройство, содержащее схему обработки для декодирования видео. Схема обработки декодирует кодированную информацию блока кодирования (СВ) цветности из битового потока кодированного видео. Кодированная информация указывает, что кросс-компонентный фильтр применяется к СВ цветности, и дополнительно указывает формат субдискретизации цветности и тип отсчетов цветности. Схема обработки определяет маску кросс-компонентного фильтра на основе по меньшей мере одного из формата субдискретизации цветности и типа отсчетов цветности. Схема обработки генерирует первый промежуточный СВ посредством применения контурного фильтра к СВ цветности и генерирует второй промежуточный СВ посредством применения кросс-компонентного фильтра с определенной маской к соответствующему СВ яркости. Схема обработки определяет отфильтрованный СВ цветности на основе первого промежуточного СВ и второго промежуточного СВ. 2 н. и 12 з.п. ф-лы, 3 табл., 29 ил.

 

ВКЛЮЧЕНИЕ ПОСРЕДСТВОМ ССЫЛКИ

[0001] Настоящее изобретение испрашивает приоритет патентной заявки США №17/010,403, «Method and Apparatus for Cross-Component Filtering», поданной 2 сентября 2020 г., которая испрашивает приоритет предварительной заявки США №62/901,118, «Of Cross-Component Adaptive Loop Filter», поданной 16 сентября 2019 г. Содержание предыдущих заявок, таким образом, включено посредством ссылки в полном объеме.

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ

[0002] В настоящей заявке описаны варианты осуществления, в целом относящиеся к видеокодированию.

УРОВЕНЬ ТЕХНИКИ

[0003] Описание уровня техники приведено здесь с целью представления в целом контекста изобретения. Работа авторов изобретения, в той мере, в какой она описана в этом разделе, а также аспекты описания, которые не могут квалифицироваться как уровень техники на момент подачи заявки, ни прямо, ни косвенно не признаются уровнем техники, лежащим в основе настоящего изобретения.

[0004] Кодирование и декодирование видеосигнала может осуществляться с использованием предсказания между изображениями с компенсацией движения. Цифровое видео без сжатия может включать в себя последовательность изображений, каждое из которых имеет пространственный размер, например, 1920×1080 отсчетов яркости и связанных с ними отсчетов цветности. Последовательность изображений может иметь фиксированную или переменную частоту смены изображений (неформально также называемую «частотой кадров»), например, 60 изображений в секунду, или 60 Гц. Видео без сжатия предъявляет значительные требования к битовой скорости. Например, видео 1080р60 4:2:0 с 8 битами на отсчет (разрешение отсчетов яркости 1920x1080 при частоте кадров 60 Гц) требует полосы около 1,5 Гбит/с. Час такого видео требует объема памяти более 600 ГБ.

[0005] Одной целью кодирования и декодирования видеосигнала может быть снижение избыточности во входном видеосигнале путем сжатия. Сжатие может способствовать смягчению вышеупомянутых требований к полосе или объему памяти, в ряде случаев на два порядка величины или более. Можно использовать как сжатие без потерь, так и сжатие с потерями, а также их комбинацию. Сжатие без потерь относится к методам реконструкции точной копии исходного сигнала из сжатого исходного сигнала. При использовании сжатия с потерями реконструированный сигнал может быть не идентичен исходному сигналу, но расхождение между исходным и реконструированным сигналами достаточно мало, так чтобы реконструированный сигнал можно было использовать для намеченного применения. Сжатие с потерями широко применяется для видео. Допустимая степень искажения зависит от применения; например, пользователи некоторых заказных потоковых приложений могут мириться с более высокими искажениями, чем пользователи телевещательных приложений. Достижимая степень сжатия может отражать, что более высокое разрешенное/допустимое искажение может давать более высокую степень сжатия.

[0006] Кодер и декодер видеосигнала может использовать методы из нескольких широких категорий, включающих в себя, например, компенсацию движения, преобразование, квантование и энтропийное кодирование.

[0007] Технологии видеокодека могут включать в себя методы, известные как внутреннее кодирование. При внутреннем (интра-) кодировании значения отсчетов представляются без ссылки на отсчеты или другие данные из ранее реконструированных опорных изображений. В некоторых видеокодеках изображение пространственно разделяется на блоки отсчетов. Когда все блоки отсчетов кодируются в интра-режиме, изображение называется интра-изображением. Интра-изображения и их производные, например, изображения, полученные в режиме независимого обновления декодера, могут использоваться для сброса состояния декодера, что позволяет использовать их как первое изображение в битовом потоке кодированного видео и видеосеансе, или как неподвижное изображение. Отсчеты интра-блока могут подвергаться преобразованию, и коэффициенты преобразования могут квантоваться до энтропийного кодирования. Внутреннее предсказание может быть методом минимизации значений отсчетов в области предварительного преобразования. В ряде случаев, чем меньше значение DC (постоянной составляющей) после преобразования, и чем меньше коэффициенты АС (переменных составляющих), тем меньше битов требуется при данном размере шага квантования для представления блока после энтропийного кодирования.

[0008] Традиционное внутреннее кодирование, известное, например, из технологий кодирования поколения MPEG-2, не использует внутреннего предсказания. Однако некоторые более современные технологии сжатия видео включают в себя методы, которые пытаются, например, из данных окружающих отсчетов и/или метаданных, полученных в ходе кодирования/декодирования пространственно соседних и предшествующих в порядке декодирования, блоков данных. Такие методы далее именуются методами «внутреннего предсказания». Заметим, что по меньшей мере в некоторых случаях внутреннее предсказание осуществляется только с использованием опорных данных из текущего изображения, подлежащего реконструкции, но не из опорных изображений.

[0009] Может использоваться много разных форм внутреннего предсказания. Когда в данной технологии видеокодирования может использоваться более одного из таких методов, используемый метод может кодироваться в режиме внутреннего предсказания. В некоторых случаях, режимы могут иметь подрежимы и/или параметры, которые могут кодироваться по отдельности или включаться в кодовое слово режима. Использование того или иного кодового слова для данной комбинации режимов/подрежимов/параметров может оказывать влияние на выигрыш в эффективности кодирования посредством внутреннего предсказания и, следовательно, на технологию энтропийного кодирования, используемую для перевода кодовых слов в битовый поток.

[0010] Определенный режим внутреннего предсказания впервые был задан в Н.264, уточнен в Н.265, и дополнительно уточнен в более современных технологиях кодирования, например, модели совместного исследования (JEM, Joint Exploration Model), универсального видеокодирования (VVC, Versatile Video Coding) и наборе эталонов (BMS, Benchmark Set). Блок предсказателя может формироваться с использованием значений соседних отсчетов, принадлежащих уже доступным отсчетам. Значения соседних отсчетов копируются в блок предсказателя согласно направлению. Ссылка на используемое направление может кодироваться в битовом потоке или может сама предсказываться.

[0011] В нижнем правом углу фиг. 1А изображено подмножество из девяти направлений предсказателя множества, известного из 33 возможных направлений предсказателя Н.265 (соответствующих 33 угловым режимам из 35 интра-режимов). Точка (101), где сходятся стрелки, представляет предсказываемый отсчет. Стрелки представляют направление, из которого предсказывается отсчет. Например, стрелка (102) указывает, что отсчет (101) предсказывается из отсчета или отсчетов, расположенного(ых) вверху справа, под углом 45 градусов к горизонтали. Аналогично, стрелка (103) указывает, что отсчет (101) предсказывается из отсчета или отсчетов расположенного(ых) внизу слева от отсчета (101), под углом 22,5 градусов к горизонтали.

[0012] В верхнем левом углу фиг. 1А в верхнем левом углу изображен квадратный блок (104) 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] Компенсация движения может представлять собой технологию сжатия с ошибками и может относиться к технологиям, в которых блок данных отсчетов из предварительно реконструированного изображения или его части (опорное изображение) после пространственного сдвига в направлении, указанном вектором движения (далее - MV (motion vector)) используется для предсказания вновь реконструируемого изображения или его части. В некоторых случаях опорное изображение может совпадать с текущим изображением, подлежащим реконструкции. Вектора MV имеют два измерения, X и Y, или три измерения, при этом третье измерение является индикацией используемого опорного изображения (последнее, косвенно может являться временным измерением).

[0019] В некоторых технологиях сжатия видео MV, применяемый к определенной области данных отсчетов может предсказываться на основе других MV, например, связанных с другой областью данных отсчетов, пространственно смежной с реконструируемой областью и предшествующим MV в порядке декодирования. Эти действия могут по существу уменьшить объем данных, требующихся для кодирования MV, в результате чего устраняется избыточность и увеличивается степень сжатия. Предсказание М V может эффективно работать, например, поскольку при кодировании входного видеосигнала, поступающего из камеры (известного как «естественный видеосигнал»), существует статистическая вероятность, что области больше области, к которой применяется отдельный MV, перемещаются в аналогичном направлении и, таким образом, могут в некоторых случаях предсказываться с использованием аналогичного вектора движения, полученного из векторов MV соседней области. Это приводит к тому, что MV, найденный для заданной области, должен быть аналогичным или совпадающим с MV, предсказанным на основе окружающих векторов MV, и, в свою очередь, может быть представлен после энтропийного кодирования меньшим количеством битов, чем было бы возможно при использовании непосредственного кодирования MV. В некоторых случаях предсказание MV может быть примером безошибочного сжатия сигнала (а именно: векторов MV), полученного из исходного сигнала (а именно: потока отсчетов). В других случаях само предсказание MV может выполняться с ошибками, например, из-за ошибок округления при вычислении предсказателя на основе нескольких окружающих векторов MV.

[0020] Различные механизмы предсказания MV описываются в H.265/HEVC (рекомендация ITU-T Н.265, «High Efficiency Video Coding» (Высокоэффективное кодирование видео, декабрь 2016 г)). Из множества механизмов предсказания MV, предлагаемых в рекомендации Н.265, здесь описывается технология, называемая «пространственное объединение» (spatial merge).

[0021] На фиг. 2 показано, что текущий блок (201) содержит отсчеты, найденные кодером в процессе поиска движения, предсказываемые на основе предшествующего блока такого же размера, который был пространственно смещен. Вместо непосредственного кодирования MV может быть получен на основе метаданных, связанных с одним или более опорными изображениями, например, из нового (в порядке декодирования) опорного изображения, с использованием MV, связанного с любым из пяти окружающих отсчетов, обозначенных как А0, А1 и В0, В1, В2 (202-206, соответственно). В Н.265 для предсказания MV могут использоваться предсказатели из того же опорного изображения, которое используется соседним блоком.

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

[0022] Аспекты изобретения предусматривают способы и устройства для кодирования/декодирования видео. В некоторых примерах устройство для видеодекодирования включает в себя схему обработки. Схема обработки может декодировать кодированную информацию блока кодирования (СВ, coding block) цветности из битового потока кодированного видео. Кодированная информация может указывать на то, что кросс-компонентный фильтр применяется к СВ цветности. Кодированная информация также может указывать формат субдискретизации цветности и тип отсчетов цветности, который указывает относительное положение отсчета цветности относительно по меньшей мере одного отсчета яркости в соответствующем СВ яркости. Схема обработки может определить маску кросс-компонентного фильтра на основе по меньшей мере одного из формата субдискретизации цветности и типа отсчетов цветности. Схема обработки может генерировать первый промежуточный СВ посредством применения контурного фильтра к СВ цветности. Схема обработки может генерировать второй промежуточный СВ посредством применения кросс-компонентного фильтра с определенной маской к соответствующему СВ яркости. Схема обработки может определить отфильтрованный СВ цветности на основе первого промежуточного СВ и второго промежуточного СВ.

[0023] Например, тип отсчетов цветности передается в битовом потоке кодированного видео.

[0024] Например, количество коэффициентов кросс-компонентного фильтра передается в битовом потоке кодированного видео. Схема обработки может определить маску кросс-компонентного фильтра на основе количества коэффициентов фильтра и по меньшей мере одного из формата субдискретизации цветности и типа отсчетов цветности.

[0025] Например, используется формат субдискретизации цветности 4:2:0. По меньшей мере один отсчет яркости включает в себя четыре отсчета яркости - верхний-левый отсчет, верхний-правый отсчет, нижний-левый отсчет и нижний-правый отсчет. Тип отсчетов цветности представляет собой один из шести типов отсчетов цветности 0-5, указывающих шесть относительных позиций 0-5, соответственно; при этом шесть относительных позиций 0-5 отсчета цветности соответствуют левой-центральной позиции между верхним-левым и нижним-левым отсчетами, центральной позиции из четырех отсчетов яркости, верхней левой позиции, совмещенной с верхним-левым отсчетом, верхней-центральной позиции между верхним-левым и верхним-правым отсчетами, нижней левой позиции, совмещенной с нижним-левым отсчетом, и нижней-центральной позиции между нижним-левым и нижним-правым отсчетами, соответственно. Схема обработки может определить маску кросс-компонентного фильтра на основе типа отсчетов цветности. Например, битовый поток кодированного видео включает в себя флаг кросс-компонентной линейной модели (CCLM, cross-component linear model), указывающий, что тип отсчетов цветности равен 0 или 2.

[0026] Например, кросс-компонентный фильтр является кросс-компонентным адаптивным контурным фильтром (CC-ALF, Cross-Component Adaptive Loop Filter), a контурный фильтр является адаптивным контурным фильтром (ALF, Adaptive Loop Filter).

[0027] Согласно варианту осуществления диапазон коэффициентов кросс-компонентного фильтра меньше или равен К битам, где К - это положительное целое число. Например, коэффициенты кросс-компонентного фильтра кодируются с использованием кодирования с фиксированной длиной кодов. Например, схема обработки может смещать значения отсчетов яркости соответствующего СВ яркости, чтобы получить динамический диапазон 8 битов на основе динамического диапазона значений отсчетов яркости более 8 битов, где К равно 8 битам. Схема обработки может применять кросс-компонентный фильтр с определенной маской к смещенным значениям отсчетов яркости.

[0028] В некоторых примерах устройство для видеодекодирования включает в себя схему обработки. Схема обработки может декодировать кодированную информацию СВ цветности из битового потока кодированного видео. Кодированная информация может указывать на то, что кросс-компонентный фильтр применяется к СВ цветности на основе соответствующего СВ яркости. Схема обработки может генерировать субдискретизированный СВ яркости посредством применения фильтра понижающей дискретизации к соответствующему СВ яркости, при этом коэффициент горизонтальной субдискретизации цветности и коэффициент вертикальной субдискретизации цветности между СВ цветности и субдискретизированным СВ яркости равны единице. Схема обработки может генерировать первый промежуточный СВ посредством применения контурного фильтра к СВ цветности. Схема обработки может генерировать второй промежуточный СВ посредством применения кросс-компонентного фильтра к субдискретизированному СВ яркости, где маска кросс-компонентного фильтра не зависит от формата субдискретизации цветности и типа отсчетов цветности СВ цветности. Тип отсчетов цветности может указывать относительное положение отсчета цветности относительно по меньшей мере одного отсчета яркости в соответствующем СВ яркости. Схема обработки может определить отфильтрованный СВ цветности на основе первого промежуточного СВ и второго промежуточного СВ. Например, фильтр понижающей дискретизации соответствует фильтру, применяемому к совмещенным отсчетам яркости в режиме CCLM. Например, используется фильтр понижающей дискретизации {1,2,1;1,2,1}/8 и формат субдискретизации цветности 4:2:0. Например, кросс-компонентный фильтр имеет одну из следующих масок - ромбовидную маску 7×7, квадратную маску 7×7, ромбовидную маску 5×5, квадратную маску 5×5, ромбовидную маску 3×3 и квадратную маску 3×3.

[0029] Аспекты изобретения также предусматривают компьютерно-считываемый носитель, где хранятся инструкции, которые, при выполнении компьютером для видеодекодирования, предписывают компьютеру осуществлять описанный способ видеодекодирования.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

[0030] Дополнительные особенности, характер и различные преимущества раскрытого изобретения будут понятны из нижеследующего подробного описания и прилагаемых чертежей, на которых:

[0031] фиг. 1А - схематическое представление подмножества режимов внутреннего предсказания;

[0032] фиг. 1В - представление направлений внутреннего предсказания;

[0033] фиг. 2 - схематическое представление текущего блока и окружающих его кандидатов на пространственное объединение в одном примере;

[0034] фиг. 3 - упрощенная блок-схема системы (300) связи согласно варианту осуществления настоящего изобретения;

[0035] фиг. 4 - упрощенная блок-схема системы (400) связи согласно варианту осуществления настоящего изобретения;

[0036] фиг. 5 - упрощенная блок-схема декодера согласно варианту осуществления настоящего изобретения;

[0037] фиг. 6 - упрощенная блок-схема кодера согласно варианту осуществления настоящего изобретения;

[0038] фиг. 7 - блок-схема кодера согласно другому варианту осуществления настоящего изобретения;

[0039] фиг. 8 - блок-схема декодера согласно другому варианту осуществления настоящего изобретения;

[0040] фиг. 9 - примеры масок фильтров согласно вариантам осуществления настоящего изобретения;

[0041] фиг. 10A-10D - примеры позиций с субдискретизацией, используемых для вычисления градиентов согласно вариантам осуществления настоящего изобретения;

[0042] фиг. 11А-11В - примеры процесса фильтрации по виртуальным границам согласно вариантам осуществления настоящего изобретения;

[0043] фиг. 12A-12F - примеры операций симметричного заполнения на виртуальных границах согласно вариантам осуществления настоящего изобретения;

[0044] фиг. 13 - пример функциональной схемы для генерации компонентов яркости и цветности согласно варианту осуществления настоящего изобретения;

[0045] фиг. 14 - пример фильтра 1400 согласно варианту осуществления настоящего изобретения;

[0046] фиг. 15А-15В - пример расположения отсчетов цветности относительно отсчетов яркости согласно вариантам осуществления настоящего изобретения;

[0047] фиг. 16 - примеры масок (1601)-(1603) соответствующих кросс-компонентных адаптивных контурных фильтров (CC-ALF) согласно вариантам осуществления настоящего изобретения;

[0048] фиг. 17 - блок-схема операций процесса (1700) согласно варианту осуществления настоящего изобретения;

[0049] фиг. 18 - схема компьютерной системы согласно варианту осуществления настоящего изобретения.

ПОДРОБНОЕ ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ

[0050] На фиг. 3 показана упрощенная блок-схема системы (300) связи согласно варианту осуществления настоящего изобретения. Система (300) связи включает в себя множество оконечных устройств, которые могут осуществлять связь друг с другом, например, через сеть (350). Например, система (300) связи включает в себя первую пару оконечных устройств (310) и (320), соединенных между собой через сеть (350). В примере, приведенном на фиг. 3, первая пара оконечных устройств (310) и (320) осуществляет однонаправленную передачу данных. Например, оконечное устройство (310) может кодировать видеоданные (например, поток видеоизображений, захваченных оконечным устройством (310)), для передачи в другое оконечное устройство (320) через сеть (350). Кодированные видеоданные могут передаваться в форме одного или более битовых потоков кодированного видео. Оконечное устройство (320) может принимать кодированные видеоданные из сети (350), декодировать кодированные видеоданные для восстановления видеоизображений и отображения видеоизображений согласно восстановленным видеоданным. Однонаправленная передача данных может быть свойственна приложениям служб массовой информации и т.п.

[0051] В другом примере, система (300) связи включает в себя вторую пару оконечных устройств (330) и (340) которые осуществляют двунаправленную передачу кодированных видеоданных, которые могут возникать, например, в ходе видеоконференцсвязи. Для двунаправленной передачи данных, в порядке примера, каждое оконечное устройство из оконечных устройств (330) и (340) может кодировать видеоданные (например, поток видеоизображений, захваченных оконечным устройством) для передачи в другое оконечное устройство из оконечных устройств (330) и (340) через сеть (350). Каждое оконечное устройство из оконечных устройств (330) и (340) также может принимать кодированные видеоданные, передаваемые другим оконечным устройством из оконечных устройств (330) и (340), и может декодировать кодированные видеоданные для восстановления видеоизображений и отображать видеоизображения на доступном устройстве отображения согласно восстановленным видеоданным.

[0052] В примере, приведенном на фиг. 3, оконечные устройства (310), (320), (330) и (340) могут быть проиллюстрированы как серверы, персональные компьютеры и смартфоны, но это не ограничивает принципы настоящего изобретения. Варианты осуществления настоящего изобретения находят применение для портативных компьютеров, планшетных компьютеров, медиаплееров и/или специального оборудования для видеоконференцсвязи. Сеть (350) представляет любое количество сетей, которые переносят кодированные видеоданные между оконечными устройствами (310), (320), (330) и (340), включая, например, проводные и/или беспроводные сети связи. Сеть (350) связи позволяет обмениваться данными в режиме канальной коммутации и/или пакетной коммутации. Иллюстративные сети включают в себя телекоммуникационные сети, локальные сети, глобальные сети и/или Интернет. В целях настоящего рассмотрения, архитектура и топология сети (350) могут не иметь отношения к настоящему изобретению, если конкретно не указаны ниже.

[0053] На фиг. 4 показано, в порядке примера применения раскрытого изобретения, размещение видеокодера и видеодекодера в окружении потоковой передачи. Раскрытое изобретение может быть в равной степени применимо к другим применениям обработки видео, включая, например, видеоконференцсвязь, цифровое телевидение, хранение сжатого видео на цифровых носителях, в том числе на CD-диске, DVD-диске, карте памяти и т.п., и т.д.

[0054] Система потоковой передачи может включать в себя подсистему (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-T Recommendation Н.265. Например, разрабатывается стандарт видеокодирования под официальным названием «универсальное видеокодирование» (VVC, Versatile Video Coding). Раскрытое изобретение может использоваться в контексте VVC.

[0055] Заметим, что электронные устройства (420) и (430) могут включать в себя другие компоненты (не показаны). Например, электронное устройство (420) может включать в себя видеодекодер (не показан), и электронное устройство (430) также может включать в себя видеокодер (не показан).

[0056] На фиг. 5 показана блок-схема видеодекодера (510) согласно варианту осуществления настоящего изобретения. Видеодекодер (510) может входить в состав электронного устройства (530). Электронное устройство (530) может включать в себя приемник (531) (например, приемные схемы). Видеодекодер (510) может использоваться вместо видеодекодера (410) в примере, приведенном на фиг. 4.

[0057] Приемник (531) может принимать одну или более кодированных видеопоследовательностей для декодирования видеодекодером (510); в том же или другом варианте осуществления, по одной кодированной видеопоследовательности за раз, где декодирование каждой кодированной видеопоследовательности не зависит от других кодированных видеопоследовательностей. Кодированная видеопоследовательность может приниматься из канала (501), который может быть аппаратной/программной линией связи с запоминающим устройством, где хранятся кодированные видеоданные. Приемник (531) может принимать кодированные видеоданные с другими данными, например, кодированными аудиоданными и/или вспомогательными потоками данных, которые могут ретранслироваться на соответствующие им используемые объекты (не показаны). Приемник (531) может отделять кодированную видеопоследовательность от других данных. Для борьбы с джиттером сети буферная память (515) может быть подключена между приемником (531) и энтропийным декодером / анализатором (520) (далее «анализатором (520)»). В некоторых вариантах применения буферная память (515) входит в состав видеодекодера (510). В других она может не входить в состав видеодекодера (510) (не показан). В прочих вариантах может существовать буферная память (не показана) вне видеодекодера (510), например, для борьбы с джиттером сети, помимо другой буферной памяти (515) в составе видеодекодера (510), например, для управления хронированием доигрывания. Когда приемник (531) принимает данные от устройства хранения/ретрансляции с достаточной полосой и управляемостью или из изосинхронной сети, буферная память (515) может быть не нужна или может быть мала. Для использования в пакетных сетях наилучшей попытки, например, в Интернете, буферная память (515) может требоваться, может быть сравнительно большой и может иметь преимущественно адаптивный размер, и по меньшей мере частично может быть реализована в операционной системе или аналогичных элементах (не показаны) вне видеодекодера (510).

[0058] Видеодекодер (510) может включать в себя анализатор (520) для реконструкции символов (521) из кодированной видеопоследовательности. Категории этих символов включают в себя информацию, используемую для управления работой видеодекодера (510), и возможно информацию для управления устройством визуализации, например, устройством (512) визуализации (например, отображающим экраном), которое не является неотъемлемой частью электронного устройства (530), но может быть подключено к электронному устройству (530), как показано на фиг. 5. Информация управления для устройств(а) визуализации может представлять собой сообщения информации дополнительного улучшения (SEI, Supplemental Enhancement Information) или фрагменты набора параметров информации пригодности видео (VUI, Video Usability Information) (не показаны). Анализатор (520) может анализировать / энтропийно декодировать принятую кодированную видеопоследовательность. Кодирование кодированной видеопоследовательности может осуществляться согласно методу или стандарту видеокодирования и может следовать различным принципам, в том числе кодированию с переменной длиной серии, кодированию по Хаффману, арифметическому кодированию с контекстной чувствительностью или без нее и т.д. Анализатор (520) может извлекать из кодированной видеопоследовательности набор параметров подгруппы для по меньшей мере одной из подгрупп пикселей в видеодекодере на основании по меньшей мере одного параметра, соответствующего группе. Подгруппы могут включать в себя группы изображений (GOP, Groups of Pictures), изображения, тайлы, слайсы, макроблоки, единицы кодирования (CU, Coding Units), блоки, единицы преобразования (TU, Transform Units), единицы предсказания (PU, Prediction Units) и т.д. Анализатор (520) также может извлекать из кодированной видеопоследовательности информацию, например, коэффициенты преобразования, значения параметров квантователя, векторы движения и т.д.

[0059] Анализатор (520) может осуществлять операцию энтропийного декодирования / анализа видеопоследовательности, принятой из буферной памяти (515), для создания символов (521).

[0060] Для реконструкции символов (521) могут использоваться несколько разных модулей в зависимости от типа кодированного видеоизображения или его частей (например, интер- и интра-изображения, интер- и интра-блока) и других факторов. Какие модули используются, и как, может определяться информацией управления подгруппами, выделенной из кодированной видеопоследовательности анализатором (520). Поток такой информации управления подгруппами между анализатором (520) и множественными модулями для простоты в дальнейшем не показан.

[0061] Помимо ранее упомянутых функциональных блоков, видеодекодер (510) может принципиально подразделяться на несколько функциональных модулей, как описано ниже. В практической реализации, работающей в условиях коммерческих ограничений, многие из этих модулей тесно взаимодействуют друг с другом и могут, по меньшей мере частично, встраиваться один в другой. Однако в целях описания раскрытого изобретения уместно принципиальное подразделение на нижеперечисленные функциональные модули.

[0062] Первым модулем является модуль (551) масштабирования / обратного преобразования. Модуль (551) масштабирования / обратного преобразования принимает квантованный коэффициент преобразования, а также информацию управления, включающую в себя используемое преобразование, размер блока, коэффициент квантования, матрицы масштабирования квантования и т.д. в качестве символа(ов) (521) от анализатора (520). Модуль (551) масштабирования / обратного преобразования может выводить блоки, содержащие значения отсчетов, которые можно вводить в агрегатор (555).

[0063] В ряде случаев, выходные отсчеты блока (551) масштабирования / обратного преобразования могут относиться к внутренне-кодированному блоку; то есть блоку, который не использует предсказанную информацию из ранее реконструированных изображений, но может использовать предсказанную информацию из ранее реконструированных частей текущего изображения. Такая предсказанная информация может обеспечиваться модулем (552) предсказания внутри изображения. В ряде случаев модуль (552) предсказания внутри изображения генерирует блок такого же размера и формы, как блок, подлежащий реконструкции, с использованием информации ранее реконструированного окружения, извлеченной из буфера (558) текущего изображения. Буфер (558) текущего изображения буферизует, например, частично реконструированное текущее изображение и/или полностью реконструированное текущее изображение. Агрегатор (555) в ряде случаев добавляет для каждого отсчета информацию предсказания, сгенерированную модулем (552) внутреннего предсказания, в информацию выходных отсчетов, обеспеченную модулем (551) масштабирования / обратного преобразования.

[0064] В других случаях выходные отсчеты модуля (551) масштабирования / обратного преобразования могут относиться к внутренне кодированному блоку, возможно, с компенсацией движения. В таком случае модуль (553) предсказания с компенсацией движения может осуществлять доступ к памяти (557) опорных изображений для извлечения отсчетов, используемых для предсказания. После применения компенсации движения к извлеченным отсчетам в соответствии с символами (521), относящимися к блоку, эти отсчеты могут добавляться агрегатором (555) к выходному сигналу модуля (551) масштабирования / обратного преобразования (в этом случае именуемому остаточными отсчетами или остаточным сигналом) для генерации информации выходных отсчетов. Адреса в памяти (557) опорных изображений, откуда модуль (553) предсказания с компенсацией движения извлекает предсказанные отсчеты, могут регулироваться векторами движения, доступными модулю (553) предсказания с компенсацией движения, в форме символов (521), которые могут иметь, например, компоненты X, Y и опорного изображения. Компенсация движения также может включать в себя интерполяцию значений отсчетов, извлеченных из памяти (557) опорных изображений, когда используются точные векторы движения под-отсчетов, механизмы предсказания векторов движения и т.д.

[0065] К выходным отсчетам агрегатора (555) можно применять различные методы контурной фильтрации в модуле (556) контурного фильтра. Технологии сжатия видео могут включать в себя технологии деблокирующего фильтра под управлением параметров, включенных в кодированную видеопоследовательность (также именуемую «битовым потоком кодированного видео») и становиться доступными модулю (556) контурного фильтра в качестве символов (521) от анализатора (520), но также могут реагировать на метаинформацию, полученную в ходе декодирования предыдущих (в порядке декодирования) частей кодированного изображения или кодированной видеопоследовательности, а также реагировать на ранее реконструированные и подвергнутые контурной фильтрации значения отсчетов.

[0066] Модуль (556) контурного фильтра может выдавать поток отсчетов, который может поступать на устройство (512) визуализации, а также сохраняться в памяти (557) опорных изображений для использования в будущем предсказании между изображениями.

[0067] Некоторые кодированные изображения, будучи полностью реконструированными, могут использоваться в качестве опорных изображений для будущего предсказания. Например, когда кодированное изображение, соответствующее текущему изображению, полностью реконструировано, и кодированное изображение идентифицировано как опорное изображение (например, анализатором (520)), буфер (558) текущего изображения может становиться частью памяти (557) опорных изображений, и свежий буфер текущего изображения может повторно выделяться до начала реконструкции следующего кодированного изображения.

[0068] Видеодекодер (510) может осуществлять операции декодирования согласно заранее заданной технологии сжатия видео, например, по стандарту ITU-T Rec. Н.265. Кодированная видеопоследовательность может согласовываться с синтаксисом, заданным используемой(ым) технологией или стандартом сжатия видео, в том смысле, что кодированная видеопоследовательность может придерживаться как синтаксиса технологии или стандарта сжатия видео, так и профилей, задокументированных в технологии или стандарте сжатия видео. В частности, профиль может выбирать некоторые инструменты как инструменты, доступные для использования только под этим профилем, из всех инструментов, доступных в технологии или стандарте сжатия видео. Также для согласованности может быть необходимо, чтобы сложность кодированной видеопоследовательности оставалась в границах, заданных уровнем технологии или стандарта сжатия видео. В ряде случаев, уровни ограничивают максимальный размер изображения, максимальную частоту кадров, максимальную частоту отсчетов для реконструкции (измеряемую, например, в мегаотсчетах в секунду), максимальный размер опорного изображения и т.д. Пределы, установленные уровнями, в ряде случаев могут дополнительно ограничиваться спецификациями гипотетического эталонного декодера (HRD, Hypothetical Reference Decoder) и метаданными для управления буфером HRD, сигнализируемого в кодированной видеопоследовательности.

[0069] Согласно варианту осуществления приемник (531) может принимать дополнительные (избыточные) данные с кодированным видео. Дополнительные данные могут быть включены как часть кодированной(ых) видеопоследовательности(ей). Дополнительные данные могут использоваться видеодекодером (510) для правильного декодирования данных и/или более точной реконструкции исходных видеоданных. Дополнительные данные могут представлять собой, например, слои улучшения во времени, пространстве или отношения сигнал/шум (SNR, Signal Noise Ratio), избыточные слайсы, избыточные изображения, коды прямой коррекции ошибок и т.д.

[0070] На фиг. 6 показана блок-схема видеокодера (603) согласно варианту осуществления настоящего изобретения. Видеокодер (603) входит в состав электронного устройства (620). Электронное устройство (620) включает в себя передатчик (640) (например, передающую схему). Видеокодер (603) может использоваться вместо видеокодера (403) в примере, приведенном на фиг. 4.

[0071] Видеокодер (603) может принимать отсчеты видео от источника (601) видеосигнала (который не входит в состав электронного устройства (620) в примере, показанном на фиг. 6), который может захватывать видеоизображение(я), поддежащее(ие) кодированию видеокодером (603). В другом примере источник (601) видеосигнала входит в состав электронного устройства (620).

[0072] Источник (601) видеосигнала может обеспечивать исходную видеопоследовательность, подлежащую кодированию видеокодером (603) в форме потока отсчетов цифрового видео любой подходящей битовой глубины (например, 8 битов, 10 битов, 12 битов и т.д.), любого цветового пространства (например, ВТ.601 Y CrCB, RGB и т.д.), и любой подходящей структуры дискретизации (например, Y CrCb 4:2:0, Y CrCb 4:4:4). В системе службы массовой информации источником (601) видеосигнала может быть запоминающее устройство, где хранится ранее подготовленное видео. В системе видеоконференцсвязи источником (601) видеосигнала может быть камера, которая захватывает информацию локального изображения как видеопоследовательность. Видеоданные могут обеспечиваться как множество отдельных изображений, которые создают ощущение движения при наблюдении в последовательности. Сами изображения могут быть организованы как пространственный массив пикселей, где каждый пиксель может содержать один или более отсчетов в зависимости от используемых структуры дискретизации, цветового пространства и т.д. Специалисту в данной области техники нетрудно понять соотношение между пикселями и отсчетами. Нижеследующее описание посвящено отсчетам.

[0073] Согласно варианту осуществления настоящего изобретения видеокодер (603) может кодировать и сжимать изображения исходной видеопоследовательности в кодированную видеопоследовательность (643) в реальном времени или с учетом любых других временных ограничений, налагаемых применением. Установление надлежащей скорости кодирования является одной из функций контроллера (650). В некоторых вариантах осуществления контроллер (650) управляет другими функциональными модулями, как описано ниже, и функционально подключен к другим функциональным модулям. Подключение для простоты не показано. Параметры, установленные контроллером (650), могут включать в себя параметры, связанные регулировкой частоты (пропуск изображения, квантователь, значение лямбда, применяемое при оптимизация скорости-искажения т.д.), размер изображения, схему групп изображений (GOP, Group Of Pictures), максимальную зону поиска вектора движения и т.д. Контроллер (650) может быть выполнен с возможностью иметь другие подходящие функции, относящиеся к видеокодеру (603), оптимизированному для той или иной конструкции системы.

[0074] В некоторых вариантах осуществления видеокодер (603) выполнен с возможностью работать в петле кодирования. В качестве очень упрощенного описания, в порядке примера, петля кодирования может включать в себя исходный кодер (630) (например, отвечающий за создание символов, например, потока символов, на основе входного изображения, подлежащего кодированию, и опорного(ых) изображения(ий)) и (локальный) декодер (633), встроенный в видеокодер (603). Декодер (633) реконструирует символы для создания данных отсчетов, аналогично тому, как это делал бы (удаленный) декодер (поскольку любое сжатие между символами и битовым потоком кодированного видео происходит без потерь в технологиях сжатия видео, рассматриваемых в раскрытом изобретении). Реконструированный поток отсчетов (данные отсчетов) поступают в память (634) опорных изображений. Поскольку декодирование потока символов приводит к результатам, с точностью до бита, не зависящим от положения декодера (локального или удаленного), содержимое памяти (634) опорных изображений также будет одинаковым с точностью до бита для локального кодера и удаленного кодера. Другими словами, предсказанная часть кодера «видит» в качестве отсчетов опорного изображения точно такие же значения отсчетов, как «видел» бы декодер при использовании предсказания в ходе декодирования. Этот фундаментальный принцип синхронизма опорного изображения (и, в итоге, дрейф, если синхронизм не удается поддерживать, например, вследствие канальных ошибок) используется также в некоторых связанных областях техники.

[0075] «Локальный» декодер (633) может действовать таким же образом, как «удаленный» декодер, например, видеодекодер (510), подробно вышеописанный со ссылкой на фиг. 5. Однако, опять же, согласно фиг. 5, поскольку символы доступны, и кодирование/декодирование символов в кодированную видеопоследовательность энтропийным кодером (645) и анализатором (520) может осуществляться без потерь, части энтропийного декодирования видеодекодера (510), включающие в себя буферную память (515) и анализатор (520), могут быть не полностью реализованы в локальном декодере (633).

[0076] При этом можно сделать вывод, что любая технология декодирования, присутствующая в декодере, за исключением анализа/энтропийного декодирования, также обязательно должна присутствовать, по существу в идентичной функциональной форме в соответствующем кодере. По этой причине раскрытое изобретение сконцентрировано на работе декодера. Описание технологий кодирования может быть сокращено, поскольку они являются обратными подробно описанным технологиям декодирования. Только в некоторых областях требуется более детальное описание, которое приведено ниже.

[0077] Согласно некоторым примерам, в ходе работы исходный кодер (630) может осуществлять кодирование с предсказанием и компенсацией движения, при котором входное изображение кодируется с предсказанием на основании одного или более ранее кодированных изображений из видеопоследовательности, указанных как «опорные изображения». Таким образом, машина (632) кодирования кодирует различия между пиксельными блоками входного изображения и пиксельными блоками опорного изображения(й), которое(ые) может(ут) выбираться в качестве предсказанной(ых) ссылки(ок) на входное изображение.

[0078] Локальный видеодекодер (633) может декодировать кодированные видеоданные изображений, которые могут быть указаны как опорные изображения, на основе символов, созданных исходным кодером (630). Операции машины (632) кодирования могут быть преимущественно процессами с потерями. Когда кодированные видеоданные могут декодироваться в видеодекодере (не показан на фиг. 6), реконструированная видеопоследовательность обычно может представлять собой копию исходной видеопоследовательности с некоторыми ошибками. Локальный видеодекодер (633) дублирует процессы декодирования, которые могут осуществляться видеодекодером на опорных изображениях, и может предписывать сохранение реконструированных опорных изображений в кэш-памяти (634) опорных изображений. Таким образом, видеокодер (603) может локально сохранять копии реконструированных опорных изображений, имеющие такое же содержимое, как реконструированные опорные изображения, которые будут получены видеодекодером на стороне приемника (в отсутствие ошибок передачи).

[0079] Предсказатель (635) может осуществлять поиски предсказания для машины (632) кодирования. Таким образом, для нового изображения, подлежащего кодированию, предсказатель (635) может искать в памяти (634) опорных изображений данные отсчетов (в качестве кандидатов на роль опорных пиксельных блоков) или те или иные метаданные, например, векторы движения опорного изображения, формы блоков и т.д., которые могут служить надлежащей ссылкой для предсказания новых изображений. Предсказатель (635) может работать на основе «блоки отсчетов - пиксельные блоки» для нахождения надлежащих ссылок для предсказания. В ряде случаев, согласно результатам поиска, полученным предсказателем (635), входное изображение может иметь ссылки для предсказания, извлеченные из множества опорных изображений, хранящихся в памяти (634) опорных изображений.

[0080] Контроллер (650) может управлять операциями кодирования исходного кодера (630), включая, например, установление параметров и параметров подгруппы, используемых для кодирования видеоданных.

[0081] Выходной сигнал всех вышеупомянутых функциональных модулей может подвергаться энтропийному кодированию в энтропийном кодере (645). Энтропийный кодер (645) переводит символы, сгенерированные различными функциональными модулями, в кодированную видеопоследовательность путем сжатия символов без потерь согласно технологиям, например, кодирования по Хаффману, кодирования с переменной длиной серии, арифметического кодирования и т.д.

[0082] Передатчик (640) может буферизовать кодированную(ые) видеопоследовательность(и), созданную энтропийным кодером (645), для подготовки к передаче через канал (660) связи, который может быть аппаратной/программной линией связи с запоминающим устройством, где хранятся кодированные видеоданные. Передатчик (640) может объединять кодированные видеоданные от видеокодера (603) с другими данными, подлежащими передаче, например, кодированными аудиоданными и/или вспомогательными потоками данных (источники не показаны).

[0083] Контроллер (650) может управлять работой видеокодера (603). В ходе кодирования контроллер (650) может назначать каждому кодированному изображению тот или иной тип кодированного изображения, который может определять методы кодирования, применимые к соответствующему изображению. Например, изображениям часто могут назначаться следующие типы изображения:

[0084] Интра-изображение (I-изображение), которое можно кодировать и декодировать без использования какого-либо другого изображения в последовательности в качестве источника предсказания. Некоторые видеокодеки допускают разные типы интра-изображений, включая, например, изображения в формате независимого обновления декодера («IDR», Independent Decoder Refresh). Специалисту в данной области техники известны разновидности 1-изображений и их соответствующие варианты применения и особенности.

[0085] Предсказанное изображение (Р-изображение), которое можно кодировать и декодировать с использованием внутреннего предсказания или внешнего предсказания с использованием не более одного вектора движения и опорного индекса для предсказания значений отсчетов каждого блока.

[0086] Двунаправленно-предсказанное изображение (В-изображение), которое можно кодировать и декодировать с использованием внутреннего предсказания или внешнего предсказания с использованием не более двух векторов движения и опорных индексов для предсказания значений отсчетов каждого блока. Аналогично, мультипредсказанные изображения могут использовать более двух опорных изображений и связанные метаданные для реконструкции единого блока.

[0087] Исходные изображения обычно допускают пространственное разделение на множество блоков отсчетов (например, блоки 4×4, 8×8, 4×8 или 16×16 отсчетов каждый) и кодирование на поблочной основе (блок за блоком). Блоки могут кодироваться предиктивно со ссылкой на другие (ранее кодированные) блоки, определенные назначением кодирования, применяемым к соответствующим изображениям этих блоков. Например, блоки 1-изображений могут кодироваться без предсказания или с предсказанием со ссылкой на ранее кодированные блоки того же изображения (пространственным предсказанием или внутренним предсказанием). Пиксельные блоки Р-изображений могут кодироваться с предсказанием, посредством пространственного предсказания или временного предсказания со ссылкой на одно ранее кодированное опорное изображение. Блоки В-изображений могут кодироваться с предсказанием, посредством пространственного предсказания или временного предсказания со ссылкой на одно или два ранее кодированных опорных изображения.

[0088] Видеокодер (603) может осуществлять операции кодирования согласно заранее заданной технологии или стандарту видеокодирования, например, ITU-T Rec. Н.265. В своей работе видеокодер (603) может осуществлять различные операции сжатия, в том числе операции предиктивного кодирования, которые используют временные и пространственные избыточности во входной видеопоследовательности. Поэтому кодированные видеоданные могут согласовываться с синтаксисом, заданным используемой технологией или стандартом видеокодирования.

[0089] Согласно варианту осуществления передатчик (640) может передавать дополнительные данные с кодированным видео. Исходный кодер (630) может включать такие данные как часть кодированной видеопоследовательности. Дополнительные данные могут содержать временные/пространственные/SNR слои улучшения, другие формы избыточных данных, например, избыточные изображения и слайсы, сообщения SEI, фрагменты набора параметров VUI и т.д.

[0090] Видео может захватываться как множество исходных изображений (видеоизображений) во временной последовательности. Предсказание внутри изображения (часто сокращенно именуемое «внутренним предсказанием») использует пространственную корреляцию в данном изображении, а предсказание между изображениями использует (временную или иную) корреляцию между изображениями. Например, конкретное изображение, подлежащее кодированию/декодированию, которое именуется «текущим изображением», разбивается на блоки. Когда блок в текущем изображении аналогичен опорному блоку в ранее кодированном и все еще буферизованном опорном изображении в видео, блок в текущем изображении может кодироваться вектором, который именуется «вектором движения». Вектор движения указывает на опорный блок в опорном изображении и может иметь третье измерение, идентифицирующее опорное изображение, в случае использования множественных опорных изображений.

[0091] В некоторых вариантах осуществления метод двойного предсказания может использоваться при предсказании между изображениями. Согласно методу двойного предсказания, используются два опорных изображения, например, первое опорное изображение и второе опорное изображение, которые оба предшествуют в порядке декодирования текущему изображению в видео (но могут быть в прошлом и будущем, соответственно, в порядке отображения). Блок в текущем изображении может кодироваться первым вектором движения, который указывает на первый опорный блок в первом опорном изображении, и вторым вектором движения, который указывает на второй опорный блок во втором опорном изображении. Блок может предсказываться комбинацией первого опорного блока и второго опорного блока.

[0092] Дополнительно, метод режима объединения может использоваться в предсказании между изображениями для повышения эффективности кодирования.

[0093] Согласно некоторым вариантам осуществления изобретения, предсказания, например, предсказания между изображениями и предсказания внутри изображения, осуществляются поблочно. Например, согласно стандарту HEVC, изображение в последовательности видеоизображений разбивается на единицы дерева кодирования (CTU, Coding Tree Units) для сжатия, CTU в изображении имеют одинаковый размер, например 64×64 пикселя, 32×32 пикселя или 16×16 пикселей. В общем случае CTU включает в себя три блока дерева кодирования (СТВ, Coding Tree Blocks), а именно, один СТВ яркости и два СТВ цветности. Каждый CTU может рекурсивно делиться квадрадеревом на одну или более единиц кодирования (CU). Например, CTU размером 64×64 пикселя может делиться на одну CU размером 64×64 пикселя или на четыре CU размером 32×32 пикселя или 16 CU размером 16×16 пикселей. Например, каждая CU анализируется для определения типа предсказания для CU, например, типа внешнего предсказания или типа внутреннего предсказания. CU делится на одну или более единиц предсказания (PU) в зависимости от временной и/или пространственной предсказуемости. В целом, каждая PU включает в себя блок (РВ) предсказания яркости и два РВ цветности. Согласно варианту осуществления операция предсказания при кодировании (кодировании/декодировании) осуществляется в единице блока предсказания. Используя блок предсказания яркости в качестве примера блока предсказания, блок предсказания включает в себя матрицу значений (например, значений яркости) для пикселей, например, 8×8 пикселей, 16×16 пикселей, 8×16 пикселей, 16×8 пикселей и т.п.

[0094] На фиг. 7 показана схема видеокодера (703) согласно другому варианту осуществления изобретения. Видеокодер (703) выполнен с возможностью приема блока обработки (например, блока предсказания) значений отсчетов в текущем видеоизображении в последовательности видеоизображений и кодирования блока обработки в кодированное изображение, которое составляет часть кодированной видеопоследовательности. Например, видеокодер (703) используется вместо видеокодера (403) в примере, приведенном на фиг. 4.

[0095] В примере HEVC видео кодер (703) принимает матрицу значений отсчетов для блока обработки, например, блока предсказания 8×8 отсчетов и т.п. Видеокодер (703) определяет, наилучшим ли образом кодируется блок обработки в интра-режиме, интер-режиме или режиме двойного предсказания с использованием, например, оптимизации скорость-искажения. Когда блок обработки подлежит кодированию в интра-режиме, видеокодер (703) может использовать метод внутреннего предсказания для кодирования блока обработки в кодированное изображение; и когда блок обработки подлежит кодированию в интер-режиме или режиме двойного предсказания, видеокодер (703) может использовать метод внешнего предсказания или двойного предсказания, соответственно, для кодирования блока обработки в кодированное изображение. В некоторых технологиях видеокодирования, режим объединения может быть подрежимом предсказания между изображениями, где вектор движения выводится из одного или более предсказателей вектора движения без привлечения кодированного компонента вектора движения вне предсказателей. В некоторых других технологиях видеокодирования может присутствовать компонент вектора движения, применимый к данному блоку. В порядке примера, видеокодер (703) включает в себя другие компоненты, например, модуль определения режима (не показан) для определения режима блоков обработки.

[0096] В примере, приведенном на фиг. 7, видеокодер (703) включает в себя интер-кодер (730), интра-кодер (722), вычислитель (723) остатка, переключатель (726), кодер (724) остатка, общий контроллер (721) и энтропийный кодер (725), соединенные друг с другом как показано на фиг. 7.

[0097] Интер-кодер (730) выполнен с возможностью приема отсчетов текущего блока (например, блока обработки), сравнения блока с одним или более опорными блоками в опорных изображениях (например, блоками в предыдущих изображениях и более поздних изображениях), генерации информации внешнего предсказания (например, описания избыточной информации согласно методу внутреннего кодирования, векторов движения, информации режима объединения), и вычисления результатов внешнего предсказания (например, блока предсказания) на основании информации внешнего предсказания с использованием любого подходящего метода. В некоторых примерах опорными изображениями являются декодированные опорные изображения, которые декодируются на основе информации кодированного видео.

[0098] Интра-кодер (722) выполнен с возможностью приема отсчетов текущего блока (например, блока обработки), в ряде случаев сравнения блока с блоками, ранее кодированными в том же изображении, генерирования квантованных коэффициентов после преобразования, и в ряде случаев также информации внутреннего предсказания (например, информации направления внутреннего предсказания согласно одному или более методам внутреннего кодирования). В порядке примера, интра-кодер (722) также вычисляет результаты внутреннего предсказания (например, блок предсказания) на основании информации внутреннего предсказания и опорных блоков в том же изображении.

[0099] Общий контроллер (721) выполнен с возможностью определения общих данных управления и управления другими компонентами видеокодера (703) на основе общих данных управления. Например, общий контроллер (721) определяет режим блока и выдает сигнал управления на переключатель (726) на основе режима. Например, когда режим является интра-режимом, общий контроллер (721) управляет переключателем (726) для выбора результата интра-режима для использования вычислителем (723) остатка, и управляет энтропийным кодером (725) для выбора информации внутреннего предсказания и включения информации внутреннего предсказания в битовый поток; и когда режим является интер-режимом, общий контроллер (721) управляет переключателем (726) для выбора результата внешнего предсказания для использования вычислителем (723) остатка, и управляет энтропийным кодером (725) для выбора информации внешнего предсказания и включения информации внешнего предсказания в битовый поток.

[0100] Вычислитель (723) остатка выполнен с возможностью вычисления разности (данных остатка) между принятым блоком и результатами предсказания, выбранными из интра-кодера (722) или интер-кодера (730). Кодер (724) остатка выполнен с возможностью действовать на основе данных остатка для кодирования данных остатка для генерации коэффициентов преобразования. Например, кодер (724) остатка выполнен с возможностью преобразования данных остатка из пространственной области в частотную область и генерирования коэффициентов преобразования. Затем коэффициенты преобразования подвергаются обработке квантования для получения квантованных коэффициентов преобразования. В различных вариантах осуществления видеокодер (703) также включает в себя декодер (728) остатка. Декодер (728) остатка выполнен с возможностью осуществления обратного преобразования и генерирования декодированных данных остатка. Декодированные данные остатка могут надлежащим образом использоваться интра-кодером (722) и интер-кодером (730). Например, интер-кодер (730) может генерировать декодированные блоки на основе декодированных данных остатка и информации внешнего предсказания, и интра-кодер (722) может генерировать декодированные блоки на основе декодированных данных остатка и информации внутреннего предсказания. Декодированные блоки надлежащим образом обрабатываются для генерации декодированных изображений, и декодированные изображения могут буферизоваться в схеме памяти (не показана) и в некоторых примерах использоваться в качестве опорных изображений.

[0101] Энтропийный кодер (725) выполнен с возможностью форматирования битового потока так, чтобы он включал в себя кодированный блок. Энтропийный кодер (725) выполнен с возможностью включать различную информацию согласно подходящему стандарту, например, стандарту HEVC. Например, энтропийный кодер (725) выполнен с возможностью включать общие данные управления, выбранную информацию предсказания (например, информацию внутреннего предсказания или информацию внешнего предсказания), информацию остатка и другую подходящую информацию в битовый поток. Заметим, что согласно раскрытому изобретению при кодировании блока в подрежиме объединения любого из интер-режима и режима двойного предсказания, информация остатка отсутствует.

[0102] На фиг. 8 показана схема видеодекодера (810) согласно другому варианту осуществления изобретения. Видеодекодер (810) выполнен с возможностью приема кодированных изображений, составляющих часть кодированной видеопоследовательности, и декодирования кодированных изображений для генерации реконструированных изображений. Например, видеодекодер (810) используется вместо видеодекодера (410) в примере, приведенном на фиг. 4.

[0103] В примере, приведенном на фиг. 8, видеодекодер (810) включает в себя энтропийный декодер (871), интер-декодер (880), декодер (873) остатка, модуль (874) реконструкции и интра-декодер (872), соединенные друг с другом как показано на фиг. 8.

[0104] Энтропийный декодер (871) может быть выполнен с возможностью реконструкции из кодированного изображения некоторых символов, которые представляют синтаксические элементы, образующие кодированное изображение. Такие символы могут включать в себя, например, режим кодирования блока (например, интра-режим, интер-режим, режим двойного предсказания, при этом последние два в подрежиме объединения или другом подрежиме), информацию предсказания (например, информацию внутреннего предсказания или информацию внешнего предсказания), которая может идентифицировать определенный отсчет или метаданные, используемые для предсказания интра-декодером (872) или интердекодером (880), соответственно, информацию остатка в форме, например, квантованных коэффициентов преобразования и т.п. Например, когда режим предсказания является режимом внутреннего или двойного предсказания, информация внешнего предсказания поступает на интер-декодер (880); а когда тип предсказания является типом внутреннего предсказания, информация внутреннего предсказания поступает на интра-декодер (872). Информация остатка может подвергаться обратному квантованию и поступать на декодер (873) остатка.

[0105] Интер-декодер (880) выполнен с возможностью приема информации внешнего предсказания и генерирования результатов внешнего предсказания на основании информации внешнего предсказания.

[0106] Интра-декодер (872) выполнен с возможностью приема информации внутреннего предсказания и генерирования результатов предсказания на основании информации внутреннего предсказания.

[0107] Декодер (873) остатка выполнен с возможностью осуществления обратного квантования для извлечения деквантованных коэффициентов преобразования и обработки деквантованных коэффициентов преобразования для преобразования остатка из частотной области в пространственную область. Декодер (873) остатка также может требовать некоторой информации управления (включать параметр квантователя (QP, Quantizer Parameter)), и эта информация может обеспечиваться энтропийным декодером (871) (путь данных не показан, поскольку это может быть только информация управления малого объема).

[0108] Модуль (874) реконструкции выполнен с возможностью объединения, в пространственной области, остатка на выходе декодера (873) остатка и результатов предсказания (на выходе модулей внешнего или внутреннего предсказания, в зависимости от ситуации) для формирования реконструированного блока, который может входить в состав реконструированного изображения, которое, в свою очередь, может входить в состав реконструированного видео. Заметим, что другие подходящие операции, например, операция деблокирования и т.п., могут осуществляться для повышения визуального качества.

[0109] Заметим, что видеокодеры (403), (603) и (703) и видеодекодеры (410), (510) и (810) могут быть реализованы с использованием любого подходящего метода. Согласно варианту осуществления видеокодеры (403), (603) и (703) и видеодекодеры (410), (510) и (810) могут быть реализованы с использованием одной или более интегральных схем. В другом варианте осуществления видеокодеры (403), (603) и (603) и видеодекодеры (410), (510) и (810) могут быть реализованы с использованием одного или более процессоров, которые выполняют программные инструкции.

[0110] Для уменьшения помех кодерами/декодерами может применяться адаптивный контурный фильтр (ALF) с адаптацией фильтра на основе блоков. Для компонента яркости для блока яркости 4×4 может быть выбран один из множества фильтров (например, из 25 фильтров), например, на основе направления и активности локальных градиентов.

[0111] ALF может иметь любую подходящую маску и размер. На фиг. 9 ALF (910)-(911) имеют форму ромба - например, ромбовидную маску 5×5 для ALF (910) и ромбовидную маску 7×7 для ALF (911). В ALF (910) для фильтрации и формирования ромбовидной маски могут использоваться элементы (920)-(932). Для элементов (920)-(932) может использоваться семь значений (например, С0-С6). В ALF (911) для фильтрации и формирования ромбовидной маски могут использоваться элементы (940)-(964). Для элементов (940)-(964) может использоваться тринадцать значений (например, С0-С12).

[0112] В некоторых примерах на фиг. 9 используются по два ALF (910)-(911) ромбовидной маски. Фильтр (910) ромбовидной маски 5×5 может применяться для компонентов цветности (например, блоков цветности, СВ цветности), а фильтр (911) ромбовидной маски 7×7 - для компонента яркости (например, блока яркости, СВ яркости). В ALF могут использоваться и другие подходящие формы и размеры. Например, может использоваться фильтр с ромбовидной маской 9×9.

[0113] Коэффициенты фильтров в позициях, обозначенных значениями (например, С0-С6 в (910) или С0-С12 в (920)), могут быть ненулевыми. Кроме того, когда ALF включает в себя функцию ограничения, значения ограничения в позициях могут быть ненулевыми.

[0114] Для классификации блоков компонента яркости тот или иной 4×4 блок (или блок яркости, СВ яркости) может быть отнесен к какой-либо категории или классифицирован как один из многих (например, 25) классов. Индекс С классификации может быть получен на основе параметра D направленности и квантованного значения А активности А с использованием уравнения (1).

Для вычисления параметра направленности D и квантованного значения градиенты gv, gh, gd1 и gd2 по вертикали, по горизонтали и по двум диагональным направлениям (например, d1 и d2), соответственно, могут вычисляться с использованием одномерного оператора Лапласа следующим образом:

где индексы i и j относятся к координатам верхнего левого отсчета в рамках блока 4×4, a R(k, l) указывает реконструированный отсчет в координатах (k, l). Направления (например, d1 и d2) могут относиться к двум диагональным направлениям.

[0115] Для упрощения описанной выше классификации блоков можно применить вычисление с использованием одномерного оператора Лапласа с субдискретизацией. На фиг. 10A-10D показаны примеры позиций с субдискретизацией, используемых для вычисления градиентов gv, gh, gd1 и gd2 по вертикали (фиг. 10А), по горизонтали (фиг. 10В) и по двум диагональным направлениям d1 (фиг. 10С) и d2 (фиг. 10D), соответственно. Одни и те же позиции с субдискретизацией могут использоваться для вычисления градиентов по разным направлениям. На фиг. 10А метки «V» указывают позиции с субдискретизацией для вычисления градиента gv по вертикали. На фиг. 10В метки «Н» указывают позиции с субдискретизацией для вычисления градиента gh, по горизонтали. На фиг. 10С метки «D1» указывают позиции с субдискретизацией для вычисления диагонального градиента gd1 d1. На фиг. 10D метки «D2» указывают позиции с субдискретизацией для вычисления диагонального градиента gd2 d2.

[0116] Максимальное и минимальное значения градиентов горизонтального gv и вертикального gh направлений могут быть установлены следующим образом:

Максимальное и минимальное значения градиентов двух диагональных направлений gd1 и gd2 могут быть установлены следующим образом:

Параметр направленности D может быть получен на основе указанных выше значений и двух пороговых значений t1 и t2, как показано ниже:

Шаг 1. Если и являются истинными уравнениями, то для D устанавливается значение 0.

Шаг 2. Если то перейдите к шагу 3; в противном случае перейдите к шагу 4.

Шаг 3. Если то для D устанавливается значение 2; в противном случае для D устанавливается значение 1.

Шаг 4. Если то для D устанавливается значение 4; в противном случае для D устанавливается значение 3.

[0117] Значение активности можно А вычислить следующим образом:

A можно дополнительно квантовать до диапазона от 0 до 4 включительно; квантованное значение обозначается как

[0118] Для компонентов цветности в изображении классификация блоков не применяется, и, таким образом, один набор коэффициентов ALF может применяться для каждого компонента цветности.

[0119] Геометрические преобразования могут применяться к коэффициентам фильтра и к соответствующим значениям ограничения фильтров (также называемым «значениями ограничения»). Перед фильтрацией того или иного блока (например, блока яркости 4×4) геометрические преобразования, такие как поворот или диагональное и вертикальное переворачивание, могут быть применены к коэффициентам f(k, l) фильтров и к соответствующим значениям c(k, l) ограничения фильтров, например, в зависимости от значений градиентов (например, gv, gh, gd1 и/или gd2), вычисленных для этого блока. Геометрические преобразования, применяемые к коэффициентам f(k, l) фильтра и к соответствующим значениям c(k, l) ограничения фильтра, могут быть эквивалентны применению геометрических преобразований к отсчетам в области, поддерживаемой этим фильтром. Геометрические преобразования могут сделать различные блоки, к которым применяется ALF, более похожими путем выравнивания соответствующей направленности.

[0120] Три геометрических преобразования, включая диагональное переворачивание, вертикальное переворачивание и поворот, могут быть выполнены, как описано уравнениями (9)-(11), соответственно.

где К - это размер ALF или фильтра, a 0≤k, l≤K-1- координаты коэффициентов. Например, позиция (0,0) - это верхний левый угол, а позиция (K - 1, K - 1) - нижний правый угол фильтра f или матрицы значений ограничения (или матрицы ограничения) с. Преобразования могут применяться к коэффициентам f (k, l) фильтра и значениям с(k, l) ограничения в зависимости от значений градиентов, вычисленных для этого блока. Пример взаимосвязи между преобразованиями и четырьмя градиентами приводится в Табл. 1.

[0121] В некоторых вариантах осуществления параметры фильтра ALF передаются в наборе параметров адаптации (APS, Adaptation Parameter Set) для изображения. В APS может передаваться один или более наборов (например, до 25 наборов) из коэффициентов фильтров яркости и индексов значений ограничения. Например, набор из одного или более наборов может включать в себя коэффициенты фильтров яркости и один или более индексов значений ограничения. Может передаваться один или более наборов (например, до восьми наборов) из коэффициентов фильтров цветности и индексов значений ограничения. Для уменьшения объема данных сигнализации могут быть объединены коэффициенты фильтров различных классификаций (например, с разными индексами классификации) для компонентов яркости. В заголовке слайса могут передаваться индексы APS, используемых для текущего слайса.

[0122] Согласно варианту осуществления индекс значения ограничения (также называемый «индексом ограничения») может быть декодирован из APS. Индекс значения ограничения может использоваться для определения соответствующего значения ограничения, например на основе взаимосвязи между индексом значения ограничения и соответствующим значением ограничения. Эта взаимосвязь может быть определена заранее и сохранена в декодере. Например, взаимосвязь описывается в таблице, например в таблице яркости (например, используемой для СВ яркости) из индекса значения ограничения и соответствующего значения ограничения, таблице цветности (например, используемой для СВ цветности) из индекса значения ограничения и соответствующего значения ограничения. Значение ограничения может зависеть от битовой глубины B. Битовая глубина B может относиться к внутренней битовой глубине, битовой глубине реконструированных отсчетов в подлежащем фильтрации СВ или т.п. В некоторых примерах таблица (например, таблица яркости, таблица цветности) формируется с использованием уравнения (12).

где AlfClip - это значение ограничения, B - битовая глубина (например, bitDepth), N (например, N=4) - количество разрешенных значений ограничения, а (n-1) - индекс значения ограничения (также называемый «индексом ограничения» или clipIdx). В Табл. 2 показан пример таблицы, полученной с использованием уравнения (12) с N=4. Индекс ограничения (n-1) в Табл. 2 может иметь значение 0, 1, 2 и 3, а n - 1, 2, 3 и 4 соответственно. Табл. 2 может использоваться для блоков яркости или блоков цветности.

[0123] В заголовке текущего слайса может передаваться один или более индексов APS (например, до семи индексов APS) для указания наборов фильтров яркости, которые могут использоваться для текущего слайса. Управление процессом фильтрации может выполняться на одном или более подходящих уровнях, например на уровне изображений, на уровне слайсов, на уровне СТВ и/или т.п. Согласно варианту осуществления управление процессом фильтрации может дополнительно выполняться на уровне СТВ. Может передаваться флаг для указания того, применяется ли ALF к СТВ яркости. СТВ яркости может выбрать набор фильтров из множества фиксированных наборов фильтров (например, из 16 фиксированных наборов фильтров) и набора(ов) фильтров (также называемых «передаваемым(ыми) набором(ами) фильтров»), которые передаются в APS. Индекс набора фильтров может передаваться для СТВ яркости для указания набора фильтров (например, набора фильтров из множества фиксированных наборов фильтров и передаваемого(мых) набора(ов) фильтров), который должен быть применен. Множество фиксированных наборов фильтров может быть предварительно определено и жестко закодировано в кодере и декодере и может называться «предварительно определенными наборами фильтров».

[0124] Для компонента цветности в заголовке слайса может быть передан индекс APS для указания наборов фильтров цветности, которые должны использоваться для текущего слайса. На уровне СТВ индекс набора фильтров может передаваться для каждого СТВ цветности, если в APS установлено более одного фильтра цветности.

[0125] Коэффициенты фильтров можно квантовать с нормой, равной 128. Для снижения сложности перемножения может применяться согласование битовых потоков с тем, чтобы коэффициент позиции, отличной от центральной, мог находиться в диапазоне от -27 до 27 - 1 включительно. Например, коэффициент центральной позиции не передается в битовом потоке и может считаться равным 128.

[0126] В некоторых вариантах осуществления синтаксис и семантика индекса ограничения и значений ограничения определены следующим образом: alf_luma_clip_idx[sfIdx][j] может использоваться для указания индекса ограничения значения ограничения для использования перед умножением на j-ый коэффициент переданного фильтра яркости, указанного sfIdx. Требование согласования битовых потоков может включать в себя следующее: значения от alf_luma_clip_idx[sfIdx][j] с sfIdx=0 для alf_luma_num_filters_signalled_minus 1 и j=0 - 11 должны находиться в диапазоне от 0 до 3 включительно.

Значения ограничения фильтра яркости AlfClipL[adaptation_parameter_set_id] с элементами AlfClipL[adaptation_parameter_set_id][filtIdx][j], с filtIdx=0 для NumAlfFilters - 1 и j=0 - 11 могут быть получены, как указано в Табл. 2 в зависимости от bitDepth, равного BitDepthY, и clipIdx, равного

alf_luma_clip_idx[alf_luma_coeff_delta_idx[filtIdx]][j].

alf_chroma_clip_idx[altIdx][j] может использоваться для указания индекса ограничения значения ограничения для использования перед умножением на j-ый коэффициент альтернативного фильтра цветности с индексом altIdx. Требование согласования битовых потоков может включать в себя следующее: значения от alf_chroma_clip_idx[altIdx][j] с altIdx=0 для alf_chroma_num_alt_filters_minus 1, j=0-5 должны находиться в диапазоне от 0 до 3 включительно.

Значения ограничения фильтра цветности

AlfClipC[adaptation_parameter_set_id][altIdx] с элементами

AlfClipC[adaptation_parameter_set_id][altIdx][j], с altIdx=0 для

alf_chroma_num_alt_filters_minus 1, j=0-5 могут быть получены, как указано в Табл. 2 в зависимости от bitDepth, равного BitDepthC, и clipIdx, равного

alf_chroma_clip_idx[altIdx][j].

[0127] Согласно варианту осуществления процесс фильтрации может быть описан следующим образом. На стороне декодера, когда ALF активирован для СТВ, отсчет R(i,j) в CU (или в СВ) может быть отфильтрован, что приведет к отфильтрованному значению отсчета R'(i,j), как показано ниже, с использованием уравнения (13). Например, фильтруется каждый отсчет в CU.

где f(k,l) обозначает декодированные коэффициенты фильтра, K(х,у) - это функция ограничения, а с(k,l) обозначает декодированные параметры ограничения (или значения ограничения). Переменные k и l могут изменяться от -L/2 до L/2, где L обозначает длину фильтра. Функция ограничения K(х, у)=min (у, max (-у, х)) соответствует функции ограничения Clip3 (-у, у, х). За счет включения функции ограничения K(х,у) способ контурной фильтрации (например, ALF) становится нелинейным процессом и может быть отнесен к нелинейному ALF.

[0128] В случае нелинейного ALF в Табл. 3 может быть предоставлено несколько наборов значений ограничения. Например, набор яркости включает в себя четыре значения ограничения {1024, 181, 32, 6}, и набор цветности включает в себя четыре значения ограничения {1024, 161, 25, 4}. Четыре значения ограничения в наборе яркости могут быть выбраны путем примерно одинакового разделения, в логарифмической области, полного диапазона (например, 1024) значений отсчетов (кодированных с использованием 10 битов) для блока яркости. Для набора цветности может использоваться диапазон от 4 до 1024.

[0129] Выбранные значения ограничения могут быть кодированы в элементе синтаксиса alf_data следующим образом: подходящая схема кодирования (например, схема кодирования Голомба) может использоваться для кодирования индекса ограничения, соответствующего выбранному значению ограничения, как показано в Табл. 3. Схема кодирования может быть той же схемой кодирования, которая используется для кодирования индекса набора фильтров.

[0130] Согласно варианту осуществления, может использоваться процесс фильтрации по виртуальным границам для смягчения требований к линейному буферу для ALF. Соответственно, модифицированная классификация и фильтрация блоков могут использоваться для отсчетов рядом с границами CTU (например, рядом с горизонтальной границей CTU). Виртуальная граница (ИЗО) может быть определена как линия, получаемая при смещении горизонтальной границы (1120) CTU на «Nотсчетов» отсчетов, как показано на фиг. 11А, где Nотсчетов может быть положительным целым числом. Например, Nотсчетов равно 4 для компонента яркости, и Nотсчетов is равно 2 для компонента цветности.

[0131] На фиг. 11А для компонента яркости может применяться модифицированная классификация блоков. Например, для вычисления градиента блока (1110) 4×4 с использованием одномерного оператора Лапласа выше виртуальной границы (1130) используются только отсчеты выше виртуальной границы (1130). Аналогично на фиг. 11В для вычисления градиента блока (1111) 4×4 с использованием одномерного оператора Лапласа ниже виртуальной границы (1131), которая смещена от границы CTU (1121), используются только отсчеты ниже виртуальной границы (1131). Квантование значения активности А может быть соответствующим образом масштабировано с учетом уменьшенного количества отсчетов, применяемых при вычислении градиента с использованием одномерного оператора Лапласа.

[0132] Для обработки фильтрации может использоваться операция симметричного заполнения на виртуальных границах как для компонента яркости, так и для компонента цветности. На фиг. 12A-12F показаны примеры такой модифицированной фильтрации ALF для компонента яркости на виртуальных границах. Когда фильтруемый отсчет находится ниже виртуальной границы, могут быть добавлены соседние отсчеты, находящиеся выше этой виртуальной границы. Когда фильтруемый отсчет находится выше виртуальной границы, могут быть добавлены соседние отсчеты, находящиеся ниже этой виртуальной границы. На фиг. 12А соседний отсчет С0 может быть дополнен отсчетом С2, который находится ниже виртуальной границы (1210). На фиг. 12В соседний отсчет С0 может быть дополнен отсчетом С2, который находится выше виртуальной границы (1220). На фиг. 12С соседние отсчеты С1-С3 могут быть дополнены отсчетами С5-С7, соответственно, которые находятся ниже виртуальной границы (1230). На фиг. 12D соседние отсчеты С1-С3 могут быть дополнены отсчетами С5-С7, соответственно, которые находятся выше виртуальной границы (1240). На фиг. 12Е соседние отсчеты С4-С8 могут быть дополнены отсчетами С10, С11, С12, С11 и С10, соответственно, которые находятся ниже виртуальной границы (1250). На фиг. 12F соседние отсчеты С4-С8 могут быть дополнены отсчетами С10, С11, С12, С11 и С10, соответственно, которые находятся выше виртуальной границы (1260).

[0133] В некоторых примерах приведенное выше описание может быть соответствующим образом адаптировано, когда отсчет(ы) и соседний отсчет(ы) находятся слева (или справа) и справа (или слева) от виртуальной границы.

[0134] В процессе кросс-компонентной фильтрации могут применяться кросс-компонентные фильтры, такие как кросс-компонентные адаптивные контурные фильтры (CC-ALF). Кросс-компонентный фильтр может использовать значения отсчетов яркости компонента яркости (например, СВ яркости) для уточнения компонента цветности (например, СВ цветности, соответствующего СВ яркости). Например, СВ яркости и СВ цветности включены в CU.

[0135] На фиг. 13 показаны кросс-компонентные фильтры (например, CC-ALF), используемые для генерации компонентов цветности согласно варианту осуществления настоящего изобретения. В некоторых примерах на фиг. 13 показаны процессы фильтрации для первого компонента цветности (например, первого СВ сигнала цветности), второго компонента сигнала цветности (например, второго СВ сигнала цветности) и компонента яркости (например, СВ яркости). Компонент яркости может быть отфильтрован фильтром (1310) с адаптивным смещением отсчета (SAO, Sample Adaptive Offset) для генерации компонента (1341) яркости, отфильтрованного с применением SAO. Компонент (1341) яркости, отфильтрованный с применением SAO, может быть дополнительно отфильтрован фильтром (1316) яркости с применением ALF, чтобы стать отфильтрованным СВ (1361) яркости (например, «Y»).

[0136] Первый компонент цветности может быть отфильтрован фильтром (1312) SAO и фильтром (1318) цветности с применением ALF, для генерации первого промежуточного компонента (1352). Кроме того, компонент (1341) яркости, отфильтрованный с применением SAO, может быть отфильтрован кросс-компонентным фильтром (например, CC-ALF) (1321) для первого компонента цветности для генерации второго промежуточного компонента (1342). Затем отфильтрованный первый компонент (1362) цветности (например, «Cb») может быть сгенерирован на основе по меньшей мере либо второго промежуточного компонента (1342), либо первого промежуточного компонента (1352). Например, отфильтрованный первый компонент (1362) цветности (например, «Cb») может быть сгенерирован посредством объединения второго промежуточного компонента (1342) и первого промежуточного компонента (1352) с помощью сумматора (1322). Процесс кросс-компонентной адаптивной контурной фильтрации для первого компонента цветности может включать в себя этап, выполняемый CC-ALF (1321), и этап, выполняемый, например, сумматором (1322).

[0137] Приведенное выше описание может быть адаптировано ко второму компоненту цветности. Второй компонент цветности может быть отфильтрован фильтром (1314) SAO и фильтром (1318) цветности с применением ALF для генерации третьего промежуточного компонента (1353). Кроме того, компонент (1341) яркости, отфильтрованный с применением SAO, может быть отфильтрован кросс-компонентным фильтром (например, CC-ALF) (1331) для второго компонента цветности для генерации четвертого промежуточного компонента (1343). Затем отфильтрованный второй компонент (1363) цветности (например, «Cr») может быть сгенерирован на основе по меньшей мере либо четвертого промежуточного компонента (1343), либо третьего промежуточного компонента (1353). Например, отфильтрованный второй компонент (1363) цветности (например, «Cr») может быть сгенерирован посредством объединения четвертого промежуточного компонента (1343) и третьего промежуточного компонента (1353) с помощью сумматора (1332). Например, процесс кросс-компонентной адаптивной контурной фильтрации для первого компонента цветности может включать в себя этап, выполняемый CC-ALF (1331), и этап, выполняемый, например, сумматором (1332).

[0138] Кросс-компонентный фильтр (например, CC-ALF (1321), CC-ALF (1331)) может действовать путем применения линейного фильтра с любой подходящей маской к компоненту яркости (или к каналу яркости) для уточнения каждого компонента цветности (например, первого компонента цветности, второго компонента цветности).

[0139] На фиг. 14 показан пример фильтра (1400) согласно варианту осуществления настоящего изобретения. Фильтр (1400) может содержать ненулевые и нулевые коэффициенты фильтра. Фильтр (1400) имеет ромбовидную маску (1420), образованную коэффициентами (1410) фильтра (указывается кружками с черной заливкой). Например, ненулевые коэффициенты фильтра в фильтре (1400) включены в коэффициенты (1410) фильтра, а коэффициенты фильтра, не включенные в коэффициенты (1410) фильтра, равны нулю. Таким образом, ненулевые коэффициенты фильтра в фильтре (1400) включены в ромбовидную маску (1420), а коэффициенты фильтра, не включенные в ромбовидную маску (1420), равны нулю. Например, количество коэффициентов фильтра (1400) равно количеству коэффициентов (1410) фильтра, которое равно 18 в примере, показанном на фиг. 14.

[0140] CC-ALF может содержать любые подходящие коэффициенты фильтра (также называемые «коэффициентами фильтра CC-ALF»). Обратимся снова к фиг. 13: CC-ALF (1321) и CC-ALF (1331) могут иметь одинаковую маску фильтра, например, ромбовидную маску (1420), показанную на фиг. 14, и одинаковое количество коэффициентов фильтра. Например, значения коэффициентов фильтра в CC-ALF (1321) отличаются от значений коэффициентов фильтра в CC-ALF (1331).

[0141] В общем случае коэффициенты фильтров (например, ненулевые коэффициенты фильтров) в CC-ALF могут передаваться, например, в APS. Например, коэффициенты фильтров можно масштабировать с помощью коэффициента (например, 210) и можно округлять для представления с фиксированной точкой. Управление применением CC-ALF может выполняться с помощью переменного размера блоков; применение указывается с помощью контекстно-кодированного флага (например, флага активации CC-ALF), принимаемого для каждого блока отсчетов. Контекстно-кодированный флаг, например флаг активации CC-ALF, может передаваться на любом подходящем уровне, например на уровне блоков. Размер блока вместе с флагом активации CC-ALF может быть получен на уровне слайсов для каждого компонента цветности. В некоторых примерах могут поддерживаться размеры блоков (в отсчетах цветности) 16×16, 32×32 и 64×64.

[0142] В общем случае блок яркости может соответствовать блоку(ам) цветности, например двум блокам цветности. Количество отсчетов в каждом блоке(ах) цветности может быть меньше количества отсчетов в блоке яркости. Формат понижающей субдискретизации цветности (также называемый «форматом субдискретизации цветности», например, заданный с помощью chroma_format_idc) может указывать коэффициент горизонтальной субдискретизации цветности (например, SubWidthC) и коэффициент вертикальной субдискретизации цветности (например, SubHeightC) между каждым из блоков цветности и соответствующим блоком яркости. Например, формат субдискретизации цветности составляет 4:2:0, и, таким образом, коэффициент горизонтальной субдискретизации цветности (например, SubWidthC) и коэффициент вертикальной субдискретизации цветности (например, SubHeightC) имеют значение 2, как показано на фиг. 15А-15В. Например, формат субдискретизации цветности составляет 4:2:2, и, таким образом, коэффициент горизонтальной субдискретизации цветности (например, SubWidthC) имеет значение 2, а коэффициент вертикальной субдискретизации цветности (например, SubHeightC) имеет значение 1. Например, формат субдискретизации цветности составляет 4:4:4, и, таким образом, коэффициент горизонтальной субдискретизации цветности (например, SubWidthC) и коэффициент вертикальной субдискретизации цветности (например, SubHeightC) имеют значение 1. Тип отсчетов цветности (также называемый «позицией отсчета цветности») может указывать относительное положение отсчета цветности в блоке цветности относительно по меньшей мере одного соответствующего отсчета яркости в блоке яркости.

[0143] На фиг. 15А-15В - пример расположения отсчетов цветности относительно отсчетов яркости согласно вариантам осуществления настоящего изобретения; На фиг. 15А отсчеты (1501) яркости размещены в строках (1511)-(1518). Отсчеты (1501) яркости, показанные на фиг. 15А, могут представлять часть изображения. Например, блок яркости (например, СВ яркости) включает в себя отсчеты (1501) яркости. Блок яркости может соответствовать двум блокам цветности, имеющим формат субдискретизации цветности 4:2:0. Например, каждый блок цветности содержит отсчеты (1503) цветности. Каждый отсчет цветности (например, отсчет (1503(1)) цветности соответствует четырем отсчетам яркости (например, отсчетам (1501(1))-(1501(4) яркости). Например, четыре отсчета яркости - это верхний-левый отсчет (1501(1)), верхний-правый отсчет (1501(2)), нижний-левый отсчет (1501(3)) и нижний-правый отсчет (1501(4)). Отсчет цветности (например, (1503(1))) расположен в левой центральной позиции, которая находится между верхним-левым отсчетом (1501(1)) и нижним-левым отсчетом (1501(3)), а тип отсчетов цветности блока цветности с отсчетами (1503) цветности, может называться «типом 0 отсчетов цветности». Тип 0 отсчетов цветности указывает относительное положение 0, соответствующее левой центральной позиции в середине верхнего-левого отсчета (1501(1)) и нижнего-левого отсчета (1501(3)). Четыре отсчета яркости (например, (1501(1))-(1501(4))) могут называться «соседними» отсчетами яркости отсчета (1503)(1) цветности.

[0144] Например, каждый блок цветности содержит отсчеты (1504) цветности. Приведенное выше описание со ссылкой на отсчеты (1503) цветности может быть адаптировано к отсчетам (1504) цветности, и, таким образом, подробные описания могут быть опущены для краткости изложения. Каждый из отсчетов (1504) цветности может находиться в центральной позиции четырех соответствующих отсчетов яркости, а тип отсчетов цветности блока цветности с отсчетами (1504) цветности может называться «типом 1 отсчетов цветности». Тип 1 отсчетов цветности указывает относительное положение 1, соответствующее центральной позиции из четырех отсчетов яркости (например, (1501(1))-(1501(4))). Например, один из отсчетов (1504) цветности может находиться в центральной части отсчетов (1501(1))-(1501(4)) яркости.

[0145] Например, каждый блок цветности содержит отсчеты цветности (1505). Каждый из отсчетов (1505) цветности может находиться в верхней левой позиции, совмещенной с верхним-левым отсчетом из четырех соответствующих отсчетов (1501) яркости, а тип отсчетов цветности блока цветности с отсчетами (1505) цветности может называться «типом 2 отсчетов цветности». Соответственно, каждый из отсчетов (1505) цветности совмещен с верхним левым отсчетом из четырех отсчетов (1501) яркости, относящихся к соответствующему отсчету цветности. Тип 2 отсчетов цветности указывает относительное положение 2, соответствующее верхней-левой позиции из четырех отсчетов (1501) яркости. Например, один из отсчетов (1505) цветности может находиться в верхней левой позиции отсчетов (1501(1))-(1501(4)) яркости.

[0146] Например, каждый блок цветности содержит отсчеты цветности (1506). Каждый из отсчетов (1506) цветности может находиться в левой центральной позиции между соответствующим верхним-левым отсчетом и соответствующим верхним-правым отсчетом, а тип отсчетов цветности блока цветности с отсчетами (1506) цветности может называться «типом 3 отсчетов цветности». Тип 3 отсчетов цветности указывает относительное положение 3, соответствующее левой центральной позиции между верхним-левым отсчетом и верхним-правым отсчетом. Например, один из отсчетов (1506) цветности может находиться в верхней центральной позиции отсчетов (1501(1))-(1501(4)) яркости.

[0147] Например, каждый блок цветности содержит отсчеты цветности (1507). Каждый из отсчетов (1507) цветности может находиться в нижней левой позиции, совмещенной с верхним-левым отсчетом из четырех соответствующих отсчетов (1501) яркости, а тип отсчетов цветности блока цветности с отсчетами (1507) цветности может называться «типом 4 отсчетов цветности». Соответственно, каждый из отсчетов (1507) цветности совмещен с нижним левым отсчетом из четырех отсчетов (1501) яркости, относящихся к соответствующему отсчету цветности. Тип 4 отсчетов цветности указывает относительное положение 4, соответствующее нижней-левой позиции из четырех отсчетов (1501) яркости. Например, один из отсчетов (1507) цветности может находиться в нижней левой позиции отсчетов (1501(1))-(1501(4)) яркости.

[0148] Например, каждый блок цветности содержит отсчеты (1508) цветности. Каждый из отсчетов (1508) цветности находится в левой центральной позиции между верхним-левым отсчетом и верхним-правым отсчетом, а тип отсчетов цветности блока цветности с отсчетами (1508) цветности может называться «типом 5 отсчетов цветности». Тип 5 отсчетов цветности указывает относительное положение 5, соответствующее нижней центральной позиции между нижним-левым отсчетом и нижним-правым отсчетом из четырех отсчетов (1501) яркости. Например, один из отсчетов (1508) цветности может находиться между нижним-левым отсчетом и нижним-правым отсчетом из отсчетов (1501(1))-(1501(4)) яркости.

[0149] В общем случае любой подходящий тип отсчетов цветности может использоваться для формата субдискретизации цветности. Типы 0-5 отсчетов цветности являются примерами типов отсчетов цветности, описываемыми с форматом субдискретизации цветности 4:2:0. Для формата субдискретизации цветности 4:2:0 могут использоваться дополнительные типы отсчетов цветности. Кроме того, для других форматов субдискретизации цветности, таких как 4:2:2, 4:4:4 или т.п., могут использоваться другие типы отсчетов цветности и/или вариации типов 0-5 отсчетов цветности. Например, для формата субдискретизации цветности 4:2:2 используется тип отсчетов цветности, объединяющий отсчеты (1505) и (1507) цветности.

[0150] Например, считаем, что блок яркости содержит чередующиеся строки, такие как строки (1511)-(1512), которые включают в себя два верхних отсчета (например, (1501(1))-(1501)(2))) из четырех отсчетов яркости (например, (1501(1))-(1501(4))) и два нижних отсчета (например, (1501(3))-(1501(4))) из четырех отсчетов яркости (например, (1501(1)-(1501(4))) соответственно. Соответственно, строки (1511), (1513), (1515) и (1517) могут называться «текущими» строками (также называемыми «верхним полем»), а строки (1512), (1514), (1516) и (1518) могут называться «следующими» строками (также называемыми «нижним полем»). Четыре отсчета (например, (1501(1))-(1501(4))) находятся в текущей строке (например, (1511)) и в следующей строке (например, (1512)). Относительные позиции 2-3 находятся в текущих строках, относительные позиции 0-1 находятся между каждой текущей строкой и соответствующей следующей строкой, а относительные позиции 4-5 находятся в следующих строках.

[0151] Отсчеты (1503), (1504), (1505), (1506), (1507) или (1508) цветности находятся в строках (1551)-(1554) в каждом блоке цветности. Конкретное положение (1551)-(1554) может зависеть от типа отсчетов цветности для отсчетов цветности. Например, для отсчетов (1503)-(1504) цветности с соответствующими типами 0-1 отсчетов цветности строка (1551) находится между строками (1511)-(1512). Для отсчетов (1505)-(1506) цветности с соответствующими типами 2-3 отсчетов цветности строка (1551) совмещена с текущей строкой (1511). Для отсчетов (1507)-(1508) цветности с соответствующими типами 4-5 отсчетов цветности строка (1551) совмещена со следующей строкой (1512). Приведенные выше описания могут быть надлежащим образом адаптированы к строкам (1552)-(1554), подробные описания опущены для краткости изложения.

[0152] Для отображения, сохранения и/или передачи блока яркости и соответствующего блока(ов) цветности, описанного(ых) выше на фиг. 15А, может использоваться любой подходящий способ развертки. Например, используется построчная развертка.

[0153] Может использоваться чересстрочная развертка, как показано на фиг. 15В. Как описано выше, используется формат субдискретизации цветности 4:2:0 (например, chroma_format_idc равно 1). Например, переменный тип расположения цветности (например, ChromaLocType) указывает текущие строки (например, ChromaLocType - chroma_sample_loc_type_top_field) или следующие строки (например, ChromaLocType - chroma_sample_loc_type_bottom_field). Развертка текущих строк (1511), (1513), (1515) и (1517) и следующих строк (1512), (1514), (1516) и (1518) может выполняться отдельно - например, сначала может быть выполнена развертка текущих строк (1511), (1513), (1515) и (1517), азатем может быть выполнена развертка следующих строк (1512), (1514), (1516) и (1518). Текущие строки могут включать в себя отсчеты (1501) яркости, а следующие строки могут включать в себя отсчеты (1502) яркости.

[0154] Аналогично может выполняться чересстрочная развертка для соответствующего блока цветности. Строки (1551) и (1553), содержащие отсчеты цветности (1503), (1504), (1505), (1506), (1507) или (1508) без заполнения, могут называться «текущими строками» (или «текущими строки цветности»), а строки (1552) и (1554), содержащие отсчеты цветности (1503), (1504), (1505), (1506), (1507) или (1508) с серой заливкой, могут называться «следующими строками» (или «следующими строками цветности»). Например, во время чересстрочной развертки сначала выполняется развертка строк (1551) и (1553), а затем строк (1552) и (1554).

[0155] Ромбовидная маска фильтра (1420) на фиг. 14 разработана для формата субдискретизации цветности 4:2:0 и типа 0 отсчетов цветности (например, строка цветности находится между двумя строками яркости), что может быть неэффективно для других типов отсчетов цветности (например, для типов 1-5 отсчетов цветности) и других форматов субдискретизации цветности (например, для 4:2:2 и 4:4:4).

[0156] Кодированная информация блока цветности или СВ цветности (например, первого СВ цветности или второго СВ цветности на фиг. 13) может быть декодирована из битового потока кодированного видео. Кодированная информация может указывать на то, что кросс-компонентный фильтр применяется к СВ цветности. Кодированная информация также может включать в себя формат субдискретизации цветности и тип отсчетов цветности. Как описано выше, формат субдискретизации цветности может указывать коэффициент горизонтальной субдискретизации цветности и коэффициент вертикальной субдискретизации цветности между СВ цветности и соответствующим СВ яркости (например, СВ яркости на фиг. 13). Тип отсчетов цветности может указывать относительное положение отсчетов цветности относительно по меньшей мере одного соответствующего отсчета яркости в СВ яркости. Например, тип отсчетов цветности передается в битовом потоке кодированного видео. Тип отсчетов цветности может передаваться на любом подходящем уровне, например в наборе параметров последовательности (SPS, Sequence Parameter Set).

[0157] Согласно аспектам осуществления настоящего изобретения маска кросс-компонентного фильтра (например, CC-ALF (1321)) в процессе кросс-компонентной фильтрации может быть определена на основе по меньшей мере одного из формата субдискретизации цветности и типа отсчетов цветности. Кроме того, первый промежуточный СВ (например, промежуточный компонент (1342)) может быть сгенерирован посредством применения кросс-компонентного фильтра с определенной маской к соответствующему СВ яркости (например, к компоненту (1341) яркости, отфильтрованному с применением SAO). Второй промежуточный СВ (например, промежуточный компонент (1352)) может быть генерирован посредством применения контурного фильтра (например, ALF (1318)) к СВ цветности (например, к первому СВ цветности, отфильтрованному с применением SAO). Отфильтрованный СВ цветности (например, отфильтрованный первый компонент цветности (1362) (например, «Cb») на фиг. 13) может быть определен на основе первого промежуточного СВ и второго промежуточного СВ. Как описано выше, кросс-компонентным фильтром может быть CC-ALF, а контурным фильтром может быть ALF.

[0158] Когда используется CC-ALF, тип отсчетов цветности блока цветности может быть указан в кодированном битовом потоке. Маска фильтра CC-ALF может зависеть от формата субдискретизации цветности (например, chroma_format_idc) блока цветности, типа отсчетов цветности и/или т.п.

[0159] На фиг. 16 показаны примеры кросс-компонентных фильтров (например, CC-ALF) (1601)-(1603) с соответствующими масками (1621)-(1623) согласно вариантам осуществления настоящего изобретения. На фиг. 14 и 16 маски (1420) и (1621)-(1623) фильтров могут использоваться для CC-ALF на основе типа отсчетов цветности блока цветности, например, когда используется формат субдискретизации цветности 4:2:0.

[0160] Согласно аспектам осуществления настоящего изобретения типом отсчетов цветности может быть один из шести типов 0-5 отсчетов цветности, указывающих шесть относительных позиций 0-5, соответственно. Шесть относительных позиций 0-5 могут соответствовать левой-центральной позиции, центральной позиции, верхней-левой позиции, верхней-центральной позиции, нижней-левой позиции и нижней-центральной позиции четырех отсчетов яркости (например, (1501(1))-(1501(4))) соответственно, как показано на фиг. 15А. Маска кросс-компонентного фильтра может быть определена на основе типа отсчетов цветности.

[0161] Когда в качестве типа отсчетов цветности блока цветности используется тип 0 отсчетов цветности, фильтр (1400) с маской (1420) фильтра на фиг. 14 может использоваться в кросс-компонентном фильтре (например, в CC-ALF).

[0162] Например, когда в качестве типа отсчетов цветности блока цветности используется тип 1 отсчетов цветности, в кросс-компонентном фильтре (например, в CC-ALF) может использоваться квадратная маска фильтра (например, квадратная маска 4×4 фильтра, квадратная маска 2×2 фильтра). Отсчет цветности (например, (1504(1)) на фиг. 15А), для которого выполняется кросс-компонентная фильтрация, может находиться в центре квадратной маски фильтра, поскольку отсчет цветности (например, (1504(1))) находится в центре четырех соответствующих отсчетов яркости (например, (1501(1))-(1501(4))).

[0163] Например, когда в качестве типа отсчетов цветности блока цветности используется тип 2 отсчетов цветности, в CC-ALF может использоваться ромбовидная маска фильтра (например, ромбовидная маска 5×5 (1621) фильтра (1601) или ромбовидная маска 3×3 (1622) фильтра (1602)).

[0164] Например, когда в качестве типа отсчетов цветности блока цветности используется тип 3 отсчетов цветности, в CC-ALF можно использовать ромбовидную маску (1623) фильтра (1603). На фиг. 14 и 16, ромбовидная маска (1623) фильтра представляет собой геометрическое преобразование (например, поворот на 90°) маски (1420) фильтра.

[0165] Например, когда в качестве типа отсчетов цветности блока цветности используется тип 4 отсчетов цветности, маска фильтра, используемая в CC-ALF, может быть идентична или аналогична маске (например, ромбовидной маске (1621) или (1622) фильтра), используемой для типа 2 отсчетов цветности. Таким образом, маской фильтра для типа 4 отсчетов цветности может быть ромбовидная маска фильтра, например, ромбовидная маска (1621) или (1622) фильтра, смещенная по вертикали.

[0166] Например, когда в качестве типа отсчетов цветности блока цветности используется тип 5 отсчетов цветности, маска фильтра, используемая в CC-ALF, может быть идентична или аналогична маске (например, ромбовидной маске (1623) фильтра), используемой для типа 3 отсчетов цветности. Таким образом, маской фильтра для типа 5 отсчетов цветности может быть ромбовидная маска фильтра, например, ромбовидная маска (1623) фильтра, смещенная по вертикали.

[0167] Согласно варианту осуществления, количество коэффициентов фильтра передается в битовом потоке кодированного видео, например в APS. На фиг. 14 и 16 коэффициенты (1611) фильтра могут сформировать ромбовидную маску (1621), а другие коэффициенты фильтра, не включенные, либо исключенные из этих коэффициентов (1611) фильтра, равны нулю. Соответственно, количество коэффициентов для фильтра (1601) может относиться к количеству коэффициентов фильтра в маске (1621) фильтра и, таким образом, может быть равно количеству (например, 13) коэффициентов (1611) фильтра. Аналогично, количество коэффициентов фильтра (1602) может относиться к количеству коэффициентов фильтра в маске (1622) фильтра и, таким образом, может быть равно количеству (например, 5) коэффициентов (1612) фильтра. Количество коэффициентов фильтра (1603) может относиться к количеству коэффициентов фильтра в маске (1623) фильтра и, таким образом, может быть равно количеству (например, 18) коэффициентов (1613) фильтра. Аналогично, количество коэффициентов фильтра (1400) может составлять 18.

[0168] Различные маски фильтров могут иметь разное количество коэффициентов. Таким образом, в некоторых примерах маска фильтра может быть определена на основе количества коэффициентов фильтра. Например, когда количество коэффициентов фильтра равно 16, маска фильтра может быть определена как квадратная маска 4×4 фильтра.

[0169] Согласно аспектам осуществления настоящего изобретения, в битовом потоке кодированного видео может передаваться количество коэффициентов кросс-компонентного фильтра. Кроме того, маска кросс-компонентного фильтра может быть определена на основе количества коэффициентов фильтра и по меньшей мере одного из формата субдискретизации цветности и типа отсчетов цветности.

[0170] Согласно варианту осуществления, тип отсчетов цветности может указывать флаг кросс-компонентной линейной модели (CCLM). Соответственно, маска фильтра CC-ALF может зависеть от флага CCLM. Например, типом отсчетов цветности, указанный флагом CCLM, является тип 0 или 2 отсчетов цветности, и, таким образом, маской фильтра может быть маска (1420) фильтра или ромбовидная маска фильтра (например, ромбовидная маска 5×5 (1621) фильтра или ромбовидная маска 3×3 (1622) фильтра).

[0171] Согласно варианту осуществления, флаг CCLM (например, sps_cclm_colocated_chroma_flag) передается в битовом потоке кодированного видео, например в SPS. Например, флаг CCLM (например, sps_cclm_colocated_chroma_flag) указывает, совмещен ли верхний-левый отсчет яркости с понижающей дискретизацией во внутреннем предсказании CCLM с верхним-левым отсчетом яркости. Как описано выше, типом отсчетов цветности, указанным флагом CCLM, может быть тип 0 или 2 отсчетов цветности. Маска фильтра CC-ALF может зависеть от параметра sps_cclm_colocated_chroma_flag или подобной информации (например, от информации, указывающей, совмещен ли верхний-левый отсчет яркости с понижающей дискретизацией во внутреннем предсказании CCLM с верхним-левым отсчетом яркости) для CCLM, передаваемого в SPS.

[0172] В некоторых примерах для кросс-компонентного фильтра (например, для CC-ALF) требуется выполнение большого количества (например, 18) операций умножений на каждый отсчет цветности (например, на каждый отсчет цветности Cb или на каждый отсчет цветности Cr), что приводит к увеличению затрат, например, из-за сложности вычислений. Количество операций умножения определяется количеством коэффициентов фильтра (например, 18 коэффициентов в фильтрах (1400) и (1603), 13 коэффициентов в фильтре (1601) и 5 коэффициентов в фильтре (1602)) в CC-ALF. Например, количество операций умножения равно количеству коэффициентов фильтра в CC-ALF. Согласно аспектам осуществления настоящего изобретения количество битов, представляющих коэффициенты фильтра CC-ALF, может быть ограничено, чтобы оно было меньше или равно К битам. К может быть положительным целым числом, например 8. Таким образом, коэффициенты фильтра CC-ALF могут входить в диапазон [-2K-1 - 2K-1]. Диапазон коэффициентов фильтра CC-ALF может быть ограничен, чтобы он был меньше или равен K битам, чтобы можно было использовать более простые умножители (например, имеющие меньше битов) для CC-ALF.

[0173] Согласно варианту осуществления, диапазон коэффициентов фильтра CC-ALF ограничен значениями от -24 до 24-1, где K равно 5 битам. В альтернативном варианте диапазон коэффициентов фильтра CC-ALF ограничен значениями от -25 до 25-1, где K равно 6 битам.

[0174] Например, количество различных значений коэффициентов фильтра CC-ALF ограничено определенным значением, например К битами. При применении CC-ALF можно использовать справочную таблицу.

[0175] Коэффициенты фильтра CC-ALF могут кодироваться и передаваться с использованием кодирования с фиксированной длиной кодов. Например, если длина коэффициентов фильтра CC-ALF ограничена К битами, то для передачи коэффициентов фильтра CC-ALF можно использовать кодирование с фиксированной длиной кодов из К битов. Когда K имеет относительно малое значение (например, 8 бит), кодирование с фиксированной длиной кодов может быть более эффективным, чем другие способы, такие как кодирование с переменной длиной кодов.

[0176] Обратимся снова к фиг. 13: согласно аспектам осуществления настоящего изобретения значения отсчетов яркости (например, (1341)) СВ яркости могут быть смещены для получения динамического диапазона из L битов, если динамический диапазон (или битовая глубина яркости) значений отсчетов яркости (например, (1341)) больше L битов. L может быть положительным целым числом, например 8. Затем промежуточный компонент (например, (1342) или (1343)) может быть сгенерирован путем применения CC-ALF (например, (1321) или (1331)) к смещенным значениям отсчета яркости.

[0177] Обратимся снова к фиг. 13: процесс кросс-компонентной адаптивной контурной фильтрации с использованием CC-ALF (например, (1321) или (1331)) может быть изменен, как описано ниже, если битовая глубина яркости значений отсчетов яркости (например, значения отсчетов яркости компонента (1341) яркости, отфильтрованного с применением SAO) больше L битов. Значения отсчетов яркости (например, (1341)) сначала могут быть смещены в динамический диапазон из L битов. Смещенными значения отсчетов яркости могут быть L-биты без знака. Например, L равно 8. Затем смещенные значения отсчетов яркости могут использоваться в качестве входных данных для CC-ALF (например, (1321) или (1331)). Таким образом, возможно умножение смещенных значений отсчетов яркости и коэффициентов фильтра CC-ALF. Как описано выше, коэффициенты фильтра CC-ALF могут быть ограничены значениями со знаком, меньшими или равными К битам (например, 8 битов или [от -2K-1 до 2K-1-1]), в качестве множителя L битов без знака могут использоваться К биты со знаком. Например, K и L равны 8 битам; для улучшения эффективности фильтрации может использоваться относительно простой и эффективный умножитель (например, умножитель на основе одной инструкции, инструкции многокомпонентных данных (SIMD)) 8 битов без знака на 8 битов со знаком.

[0178] На фиг. 13. согласно аспектам осуществления настоящего изобретения, субдискретизированный СВ яркости может быть сгенерирован посредством применения фильтра понижающей дискретизации к СВ яркости. Таким образом, коэффициент горизонтальной субдискретизации цветности и коэффициент вертикальной субдискретизации цветности между первым СВ цветности (или вторым СВ цветности) и субдискретизированным СВ яркости равны единице. Фильтр понижающей дискретизации может применяться на любом пригодном этапе перед тем, как субдискретизированный СВ яркости будет использоваться в качестве входных данных для CALF (например, (1321)). Например, фильтр понижающей дискретизации применяется между фильтром SAO (1310) и CC-ALF (например, (1321)), и, таким образом, для компонента (1341) яркости, отфильтрованного с применением SAO, сначала выполняется понижающая дискретизация, а затем этот компонент яркости, обработанный с применением понижающей дискретизации и с применением SAO, передается в CC-ALF (1321).

[0179] Как описано выше, маска фильтра CC-ALF может быть определена на основе формата субдискретизации цветности и/или типа отсчетов цветности, и, таким образом, в некоторых примерах для разных типов отсчетов цветности могут использоваться разные маски фильтров. В альтернативном варианте для CC-ALF (например, (1321)) может использоваться унифицированная маска фильтра, когда входные данные для CC-ALF представляют собой СВ яркости с пониженной дискретизацией, поскольку отсчеты яркости с пониженной дискретизацией выравниваются с отсчетами цветности с помощью коэффициента горизонтальной субдискретизации и коэффициента вертикальной субдискретизации цветности, равными единице. Унифицированная маска фильтра может быть независимой от формата субдискретизации цветности и типа отсчетов цветности СВ цветности. Соответственно, промежуточный СВ (например, промежуточный компонент (1342)) может быть сгенерирован посредством применения CC-ALF с унифицированной маской фильтра к СВ яркости с пониженной дискретизацией.

[0180] На фиг. 13, например, в случае формата субдискретизации цветности YUV (например, YCbCr или YCgCo) фильтр понижающей дискретизации применяется к отсчетам яркости в СВ яркости для получения отсчетов яркости с пониженной дискретизацией, позиции которых выровнены с отсчетами цветности в первом СВ цветности, затем в CC-ALF (например, (1321)) может быть применена фильтрация с унифицированной маской для кросс-фильтрации отсчетов яркости с пониженной дискретизацией с целью генерации промежуточного компонента (1342).

[0181] Фильтром понижающей дискретизации может быть любой подходящий фильтр. Например, фильтр понижающей дискретизации соответствует фильтру, применяемому к совмещенным отсчетам яркости в режиме CCLM. Таким образом, для отсчетов яркости выполняется понижающая дискретизация с использованием того же фильтра понижающей дискретизации, который применяется к совмещенным отсчетам яркости в режиме CCLM.

[0182] Например, используется фильтр понижающей дискретизации {1,2,1;1,2,1}/8 и формат субдискретизации цветности 4:2:0. Таким образом, в случае формата 4:2:0 цветности для отсчетов яркости выполняется понижающая дискретизации посредством применения фильтра {1,2,1; 1,2,1}/8.

[0183] Маской фильтра (или унифицированной маской фильтрации) кросс-компонентного фильтра (например, CC-ALF) может быть любая подходящая маска. Например, кросс-компонентный фильтр (например, the CC-ALF) имеет одну из следующих масок - ромбовидную маску 7×7, квадратную маску 7×7, ромбовидную маску 5×5, квадратную маску 5×5, ромбовидную маску 3×3 и квадратную маску 3×3.

[0184] На фиг. 17 - блок-схема операций процесса (1700) согласно варианту осуществления настоящего изобретения; Процесс (1700) может использоваться для реконструкции блока (например, СВ) в изображении кодированной видеопоследовательности. Процесс (1700) может использоваться при реконструкции блока для генерации блока предсказания для реконструируемого блока. Термин «блок» может интерпретироваться как блок предсказания, СВ, CU и т.п. В различных вариантах осуществления процесс (1700) выполняется схемой обработки, например, схемой обработки в оконечных устройствах (310), (320), (330) и (340), схемой обработки, которая выполняет функции видеокодера (403), схемой обработки, которая выполняет функции видеодекодера (410), схемой обработки, которая выполняет функции видеодекодера (510), схемой обработки, которая выполняет функции видеокодера (603), и т.п. В некоторых вариантах осуществления процесс (1700) реализован в программных инструкциях; таким образом, когда схема обработки выполняет программные инструкции, она выполняет процесс (1700). Процесс начинается на шаге (S1701) и переходит к шагу (S1710). Например, блок представляет собой блок цветности, как например СВ цветности, соответствующий СВ яркости. Например, блок цветности и соответствующий СВ яркости находятся в одном CU.

[0185] На шаге (S1710) кодированная информация СВ цветности может быть декодирована из битового потока кодированного видео. Кодированная информация может указывать на то, что кросс-компонентный фильтр применяется к СВ цветности, и может дополнительно указывать формат субдискретизации цветности и тип отсчетов цветности. Формат субдискретизации цветности может указывать коэффициент горизонтальной субдискретизации цветности и коэффициент вертикальной субдискретизации цветности между СВ цветности и соответствующим СВ яркости, как описано выше. Форматом субдискретизации цветности может быть любой подходящий формат, например 4:2:0, 4:2:2, 4:4:4 или подобный. Тип отсчетов цветности может указывать относительное положение отсчетов цветности относительно по меньшей мере одного соответствующего отсчета яркости в СВ яркости, как описано выше. Например, для формата субдискретизации цветности 4:2:0 типом отсчетов цветности может быть один из типов 0-5 отсчетов цветности, описанных выше со ссылкой на фиг. 15А-15В.

[0186] На шаге (S1710) маска кросс-компонентного фильтра может быть определена на основе по меньшей мере одного из формата субдискретизации цветности и типа отсчетов цветности. В примере на фиг. 13 в процессе кросс-компонентной фильтрации (например, в процессе фильтрации CC-ALF) используется кросс-компонентный фильтр, и в качестве кросс-компонентного фильтра может использоваться CC-ALF. Фильтр может иметь любую подходящую маску, которая зависит от формата субдискретизации цветности и/или типа отсчетов цветности. В случае формата субдискретизации цветности 4:2:0 маской фильтра может быть одна из масок фильтра (1420) и (1621)-(1623), определенная на основе типа отсчетов цветности. Маска фильтра может быть той или иной вариацией (например, геометрическим преобразованием, таким как поворот или смещение) одной из масок фильтра (1420) и (1621)-(1623), определенной на основе типа отсчетов цветности.

[0187] На шаге (S1710) первый промежуточный СВ может быть генерирован посредством применения контурного фильтра (например, ALF) к СВ цветности (например, к СВ цветности, отфильтрованному с применением SAO).

[0188] На шаге (S1740) второй промежуточный СВ может быть генерирован посредством применения кросс-компонентного фильтра (например, CC-ALF) с определенной маской (например, с маской (1420) фильтра) к соответствующему СВ яркости, например при использовании формата субдискретизации цветности 4:2:0 и типа 0 отсчетов цветности.

[0189] На шаге (S1750) отфильтрованный СВ цветности (например, отфильтрованный первый компонент (1362) цветности) может быть определен на основе первого промежуточного СВ (например, промежуточного компонента (1342)) и второго промежуточного СВ (например, промежуточного компонента (1352)). Процесс (1700) переходит к шагу (S1799) и завершается.

[0190] Процесс (1700) может быть адаптирован надлежащим образом. Шаг(и) в процессе (1700) может быть изменен(ы) и/или пропущен(ы). Может быть добавлен(ы) дополнительный(ые) шаг(и). Может быть использована любая подходящая последовательность реализации.

[0191] Варианты осуществления настоящего изобретения могут использоваться отдельно или в сочетании друг с другом в любом порядке. Кроме того, каждый из способов (или вариантов осуществления), кодеров и декодеров может быть гут быть реализованы схемой обработки (например, одним или более процессорами или одной или более интегральными схемами). В одном примере один или более процессоров выполняют программу, которая хранится на компьютерно-считываемом носителе.

[0192] Вышеописанные методы могут быть реализованы в виде компьютерного программного обеспечения, использующего компьютерно-считываемые инструкции и физически хранящегося на одном или более компьютерно-считываемых носителях. Например, на фиг. 18 показана компьютерная система (1800), пригодная для реализации некоторых вариантов осуществления раскрытого изобретения.

[0193] Компьютерное программное обеспечение может кодироваться с использованием любого подходящего машинного кода или компьютерного языка, который может подвергаться ассемблированию, компиляции, редактированию связей или аналогичной обработке для создания кода, содержащего инструкции, которые могут выполняться напрямую, или посредством интерпретации, выполнения микрокода и т.п., одним или более компьютерными центральными процессорами (CPU, Central Processing Units), графическими процессорами (GPU, Graphics Processing Units) и т.п.

[0194] Инструкции могут выполняться на компьютерах различных типов или их компонентах, включая, например, персональные компьютеры, планшетные компьютеры, серверы, смартфоны, игровые устройства, устройства интернета вещей и т.п.

[0195] Компоненты компьютерной системы (1800), показанные на фиг. 18, носят иллюстративный характер и не призваны налагать какое-либо ограничение на объем применения или функциональные возможности компьютерного программного обеспечения, реализующего варианты осуществления настоящего изобретения. Конфигурацию компонентов также не следует интерпретировать как имеющую какую-либо зависимость или требование в связи с любым одним или комбинацией компонентов, показанных в иллюстративном варианте осуществления компьютерной системы (1800).

[0196] Компьютерная система (1800) может включать в себя некоторые устройства ввода интерфейса с человеком. Такое устройство ввода может отвечать за ввод одним или более пользователями посредством, например, тактильного ввода (например, нажатий на клавиши, махов, движений информационной перчатки), аудио-ввода (например, голосового, хлопков), визуального ввода (например, жестов), обонятельного ввода (не показан). Устройства интерфейса с человеком также могут использоваться для захвата некоторых информационных носителей, не обязательно напрямую связанных с осознанным вводом человеком, например звука (например, речи, музыки, внешнего звука), изображений (например, отсканированных изображений, фотографических изображений, полученных от камеры неподвижных изображений), видео (например, двухмерного видео, трехмерного видео, включающего в себя стереоскопическое видео).

[0197] Входной человеческий интерфейс устройства может включать в себя один или более следующих компонентов (по одному из изображенных): клавиатуры (1801), мыши (1802), сенсорной панели (1803), сенсорного экрана (1810), информационной перчатки (не показана), джойстика (1805), микрофона (1806), сканера (1807), камеры (1808).

[0198] Компьютерная система (1800) также может включать в себя некоторые устройства вывода интерфейса с человеком. Такие устройства вывода могут стимулировать органы чувств одного или более пользователей посредством, например, тактильного вывода, звука, света и запаха/вкуса. Такие устройства вывода могут включать в себя устройства тактильного вывода (например, тактильной обратной связи посредством сенсорного экрана (1810), информационной перчатки (не показана) или джойстика (1805), но также могут быть устройствами тактильной обратной связи, которые не служат устройствами ввода), устройства вывода аудио (например, громкоговорители (1809), наушники (не показаны)), устройства визуального вывода (например, экраны (1810), в том числе CRT-экраны, LCD-экраны, плазменные экраны, OLED-экраны, каждый с возможностями сенсорного экранного ввода или без них, каждый с возможностями тактильной обратной связи или без них, некоторые из которых способны к двухмерному визуальному выводу или более чем трехмерному выводу посредством, например, стереографического вывода; очков виртуальной реальности (не показаны), голографических дисплеев и дымовых баков (не показаны) и принтеров (не показаны).

[0199] Компьютерная система (1800) также может включать в себя доступные человеку запоминающие устройства и связанные с ними носители, например, оптические носители, включающие в себя CD/DVD ROM/RW (1820) с носителями (1821) CD/DVD и т.п., карты (1822) флэш-памяти, сменный жесткий диск или твердотельный диск (1823), традиционные магнитные носители, например, ленту и флоппи-диск (не показан), специализированные устройства на основе ROM/ASIC/PLD, например, защитные аппаратные ключи (не показаны) и т.п.

[0200] Специалисты в данной области техники также должны понимать, что термин «компьютерно-считываемые носители», используемый в связи с раскрытым здесь изобретением, не охватывает среды передачи, несущие волны или другие кратковременные сигналы.

[0201] Компьютерная система (1800) также может включать в себя интерфейс (1854) с одной или более сетями связи (1855). Сети могут быть, например, беспроводными, проводными, оптическими. Сети могут быть, дополнительно, локальными, глобальными, городскими, транспортными и промышленными, реального времени, допускающими задержку и т.д. Примеры сетей включают в себя локальные сети, например, Ethernet, беспроводные LAN, сотовые сети, в том числе GSM, 3G, 4G, 5G, LTE и т.п., глобальные цифровые сети проводного или беспроводного телевидения, в том числе кабельное телевидение, спутниковое телевидение и наземное телевещание, транспортные и промышленные включают в себя CANBus и т.д. Некоторые сети обычно требуют внешних адаптеров сетевого интерфейса, которые подключены к некоторым портам данных общего назначения или периферийным шинам (1849) (например, USB-порты компьютерной системы (1800)); другие обычно встраиваются в ядро компьютерной системы (1800) путем подключения к системной шине, как описано ниже (например, интерфейс Ethernet в компьютерную систему PC или интерфейс сотовой сети в компьютерную систему смартфона). Используя любую из этих сетей, компьютерная система (1800) может осуществлять связь с другими объектами. Такая связь может быть однонаправленной с возможностью только приема (например, телевещания), однонаправленной с возможностью только передачи (например, CANBus к некоторым устройствам CANBus) или двунаправленной, например, к другим компьютерным системам с использованием локальной или глобальной цифровой сети. Некоторые протоколы и стеки протоколов могут использоваться в каждой из этих сетей и вышеописанных сетевых интерфейсов.

[0202] Вышеупомянутые устройства человеческого интерфейса, доступные человеку запоминающие устройства и сетевые интерфейсы могут подключаться к ядру (1840) компьютерной системы (1800).

[0203] Ядро (1540) может включать в себя один или более центральных процессоров (CPU) (1541), графические процессоры (GPU) (1542), специализированные программируемые модули обработки в форме вентильных матриц, программируемых пользователем (FPGA, Field Programmable Gate Arrays) (1543), аппаратные ускорители (1544), графический адаптер (1850) для некоторых задач и т.д. Эти устройства, совместно с постоянной памятью (ROM) (1845), оперативной памятью (1846), внутренним хранилищем данных большой емкости, например, внутренними жесткими дисками, недоступными пользователю, SSD и т.п. (1847), могут соединяться посредством системной шины (1848). В некоторых компьютерных системах системная шина (1848) может быть доступна в форме одного или более физических разъемов для обеспечения расширений за счет дополнительных CPU, GPU и т.п. Периферийные устройства могут подключаться либо напрямую к системной шине (1848) ядра, либо через периферийную шину (1849). Например, дисплей (1810) может быть подключен к графическому адаптеру (1850). Архитектуры периферийной шины включают в себя PCI, USB и т.п.

[0204] CPU (1841), GPU (1842), FPGA (1843) и ускорители (1844) могут выполнять некоторые инструкции, которые совместно могут составлять вышеупомянутый компьютерный код. Этот компьютерный код может храниться в ROM (1845) или RAM (1846). Переходные данные также могут храниться в RAM (1846), тогда как постоянные данные могут храниться, например, во внутреннем хранилище (1847) данных большой емкости. Быстрое сохранение и извлечение из любого запоминающего устройства может обеспечиваться за счет использования кэшпамяти, которая может быть тесно связана с один или более CPU (1841), GPU (1842), хранилищем (1847) данных большой емкости, ROM (1845), RAM (1846) и т.п.

[0205] На компьютерно-считываемых носителях может храниться компьютерный код для осуществления различных компьютерно-реализуемых операций. Носители и компьютерный код могут быть специально созданы в целях настоящего изобретения или могут относиться к хорошо известным и доступным специалистам в области компьютерного программного обеспечения.

[0206] В порядке примера, но не ограничения, компьютерная система, имеющая архитектуру (1800), и, в частности, ядро (1840) может обеспечивать функциональные возможности благодаря выполнению процессором(ами) (включающим(и) в себя CPU, GPU, FPGA, ускорители и т.п.) программного обеспечения, воплощенного в одном или более материальных компьютерно-считываемых носителей. Такие компьютерно-считываемые носители могут быть носителями, связанными с доступным пользователю хранилищем данных большой емкости, представленным выше, а также некоторым хранилищем ядра (1840), носящим долговременный характер, например, внутренним хранилищем (1847) данных большой емкости или ROM (1845). Программное обеспечение, реализующее различные варианты осуществления настоящего изобретения, может храниться в таких устройствах и выполняться ядром (1840). Компьютерно-считываемый носитель может включать в себя одно или более запоминающих устройств или микросхем, в соответствии с конкретными требованиями. Программное обеспечение может предписывать ядру (1840) и, в частности, его процессорам (включая CPU, GPU, FPGA и т.п.) выполнять конкретные процессы или конкретные части описанных здесь конкретных процессов, включая задание структур данных, хранящихся в RAM (1846), и модификацию таких структур данных согласно процессам, заданным программным обеспечением. Дополнительно или альтернативно, компьютерная система может обеспечивать функциональные возможности благодаря логике, зашитой или иным образом воплощенной в схеме (например, ускоритель (1844)), который может действовать вместо или совместно с программным обеспечением для выполнения конкретных процессов или конкретных частей описанных здесь конкретных процессов. Ссылка на программное обеспечение может охватывать логику, и наоборот, когда это уместно. Ссылка на компьютерно-считываемые носители может охватывать схему (например, интегральную схему (IC, Integrated Circuit)), где хранится программное обеспечение для выполнения, схему, воплощающую логику для выполнения, или обе из них, когда это уместно. Настоящее изобретение охватывает любую подходящую комбинацию оборудования и программного обеспечения.

Приложение А: Сокращения

JEM: модель совместного исследования

VVC: универсальное видеокодирование

BMS: набор эталонов

MV: вектор движения

HEVC: высокопроизводительное видеокодирование

МРМ: наиболее вероятный режим

WAIP: широкоугольное внутреннее предсказание

SEI: информация дополнительного улучшения

VUI: информация пригодности видео

GOP: группа изображений

TU: единица преобразования

PU: единица предсказания

CTU: единица дерева кодирования

СТВ: блок дерева кодирования

РВ: блок предсказания

HRD: гипотетический эталонный декодер

SDR: стандартный динамический диапазон

SNR: отношение сигнал/шум

CPU: центральный процессор

GPU: графический процессор

CRT: кинескоп

LCD: жидкокристаллический дисплей

OLED: органический светодиод

CD: компакт-диск

DVD: цифровой видеодиск

ROM: постоянная память

RAM: оперативная память

ASIC: специализированная интегральная схема

PLD: программируемое логическое устройство

LAN: локальная сеть

GSM: глобальная система мобильной связи

LTE: проект долгосрочного развития систем связи

CANBus: шина контроллерной сети

USB: универсальная последовательная шина

PCI: межсоединение периферийных компонентов

FPGA: вентильные матрицы, программируемые пользователем

SSD: твердотельный привод

IC: интегральная схема

CU: единица кодирования

PDPC: Комбинация предсказаний, зависящих от позиции

ISP: Внутренние подразделы

SPS: установка параметров последовательности.

[0207] Хотя здесь описано несколько иллюстративных вариантов осуществления, возможны изменения, перестановки и различные эквиваленты для замены, которые находятся в объеме изобретения. Таким образом, специалисты в данной области техники могут предложить многочисленные системы и способы, которые, хотя в явном виде здесь не показаны и не описаны, воплощают принципы изобретения и, таким образом, соответствуют его сущности и объему.

1. Способ видеодекодирования, включающий:

декодирование кодированной информации блока кодирования (СВ) цветности из битового потока кодированного видео, при этом кодированная информация указывает, что к СВ цветности применяется кросс-компонентный фильтр, а также указывает формат субдискретизации цветности;

определение маски кросс-компонентного фильтра, применяемого к СВ цветности, при этом диапазон коэффициентов кросс-компонентного фильтра меньше или равен K битам, где K положительное целое число, а коэффициенты кросс-компонентного фильтра кодируют и сигнализируют с использованием кодирования с фиксированной длиной кода;

генерацию первого промежуточного СВ посредством применения контурного фильтра к СВ цветности;

генерацию второго промежуточного СВ посредством применения кросс-компонентного фильтра, применяемого к СВ цветности и имеющего упомянутую определенную маску, к соответствующему СВ яркости; и

определение отфильтрованного СВ цветности на основе первого промежуточного СВ и второго промежуточного СВ путем объединения СВ цветности, отфильтрованного контурным фильтром, и СВ яркости, отфильтрованного кросс-компонентным фильтром.

2. Способ по п. 1, в котором тип отсчетов цветности передают в битовом потоке кодированного видео.

3. Способ по п. 1, в котором количество коэффициентов кросс-компонентного фильтра сигнализируют в битовом потоке кодированного видео; и

определение маски фильтра включает в себя определение маски кросс-компонентного фильтра на основе количества коэффициентов фильтра и формата субдискретизации цветности.

4. Способ по п. 2, в котором используют формат субдискретизации цветности 4:2:0;

по меньшей мере один отсчет яркости включает в себя четыре отсчета яркости, которые представляют собой верхний-левый отсчет, верхний-правый отсчет, нижний-левый отсчет и нижний-правый отсчет;

тип отсчетов цветности представляет собой один из шести типов отсчетов цветности 0-5, указывающих шесть относительных позиций 0-5, соответственно; при этом шесть относительных позиций 0-5 отсчета цветности соответствуют левой-центральной позиции между верхним-левым и нижним-левым отсчетами, центральной позиции из четырех отсчетов яркости, верхней левой позиции, совмещенной с верхним-левым отсчетом, верхней-центральной позиции между верхним-левым и верхним-правым отсчетами, нижней левой позиции, совмещенной с нижним-левым отсчетом, и нижней-центральной позиции между нижним-левым и нижним-правым отсчетами, соответственно; и

определение маски фильтра включает в себя определение маски кросс-компонентного фильтра на основе типа отсчетов цветности.

5. Способ по п. 4, в котором битовый поток кодированного видео включает в себя флаг кросс-компонентной линейной модели (CCLM), указывающий, что тип отсчетов цветности равен 0 или 2.

6. Способ по п. 1, в котором кросс-компонентный фильтр является кросс-компонентным адаптивным контурным фильтром (CC-ALF), а контурный фильтр является адаптивным контурным фильтром (ALF).

7. Способ по п. 1, в котором маска кросс-компонентного фильтра не зависит от формата субдискретизации цветности и типа отсчетов цветности СВ цветности, причем тип отсчетов цветности указывает относительное положение отсчета цветности относительно по меньшей мере одного отсчета яркости в соответствующем СВ яркости.

8. Способ по п. 7, также включающий:

смещение значений отсчетов яркости соответствующего СВ яркости, чтобы получить динамический диапазон 8 битов на основе динамического диапазона значений отсчетов яркости более 8 битов, где K равно 8 битам;

при этом генерация второго промежуточного СВ включает в себя применение кросс-компонентного фильтра с упомянутой определенной маской к смещенным значениям отсчетов яркости.

9. Устройство для видеодекодирования, содержащее схему обработки, выполненную с возможностью:

декодирования кодированной информации блока кодирования (СВ) цветности из битового потока кодированного видео, при этом кодированная информация указывает, что к СВ цветности применяется кросс-компонентный фильтр, а также указывает формат субдискретизации цветности;

определения маски кросс-компонентного фильтра, применяемого к СВ цветности, при этом диапазон коэффициентов кросс-компонентного фильтра меньше или равен K битам, где K - положительное целое число, а коэффициенты кросс-компонентного фильтра кодируются и сигнализируются с использованием кодирования с фиксированной длиной кода;

генерации первого промежуточного СВ посредством применения контурного фильтра к СВ цветности;

генерации второго промежуточного СВ посредством применения кросс-компонентного фильтра, применяемого к СВ цветности и имеющего упомянутую определенную маску, к соответствующему СВ яркости; и

определения отфильтрованного СВ цветности на основе первого промежуточного СВ и второго промежуточного СВ путем объединения СВ цветности, отфильтрованного контурным фильтром, и СВ яркости, отфильтрованного кросс-компонентным фильтром.

10. Устройство по п. 9, в котором тип отсчетов цветности передается в битовом потоке кодированного видео.

11. Устройство по п. 9, в котором количество коэффициентов кросс-компонентного фильтра сигнализируется в битовом потоке кодированного видео; и

схема обработки выполнена с возможностью определения маски кросс-компонентного фильтра на основе количества коэффициентов фильтра и формата субдискретизации цветности.

12. Устройство по п. 10, в котором

используется формат субдискретизации цветности 4:2:0;

по меньшей мере один отсчет яркости включает в себя четыре отсчета яркости: верхний-левый отсчет, верхний-правый отсчет, нижний-левый отсчет и нижний-правый отсчет;

тип отсчетов цветности представляет собой один из шести типов отсчетов цветности 0-5, указывающих шесть относительных позиций 0-5, соответственно; при этом шесть относительных позиций 0-5 отсчета цветности соответствуют левой-центральной позиции между верхним-левым и нижним-левым отсчетами, центральной позиции из четырех отсчетов яркости, верхней левой позиции, совмещенной с верхним-левым отсчетом, верхней-центральной позиции между верхним-левым и верхним-правым отсчетами, нижней левой позиции, совмещенной с нижним-левым отсчетом, и нижней-центральной позиции между нижним-левым и нижним-правым отсчетами, соответственно; и

схема обработки выполнена с возможностью определения маски кросс-компонентного фильтра на основе типа отсчетов цветности.

13. Устройство по п. 12, в котором битовый поток кодированного видео включает в себя флаг кросс-компонентной линейной модели (CCLM), указывающий, что тип отсчетов цветности равен 0 или 2.

14. Устройство по п. 9, в котором кросс-компонентный фильтр является кросс-компонентным адаптивным контурным фильтром (CC-ALF), а контурный фильтр является адаптивным контурным фильтром (ALF).



 

Похожие патенты:

Изобретение относится к области кодирования видео или изображения. Технический результат заключается в повышении эффективности кодирования видео.

Изобретение относится к области кодирования видеоданных. Техническим результатом является повышение эффективности кодирования.

Группа изобретений относится к технологиям кодирования/декодирования видеоданных. Техническим результатом является повышение эффективности декодирования видеоданных.

Группа изобретений относится к технологиям кодирования/декодирования трехмерных изображений. Техническим результатом является повышение эффективности кодирования/декодирования изображений посредством устранения зависимости от данных при определении информации движения.

Группа изобретений относится к технологиям кодирования/декодирования трехмерных изображений. Техническим результатом является повышение эффективности кодирования/декодирования изображений посредством устранения зависимости от данных при определении информации движения.

Группа изобретений относится к области техники кодирования видео и, в частности, к способу декодирования изображений, декодеру и компьютерному носителю данных. Техническим результатом является снижение сложности декодирования видео и обеспечение гибкого процесса декодирования.

Изобретение относится к кодированию изображений с использованием разностей векторов движения. Техническим результатом является повышение эффективности кодирования.

Группа изобретений относится к технологиям обработки данных и, в частности, к кодированию облака точек. Техническим результатом является уменьшение объема данных, необходимых для представления облака данных, с целью его более быстрой передачи или сокращения объема хранилища.

Изобретение относится к средствам для кодирования видео. Технический результат заключается в повышении эффективности кодирования видео.

Изобретение относится к способам и оборудованию для кодирования и декодирования видео и изображений с использованием сегментации на блоки. Техническим результатом является повышение эффективности сжатия при кодировании информации с сегментацией на блоки.

Изобретение относится к области вычислительной техники. Технический результат заключается в повышении точности определения периода времени трансляции рекламы рекламного продукта, в состав которого входит продукт, сопутствующий рекламируемому продукту. Раскрыта система предоставления рекламы рекламируемого продукта телевизионной программе на основе данных о поставке сельскохозяйственного продукта, сопутствующего рекламируемому продукту, в которой блок управления устройства анализа рекламы сконфигурирован с возможностью предоставления времени размещения рекламы рекламируемого продукта на сервер на основе: идентификации рекламируемого продукта и продукта, сопутствующего рекламируемому продукту; получения и анализа данных о продукте, сопутствующего рекламируемому продукту, из информации о погоде и изображений со спутника; определения и предложения времени размещения рекламируемого продукта в рекламе на основе данных, полученных от блока анализа информации прогнозирования поставок продуктов, сопутствующих рекламируемому продукту; станция вещания подключена к серверу и передает рекламу для телевизионной программы на приемное устройство в соответствии с полученным от рекламного сервера временем рекламы. 2 н. и 10 з.п. ф-лы, 12 ил.
Наверх