ПРЕОБРАЗОВАНИЕ ЦВЕТА ДЛЯ ВИДЕОКОДИРОВАНИЯ
COLOUR CONVERSION FOR VIDEO ENCODING

[0001] По данной заявке испрашивается приоритет согласно патентной заявке США №17/035,218, озаглавленной "Преобразование цвета для видеокодирования" и поданной 28 сентября 2020 года, по которой испрашивается приоритет согласно предварительной патентной заявке США №62/913,486 "Улучшенное преобразование цвета в VVC", поданной 10 октября 2019 года.
ОБЛАСТЬ ТЕХНИКИ
[0002] В рамках раскрытия настоящего изобретения описываются варианты осуществления, в целом относящиеся к видеокодированию.
ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБРЕТЕНИЯ
[0003] Описание предпосылок создания изобретения в этом разделе в целом предназначено для представления контекста раскрытия настоящего изобретения. Работа авторов изобретения, в той степени, в которой она описывается в этом разделе, посвященном предпосылкам создания изобретения, а также аспекты описания, которые не могут квалифицироваться как известный уровень техники на дату подачи заявки, ни прямо, ни косвенно не рассматриваются в качестве известного уровня техники в отношении раскрытия настоящего изобретения.
[0004] Кодирование и декодирование видеосигналов может выполняться с использованием внешнего предсказания с компенсацией движения. Несжатые цифровые видеоданные могут содержать ряд изображений, каждое из которых характеризуется пространственным размером, например, 1920х1080 отсчетов сигнала яркости и связанных отсчетов сигнала цветности. Ряд изображений может характеризоваться фиксированной или переменной частотой смены изображений (также неформально называемой частотой кадров), например, 60 изображений в секунду или 60 Гц. К несжатым видеоданным предъявляются серьезные требования в отношении битовой скорости передачи. Например, для видеосигнала 1080р60 4:2:0 при 8 битах на отсчет (разрешение отсчетов 1920x1080 при частоте кадров 60 Гц) требуется полоса пропускания, близкая к 1,5 Гбит/с. Час такого видеосигнала занимает более 600 Гбайт пространства на запоминающем устройстве.
[0005] Одной из целей кодирования и декодирования видео может быть снижение избыточности во входном видеосигнале посредством сжатия. Сжатие может помочь уменьшить вышеупомянутую полосу пропускания или снизить требования к пространству памяти в некоторых случаях на два порядка величины или более. Для этого может применяться сжатие как без потерь, так и с потерями, а также комбинация этих способов. Сжатие без потерь относится к технологиям, при использовании которых на основе сжатого исходного сигнала может быть восстановлена точная копия исходного сигнала. При использовании сжатия с потерями восстановленный сигнал может отличаться от исходного сигнала, но искажение между исходным и восстановленным сигналами настолько мало, что восстановленный сигнал пригоден для предусмотренного применения. В случае видео широко применяется сжатие с потерями. Допустимый уровень искажений зависит от применения; например, пользователи определенных потребительских потоковых приложений могут допускать более высокий уровень искажений по сравнению с пользователями приложений распределения телевизионного сигнала. Достижимый коэффициент сжатия может отражать тот факт, что более высокий допустимый/приемлемый уровень искажения может позволять использовать более высокие коэффициенты сжатия.
[0006] Видеокодер и видеодекодер могут применять технологии из нескольких обширных категорий, включающих, например, компенсацию движения, преобразование, квантование и энтропийное кодирование.
[0007] Технологии, используемые в видеокодеках, могут включать технологии, известные как внутреннее кодирование. При внутреннем кодировании значения отсчетов представлены без ссылки на отсчеты или другие данные из ранее восстановленных опорных изображений. В некоторых видеокодеках изображение пространственно разделяется на блоки отсчетов. Если блоки отсчетов кодированы во внутреннем режиме, то изображение может представлять собой внутреннее изображение. Внутренние изображения и их производные, такие как независимые изображения обновления декодера, могут использоваться для сброса состояния декодера и могут, таким образом, использоваться в качестве первого изображения в кодированном битовом видеопотоке и в видеосеансе либо как статическое изображение. Отсчеты внутреннего блока могут подвергаться преобразованию, и коэффициенты преобразования могут квантоваться перед энтропийным кодированием. Внутреннее кодирование может представлять собой технологию, которая минимизирует значения отсчетов в области предварительного преобразования. В некоторых случаях, чем меньше значение постоянной составляющей (DC) после преобразования и чем меньше коэффициенты переменных составляющих (АС), тем меньшее количество битов требуется при заданном размере шага квантования для представления блока после энтропийного кодирования.
[0008] При традиционном внутреннем кодировании, например, известном из технологий кодирования поколения MPEG-2, не используется внутреннее предсказание. Однако некоторые более современные технологии сжатия видео включают способы, в которых проверяются блоки данных из, например, окружающих данных отсчетов и/или метаданных, полученных во время кодирования/декодирования в пространственном окружении и в предшествующем порядке декодирования. Такие технологии далее называются технологиями "внутреннего предсказания". Следует отметить, что по меньшей мере в некоторых случаях при внутреннем предсказании используются только опорные данные из текущего изображения, находящегося в процессе восстановления, но не из опорных изображений.
[0009] Существует множество различных форм внутреннего предсказания. Если могут использоваться несколько таких способов в заданной технологии видеокодирования, то используемый способ может кодироваться в режиме внутреннего предсказания. В некоторых случаях режимы могут иметь подрежимы и/или параметры, которые могут кодироваться индивидуально или включаться в кодовое слово режима. Кодовое слово, подлежащее использованию для заданной комбинации режима/подрежима/параметра, может влиять на эффективность кодирования, получаемую с использованием внутреннего предсказания, и, таким образом, может влиять на технологию энтропийного кодирования, используемую для трансляции кодовых слов в битовый поток.
[0010] Определенные режимы внутреннего предсказания были введены в рекомендации Н.264, усовершенствованы в Н.265 и дополнительно усовершенствованы в более современных технологиях, таких как объединенная модель исследования (JEM, Joint Exploration Model), усовершенствованное видеокодирование (VVC, Versatile Video Coding) и набор контрольных показателей (BMS, BenchMark Set). Блок предсказателя может быть сформирован с использованием значений окружающих отсчетов, принадлежащих уже доступным отсчетам. Значения окружающих отсчетов копируются в блок предсказателя в соответствии с направлением. Ссылка на используемое направление может кодироваться в битовом потоке или непосредственно предсказываться.
[0011] На фиг. 1А, в нижнем правом углу показано подмножество из девяти направлений предсказателя из 33 возможных направлений предсказателя Н.265 (соответствующих 33 угловым режимам из 35 внутренних режимов). Точка, в которой стрелки совмещаются (101), представляет предсказуемый отсчет. Стрелки представляют направление, из которого предсказывается отсчет. Например, стрелка (102) указывает на то, что отсчет (101) предсказывается на основе отсчета или отсчетов в правом верхнем направлении под углом 45 градусов по отношению к горизонтали. Аналогично, стрелка (103) указывает на то, что отсчет (101) предсказывается на основе отсчета или отсчетов в левом нижнем направлении отсчета (101) под углом 22,5 градуса по отношению к горизонтали.
[0012] На фиг. 1А в верхнем левом углу показан квадратный блок (104) размерностью 4x4 отсчета (отмеченный пунктирной, полужирной линией). Квадратный блок (104) содержит 16 отсчетов, каждый из которых отмечен буквой "S", и характеризуется своей позицией по оси Y (например, индекс строки) и своей позицией по оси X (например, индекс столбца). Например, отсчет S21 являет вторым отсчетом по оси Y (сверху) и первым (слева) отсчетом по оси X. Аналогично, отсчет S44 является четвертым отсчетом в блоке (104) как по оси Y, так и по оси X. Поскольку размерность блока составляет 4x4 отсчета, S44 находится в правом нижнем углу. Кроме того, показаны опорные отсчеты, для которых используется аналогичная схема нумерации. Опорный отсчет обозначен символом R, своей позицией по оси Y (например, индекс строки) и позицией X (индекс столбца) относительно блока (104). Согласно Н.264 и Н.265 отсчеты предсказания находятся по соседству с восстанавливаемым блоком; таким образом, не требуется использовать отрицательных значений.
[0013] Внутреннее предсказание может работать путем копирования значений опорных отсчетов из соседних отсчетов в соответствии с сообщаемым направлением предсказания. Например, предположим, что кодированный битовый поток содержит сигнализацию, которая для этого блока указывает направление предсказания, согласующееся со стрелкой (102), тогда отсчеты предсказываются от отсчета или отсчетов предсказания в правом верхнем направлении под углом 45 градусов по отношению к горизонтали. В этом случае отсчеты S41, S32, S23 и S14 предсказываются на основе одного и того же опорного отсчета R05. Затем предсказывается отсчет S44 на основе опорного отсчета R08.
[0014] В определенных случаях значения множества опорных отсчетов могут комбинироваться, например, посредством интерполяции, для того чтобы вычислить опорный отсчет; в особенности, если направления ровно не делятся на 45 градусов.
[0015] Количество возможных направлений увеличивается по мере развития технологии кодирования видеосигналов. В Н.264 (2003 год) могло быть представлено девять направлений. Количество направлений увеличилось до 33 в Н.265 (2013 год), и на момент раскрытия настоящего изобретения технологии JEM/VVC/BMS могут поддерживать до 65 направлений. Для идентификации наиболее вероятных направлений были проведены эксперименты, и определенные технологии энтропийного кодирования использовались для представления этих вероятных направлений небольшим количеством битов, с учетом определенного штрафа для менее вероятных направлений. Кроме того, сами направления могут иногда предсказываться на основе соседних направлений, используемых в соседних, уже декодированных блоках.
[0016] Режимы внутреннего предсказания, используемые в HEVC, показаны на фиг.1 В. В HEVC в целом существует 35 режимов внутреннего предсказания, из которых режим 10 является горизонтальным режимом, режим 26 вертикальным режимом, и режим 2, режим 18 и режим 34 являются диагональными режимами. Режимы внутреннего предсказания сообщаются посредством трех наиболее вероятных режимов (МРМ, Most Probable Mode) и 32 оставшихся режимов.
[0017] На фиг. 1С показаны режимы внутреннего предсказания, используемые в VVC. В HEVC в целом существует 95 режимов внутреннего предсказания, как показано на фиг. 1С, из которых режим 18 является горизонтальным режимом, режим 50 - вертикальным режимом, и режим 2, режим 34 и режим 66 являются диагональными режимами. Режимы -1 ~ -14 и режимы 67 ~ 80 называются режимами широкоугольного внутреннего преобразования (WAIP, Wide-Angle Intra Prediction).
[0018] Преобразование битов направлений внутреннего предсказания в кодированном битовом видеопотоке, который представляет направление, может различаться в зависимости от технологии кодирования видеосигналов, и может находиться в диапазоне, например, от простого непосредственного преобразования направления предсказания в режим внутреннего предсказания в кодовых словах до сложных адаптивных схем, в которых задействованы МРМ и аналогичные технологии. Однако во всех случаях могут существовать определенные направления, возникновение которых статистически менее вероятно в содержимом видео по сравнению с другими определенными направлениями. Поскольку целью сжатия видеоданных является уменьшение избыточности, те наименее вероятные направления будут в хорошо функционирующей технологии кодирования видеосигналов представлены большим количеством битов, чем более вероятные направления.
[0019] Кодирование и декодирование видеосигналов может выполняться с использованием внешнего предсказания с компенсацией движения. Несжатые цифровые видеоданные могут содержать ряд изображений, каждое из которых характеризуется пространственным размером, например 1920 х 1080 отсчетов сигнала яркости и связанных отсчетов сигнала цветности. Ряд изображений может характеризоваться фиксированной или переменной частотой смены изображений (также неформально называемой частотой кадров), например. 60 изображений в секунду или 60 Гц. К несжатым видеоданным предъявляются серьезные требования в отношении битовой скорости передачи. Например, для видео 1080р60 4:2:0 при 8 битах на отсчет (разрешение отсчетов 1920x1080 при частоте кадров 60 Гц) требуется полоса пропускания, близкая к 1,5 Гбит/с. Час такого видео занимает более 600 Гбайт пространства в запоминающем устройстве.
[0020] Компенсация движения может представлять собой технологию сжатия с потерями и может относиться к технологиям, в которых блок данных отсчетов из предварительно восстановленного изображения или его части (опорное изображение) после пространственного сдвига в направлении, указанном вектором движения (далее, обозначаемым MV, Motion Vector), используется для предсказания вновь восстанавливаемого изображения или его части. В некоторых случаях опорное изображение может совпадать с текущим изображением, которое находится в процессе восстановления. Векторы MV имеют два измерения, X и Y, или три измерения, причем третье является индикацией используемого опорного изображения (последнее косвенно может являться временным измерением).
[0021] Согласно некоторым технологиям сжатия видеоданных MV, применимый к определенной области данных отсчетов, может предсказываться на основе других MV, например, тех, что связаны с другой областью данных отсчетов, пространственно смежной с восстанавливаемой областью, и предшествующим MV в порядке декодирования. Эти действия могут по существу уменьшить объем данных, требуемых для кодирования MV, в результате чего устраняется избыточность и увеличивается степень сжатия. Предсказание MV может эффективно работать, например, поскольку при кодировании входного видеосигнала, поступающего из камеры (известного как естественный видеосигнал), существует статистическая вероятность, что области, которые больше области, к которой применим отдельный MV, перемещаются в аналогичном направлении и, таким образом, могут в некоторых случаях предсказываться с использованием аналогичного вектора движения, полученного из векторов MV соседней области. Это приводит к тому, что MV, найденный для заданной области, должен быть аналогичным или совпадающим с MV, предсказанным на основе окружающих MV, и, в свою очередь, может быть представлен после энтропийного кодирования меньшим количеством битов, чем это было бы возможно при использовании непосредственного кодирования MV. В некоторых случаях предсказание MV может являться примером сжатия сигнала без потерь (а именно: векторов MV), полученного на основе исходного сигнала (а именно: потока отсчетов). В других случаях предсказание MV непосредственно может осуществляться с потерями, например, из-за ошибок округления при расчете предсказателя на основе нескольких окружающих MV.
[0022] Различные механизмы предсказания MV описываются в H.265/HEVC (рекомендация ITU-T Н.265, "High Efficiency Video Coding" (высокоэффективное кодирование видеосигналов, декабрь 2016 года). Из множества механизмов, предлагаемых в рекомендации Н.265, далее описывается технология, называемая "пространственное объединение" (spatial merge).
[0023] На фиг.1D показано, что текущий блок (110) содержит отсчеты, найденные кодером в процессе поиска движения, предсказуемые на основе предшествующего блока того же размера, который был смещен в пространстве. Вместо непосредственного кодирования вектор MV может быть получен на основе метаданных, связанных с одним или более опорных изображений, например, из самого последнего (в порядке декодирования) опорного изображения, с использованием MV, связанного с любым из пяти окружающих отсчетов, обозначенных как А0, А1 и В0, B1, В2 (102 106, соответственно). В Н.265 в процессе предсказания MV могут использоваться предсказатели из того же опорного изображения, что используется соседним блоком. Порядок формирования подходящего списка может быть следующим: А0 → В0 → В1 → A1 → В2.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0024] В рамках аспектов раскрытия настоящего изобретения предлагается способ видеодекодирования, выполняемый видеодекодером. Синтаксический элемент может приниматься из битового потока кодированных видеоданных. Синтаксический элемент может указывать на то, что остаточные блоки текущей единицы кодирования (CU, Coding Unit) обработаны с использованием преобразования цветового пространства. Остаточные блоки текущей CU могут включать остаточный блок яркости, первый остаточный блок цветности и второй остаточный блок цветности. В ответ на прием синтаксического элемента, указывающего на то, что остаточные блоки текущей CU обработаны с использованием преобразования цветового пространства, могут быть выбраны два варианта уравнений преобразования цветового пространства. Обратное преобразование цветового пространства с использованием выбранного варианта уравнений преобразования цветового пространства может применяться к остаточным блокам текущей CU.
[0025] Согласно варианту осуществления два варианта уравнений преобразования цветового пространства включают первый вариант уравнений преобразования цветового пространства, содержащий следующие уравнения:
tmp=rY[х][у] (rCb[х][у]>>1),
rY[x][y]=tmp+rCb[x][y],
rCb[x][y]=tmp-(rCr[x][y]>>1), и
rCr[х][у]=rCb[х][у]+rCr[х][у],
и второй вариант уравнений преобразования цветового пространства, содержащий следующие уравнения:
tmp=rY[х][у] - rCb[х][у],
rY[x][y]=rY[x][y]+rCb[x][y],
rCb[x][y]=tmp-rCr[x][y], и
rCr[х][у]=tmp+rCr[х][у].
Входные данные для каждого варианта уравнений преобразования цветового пространства включают массив остаточных отсчетов яркости остаточного блока яркости, содержащий элементы rY[х][у], массив остаточных отсчетов цветности первого остаточного блока цветности, содержащий элементы rCb[х][у], и массив остаточных отсчетов цветности второго остаточного блока цветности, содержащий элементы rСк[х][у]. Выходные данные для каждого варианта уравнений преобразования цветового пространства включают модифицированный массив остаточных отсчетов яркости остаточного блока яркости, содержащий элементы rY[x][y], модифицированный массив остаточных отсчетов цветности первого остаточного блока цветности, содержащий элементы rCb[х][у], и модифицированный массив остаточных отсчетов цветности второго остаточного блока цветности, содержащий элементы rCr[х][у].
[0026] Согласно варианту осуществления первый вариант уравнений преобразования цветового пространства выбирается, если флаг пропуска преобразования, соответствующий каждому из остаточных блоков текущей CU, равен 1. Согласно варианту осуществления второй вариант уравнений преобразования цветового пространства выбирается, если по меньшей мере один из флагов пропуска преобразования, соответствующих остаточным блокам текущей CU, равен 0.
[0027] Согласно варианту осуществления первый вариант уравнений преобразования цветового пространства выбирается, если флаг пропуска преобразования, соответствующий каждому из остаточных блоков текущей CU, равен 1 и параметр квантования (QP, Quantization Parameter), соответствующий каждому из остаточных блоков текущей CU, равен 4. Согласно варианту осуществления второй вариант уравнений преобразования цветового пространства выбирается, если по меньшей мере один из QP, соответствующий остаточным блокам текущей CU, не равен 4.
[0028] Согласно варианту осуществления принятый синтаксический элемент указывает на то, что применяется только первый вариант уравнений преобразования цветового пространства. Синтаксический элемент представляет собой один из следующих элементов: синтаксический элемент уровня слайса, синтаксический элемент уровня изображения или синтаксический элемент уровня последовательности. Согласно варианту осуществления принятый синтаксический элемент указывает на то, что применяется только первый вариант уравнений преобразования цветового пространства, независимо от значения флага, указывающего, пропускается ли преобразование и квантование для остаточных блоков CU. Синтаксический элемент представляет собой один из следующих элементов: синтаксический элемент уровня слайса, синтаксический элемент уровня изображения или синтаксический элемент уровня последовательности.
[0029] Согласно варианту осуществления один из двух вариантов уравнений преобразования цветового пространства выбирается в соответствии со значением флага пропуска преобразования, соответствующего каждому из остаточных блоков текущей CU. Согласно варианту осуществления один из двух вариантов уравнений преобразования цветового пространства выбирается в соответствии с переменной, указывающей, применяется ли к текущей CU основанная на блоках дифференциальная импульсно-кодовая модуляция (BDPCM, Block-based Differential Pulse Code Modulation).
[0030] Согласно варианту осуществления способ может также включать определение того, что преобразование цветового пространства не применяется к остаточным блокам CU, если битовая глубина отсчетов яркости CU отличается от битовой глубины отсчетов цветности CU. Согласно варианту осуществления способ может также включать определение того, что преобразование цветового пространства не применяется к остаточным блокам CU, если битовая глубина отсчетов яркости CU отличается от битовой глубины отсчетов цветности CU и флаг пропуска преобразования, соответствующий каждому из остаточных блоков CU, равен 1 или 0. Согласно варианту осуществления способ может также включать определение того, что преобразование цветового пространства не применяется к остаточным блокам CU, если битовая глубина отсчетов яркости CU отличается от битовой глубины отсчетов цветности CU, QP, соответствующий каждому из остаточных блоков CU, равен 4, и флаг пропуска преобразования, соответствующий каждому из остаточных блоков CU, равен 1 или 0.
[0031] В рамках аспектов раскрытия настоящего изобретения предлагается устройство для видеодекодирования. Устройство может содержать схему, сконфигурированную для приема синтаксического элемента из битового потока кодированных видеоданных, указывающего на то, что остаточные блоки текущей CU обработаны с использованием преобразования цветового пространства. Остаточные блоки текущей CU могут включать остаточный блок яркости, первый остаточный блок цветности и второй остаточный блок цветности. В ответ на прием синтаксического элемента, указывающего на то, что остаточные блоки текущей CU обработаны с использованием преобразования цветового пространства, могут быть выбраны два варианта уравнений преобразования цветового пространства. Обратное преобразование цветового пространства с использованием выбранного варианта уравнений преобразования цветового пространства может применяться к остаточным блокам текущей CU.
[0032] В рамках аспектов раскрытия настоящего изобретения предлагается машиночитаемый носитель, на котором хранятся инструкции, при исполнении которых процессором выполняется способ видеодекодирования.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0033] Дополнительные признаки, особенности и различные преимущества раскрываемого предмета изобретения станут более очевидными из последующего подробного описания и прилагаемых чертежей, на которых:
[0034] на фиг. 1А схематично показан пример подмножества режимов внутреннего предсказания.
[0035] На фиг. 1В показан пример направлений внутреннего предсказания.
[0036] На фиг. 1С показан пример направлений внутреннего предсказания.
[0037] На фиг. 1D в виде одного из примеров показан текущий блок и окружающие его пространственные блоки, подходящие для объединения.
[0038] На фиг. 2 показано схематическое представление упрощенной блок-схемы системы связи в соответствии с вариантом осуществления настоящего изобретения.
[0039] На фиг. 3 показано схематическое представление упрощенной блок-схемы системы связи в соответствии с вариантом осуществления настоящего изобретения.
[0040] На фиг. 4 показано схематическое представление упрощенной блок-схемы декодера в соответствии с вариантом осуществления настоящего изобретения.
[0041] На фиг. 5 показано схематическое представление упрощенной блок-схемы кодера в соответствии с вариантом осуществления настоящего изобретения.
[0042] На фиг. 6 показана блок-схема кодера в соответствии с другим вариантом осуществления настоящего изобретения.
[0043] На фиг. 7 показана блок-схема декодера в соответствии с другим вариантом осуществления настоящего изобретения.
[0044] На фиг. 8А показано разбиение на блоки в соответствии с вариантом осуществления настоящего изобретения.
[0045] На фиг. 8В показано дерево разбиения на блоки в соответствии с вариантом осуществления настоящего изобретения.
[0046] На фиг. 9А показано разбиение с использованием вертикального центрально-бокового тернарного дерева в соответствии с вариантом осуществления настоящего изобретения.
[0047] На фиг. 9В показано разделение с использованием горизонтального центрально-бокового тернарного дерева в соответствии с вариантом осуществления настоящего изобретения.
[0048] На фиг. 10A-10D показаны различные форматы цветности в соответствии с вариантами осуществления настоящего изобретения.
[00049] На фиг. 11 показан пример кодера в соответствии с вариантом осуществления настоящего изобретения.
[0050] На фиг. 12 показан пример декодера в соответствии с вариантом осуществления настоящего изобретения.
[0051] На фиг. 13 показана прямая линия между минимальным и максимальным значением яркости в соответствии с вариантом осуществления настоящего изобретения.
[0052] На фиг. 14А и 14В показаны местоположения отсчетов, используемых для вывода α и β в LT_CCLM в соответствии с вариантом осуществления настоящего изобретения.
[0053] На фиг. 15А и 15В показаны местоположения отсчетов, используемых для вывода α и β в T_CCLM в соответствии с вариантом осуществления настоящего изобретения.
[0054] На фиг. 16А и 16В показаны местоположения отсчетов, используемых для вывода α и β в L_CCLM в соответствии с вариантом осуществления настоящего изобретения.
[0055] На фиг. 17 показан пример разделения соседних отсчетов на две группы в соответствии с вариантом осуществления настоящего изобретения.
[0056] На фиг. 18 показано схематическое представление кодера и декодера в соответствии с вариантом осуществления настоящего изобретения.
[0057] На фиг. 19 показан вариант осуществления процесса, выполняемого декодером.
[0058] На фиг. 20 показано схематическое представление компьютерной системы в соответствии с вариантом раскрытия настоящего изобретения.
ПОДРОБНОЕ ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
[0059] I. Система видеокодера и видеодекодера
[0060] На фиг. 2 показана упрощенная блок-схема системы (200) связи в соответствии с вариантом раскрытия настоящего изобретения. Система (200) связи содержит множество терминальных устройств, которые могут взаимодействовать друг с другом, например, через сеть (250). Например, система (200) связи содержит первую пару терминальных устройств (210) и (220), взаимосвязанных через сеть (250). На фиг. 2, например, первая пара терминальных устройств (210) и (220) выполняет однонаправленную передачу данных. Например, терминальное устройство (210) может кодировать видеоданные (например, поток видеоизображений, захваченный терминальным устройством (210)) для передачи в другое терминальное устройство (220) через сеть (250). Кодированные видеоданные могут передаваться в виде одного или более кодированных битовых видеопотоков. Терминальное устройство (220) может принимать кодированные видеоданные из сети (250), декодировать кодированные видеоданные для восстановления видеоизображений и отображать видеоизображения в соответствии с декодированными видеоданными. Однонаправленная передача данных может представлять собой общую функцию в медийных обслуживающих приложениях и т.п.
[0061] В другом примере система (200) связи содержит вторую пару терминальных устройств (230) и (240), выполняющих двустороннюю передачу кодированных видеоданных, которая может осуществляться, например, в процессе видеоконференц-связи. В этом примере для двусторонней передачи данных каждое терминальное устройство (230) и (240) может кодировать видеоданные (например, поток видеоизображений, захваченный терминальным устройством) для передачи в другое терминальное устройство пары терминальных устройств (230) и (240) через сеть (250). Каждое терминальное устройство пары терминальных устройств (230) и (240) также может принимать кодированные видеоданные, переданные другим терминальным устройством пары терминальных устройств (230) и (240), и может декодировать кодированные видеоданные для восстановления видеоизображений и отображать видеоизображения на доступном устройстве отображения в соответствии с восстановленными видеоданными.
[0062] В примере, показанном на фиг. 2, терминальные устройства (210), (220), (230) и (240) могут представлять собой серверы, персональные компьютеры и смартфоны, однако принципы раскрытия настоящего изобретения, могут быть не ограничены этими устройствами. В вариантах раскрытия настоящего изобретения находится применение для ноутбуков, планшетов, медиаплееров и/или специализированного оборудования для видеоконференций. Сеть (250) представляет любое количество сетей, которые передают кодированные видеоданные между терминальными устройствами (210), (220), (230) и (240), включая, например, проводные и/или беспроводные сети связи. Сеть (250) связи может осуществлять обмен данными по линиям связи с коммутацией каналов или с коммутацией пакетов. Типичные сети включают телекоммуникационные сети, локальные и глобальные сети и/или Интернет. С целью настоящего обсуждения можно предположить, что архитектура и топология сети (250) не существенна для принципов раскрытия изобретения, если ниже не указано иное.
[0063] На фиг. 3 в качестве примера применения раскрываемого предмета изобретения показано расположение кодера и декодера видео в потоковой среде. Раскрываемый предмет настоящего изобретения может равным образом использоваться с другими допустимыми применениями видео, включая, например, видеоконференц-связь, цифровое телевидение, хранение сжатых видеоданных на цифровых носителях, включая CD, DVD, карту памяти и т.п.
[0064] Система потоковой передачи может содержать подсистему (313) захвата, которая может содержать источник (301) видеосигнала, например цифровую камеру, создающую, например, несжатый поток (302) видеоизображений. Например, поток (302) видеоизображений содержит отсчеты, которые получены цифровой камерой. Поток (302), показанный полужирной линией, чтобы обратить внимание на большой объем данных по сравнению с кодированными видеоданными (304) (или кодированными битовыми видеопотоками), может обрабатываться электронным устройством (320), которое содержит видеокодер (303), соединенный с источником (301) видеосигнала. Видеокодер (303) может содержать аппаратуру, программное обеспечение или комбинацию этих компонентов, позволяющую активировать или реализовать аспекты предмета раскрытия настоящего изобретения в соответствии с более подробным описанием, приведенным ниже. Кодированные видеоданные (304) (или кодированный битовый видеопоток (304)), изображенный в виде тонкой линии, чтобы обратить внимание на небольшой объем данных по сравнению с потоком (302) видеоизображений, может для дальнейшего использования храниться на потоковом сервере (305). Одна или более потоковых клиентских подсистем, таких как клиентские подсистемы (306) и (308), показанные на фиг.3, могут осуществлять доступ к потоковому серверу (305) для извлечения копий (307) и (309) кодированных видеоданных (304). Клиентская подсистема (306) может содержать видеодекодер (310), например, в электронном устройстве (330). Видеодекодер (310) декодирует входящую копию (307) кодированных видеоданных и создает исходящий поток (307) видеоизображений, который может визуализироваться на дисплее (312) (например, на экране дисплея) или на другом устройстве визуализации (не показано на чертеже). В некоторых потоковых системах кодированные видеоданные (304), (307) и (309) (например, битовые видеопотоки) могут кодироваться в соответствии с определенными стандартами кодирования/сжатия видеоданных. Примером таких стандартов может являться рекомендация Н.265 ITU-T. Например, в стадии разработки находится стандарт кодирования видеоданных, неформально известный как усовершенствованное видеокодирование (VVC, Versatile Video Coding). Раскрытый предмет настоящего изобретения может использоваться в контексте VVC.
[0065] Следует отметить, что электронные устройства (320) и (330) могут содержать другие компоненты (не показанные на чертеже). Например, электронное устройство (320) может содержать видеодекодер (не показанный на чертеже), и электронное устройство (330) также может содержать видеокодер (не показанный на чертеже).
[0066] На фиг.4 показана блок-схема видеодекодера 410 в соответствии с вариантом раскрытия настоящего изобретения. Видеодекодер (410) может быть встроен в электронное устройство (430). Электронное устройство (430) может содержать приемник (431) (например, приемную схему). Видеодекодер (410) может использоваться вместо видеодекодера (310), показанного в примере на фиг. 3.
[0067] В этом и других вариантах осуществления приемник (431) может принимать одну или более кодированных видеопоследовательностей, подлежащих декодированию декодером (410), по одной последовательности в конкретный момент времени, при этом декодирование каждой кодированной видеопоследовательности не зависит от других кодированных видеопоследовательностей. Кодированная видеопоследовательность может приниматься по каналу (401), который может представлять собой аппаратную/программную линию связи с запоминающим устройством, хранящим кодированные видеоданные. Приемник (431) может принимать кодированные видеоданные совместно с другими данными, например, с кодированными звуковыми данными и/или с потоками служебных данных, которые могут пересылаться в соответствующие им объекты применения (не показанные на чертеже). Приемник (431) может отделять кодированную видеопоследовательность от других данных. Для устранения флуктуации в сети между приемником (431) и энтропийным декодером/анализатором (420) (далее называемым "анализатор" (420)) может устанавливаться буферная память (415). В определенных применениях буферная память (415) является частью видеодекодера (410). В других применениях память может находиться вне видеодекодера (410) (не обозначена на чертеже). В некоторых других применениях может существовать буферная память (не обозначенная на чертеже) вне видеодекодера (410), например, для устранения флуктуаций в сети, и дополнительно другая буферная память (415) в видеодекодере (410), например, для обработки временных интервалов воспроизведения. Если приемник (431) принимает данные из запоминающего устройства/устройства пересылки с достаточной полосой пропускания и управляемостью или из изосинхронной сети, буферная память (415) может не использоваться или иметь небольшой размер. Для использования в пакетных сетях наилучшего качества обслуживания, таких как Интернет, может потребоваться буферная память (415), которая может быть сравнительно большой и может преимущественно адаптироваться по размеру, а также, по меньшей мере частично, эта память может быть реализована в операционной системе или в подобных элементах (не обозначенных на чертеже) вне видеодекодера (410).
[0068] Видеодекодер (410) может содержать анализатор (420) для восстановления символов (421) из кодированной видеопоследовательности. Категории таких символов включают, например, информацию, используемую для управления функционированием видеодекодера (410), а также потенциальную информацию для управления устройством визуализации, таким как устройство визуализации (412) (например, дисплеем), которое не интегрировано с электронным устройством (430), но может быть связано с электронным устройством (430), как показано на фиг 4. Управляющая информация для устройства (устройств) визуализации может передаваться в формате сообщений дополнительной усовершенствованной информации (SEI, Supplementary Enhancement Information) или фрагментов набора параметров удобной в использовании видеоинформации (VUI, Video Usability Information) (не показанной на чертеже). Анализатор (420) может анализировать/энтропийно декодировать принятую видеопоследовательность. Кодирование кодированной видеопоследовательности может выполняться в соответствии с технологией или стандартом кодирования видеосигналов и может следовать различным принципам, включая кодирование с переменной длиной, кодирование по методу Хаффмана, арифметическое кодирование с учетом или без учета контекстной зависимости и т.д. Анализатор (420) может извлекать из кодированной видеопоследовательности набор параметров подгрупп для по меньшей мере одной из подгрупп пикселей в видеодекодере на основе по меньшей мере одного из параметров, соответствующих группе. Подгруппы могут включать группы изображений (GOP, Groups of Pictures), изображения, тайлы, слайсы, макроблоки, единицы кодирования (CU, Coding Unit), единицы преобразования (TU, Transform Unit), единицы предсказания (PU, Prediction Unit) и т.д. Анализатор (420) также может извлекать из кодированной видеопоследовательности такую информацию как коэффициенты преобразования, значения параметров квантователя, векторы движения и т.д.
[0069] Анализатор (420) может выполнять операцию энтропийного декодирования/анализа видеопоследовательности, принятой из буферной памяти (415), для создания символов (421).
[0070] При восстановлении символов (421) может быть задействовано множество различных блоков, в зависимости от типа кодированного видеоизображения или его части (например, изображения с внутренним кодированием, внешнего или внутреннего блока) и других факторов. Задействованные блоки и способы их использования могут управляться с использованием управляющей информации подгруппы, которая анализируется на основе кодированной видеопоследовательности анализатором (420). Поток такой управляющей информации подгруппы между анализатором (420) и множеством блоков далее не описывается ниже для простоты изложения.
[0071] Помимо уже упомянутых функциональных блоков, видеодекодер (410), как описано ниже, концептуально может подразделяться на ряд других функциональных блоков. В практических реализациях при работе в условиях коммерческих ограничений множество этих блоков тесно взаимодействуют друг с другом и могут, по меньшей мере частично, интегрироваться друг в друга. Однако с целью описания раскрываемого предмета изобретения применяется приведенное ниже концептуальное разделение на функциональные блоки.
[0072] Первым блоком является блок (451) масштабирования/обратного преобразования. Блок (451) масштабирования /обратного преобразования принимает квантованный коэффициент преобразования, а также управляющую информацию, включая информацию об используемом преобразовании, размере блока, коэффициенте квантования, матрицах масштабирования при квантовании и т.д., в виде символа(-ов) (421), поступающих из анализатора (420). Блок (451) масштабирования /обратного преобразования может выводить блоки, содержащие значения отсчетов, которые могут подаваться в агрегатор (455).
[0073] В некоторых случаях выходные отсчеты блока (451) масштабирования/обратного преобразования могут принадлежать блоку с внутренним кодированием; то есть блоку, который не использует информацию предсказания из ранее восстановленных изображений, но может использовать информацию предсказания из ранее восстановленных частей текущего изображения. Такая предсказательная информация может предоставляться блоком (452) внутреннего предсказания. В некоторых случаях блок (452) внутреннего предсказания генерирует блок того же размера и формы, что и восстанавливаемый блок, с использованием окружающей уже восстановленной информации, извлеченной из буфера (458) текущих изображений. Буфер (458) текущих изображений буферизирует, например, частично восстановленное текущее изображение и/или полностью восстановленное текущее изображение. Агрегатор (455) в некоторых случаях добавляет на основе отсчетов информацию предсказания, которую сгенерировал блок (452) внутреннего предсказания, в выходную информацию отсчетов, предоставленную блоком (451) масштабирования /обратного преобразования.
[0074] В других случаях выходные отсчеты блока (451) масштабирования/обратного преобразования могут принадлежать блоку с внешним кодированием, возможно с компенсацией движения. В таком случае блок (453) предсказания компенсации движения может осуществлять доступ к памяти (457) опорных изображений для извлечения отсчетов, используемых для предсказания. После компенсации движения извлеченные отсчеты в соответствии с символами (421), принадлежащими блоку, могут добавляться агрегатором (455) к выходным данным блока (451) масштабирования/обратного преобразования (в этом случае эти данные называются остаточными отсчетами или остаточным сигналом), для того чтобы сгенерировать выходную информацию, содержащую отсчеты. Адреса в памяти (457) опорных изображений, по которым блок (453) предсказания компенсации движения извлекает отсчеты предсказания, могут управляться векторами движения, доступными блоку (453) предсказания компенсации движения в виде символов (421), которые могут характеризоваться, например, компонентами X, Y и опорным изображением. Компенсация движения также может включать интерполяцию значений отсчетов при извлечении из памяти (457) опорных изображений, если используются точные векторы движения сокращенных отсчетов, механизмы предсказания векторов движения и т.д.
[0075] Выходные отсчеты агрегатора (455) могут обрабатываться с использованием различных технологий кольцевой фильтрации в блоке (456) контурного фильтра. Технологии сжатия видеоданных могут включать технологии внутриконтурной фильтрации, управляемые параметрами, которые включаются в кодированную видеопоследовательность (также называемую кодированным битовым видеопотоком) и становятся доступными блоку (456) контурной фильтрации в виде символов (421) из анализатора (420), но также могут реагировать на метаинформацию, получаемую в процессе декодирования предшествующих (в порядке декодирования) частей кодированного изображения или кодированной видеопоследовательности, а также - реагировать на ранее восстановленные, подвергшиеся контурной фильтрации значения отсчетов.
[0076] Выход блока (456) контурного фильтра может представлять собой поток отсчетов, который может подаваться на устройство (412) визуализации, а также сохраняться в памяти (457) опорных изображений для последующего использования во внешнем предсказании.
[0077] Определенные кодированные изображения после полного восстановления могут использоваться в качестве опорных изображений для последующего предсказания. Например, после того как кодированное изображение, соответствующее текущему изображению, полностью восстановлено и идентифицировано как опорное изображение (например, анализатором (420)), буфер (458) текущих изображений может стать частью памяти (457) опорных изображений, и обновленный буфер текущих изображений может перераспределяться перед началом восстановления следующего кодированного изображения.
[0078] Видеодекодер (410) может выполнять операции декодирования в соответствии с предварительно заданной технологией сжатия видеоданных, определенной в стандарте, таком как рекомендация ITU-T Н.265. Кодированная видеопоследовательность может соответствовать синтаксису, указанному используемыми технологией или стандартом сжатия видеоданных, в том смысле, что кодированная видеопоследовательность придерживается синтаксиса технологии или стандарта сжатия видеоданных и профилей, заданных в документации по технологии или стандарту сжатия видеоданных. Более конкретно, профиль может выбирать определенные средства как единственно доступные для использования под управлением данного профиля из всех доступных средств, определяемых технологией или стандартом сжатия видеоданных. Кроме того, для соответствия сложность кодированных видеопоследовательностей может находиться в пределах, определенных уровнем технологии или стандарта сжатия видеоданных. В некоторых случаях уровни сложности ограничивают максимальный размер изображения, максимальную частоту кадров, максимальную частоту отсчетов для восстановления (измеряемую, например, в миллионах отсчетов в секунду), максимальный размер опорного изображения и т.д. Уровни сложности могут также в некоторых случаях ограничиваться спецификациями гипотетического эталонного декодера (HRD, Hypothetical Reference Decoder) и метаданными для управления буфером HRD, сообщаемыми в кодированной видеопоследовательности.
[0079] Согласно варианту осуществления приемник (431) может принимать дополнительные (избыточные) данные вместе с кодированной видеоинформацией. Дополнительные данные могут вставляться в кодированную видеопоследовательность(-и). Дополнительные данные могут использоваться видеодекодером (410) для корректного декодирования данных и/или для более точного восстановления исходных видеоданных. Дополнительные данные могут предоставляться в виде, например, временных, пространственных или усовершенствованных уровней отношения сигнал/шум (SNR, Signal Noise Ratio), избыточных слайсов, избыточных изображений, кодов с прямым исправлением ошибок и т.д.
[0080] На фиг. 5 показана блок-схема видеокодера (503) в соответствии с вариантом раскрытия настоящего изобретения. Видеокодер (503) встраивается в электронное устройство (520). Электронное устройство (520) содержит передатчик (540) (например, передающую схему). Видеокодер (503) может использоваться вместо видеокодера (303), показанного в примере на фиг. 3.
[0081] Видеокодер (503) может принимать отсчеты видеосигнала из источника (501) видеосигнала (не являющегося частью электронного устройства (520), показанного в примере на фиг. 5), который может захватывать видеоизображение(-я), подлежащее кодированию видеокодером (503). В другом примере источник (501) видеосигнала является частью электронного устройства (520).
[0082] Источник (501) видеосигнала может предоставлять исходную видеопоследовательность, подлежащую кодированию видеокодером (503), в виде цифрового видеопотока отсчетов, который может иметь любую подходящую битовую глубину (например, 8 бит, 10 бит, 12 бит, …), любое цветовое пространство (например, ВТ.601 Y CrCB, RGB, …) и любую подходящую структуру отсчетов (например, Y СrСb 4:2:0, Y СrСb 4:4:4). В обслуживающей медийной системе источник (501) видеосигнала может представлять собой запоминающее устройство, на котором хранятся ранее подготовленные видеоданные. В системе видеоконференц-связи источник (501) видеосигнала может представлять собой камеру, которая захватывает локальную графическую информацию в форме видеопоследовательности. Видеоданные могут предоставляться в виде множества отдельных изображений, которые передают движение при последовательном просмотре. Непосредственно изображения могут быть организованы как пространственный массив пикселей, каждый из которых может содержать один или более отсчетов, в зависимости от используемых структуры дискретизации, цветового пространства и т.д. Специалисту в этой области техники нетрудно понять взаимосвязь между пикселями и отсчетами. В последующем описании рассматриваются отсчеты.
[0083] Согласно варианту осуществления видеокодер (503) может кодировать и сжимать изображения исходной видеопоследовательности для преобразования ее в кодированную видеопоследовательность (543) в реальном времени или в соответствии с любыми другими ограничениями по времени, зависящими от применения. Обеспечение подходящей скорости кодирования является одной из функций, выполняемых контроллером (550). Контроллер (550) может также управлять другими функциональными блоками, как описывается ниже, и может функционально соединяться с этими функциональными блоками. Для простоты эта связь не обозначена на чертеже. Параметры, устанавливаемые контроллером (550), могут включать параметры, относящиеся к управлению скоростью (пропуск изображения, квантователь, значение лямбда для технологий оптимизации искажения от скорости передачи, …), размер изображения, уровень группы изображений (GOP), максимальный диапазон поиска вектора движения и т.д. Контроллер (550) может быть сконфигурирован для выполнения других подходящих функций, которые относятся к видеокодеру (503), оптимизированному для определенной системной структуры.
[0084] В некоторых вариантах осуществления видеокодер (503) сконфигурирован для работы в контуре кодирования. В чрезмерно упрощенном описании, например, контур кодирования может включать кодер (530) источника (например, отвечающий за создание символов, таких как поток символов на основе входного изображения, подлежащего кодированию, и опорного изображения(-ий)) и (локальный) декодер (533), встроенный в видеокодер (503). Декодер (533) восстанавливает символы для создания данных отсчетов схожим образом, что и (удаленный) декодер (поскольку любое сжатие между символами и кодированным битовым видеопотоком осуществляется без потерь согласно технологиям сжатия видеоданных, рассматриваемых при раскрытии предмета настоящего изобретения). Восстановленный поток отсчетов (данные отсчетов) записывается в память (534) опорных изображений. Поскольку декодирование символьного потока приводит к точным битовым результатам независимо от местоположения декодера (локальное или удаленное), память (534) опорных изображений также содержит точные биты между локальным кодером и удаленным кодером. Другими словами, подсистема предсказания кодера "видит" в качестве отсчетов опорных изображений в точности те же значения отсчетов, которые должен "увидеть" декодер при использовании предсказания в процессе декодирования. Этот фундаментальный принцип синхронности опорных изображений (и результирующий сдвиг, если синхронность не может поддерживаться, например, из-за ошибок в канале) также используется в некоторых соответствующих областях.
[0085] Работа "локального" декодера (533) может быть аналогична функционированию "удаленного" декодера, такого как видеодекодер (410), который уже подробно описывался выше со ссылкой на фиг.4. Однако, как показано на фиг.4, поскольку символы доступны и кодирование/декодирование символов в кодированную видеопоследовательность энтропийным кодером (545) и анализатором 420 может выполняться без потерь, подсистемы энтропийного декодирования видеодекодера (410), включая буферную память (415) и анализатор (420), могут быть не полностью реализованы в локальном декодере (533).
[0086] Здесь следует заметить, что любая технология декодирования, за исключением анализа/энтропийного декодирования, используемая в декодере, также обязательно требуется, по существу, в идентичном функциональном виде в соответствующем кодере. По этой причине при раскрытии предмета настоящего изобретения акцент делается на работе декодера. Описание технологий кодера может быть сокращено, поскольку они являются обратными по отношению ко всесторонне описанным технологиям декодера. Только определенные области требуют более подробного описания, приводимого ниже.
[0087] В процессе функционирования согласно некоторым примерам исходный кодер (530) может выполнять кодирование с предсказанием и компенсацией движения, при котором с предсказанием кодируется входное изображение со ссылкой на одно или более ранее кодированных изображений видеопоследовательности, обозначаемых как "опорные изображения". Таким образом, машина (532) кодирования кодирует разности между блоками пикселей входного изображения и блоками пикселей опорного изображения(-ий), которые могут выбираться в качестве ссылки(-ок) предсказания на входное изображение.
[0088] Локальный видеодекодер (533) может декодировать кодированные видеоданные изображений, которые могут обозначаться как опорные изображения, на основе символов, созданных исходным кодером (530). Операции ядра (532) кодирования могут преимущественно являться процессами с потерями. Если кодированные видеоданные могут декодироваться в видеодекодере (не показанном на фиг. 5), то восстановленная видеопоследовательность обычно может представлять собой копию исходной видеопоследовательности с некоторыми ошибками. Локальный видеодекодер (533) дублирует процессы декодирования, которые могут выполняться видеодекодером с опорными изображениями, и может сохранять опорные изображения в кэш-памяти (534) опорных изображений. Таким образом, видеокодер (503) может локально сохранять копии восстановленных опорных изображений, имеющие то же содержимое, что и восстановленные опорные изображения, которые должны быть получены видеодекодером на дальнем конце (отсутствие ошибок при передаче).
[0089] Предсказатель (535) может выполнять поиск с предсказанием для ядра (532) кодирования. То есть, для нового изображения, подлежащего кодированию, предсказатель (535) может осуществлять поиск данных отсчетов в памяти (534) опорных изображений (в качестве подходящих блоков опорных пикселей) или определенных метаданных, таких как векторы движения опорных изображений, формы блоков и т.д., которые могут служить в качестве подходящей ссылки предсказания для новых изображений. Предсказатель (535) может работать в режиме сопоставления блока выборки с блоком пикселей (sample block-by-pixel block) для нахождения подходящих ссылок предсказания. В некоторых случаях, определяемых результатами поиска, получаемыми предсказателем (535), входное изображение может характеризоваться ссылками предсказания, полученными на основе множества опорных изображений, хранимых в памяти (534) опорных изображений.
[0090] Контроллер (550) может управлять операциями кодирования исходного кодера (530), включая, например, установку параметров и параметров подгрупп, используемых для кодирования видеоданных.
[0091] К выходным данным всех упомянутых выше функциональных блоков может применяться энтропийное кодирование в энтропийном кодере (545). Энтропийный кодер (545) транслирует символы, сгенерированные различными функциональными блоками, в кодированную видеопоследовательность путем сжатия символов без потерь в соответствии с такими технологиями, как кодирование по методу Хаффмана, кодирование с переменной длиной, арифметическое кодирование и т.д.
[0092] Передатчик (540) может буферизировать кодированную видеопоследовательность(-и), созданную энтропийным кодером (545), с целью подготовки ее для передачи по каналу (560) связи, который может представлять собой аппаратную/программную линию связи с запоминающим устройством, в котором должны храниться кодированные видеоданные. Передатчик (540) может объединять кодированные видеоданные из видеокодера (503) с другими данными, подлежащими передаче, например, с кодированными потоками звуковых и/или служебных данных (эти источники не показаны на чертеже).
[0093] Контроллер (550) может управлять работой видеокодера (503). В процессе кодирования контроллер (550) может назначать каждому кодированному изображению определенный тип кодированного изображения, который может влиять на технологию кодирования, которая может применяться к соответствующему изображению. Например, изображениям часто может назначаться один из следующих типов:
[0094] Внутреннее изображение (I-изображение) может представлять собой изображение, которое может кодироваться и декодироваться без использования любого другого изображения в последовательности в качестве источника предсказания. Некоторые видеокодеки предусматривают различные типы внутренних изображений, включая, например, изображения независимого обновления декодера (IDR, Independent Decoder Refresh). Специалист в этой области техники осведомлен об этих вариантах I-изображений, их применениях и признаках.
[0095] Изображение с предсказанием (Р-изображение) может кодироваться и декодироваться с использованием внутреннего или внешнего предсказания с помощью не более чем одного вектора движения и ссылочного индекса для предсказания значений отсчетов каждого блока.
[0096] Двунаправленное изображение с предсказанием (В-изображение) может кодироваться и декодироваться с использованием внутреннего или внешнего предсказания с помощью не более чем двух векторов движения и ссылочных индексов для предсказания значений отсчетов каждого блока. Подобным образом, изображения с множественным предсказанием могут использовать более двух опорных изображений и связанных метаданных для восстановления одного блока.
[0097] Исходные изображения в общем случае могут пространственно разделяться на множество блоков отсчетов (например, блоков отсчетов 4x4, 8x8, 4x8 или 16x16) и кодироваться в режиме "блок за блоком". Блоки могут кодироваться с предсказанием со ссылкой на другие (уже кодированные) блоки, как определяется назначением кодирования, применимого к соответствующим изображениям блоков. Например, блоки I-изображений могут кодироваться без предсказания или с предсказанием со ссылкой на уже кодированные блоки того же изображения (пространственное предсказание или внутреннее предсказание). Блоки пикселей Р-изображений могут кодироваться с предсказанием, с использованием пространственного предсказания или временного предсказания со ссылкой на одно предварительно кодированное опорное изображение. Блоки В-изображений могут кодироваться с предсказанием, с использованием пространственного предсказания или временного предсказания со ссылкой на одно или два предварительно кодированных опорных изображения.
[0098] Видеокодер (503) может выполнять операции кодирования в соответствии с предварительно определенной технологией или стандартом кодирования видеоданных, таким как рекомендация ITU-T Н.265. В процессе функционирования видеокодер (503) может выполнять различные операции сжатия, включая операции кодирования с предсказанием, в которых используется временная или пространственная избыточность во входной видеопоследовательности. Кодированные видеоданные, таким образом, могут соответствовать синтаксису, указанному используемыми технологией или стандартом видеокодирования.
[0099] Согласно варианту осуществления передатчик (540) может передавать дополнительные данные вместе с кодированной видеоинформацией. Исходный кодер (530) может включать такие данные в кодированную видеопоследовательность. Дополнительные данные могут включать временные/пространственные/SNR усовершенствованные уровни, другие виды избыточных данных, такие как избыточные изображения и слайсы, сообщения SEI, фрагменты набора параметров VUI и т.д.
[0100] Видеоданные могут захватываться в виде множества исходных изображений (видеоизображений) во временной последовательности. Во внутреннем режиме предсказания (часто сокращенно называемом внутренним предсказанием) используется пространственная корреляция в заданном изображении, а в режиме внешнего предсказания используется (временная или другая) корреляция между изображениями. Например, конкретное кодируемое/декодируемое изображение, называемое текущим изображением, разбивается на блоки. Если блок текущего изображения аналогичен опорному блоку в предшествующем кодированном и все еще буферизированном опорном изображении в видеоданных, то блок в текущем изображении может кодироваться с помощью вектора, называемого вектором движения. Вектор движения указывает на опорный блок в опорном изображении и может иметь третье измерение, идентифицирующее опорное изображение, при использовании множества опорных изображений.
[0101] В некоторых вариантах осуществления технология двойного предсказания может использоваться в процессе внешнего предсказания. В соответствии с технологией двойного предсказания используются два опорных изображения, например первое опорное изображение и второе опорное изображение, каждое из которых предшествует в порядке декодирования текущему изображению в видеопоследовательности (но может являться прошедшим или будущим, соответственно, в порядке отображения). Блок в текущем изображении может кодироваться посредством первого вектора движения, который указывает на первый опорный блок в первом опорном изображении, и второго вектора движения, который указывает на второй опорный блок во втором опорном изображении. Предсказание блока может осуществляться с использованием комбинации первого опорного блока и второго опорного блока.
[0102] Кроме того, в процессе внешнего предсказания для повышения эффективности кодирования может использоваться режим объединения.
[0103] В соответствии с некоторыми вариантами раскрытия настоящего изобретения внешнее и внутреннее предсказание выполняются в единицах блоков. Например, в соответствии со стандартом HEVC изображение в последовательности видеоизображений для сжатия разбивается на блоки дерева кодирования (СTU, Coding Tree Unit), и размер блоков CTU в изображении совпадает, например 64x64 пикселей, 32x32 пикселей или 16x16 пикселей. В целом, CTU содержит три блока дерева кодирования (СТВ, Coding Tree Block) один СТВ яркости и два СТВ цветности. Каждый CTU может рекурсивно в дереве квадрантов разделяться на одну или более единиц кодирования (CU). Например, CTU размером 64x64 пикселей может разделяться на один CU размером 64x64 пикселей или 4 CU размером 32x32 пикселей, или 16 CU размером 16x16 пикселей. Например, каждый CU анализируется для определения типа предсказания для CU, такого как внешнее или внутреннее предсказание. CU разделяется на одну или более единиц предсказания (PU, Prediction Unit) в зависимости от временной и/или пространственной предсказуемости. Как правило, каждая PU содержит единицу предсказания (РВ, Prediction Block) яркости и два РВ цветности. Согласно варианту осуществления операция предсказания при кодировании (кодировании/декодировании) выполняется в единицах предсказания. При использовании единицы предсказания яркости, например, единица предсказания содержит матрицу значений (например, значений яркости) для пикселей, например 8x8 пикселей, 16x16 пикселей, 8x16 пикселей, 16x8 пикселей и т.п.
[0104] На фиг. 6 показана блок-схема видеокодера (603) в соответствии с другим вариантом раскрытия настоящего изобретения. Видеокодер (603) сконфигурирован для приема блока обработки (например, единицы предсказания) значений отсчетов в пределах текущего видеоизображения в последовательности видеоизображений и кодирования блока обработки в кодированное изображение, являющееся частью кодированной видеопоследовательности. Например, видеокодер (603) используется вместо видеокодера (303), показанного в примере на фиг.3.
[0105] В примере стандарта HEVC видеокодер (603) принимает матрицу значений отсчетов для блока обработки, такого как блок обработки размером 8x8 отсчетов, и т.п. Видеокодер (603) определяет, является ли наилучшим способом кодирования блока обработки внутренний режим, внешний режим или режим двойного предсказания, с использованием, например, оптимизации искажения от скорости передачи. Если блок обработки должен кодироваться во внутреннем режиме, видеокодер (603) может использовать технологию внутреннего предсказания для кодирования блока обработки в кодированное изображение; и если блок обработки должен кодироваться во внешнем режиме или в режиме двойного предсказания, видеокодер (603) может использовать внешнее или двойное предсказание, соответственно, для кодирования блока обработки в кодированное изображение. Согласно определенным технологиям кодирования видеосигнала режим объединения может представлять собой подрежим внешнего предсказания, в котором вектор движения выводится на основе одного или более предсказателей вектора движения без выигрыша, связанного с кодированным компонентом вектора движения вне предсказателей. В некоторых других технологиях кодирования видеосигнала может присутствовать компонент вектора движения, применимый к рассматриваемому блоку. Например, видеокодер (603) содержит другие компоненты, такие как модуль принятия решения о режиме (не показанный на чертеже) для определения режима блоков обработки.
[0106] В примере, изображенном на фиг. 6, показано, что видеокодер (603) содержит интер-кодер (630), интра-кодер (622), вычислитель (623) остаточного сигнала, коммутатор (626), кодер (624) остатка, контроллер (621) общего назначения и энтропийный кодер (625), соединенные друг с другом, как показано на фиг. 6.
[0107] Интер-кодер (630) сконфигурирован для приема отсчетов текущего блока (например, блока обработки), сравнения блока с одним или более опорных блоков в опорных изображениях (например, блоков в предшествующих изображениях и последующих изображениях), генерации информации внешнего предсказания (например, описания избыточной информации в соответствии с технологией внешнего кодирования, векторов движения, информации режима объединения) и расчета результатов внешнего предсказания (например, предсказываемого блока) на основе информации внешнего предсказания с использованием любой подходящей технологии. В некоторых примерах опорные изображения представляют собой декодированные опорные изображения, декодированные на основе кодированной видеоинформации.
[0108] Интра-кодер (622) сконфигурирован для приема отсчетов текущего блока (например, блока обработки), в некоторых случаях для сравнения блока с блоками, уже кодированными в том же изображении, для генерации коэффициентов квантования после преобразования и в некоторых случаях также для генерации информации внутреннего предсказания (например, информации направления внутреннего предсказания в соответствии с одной или более технологий внутреннего кодирования). Согласно примеру, интра-кодер (622) также вычисляет результаты внутреннего предсказания (например, предсказанный блок) на основе информации внутреннего предсказания и опорных блоков в том же изображении.
[0109] Контроллер (621) общего назначения сконфигурирован для определения общих данных управления и для управления другими компонентами видеокодера (603) на основе общих данных управления. В примере контроллер (621) общего назначения определяет режим блока и подает сигнал управления на коммутатор (626) в соответствии с режимом. Например, при работе во внутреннем режиме контроллер (621) общего назначения управляет коммутатором (626) для выбора результата во внутреннем режиме с целью использования его вычислителем (623) остаточных данных и управляет энтропийным кодером (625) для выбора информации внутреннего предсказания и включения ее в битовый поток; и при работе во внешнем режиме контроллер (621) общего назначения управляет коммутатором (626) для выбора результата внешнего предсказания для использования его вычислителем (623) остаточных данных, а также управляет энтропийным кодером (625) для выбора информации внешнего предсказания и включения ее в битовый поток.
[0110] Вычислитель (623) остаточных данных сконфигурирован для вычисления разности (остаточных данных) между принятым блоком и результатами предсказания, выбранными из интра-кодера (622) или интер-кодера (630). Кодер (624) остатка сконфигурирован для работы на основе остаточных данных с целью кодирования остаточных данных для генерации коэффициентов преобразования. Согласно примеру кодер (624) остатка сконфигурирован для преобразования остаточных данных из пространственной области в частотную область и генерации коэффициентов преобразования. Коэффициенты преобразования затем обрабатываются путем квантования для получения квантованных коэффициентов преобразования. В различных вариантах осуществления видеокодер (603) также содержит декодер (628) остаточных данных. Декодер (628) остаточных данных сконфигурирован для выполнения обратного преобразования и генерации декодированных остаточных данных. Декодированные остаточные данные могут подходящим образом использоваться интра-кодером (622) и интер-кодером (630). Например, интер-кодер (630) может генерировать декодированные блоки на основе декодированных остаточных данных и информации внешнего предсказания, и интра-кодер (622) может генерировать декодированные блоки на основе декодированных остаточных данных и информации внутреннего предсказания. Декодированные блоки подходящим образом обрабатываются для генерации декодированных изображений, которые могут буферизироваться в схеме памяти (не показанной на чертеже) и в некоторых примерах использоваться в качестве опорных изображений.
[0111] Энтропийный кодер (625) сконфигурирован для форматирования битового потока с целью включения кодированного блока. Энтропийный кодер (625) сконфигурирован для включения различной информации в соответствии с подходящим стандартом, таким как стандарт HEVC. Например, энтропийный кодер (625) сконфигурирован для включения в битовый поток общих управляющих данных, выбранной информации предсказания (например, информации внутреннего или внешнего предсказания), остаточной информации и другой подходящей информации. Следует отметить, что в соответствии с раскрываемым предметом настоящего изобретения, остаточная информация отсутствует, если блок кодируется в подрежиме объединения либо внешнего режима, либо режима двойного предсказания.
[0112] На фиг.7 показана блок-схема видеодекодера (710) в соответствии с другим вариантом раскрытия настоящего изобретения. Видеодекодер (710) сконфигурирован для приема кодированных изображений, являющихся частью кодированной видеопоследовательности, и декодирования кодированных изображений для генерации восстановленных изображений. Например, видеодекодер (710) используется вместо видеодекодера (310), показанного в примере на фиг. 3.
[0113] В примере, изображенном на фиг. 7, показано, что видеодекодер (710) содержит энтропийный декодер (771), интер-декодер (780), декодер (773) остаточных данных, модуль (774) восстановления и интра-декодер (772), соединенные друг с другом, как показано на фиг. 7.
[0114] Энтропийный декодер (771) может быть сконфигурирован для восстановления из кодированных изображений определенных символов, которые представляют синтаксические элементы, из которых состоит кодированное изображение. Такие символы могут включать в свой состав, например, режим, в котором кодирован блок (такой, например, как внутренний режим, внешний режим, режим двойного предсказания, последние два из них в подрежиме объединения или в другом подрежиме), информацию предсказания (такую, например, как внутреннее предсказание или внешнее предсказание), которая может идентифицировать определенный отсчет или метаданные, используемые для предсказания, выполняемого интра-декодером (772) или интер-декодером (780), соответственно, остаточную информацию в виде, например, квантованных коэффициентов преобразования и т.п. Например, если режимом предсказания является внешний режим или режим двойного предсказания, то информация внешнего предсказания предоставляется интер-декодеру (780), и если режимом предсказания является внутренний режим, то информация внутреннего предсказания предоставляется интра-декодеру (772). Остаточная информация может обрабатываться с помощью обратного квантования и предоставляться декодеру (773) остаточных данных.
[0115] Интер-декодер (780) сконфигурирован для приема информации внешнего предсказания и генерации результатов внешнего предсказания на основе информации внешнего предсказания.
[0116] Интра-декодер (772) сконфигурирован для приема информации внутреннего предсказания и генерации результатов внутреннего предсказания на основе информации внутреннего предсказания.
[0117] Декодер (773) остаточных данных сконфигурирован для выполнения обратного квантования с целью извлечения неквантованных коэффициентов преобразования и обработки неквантованных коэффициентов преобразования для конвертирования остаточных данных из частотной области в пространственную область. Декодеру (773) остаточных данных может также потребоваться определенная управляющая информация (включая параметр квантователя (QP, Quantizer Parameter)), и эта информация может быть представлена энтропийным декодером (771) (пути прохождения данных не показаны, поскольку это может быть только небольшой объем управляющей информации).
[0118] Модуль (774) восстановления сконфигурирован для объединения в пространственной области остаточных данных в виде выходных данных декодера (773) остаточных данных и результатов предсказания (в виде выходных данных модулей внешнего и внутреннего предсказания в зависимости от конкретного случая) для формирования восстановленного блока, который может являться частью восстановленного изображения, которое, в свою очередь, может являться частью восстановленных видеоданных. Следует отметить, что для улучшения качества визуализации могут выполняться другие подходящие операции, такие как операция деблокирования и т.п.
[0119] Следует отметить, что видеокодеры (303), (503) и (603) и видеодекодеры (310), (410) и (710) могут быть реализованы с использованием любой подходящей технологии. Следует отметить, что видеокодеры (303), (503) и (603) и видеодекодеры (310), (410) и (710) могут быть реализованы с использованием одной или более интегральных схем. Согласно другому варианту осуществления видеокодеры (303), (503) и (503) и видеодекодеры (310), (410) и (710) могут быть реализованы с использованием одного или более процессоров, выполняющих программные инструкции.
[0120] II. Разбиение на блоки на основе древовидной структуры
[0121] В соответствии с некоторыми вариантами осуществления CTU разделяется на CU с использованием структуры бинарного дерева квадрантов (QTBT, Quad Tree Binary Tree), называемого деревом кодирования и служащего для адаптации к различным локальным характеристикам отдельных блоков, включенных в CU. Решение о том, какое предсказание - внешнее (временное) или внутреннее (пространственное) -следует применять при кодировании области изображения, может приниматься на уровне CU. Каждая CU также может разделяться на один, два или четыре PU в соответствии с типом разделения PU. Согласно некоторым вариантам осуществления в пределах одной PU применяется одинаковый процесс предсказания, и соответствующая информация передается в декодер на основе PU. После получения остаточного блока путем применения процесса предсказания на основе типа разделения на PU, CU может разбиваться на TU в соответствии с другой структурой дерева квадрантов, схожей со структурой дерева квадрантов, используемой для дерева кодирования для CTU. Согласно некоторым вариантам осуществления PU содержит только одну TU, имеющую ту же форму, что и PU.
[0122] Дерево кодирования для CTU может включать множество типов разбиения, включая CU, PU и TU. Согласно некоторым вариантам осуществления CU или TU имеют только квадратную форму, в то время как PU может быть квадратной или прямоугольной формы для блока с внешним предсказанием. Согласно другим вариантам осуществления разрешены CU, PU и TU прямоугольной формы. На границе изображения может применяться неявное разделение на основе дерева квадрантов таким образом, чтобы для блока сохранялось разделение на основе дерева квадрантов, пока размер разделяемого блока соответствует границе изображения. В соответствии с некоторыми вариантами осуществления неявное разделение означает, что флаг разделения не сигнализируется, но подразумевается. Например, неявное QT означает, что только разделение QT разрешено для граничного блока изображения. Таким образом флаг разделения не сигнализируется на границе изображения. Согласно другому примеру, если на границе изображения разрешено только разделение ВТ, то неявным разделением является бинарное разделение. Согласно некоторым вариантам осуществления, если на границе изображения разрешено как QT, так и ВТ, неявное разделение отсутствует, и способ разделения сигнализируется явным образом.
[0123] В соответствии с некоторыми вариантами осуществления структура QTBT не включает множество типов разбиения (например, QTBT не включает разделение CU, PU и TU) и поддерживает большую гибкость для форм разбиения CU. Например, в структуре блока QTBT CU может иметь либо квадратную, либо прямоугольную форму. На фиг.8А показан пример CTU (800), которая разбивается структурой QTBT. Например, CTU (800) разбивается на четыре равных по размеру подблока CU: (А), (В), (С) и (D). На фиг. 8В показано соответствующее дерево кодирования, иллюстрирующее ветви, относящиеся к подблокам CU: (А), (В), (С) и (D). Сплошными линиями показано разделение на основе дерева квадрантов, а пунктирными линиями - разделение на основе бинарного дерева. Структура бинарного дерева может включать два типа разделения: (i) симметричное горизонтальное разделение и (ii) симметричное вертикальное разделение. Для каждого разделяющегося узла (то есть, не листа) бинарного дерева может сообщаться один флаг, указывающий на то, какой тип разделения (например, горизонтальный или вертикальный) используется, при этом 0 указывает на горизонтальное разделение, а 1 указывает на вертикальное разделение, или наоборот. Для разделения на основе дерева квадрантов тип разделения не указывается, поскольку в этом случае осуществляется как горизонтальное, так и вертикальное разделение блока для формирования 4 подблоков одинакового размера.
[0124] Как показано на фиг. 8А и 8В подблок CU (А) первым разбивается на два подблока путем вертикального разделения, причем левый подблок снова разбивается с помощью другого вертикального разделения. Подблок CU (В) далее разбивается путем горизонтального разделения. Подблок CU (С) далее разбивается путем другого квадрантного разбиения с использованием разделения. Верхний левый подблок подблока-CU (С) разбивается с помощью вертикального разделения с последующим разбиением посредством горизонтального разделения. Кроме того, нижний правый подблок подблока-CU (С) разбивается с помощью горизонтального разделения. Верхний правый и нижний левый подблоки подблока CU (С) далее не разбиваются. Подблок CU (D) далее не разбивается и, таким образом, не включает каких-либо дополнительных концевых узлов в дерево кодирования ниже ветви "D".
[0125] Концевые узлы бинарного дерева могут называться CU, при этом бинарное разделение может использоваться для обработки предсказания и преобразования без какого-либо дополнительного разбиения, и это означает, что размеры CU, PU и TU одинаковы в структуре единиц кодирования QTBT. CU может содержать блоки кодирования (СВ) различных цветовых компонентов. Например, одна CU может содержать один СВ яркости и два СВ цветности в случае слайсов Р и В формата цветности 4:2:0 и иногда - содержать СВ одного компонента (например, одна CU содержит только один СВ яркости или только два СВ цветности в случае I-изображений или I-слайсов). Согласно некоторым вариантам осуществления в I-изображениях или в I-слайсах ширина или высота TU ограничена заданным пределом (например, 64 для яркости и 32 для цветности). Если ширина или высота СВ больше предельного значения, то TU дополнительно разделяется, пока размер TU не станет меньше или равен предельному значению.
[0126] В соответствии с некоторыми вариантами осуществления схема разбиения QTBT включает следующие параметры:
CTU size: размер корневого узла дерева квадрантов;
MinQTSize: минимальный допустимый размер концевого узла дерева квадрантов;
MaxBTSize: максимальный допустимый размер корневого узла бинарного дерева;
MaxBTDepth: максимальная допустимая глубина бинарного дерева;
MinBTSize: минимальный допустимый размер концевого узла бинарного дерева.
[0127] В одном из примеров структуры разбиения QTBT размер CTU устанавливается как 128x128 отсчетов яркости с двумя соответствующими блоками 64x64 отсчетов цветности, значение MinQTSize устанавливается равным 16x16, значение MaxBTSize устанавливается равным 64x64, значение MinBTSize (как для ширины, так и для высоты) устанавливается равным 4x4, и значение MaxBTDepth устанавливается равным 4. Структура разбиения QTBT применима к CTU прежде всего для генерации концевых узлов дерева квадрантов. Размер концевых узлов дерева квадрантов может составлять от 16x16 (то есть, MinQTSize) до 128x128 (то есть, размер CTU). Если размер концевого узла дерева квадрантов составляет 128x128, то концевой узел дерева квадрантов далее не разделяется бинарным деревом, поскольку размер превышает MaxBTSize (то есть, 64x64). С другой стороны, концевой узел дерева квадрантов может далее разбиваться посредством бинарного дерева. Таким образом, концевой узел дерева квадрантов также является корневым узлом для бинарного дерева, и концевой узел дерева квадрантов имеет нулевую глубину бинарного дерева. Если глубина бинарного дерева достигает значения MaxBTDepth (например, 4), то дальнейшее разделение не выполняется. Если ширина узла бинарного дерева равна MinBTSize (например, 4), дальнейшее горизонтальное разделение не выполняется. Аналогично, если высота узла бинарного дерева равна MinBTSize, дальнейшее вертикальное разделение не выполняется. Концевые узлы бинарного дерева далее обрабатываются путем предсказания и преобразования без какого-либо дальнейшего разбиения. В некоторых вариантах осуществления максимальный размер CTU составляет 256x256 отсчетов яркости.
[0128] Структура разбиения QTBT может также поддерживать отдельные структуры QTBT для каждого из компонентов яркости и цветности. Например, для слайсов Р и В СТВ яркости и цветности в одном CTU могут совместно использовать одинаковую структуру QTBT. Однако для I-слайсов СТВ яркости разбивается на CU с использованием структуры QTBT, и СТВ цветности разбиваются на CU цветности с использованием другой структуры QTBT. Таким образом, в этом примере CU в I-слайсе содержит блок кодирования компонента яркости или блоки кодирования двух компонентов цветности, и CU в слайсе Р или В содержит единицы кодирования всех трех компонентов цветности.
[0129] Согласно некоторым вариантам осуществления внешнее предсказание для небольших блоков ограничивается для снижения требований к доступу к памяти при компенсации движения, в результате двойное предсказание не поддерживается для блоков 4x8 и 8x4, и внешнее предсказание не поддерживается для блоков 4x4. Согласно другим вариантам осуществления схема разбиения QTBT не включает эти ограничения.
[0130] В соответствии с некоторыми вариантами осуществления структура многотипного дерева (МТТ, Multi-type-tree) включает (i) разделение дерева квадрантов, (ii) разделение бинарного дерева и (iii) горизонтальное и вертикальное центрально-боковые тернарные деревья. На фиг. 9А показан вариант осуществления вертикального центрально-бокового тернарного дерева, а на фиг. 9В показан пример горизонтального центрально-бокового тернарного дерева. По сравнению со структурой QTBT структура МТТ может представлять собой более гибкое дерево, поскольку разрешены дополнительные структуры.
[0131] Разбиение тернарного дерева обладает значительными преимуществами, такими как обеспечение дополнения к разбиению дерева квадрантов и бинарного дерева, причем при разбиении тернарного дерева возможно захватывать объекты, расположенные в центре блока, в котором дерево квадрантов и бинарное дерево разделяются по центру блока. Другое преимущество разбиения тернарного дерева заключается в том, что ширина и высота секций предлагаемых тернарных деревьев представляют собой степень 2, поэтому не требуется проводить дополнительных преобразований. Двухуровневое дерево преимущественно позволяет снизить степень
D
сложности. Например, сложность обхода дерева составляет T, где Т обозначает количество типов разделения, a D - глубина дерева.
[0132] III. Форматы YUV
[0133] Существуют различные форматы YUV или форматы цветности (форматы отсчетов цветности), которые показаны на фиг. 10A-10D. Каждый формат цветности может определять различные сетки дискретизации или понижающей дискретизации различных компонентов цветности.
[0134] IV. Цветовые форматы
[0135] Цвет отсчетов видео может быть представлен в различных цветовых форматах или цветовых пространствах (например, YCbCr или RGB). В формате RGB три компонента (то есть, R, G и В) строго коррелированы, что приводит к статистической избыточности между тремя цветовыми компонентами. Цветовое представление отсчетов видеосигнала может преобразовываться в другое цветовое пространство с использованием линейных преобразований. Такая операция или процесс может называться преобразованием цветового пространства.
[0136] Преобразование цветового пространства RGB в цветовое пространство YUV может выполняться следующим образом:
Уравнение (1): Y=((66 * R+129 * G+25 * В+128)>>8)+16
Уравнение (2): U=((-38 * R - 74 * G+112 * В+128)>>8)+128
Уравнение (3): V=((112 * R - 94 * G - 18 * В+128)>>8)+128
[0137] В альтернативном варианте преобразование цветового пространства RGB в цветовое пространство YUV может выполняться следующим образом:
Уравнение (4): Y=round (0.256788 * R + 0.504129 * G+0.097906 * В)+16
Уравнение (5): U=round (-0.148223 * R - 0.290993 * G+0.439216 * В)+128
Уравнение (6): V=round (0.439216 * R - 0.367788 * G - 0.071427 * В)+128
[0138] V. Адаптивное преобразование цвета
[0139] Варианты раскрытия настоящего изобретения могут использоваться отдельно или в сочетании друг с другом в любом порядке. Кроме того, каждый из способов, кодеров и декодеров, соответствующих раскрытию настоящего изобретения, могут быть реализованы схемой обработки (например, одним или более процессорами или одной или более интегральными схемами). В одном из примеров один или более процессоров исполняют программу, записанную на машиночитаемом носителе. В соответствии с вариантами раскрытия настоящего изобретения термин блок может интерпретироваться как блок предсказания, блок кодирования или единица кодирования (то есть, CU).
[0140] В соответствии с вариантами раскрытия настоящего изобретения термин компонент яркости может относиться к любому компоненту цвета, кодированному как первый компонент в порядке кодирования (например, красный (Red) или зеленый (Green) компонент цветности). Кроме того, в соответствии с вариантами раскрытия настоящего изобретения термин компонент цветности может относиться к любому компоненту цвета, который не кодирован как первый компонент в порядке кодирования. Например, второй или третий компонент может называться компонентом цветности.
[0141] В некоторых вариантах осуществления для эффективного кодирования содержимого видеосигнала RGB для управления различными характеристиками блоков изображений может применяться кольцевое преобразование цвета (также называемое преобразованием цветового пространства). Поскольку преобразование цвета может использоваться адаптивно для различных CU, преобразование цвета в качестве инструмента кодирования может называться адаптивным преобразованием цвета (ACT, Adaptive Color Transform). В некоторых примерах ACT может функционировать в области остаточных данных. Для указания на использование ACT может передаваться флаг уровня CU.
[0142] Например, большая часть экранного содержимого захватывается в цветовом пространстве RGB. Для блока изображения в цветовом пространстве RGB обычно может соблюдаться строгая корреляция между различными компонентами цвета так, чтобы преобразование цветового пространства было пригодно для устранения избыточности межцветовых компонентов. Однако для содержимого экрана может существовать множество блоков изображений, характеризующихся различными признаками и очень насыщенными цветами, что приводит к уменьшению корреляции между компонентами цвета. Для этих блоков может быть более эффективным кодирование непосредственно в цветовом пространстве RGB. Соответственно, преобразование цветового пространства может адаптивно применяться к блокам изображений с различными характеристиками.
[0143] Например, прямое преобразование цвета ACT (например, преобразование, выполняемое кодером) может осуществляться следующим образом для конвертирования блока изображения в цветовом пространстве RGB в цветовое пространство YCoCg:
Уравнение (7):
[0144] Обратное преобразование цвета ACT (например, обратное преобразование, выполняемое декодером) может осуществляться следующим образом: Уравнение (8):
[0145] На фиг. 11 показан пример кодера (1100) для выполнения преобразования цветового пространства. На фиг. 11 выполнение предсказания предшествует применению преобразования цветового пространства. Например, внешнее предсказание или внутреннее предсказание выполняется с текущим блоком для формирования остаточного сигнала. Остаточный сигнал подается в блок (1102) прямого преобразования цветового пространства для выполнения прямого преобразования, например, по формуле (7). Выходные данные прямого преобразования цветового пространства подаются в блок (1102) предсказания кросс-компонента (ССР, Cross Component Prediction). Выходные данные блока (1102) (ССР) подаются в блок (1106) преобразования (Т, Transform) для выполнения такого преобразования как, например, дискретное косинусное преобразование (DCT, Discrete Cosine Transform), с целью генерации коэффициентов преобразования. Выходные данные блока (1106) преобразования подаются на квантователь (1108) (Q, Quantizer) для формирования коэффициентов квантования. Коэффициенты квантования подаются в блок (1110) энтропийного кодера для преобразования битов квантованных коэффициентов в биты битового потока. Блок (1110) энтропийного кодера может принимать информацию о режиме внутреннего предсказания или о векторе движения (MV), связанную с текущим блоком, и энтропийно кодировать эту информацию в битовый поток.
[0146] Кодер (1100) может также содержать компоненты для восстановления остаточного сигнала. Например, квантованные коэффициенты могут предоставляться блоку (1112) обратного квантователя (IQ, Inverse Quantizer). Выходные данные обратного квантователя (IQ) могут подаваться в блок (1114) обратного преобразования (IT, Inverse Transform). Выходные данные блока (1114) обратного преобразования (IT) могут подаваться в блок (1116) обратного ССР. Выходные данные блока (1116) обратного ССР могут подаваться в блок (1118) обратного преобразования цветового пространства, где может выполняться обратное преобразование цвета, например, преобразование по формуле (8) для генерации восстановленного остаточного сигнала.
[0147] На фиг. 12 показан пример декодера (1200), служащего для преобразования битового потока в остаточный сигнал. Битовый поток, показанный на фиг. 12, может представлять собой битовый поток, формируемый энтропийным кодером (1110), пример которого показан на фиг. 11. Битовый поток может поступать в блок (1202) энтропийного декодера. Выходные данные блока (1202) энтропийного декодера могут подаваться в блок (1204) обратного квантователя (IQ). Выходные данные блока (1204) обратного квантователя (IQ) могут подаваться в блок (1206) обратного преобразования (IT). Выходные данные блока (1206) обратного преобразования (IT) могут подаваться в блок (1208) обратного ССР. Выходные данные блока (1208) обратного ССР могут подаваться в блок (1210) обратного преобразования цветового пространства, где может выполняться обратное преобразование цвета, например, преобразование по формуле (8) для формирования остаточного сигнала. Внутреннее предсказание или внешнее предсказание может выполняться для генерации блока предсказания, который объединяется с остаточным сигналом для восстановления текущего блока. Блоки, раскрытые на фиг. 11 и 12, могут быть реализованы в виде программного обеспечения, выполняемого процессором или схемой, такой как специализированная интегральная схема, разработанная для выполнения функций каждого блока.
[0148] В примерах на фиг. 11 и 12 операция ССР может дополнительно выполняться в пространственной области остаточных данных. Например, остаточные данные второго или третьего компонента цвета (также называемых компонентами цветности) могут предсказываться на основе остаточных данных первого компонента цвета (также называемого компонентом яркости) в ССР. Если ACT не используется, то ССР может существенно улучшить эффективность кодирования, если видеоданные кодирования представлены в цветовом формате RGB. Если ACT используется, то ССР может по-прежнему применяться в сочетании с ACT для улучшения эффективности кодирования видеосигналов в цветовом пространстве RGB.
[0149] В примерах на фиг. 11 и 12 операция преобразования может дополнительно выполняться, например, в зависимости от характеристик CU. Например, для определенного типа экранного содержимого отказ от использования операции преобразования может положительно повлиять на эффективность кодирования по сравнению со случаем использования преобразования. Например, флаг пропуска преобразования уровня CU может сообщаться для индикации, пропускается ли преобразование для CU. Аналогичным образом, операция квантования также может являться необязательной. Например, если для некоторых типов содержимого видеосигнала сконфигурирован режим работы без потерь (медицинские изображения, беспроводное локальное совместное использование экрана), то преобразование и квантование может опускаться для определенных CU. Например, на уровне CU может сообщаться флаг пропуска преобразования и квантования CU для индикации применения режима без потерь.
[0150] Согласно некоторым вариантам осуществления, если максимальный размер преобразования не меньше ширины или длины одной единицы кодирования (CU), то один концевой узел CU также используется в качестве элемента обработки преобразования. Например, флаг ACT сигнализируется для одной CU с целью выбора цветового пространства кодирования его остаточных сигналов. Кроме того, для CU с интер- и интра- копией блоков (IBС, Inter and Intra Block Copy) ACT разрешается, если существует по меньшей мере один ненулевой коэффициент в CU. Для внутренне кодированных CU преобразование ACT разрешается, если компоненты цветности выбирают тот же режим внутреннего предсказания, что и компонент яркости, то есть режим DM. Согласно варианту осуществления для компенсации изменения динамического диапазона остаточных сигналов до и после преобразования цвета применяются подстройки QP, например (-5, -5, -3), для остатков преобразования.
[0151] Поскольку при прямом и обратном преобразовании цвета требуется доступ к остаткам всех трех компонентов, согласно некоторым вариантам осуществления, ACT запрещается в некоторых сценариях, в которых доступны не все остатки трех компонентов. Например, если применяется разбиение отдельного дерева, то отсчеты яркости и цветности в пределах одной CTU разбиваются на три различные структуры. В результате CU в дереве яркости содержится только компонент яркости, и CU в дереве цветности содержат только два компонента цветности. Если применяется внутреннее предсказание с подразбиением (ISP, Intra Sub-partition Prediction), то ISP применяется к яркости, в то время как сигналы цветности кодируются без разделения. За исключением последних подразбиений ISP, другие подразбиения содержат только компонент яркости. Соответственно, ACT может запрещаться для разбиения отдельного дерева (дуального дерева) и ISP.
[0152] VI. Линейная кросс-компонентная модель (CCLM, Cross-Component Linear Model)
[0153] Для компонента цветности внутренне кодированной PU кодер может выбрать наилучшие режимы предсказания цветности из 8 режимов, включая плоский, DC, горизонтальный, вертикальный, непосредственную копию режима внутреннего предсказания (DM) на основе компонента яркости, левую и верхнюю линейную кросс-компонентную модель (LT CCLM, Left and Top Cross-component Linear Mode), левую линейную кросс-компонентную модель (L CCLM, Left Cross-component Linear Mode) и верхнюю линейную кросс-компонентную модель (T CCLM, Top Cross-component Linear Mode). LT CCLM, L CCLM, и T CCLM могут разделяться на группы линейного кросс-компонентного режима (CCLM, Cross-component Linear Mode). Разница между этими 3 режимами состоит в том, что для вывода параметров α и β могут использоваться различные области соседних отсчетов. В случае LT_CCLM для вывода параметров α и β могут использоваться как левые, так и верхние соседние отсчеты. В случае L_CCLM для вывод а параметров α и β могут использоваться только левые соседние отсчеты. В случае T_CCLM для вывода параметров α и βр могут использоваться только верхние соседние отсчеты.
[0154] Режимы предсказания линейной кросс-компонентной модели (CCLM) могут использоваться для уменьшения кросс-компонентной избыточности, при этом отсчеты цветности предсказываются на основе восстановленных отсчетов яркости того же СU с использованием типовой линейной модели следующим образом:
Уравнение (9): ;
c
L
где pred(i,j) представляет предсказываемые отсчеты цветности в CU, и rec'(i,j) представляет восстановленные отсчеты яркости с пониженной дискретизацией той же CU. Параметры α и β могут быть получены с помощью линейного выражения, которое также может называться способом минимакса. Поскольку этот вычислительный процесс может выполняться как часть процесса декодирования, не только просто как операция поиска кодера, синтаксис для передачи значений α и β может не использоваться.
[0155] Для формата 4:2:0 цветности в процессе предсказания CCLM может применяться интерполяционный фильтр с шестью отводами для получения отсчета яркости с пониженной дискретизацией, соответствующего отсчету цветности, как показано на фиг. 10B-10D. С помощью формулы отсчет Rec'L[x, у] яркости с пониженной дискретизацией вычисляется на основе восстановленных отсчетов яркости. Отсчеты яркости с пониженной дискретизацией могут использоваться для нахождения максимальных и минимальных точек отсчетов. 2 точки (пара яркость и цветность) (А, В) могут представлять собой минимальное и максимальное значения в наборе соседних отсчетов яркости, как показано на фиг. 13.
[0156] На фиг. 13 показано, что параметры α и β линейной модели могут быть получены в соответствии со следующими выражениями:
Уравнение (10):
А
A
Уравнение (11): β=γ - αх
[0157] Операция деления в примере избегается путем использования умножения и операции сдвига. Для хранения предварительно вычисленных значений может использоваться одна справочная таблица (LUT, Look-Up Table), и абсолютные значения разности между максимальным и минимальным отсчетами яркости могут использоваться для указания индекса записи в LUT. Размер LUT может составлять, например, 512.
[0158] На фиг. 14А и 14В показан пример местоположений отсчетов, используемых для вывода значений α и β в LT_CCLM. В режиме Т _CCLM, в некоторых примерах, только верхние соседние отсчеты (включая 2 * W отсчетов) используются для вычисления коэффициентов линейной модели. На фиг. 15А и 15В показан пример местоположений отсчетов, используемых для вывода значений α и β в Т_CCLM.
[0159] В режиме L_CCLM, в некоторых примерах, только левые соседние отсчеты (включая 2 * Н отсчетов) используются для вычисления коэффициентов линейной модели. На фиг. 16А и 16В показан пример местоположений отсчетов, используемых для вывода значений α и β в L_CCLM.
[0160] Режим предсказания CCLM может также включать предсказание между двумя компонентами цветности (то есть, компонент Сr предсказывается на основе компонента Сb). Вместо использования восстановленного сигнала отсчетов, предсказание Cb-Сr в CCLM может применяться в остаточной области. Предсказание Cb-Cr в CCLM может быть реализовано путем добавления взвешенной восстановленной разности Сb к исходному внутреннему предсказанию Сr для формирования окончательного предсказания Сr:
Уравнение (12):
[0161] Режим предсказания "яркость-цветность" в CCLM может добавляться в виде одного дополнительного режима внутреннего предсказания цветности. На стороне кодера добавляются одна или более проверок стоимости "скорость передачи -искажения" (RD, Rate Distortion) для компонентов цветности с целью выбора режима внутреннего предсказания цветности. Если для компонентов цветности CU используются режимы внутреннего предсказания, отличные от "яркость-цветность" в CCLM, то предсказание Cb-Cr в CCLM используется для предсказания компонента Сr.
[0162] CCLM множественной модели (MMLM, Multiple Model CCLM) является другим расширением CCLM, в котором может быть более одной модели (например, две или более моделей). В MMLM соседние отсчеты яркости и соседние отсчеты цветности текущего блока могут разделяться на две группы, при этом каждая группа может использоваться в качестве обучающей последовательности для получения линейной модели (то есть, конкретные значения α и β выводятся для конкретной группы). Кроме того, отсчеты текущего блока яркости могут также классифицироваться на основе того же правила для классификации соседних отсчетов яркости.
[0163] На фиг. 17 показан пример разделения соседних отсчетов на две группы. Пороговое значение, показанное на фиг. 17, может рассчитываться как среднее значение соседних восстановленных отсчетов яркости. Соседний отсчет, для которого Rec'L[x,y]Threshold (пороговое значение), классифицируется как группа 1; в то время как соседний отсчет, для которого Rec'L[x,y]>Threshold (пороговое значение), классифицируется как группа 2.
Уравнение (13):
[0164] VII. Примеры ACT, применяемые для процесса предсказания
[0165] В соответствии с некоторыми вариантами осуществления преобразование цвета (такое как ACT) может применяться перед выполнением в кодере процесса предсказания и после процесса восстановления, выполняемого в декодере. В кодере ACT может выполняться перед предсказанием (например, внешним предсказанием, внутренним предсказанием), и опорные отсчеты, а также входные исходные отсчеты могут преобразовываться в другое цветовое пространство, если ACT применяется для текущей CU. Для восстановления пикселей в декодере, если ACT применяется к восстанавливаемому блоку, опорные отсчеты могут преобразовываться в альтернативное цветовое пространство перед использованием для предсказания, и восстановленные отсчеты могут затем обратно преобразовываться в исходное цветовое пространство.
[0166] На фиг. 18 показан вариант осуществления процессов кодера и декодера при использовании ACT. Блоки, показанные на фиг. 18, могут быть реализованы в виде программного обеспечения, выполняемого процессором или схемой, такой как специализированная интегральная схема, разработанная для выполнения функций каждого блока, раскрываемого на фиг. 18. В кодере блоки (1800) и (1804) ACT выполняют преобразование ACT опорного сигнала и входного сигнала, соответственно. Преобразование ACT, выполняемое в кодере блоками (1800) и (1804) ACT, может представлять собой преобразование ACT, выполняемое в соответствии с выражением (7). Выходные данные блока (1800) ACT подаются в блок (1802) предсказания (Р). Кроме того, в блок (1806) предсказания (Р) подается опорный сигнал. Блоки (1802) и (1806) предсказания (Р) могут выполнять внешнее предсказание или внутреннее предсказание. Блок 1808 преобразования (Т) принимает один из следующих сигналов: (i) разность между выходом блока (1802) предсказания (Р) и выходом блока (1804) ACT и (ii) разность между выходом блока (1806) предсказания и входным сигналом. Блок (1808) преобразования (Т) может выполнять операцию преобразования, такую как дискретное косинусное преобразование (DCT). Выходные данные блока (1808) преобразования (Т) подаются на квантователь (1810) (Q) для выполнения операции квантования с целью формирования набора коэффициентов.
[0167] В декодере блок (1812) обратного квантователя (IQ) принимает коэффициенты для выполнения процесса обратного квантования. Выходные данные блока (1812) обратного квантователя (IQ) подаются в блок (1814) обратного преобразования (IT) для выполнения обратного преобразования. Блок (1820) ACT принимает сумму выхода блока (1818) предсказания (Р) и выхода блока (1814) обратного преобразования (IT). Блок (1816) ACT принимает опорный сигнал и выполняет ACT для генерации входного сигнала для блока (1818) предсказания (Р). Блок (1816) ACT может выполнять преобразование цвета, например, в соответствии с выражением (7). Блок (1820) ACT может выполнять обратное преобразование цвета, например, в соответствии с выражением (8). Блоки (1818) и (1822) предсказания (Р) могут выполнять внешнее предсказание или внутреннее предсказание. Восстановленный исходный сигнал предоставляется в виде выхода блока (1820) ACT или комбинации выходов блока (1822) предсказания (Р) и блока (1814) обратного преобразования (IT).
[0168] VIII. Модифицированные уравнения преобразования цвета
[0169] В соответствии с некоторыми вариантами осуществления в ходе выполнения процесса ACT 2-й и 3-й цветовые компоненты (компоненты цветности) могут также смещаться на постоянное значение " с" после и перед преобразованием цвета для прямого и обратного преобразования, соответственно. Уравнение (14) иллюстрирует модифицированное прямое преобразование, а уравнение (15) иллюстрирует модифицированное обратное (то есть, инверсное) преобразование.
Уравнение (15):
Уравнение (16):
[0170] В соответствии с некоторыми вариантами осуществления константа "с" определяется как l«(bitDepth-1), где bitDepth обозначает битовую глубину входного отсчета.
[0171] IX. Примеры взаимодействия между ACT и другими средствами кодирования
[0172] В некоторых вариантах осуществления для разрешения внутриконтурного преобразования цвета с целью эффективного кодирования входного видеосигнала с использованием фopмaтa RGB необходимо управлять взаимодействиями между преобразованием цвета (в области остатка или перед предсказанием) и несколькими средствами кодирования. Примерами таких средств кодирования являются линейная кросс-компонентная мод ель (CCLM) и разбиение дуального дерева. Варианты раскрытия настоящего изобретения обеспечивают предпочтительные характеристики управления преобразованием цвета с учетом определенных средств кодирования.
[0173] В некоторых вариантах осуществления преобразование цвета применимо только в том случае, если различные компоненты цвета кодированы с использованием одинакового дерева разбиения элементов преобразования. Согласно одному из вариантов осуществления, если дуальное дерево применимо на интра-слайсе, преобразование цвета применимо только для интер-слайса.
[0174] В некоторых вариантах осуществления, если применимо преобразование цвета (например, в пространственной области остатка), режим CCLM не применяется или не сигнализируется, поскольку генерация остаточных отсчетов одного компонента зависит от восстановления другого компонента. В другом варианте осуществления, если используется режим CCLM, преобразование цвета (например, в остаточной области) не применяется или не сигнализируется. В одном из вариантов осуществления, если применимо преобразование цвета на внутренне кодированных остаточных отсчетах, режим CCLM не применяется или не сигнализируется, поскольку генерация остаточных отсчетов одного компонента зависит от восстановления другого компонента. В одном из вариантов осуществления, если применяется преобразование цвета на остаточных отсчетах и используется режим CCLM, преобразование цвета (например, перед предсказанием) не применяется или не сигнализируется.
[0175] Согласно некоторым вариантам осуществления информация о преобразовании цвета сигнализируется для каждой СTU, которая является наибольшей единицей кодирования (CU). Согласно некоторым вариантам осуществления информация о преобразовании цвета сигнализируется и применяется только для внутренне кодированных блоков или только для внешне кодированных блоков. В некоторых вариантах осуществления, если преобразование цвета применимо, дуальное дерево не применяется (то есть, различные цветовые компоненты совместно используют одинаковое разбиение на элементы преобразования).
[0176] Согласно некоторым вариантам осуществления, для текущей CU, если битовая глубина отсчетов массива отсчетов яркости, обозначаемая как BitDepth Y, отличается от битовой глубины отсчетов массива отсчетов цветности, обозначаемой как BitDepth С, преобразование цвета (например, в пространственной области остатка или перед предсказанием) не используется на CU. Например, текущая CU может разбиваться на основе изображения с цветовым форматом 4:4:4 (цветовой формат RGB), однако, компонент яркости и компонент цветности представляются с различной битовой глубиной. Например, битовая глубина компонента яркости может составлять 10 бит, в то время как битовая глубина компонента цветности может составлять 8 бит. Преобразование цвета путем применения различных выражений преобразования цвета (или выражений преобразования цветового пространства), раскрытое в этом описании, может быть неэффективно для уменьшения статистической зависимости между компонентами яркости и цветности. В таком сценарии декодер может определять, что преобразование цвета не используется для текущей CU, если принят синтаксический элемент(ы), указывающий различную битовую глубину для различных компонентов цвета.
[0177] Согласно варианту осуществления, если все флаги пропуска преобразования, сообщаемые на уровне TU (или уровне CU) для каждого индекса компонента цвета в текущей CU, равны 1 или 0, QP для каждого компонента текущей CU равен 4, и битовая глубина компонентов яркости и цветности различается, то преобразование цвета (в пространственной области остатка или перед предсказанием) не используется для CU. Например, флаги пропуска преобразования для компонентов яркости или цветности указывают, применяется ли преобразование (например, преобразование DCT) к соответствующей единице преобразования. Флаг пропуска преобразования, равный 1, указывает на то, что преобразование не применяется к соответствующей единице преобразования. Флаг пропуска преобразования, равный О, указывает на то, что решение о применении преобразования к соответствующей единице преобразования зависит от других синтаксических элементов.
[0178] Например, если флаг пропуска преобразования отсутствует, то делаются следующие предположения. Если флаг основанной на блоках дифференциальной импульсно-кодовой модуляции (BDPCM) соответствующего компонента цвета равен 1, подразумевается, что флаг пропуска преобразования равен 1. В противном случае (флаг BDPCM равен 0), подразумевается, что флаг пропуска преобразования равен 0. Например, флаг BDPCM, равный 1, указывает на то, что BDPCM применяется к текущим единицам кодирования цветности или яркости, то есть преобразование опускается. Флаг BDPCM, равный 0, указывает на то, что BDPCM не применяется к текущим единицам кодирования цветности или яркости. Например, если флаг BDPCM отсутствует, то подразумевается, что флаг BDPCM равен 0.
[0179] Например, если QP для каждого компонента CU равен 4, то соответствующий шаг квантования для коэффициентов преобразования квантования может принимать значение 1. В результате после операции квантования значения исходных коэффициентов преобразования не изменяются. Соответственно, значение QP 4 означает использование режима без потерь.
[0180] Согласно варианту осуществления, если все флаги пропуска преобразования, сообщаемые на уровне TU (или уровне CU) для каждого индекса компонента цвета для текущей CU, равны 1 или 0, и QP для каждого компонента текущей CU равен 4, преобразование цвета (в пространственной области остатка или перед предсказанием) не используется для текущей CU.
[0181] Согласно варианту осуществления, если все флаги пропуска преобразования, сообщаемые на уровне TU (или уровне CU) для каждого индекса компонента цвета для текущей CU, равны 1 или 0, преобразование цвета (в пространственной области остатка или перед предсказанием) не используется для текущей CU.
[0182] Согласно некоторым вариантам осуществления для обработки кодирования или декодирования поддерживаются два варианта преобразования цветового пространства. Кодер может выбрать один из двух вариантов для выполнения преобразования цвета, например, на основе оценки стоимости "скорость-искажения", и сообщить о выборе в битовом потоке. Либо кодер может сообщить декодеру (например, путем передачи флага) о том, что для CU применяется преобразование цвета. Декодер может определить, какой из двух вариантов используется для CU, на основе набора условий. Информация об этих условиях может быть получена или выведена на основе одного или более синтаксических элементов, передаваемых в битовом потоке.
[0183] В некоторых примерах обратное преобразование цветового пространства в двух вариантах преобразования цвета может быть определено следующим образом:
Вариант 1
Уравнение (17): tmp=rY[х][у] (rCb[х][у]>>1)
Уравнение (18): rY[х][у]=tmp+rCb[х][у]
Уравнение (19): rCb[х][у]=tmp (rCr[х][у]>>1)
Уравнение (20): rСr[х][у]=rCb[х][у]+rСr[х][у]
Вариант 2
Уравнение (21): tmp=rY[х][у]-rCb[х][у]
Уравнение (22): rY[х][у]=rY[х][у]+rCb[х][у]
Уравнение (23): rCb[х][у]=tmp-rСr[х][у]
Уравнение (24): rСr[х] [у]=tmp+rСr[х][у],
где входными данными для каждого варианта преобразования цвета могут быть массивы остаточных отсчетов: массив остаточных отсчетов яркости остаточного блока яркости, обозначаемый как rY, массив остаточных отсчетов цветности первого остаточного блока цветности, обозначаемый как rСb, и массив остаточных отсчетов цветности второго остаточного блока цветности, обозначаемый как rCr. [х][у] указывают координаты остаточных отсчетов в соответствующем остаточном блоке. Например, х может представлять собой целое число в диапазоне от 0 до значения ширины блока минус 1, и у может представлять собой целое число в диапазоне от 0 до значения высоты блока минус 1.
[0184] Например, два варианта преобразования цвета, вариант 1 и вариант 2, могут использоваться в блоке (1210) обратного преобразования цветового пространства, показанном на фиг. 12, для преобразования остаточных блоков яркости и цветности в модифицированную версию остаточных блоков яркости и цветности.
[0185] Согласно раскрытию настоящего изобретения, преобразование цвета, соответствующее первому варианту, то есть варианту 1, может подходить для обработки CU без потерь, в то время как преобразование цвета, соответствующее второму варианту, то есть варианту 2, может подходить для обработки CU с потерями. Например, для CU с разрешенным режимом без потерь (например, сигнализируется или интерпретируется флаг пропуска преобразования и квантования, равный 1) преобразование цвета согласно варианту 1 может обеспечивать лучший эффект декорреляции по сравнению с преобразованием цвета согласно варианту 2.
[0186] Согласно варианту осуществления для текущей CU, если на уровне CU применяется и сигнализируется преобразование цвета, все флаги пропуска преобразования, сообщаемые на уровне CU (или на уровне TU) для каждого индекса компонента, равны 1, и QP каждого компонента текущей CU равен 4, то можно определить, что для CU возможно применить преобразование цвета согласно варианту 1. Например, флаг разрешения преобразования цвета на уровне CU может приниматься в декодере из битового потока. Флаг разрешения преобразования цвета, равный 1, указывает на то, что декодированные остаточные данные текущей единицы кодирования применимы с использованием преобразования цветового пространства. Флаг разрешения преобразования цвета, равный 0, указывает на то, что декодированные остаточные данные текущей единицы кодирования обработаны без преобразования цветового пространства. Согласно варианту осуществления, если флаг разрешения преобразования цвета отсутствует, предполагается, что флаг разрешения преобразования цвета должен быть равен 0. Один или более синтаксических элементов, указывающих на то, что значение QP равно 4, также могут приниматься в битовом потоке. На основе значений флага разрешения преобразования цвета на уровне CU, флага пропуска преобразования и значения QP декодер может определить, что к текущей CU применяется преобразование цвета согласно варианту 1.
[0187] В соответствии с вариантом осуществления, для текущей CU, если на уровне CU применяется и сигнализируется преобразование цвета, и по меньшей мере один из флагов пропуска преобразования, сообщаемых на уровне CU (или на уровне TU) для каждого индекса компонента, не равен 1, можно определить, что для текущей CU применяется преобразование цвета согласно варианту 2. В соответствии с вариантом осуществления, для текущей CU, если на уровне CU применяется и сигнализируется преобразование цвета, и QP одного из компонентов текущей CU не равен 4, можно определить, что для текущей CU применяется преобразование цвета согласно варианту 2.
[0188] В соответствии с вариантом осуществления, для текущей CU, если на уровне CU применяется и сигнализируется преобразование цвета, и все флаги пропуска преобразования, сообщаемые на уровне CU для каждого индекса компонента, равны 1, можно определить, что для текущей CU применяется преобразование цвета согласно варианту 1.
[0189] Согласно варианту осуществления, только вариант 1 преобразования цвета применим для CTU, слайса, видеопоследовательности и т.п. Вариант 2 преобразования цвета не используется. Согласно варианту осуществления, только вариант 1 преобразования цвета применим для CTU, слайса, видеопоследовательности и т.п., независимо от значений флагов обхода преобразования и квантования. Например, флаг обхода преобразования и квантования, равный 1, указывает на обход преобразования и квантования для текущей CU. Таким образом, текущий CU может обрабатываться в режиме без потерь. Флаг обхода преобразования и квантования, равный 0, указывает на то, что преобразование и квантование не блокируется для текущей CU, или на то, что решение об обходе преобразования и квантования для текущей CU зависит от другой информации.
[0190] Согласно варианту осуществления, выбор варианта преобразования цвета (вариант 1 или вариант 2) зависит от флага(-ов) пропуска преобразования и/или флага(-ов) BDPCM текущей CU. Например, выбор варианта преобразования цвета может зависеть от флагов пропуска преобразования каждого компонента цвета текущей CU, как описано выше.
[0191] Например, выбор варианта преобразования цвета может зависеть от флага BDPCM текущей CU. Например, если флаг BDPCM указывает на применение режима BDPCM к компонентам яркости или цветности текущей CU, то можно определить, что обработка преобразования опускается для соответствующего компонента яркости или цветности. С другой стороны, если флаг BDPCM указывает на то, что режим BDPCM не применяется к компонентам яркости или цветности текущей CU, то можно определить, что преобразование применяется для соответствующего компонента яркости или цветности. Флаги пропуска преобразования, соответственно, могут интерпретироваться как ноль или единица. Соответственно, выбор варианта преобразования цвета, как описано выше, может зависеть от флагов пропуска преобразования каждого компонента цвета с использованием интерпретируемых значений.
[0192] Например, режим BDPCM используется для обработки текущей CU. В процессе предсказания текущего пикселя X, слева от которого находится соседний пиксель А, сверху - соседний пиксель В и слева внизу - соседний пиксель С, предсказание Р(Х) может определяться следующим образом:
В процессе предсказания используются нефильтрованные опорные пиксели в случае предсказания верхнего ряда и левого столбца текущей CU. Затем в процессе предсказания используются восстановленные пиксели для оставшейся части текущей CU. Пиксели обрабатываются в порядке растровой развертки в пределах СU. Ошибки предсказания затем могут квантоваться в пространственной области без преобразования с последующим энтропийным кодированием. Например, флаг BDPCM может передаваться на уровне CU для индикации, используется ли регулярное внутреннее кодирование или BDPCM.
[0193] X. Примеры процесса декодирования с преобразованием цвета
[0194] На фиг. 19 показан вариант осуществления процесса (1900), выполняемого декодером, таким как декодер (710). Процесс (1900) может начинаться с шага (S1901), после которого выполняется шаг (S1910).
[0195] На шаге (S1910) синтаксический элемент может приниматься из битового поток а кодированных видеоданных. Например, синтаксический элемент может представлять соб ой флаг разрешения преобразования цвета на уровне CU, указывающий на то, что остаточные блоки текущей CU обработаны с использованием преобразования цветового пространства. Остаточные блоки текущей CU могут включать остаточный блок яркости, первый остаточный блок цветности и второй остаточный блок цветности.
[0196] На шаге (S1920) в ответ на прием синтаксического элемента, указывающего на то, что остаточные блоки текущей CU обработаны с использованием преобразования цветового пространства, может быть выбран один из двух вариантов уравнений преобразования цветового пространства. Например, два варианта уравнений преобразования цветового пространства могут соответствовать варианту 1 и варианту 2 преобразования цветового пространства, представленным выражениями (17)-(20) и выражениями (21)-(24). В других примерах два варианта преобразования цветового пространства могут принимать другие формы, соответствующие другим выражениями преобразования цвета.
[0197] Например, один из двух вариантов уравнений преобразования цветового пространства может выбираться в соответствии со значением флага пропуска преобразования, соответствующего каждому из остаточных блоков текущей CU. Флаги пропуска преобразования могут приниматься из битового потока кодированных видеоданных. С другой стороны, флаги пропуска преобразования могут интерпретироваться на основе другой информации, если флаги пропуска преобразования не сообщаются в битовом потоке кодированных видеоданных.
[0198] Например, один из двух вариантов уравнений преобразования цветового пространства может выбираться в соответствии со значением QP каждого из остаточных блоков текущей CU. Например, если значение QP равно 4 и флаги пропуска преобразования каждого из остаточных блоков равны 1, то может быть выбран вариант 1 преобразования цвета. Если значение QP не равно 4, то может быть выбран вариант 2 преобразования цвета.
[0199] Например, выбор одного из двух вариантов преобразования цвета может зависеть от флага BDPCM текущей CU. Например, если флаг BDPCM указывает на то, что к компоненту цвета текущей CU применяется режим BDPCM, флаг пропуска преобразования этого компонента цвета текущей CU может интерпретироваться как флаг, принимающий значение 1. Выбор одного из двух вариантов может основываться на значении флага пропуска преобразования в сочетании со значениями флагов других компонентов цвета текущей CU.
[0200] На шаге (S1930) обратное преобразование цветового пространства с использованием выбранного варианта уравнений преобразования цветового пространства может применяться к остаточным блокам текущей CU для генерации модифицированных версий остаточных блоков текущей CU. Процесс (1900) может завершиться на шаге (S1999).
[0201] XI. Компьютерная система
[0202] Технологии, описанные выше, могут быть реализованы в виде компьютерного программного обеспечения с использованием машиночитаемых инструкций, которые физически хранятся на одном или более машиночитаемых носителях. Например, на фиг. 20 показана компьютерная система (2000), подходящая для реализации определенных вариантов раскрытия предмета настоящего изобретения.
[0203] Компьютерное программное обеспечение может быть кодировано с использованием любого подходящего машинного кода или языка программирования, который может ассемблироваться, компилироваться, компоноваться или с помощью подобных механизмов формировать код, содержащий команды, которые могут выполняться непосредственно или интерпретироваться, выполняться в виде микрокоманд и т.п.одним или более центральными процессорами компьютера (CPU, Central Processing Unit), графическими процессорами (GPU, Graphics Processing Unit) и т.п.
[0204] Инструкции могут выполняться на компьютерах различных типов или на их компонентах, включая, например, персональные компьютеры, планшеты, серверы, смартфоны, игровые устройства, устройства "Интернета вещей" и т.п.
[0205] Компоненты, показанные на фиг. 20 для компьютерной системы (2000), являются по сути примерами, и не предполагается, что они каким-либо образом ограничивают объем использования или функциональность компьютерного программного обеспечения, реализующего раскрытие настоящего изобретения. Кроме того, конфигурация компонентов не должна рассматриваться в плане какой-либо зависимости или каких-либо требований, связанных с любым компонентом или с комбинацией компонентов, показанных в рамках типового варианта осуществления компьютерной системы (2000).
[0206] Компьютерная система (2000) может включать устройства ввода пользовательского интерфейса. Такое устройство ввода пользовательского интерфейса может отвечать за ввод информации одним или более пользователями с помощью, например, тактильных средств ввода (таких как нажатие клавиш, сдвиг экрана, движения информационной перчаткой), звукового ввода (например, голосом, хлопками), визуального ввода (например, жестикуляцией), обонятельного ввода (не изображено на чертеже). Устройства пользовательского интерфейса также могут применяться для захвата определенной медийной информации, не обязательно непосредственно связанной с сознательным вводом пользователя, такой как звуковой сигнал (например, речь, музыка, звуковое сопровождение), изображения (например, отсканированные изображения, фотографии, полученные с помощью камеры фиксации неподвижных изображений), видеоинформация (такая как двумерное видео, трехмерное видео, включая стереоскопическое видео).
[0207] Устройства пользовательского интерфейса могут включать (на чертеже показано только одно устройство каждого типа): клавиатуру (2001), мышь (2002), сенсорную панель (2003), сенсорный экран (2010), информационную перчатку (не показанную на чертеже), джойстик (2005), микрофон (2006), сканер (2007), камеру (2008).
[0208] Компьютерная система (2000) может также включать устройства вывода пользовательского интерфейса. Такие устройства вывода пользовательского интерфейса могут стимулировать восприятие одного или более пользователей с помощью, например, тактильного вывода, звука, света и запаха/вкуса. Такие устройства вывода пользовательского интерфейса могут включать устройства тактильного вывода (например, тактильную обратную связь через сенсорный экран (2010), информационную перчатку (не показанную на чертеже) или джойстик (2005), но также могут существовать устройства тактильной обратной связи, которые не являются устройствами ввода), устройства вывода звукового сигнала (такие как громкоговорители (2009), наушники (не показаны на чертеже), устройства визуального вывода (такие как экраны (2010), включая экраны CRT, жидкокристаллические экраны, плазменные экраны, OLED-экраны, каждый из которых может быть оснащен средствами сенсорного ввода, средствами тактильной обратной связи, некоторые из которых могут выводить двумерные изображения или изображения с размерностью, большей, чем три измерения, через такие средства, как стереографический вывод; очки виртуальной реальности (не показаны на чертеже), голографические дисплеи и дымовые баки (не показаны на чертеже)), и принтеры (не показаны на чертеже).
[0209] Компьютерная система (2000) также может содержать доступные пользователю запоминающие устройства и связанные с ними носители, такие как оптические носители, включая CD/DVD ROM/RW (2020) с CD/DVD или похожие носители (2021), флеш-накопитель (2022), съемный или несъемный жесткий диск (2023), традиционные магнитные носители, такие как дискета (не показана на чертеже), специализированные устройства, основанные на ROM/ASIC/PLD, такие как аппаратные ключи (не показаны на чертеже) и т.п.
[0210] Специалистам в этой области техники должно быть понятно, что термин "машиночитаемый носитель", используемый в связи с предметом раскрытия настоящего изобретения, не охватывает среды передачи, сигналы несущей или другие кратковременные сигналы.
[0211] Компьютерная система (2000) также может содержать интерфейс (2054) с одной или более сетями связи (2055). Сети, например, могут быть беспроводными, проводными, оптическими. Сети также могут быть локальными, глобальными, городскими, транспортными и промышленными, реального времени, устойчивыми к задержке и т.д. Примеры сетей включают локальные сети, такие как Ethernet, беспроводные LAN, сотовые сети, включая GSM, 3G, 4G, 5G, LTE и т.п., телевизионные проводные или беспроводные глобальные цифровые сети, включая кабельное ТВ, спутниковое ТВ и наземное телевизионное вещание, транспортные и промышленные сети, включая CANBus и т.д. В определенных сетях обычно требуются внешние адаптеры сетевого интерфейса, которые подключаются к определенным портам данных общего назначения или к периферийным шинам (2049) (таким, например, как USB-порты компьютерной системы (2000)); другие обычно интегрируются в ядро компьютерной системы (2000) путем подключения к системной шине, как описано ниже (например, Ethernet-интерфейс в персональном компьютере или сотовый сетевой интерфейс в компьютерной системе смартфона). При использовании любой из этих сетей компьютерная система (2000) может взаимодействовать с другими объектами. Такая связь может быть однонаправленной, только в приемном направлении (например, телевизионное вещание), однонаправленной, только в передающем направлении (например, CANbus с определенными устройствами CANbus), или двунаправленной, например, с другими компьютерными системами с использованием локальных или глобальных цифровых сетей. Определенные протоколы и стеки протоколов могут использоваться в каждой из этих сетей и в сетевых интерфейсах, как описано выше.
[0212] Вышеупомянутые пользовательские интерфейсные устройства, доступные пользователю запоминающие устройства и сетевые интерфейсы могут подключаться к ядру (2040) компьютерной системы (2000).
[0213] Ядро (2040) может содержать один или более центральных процессоров (CPU, Central Processing Unit) (2041), графических процессоров (GPU, Graphics Processing Unit) (2042), специализированных программируемых процессорных блоков в виде программируемых пользователем вентильных матриц (FPGA, Field Programmable Gate Area) (2043), аппаратных ускорителей (2044) для определенных задач, графических адаптеров (2050) и т.д. Эти устройства совместно с постоянной памятью (ROM) (2045), оперативной памятью (2046), внутренними массовыми запоминающими устройствами, такими как внутренние недоступные пользователю жесткие диски, SSD (2047) и т.п., могут соединяться через системную шину (2048). В некоторых компьютерных системах доступ к системной шине (2048) может осуществляться с помощью одного или более физических разъемов, позволяющих расширять возможности системы путем добавления CPU, GPU и т.п. Периферийные устройства могут подключаться либо непосредственно к системной шине (2048) ядра, либо через периферийную шину (2049). Например, экран (2010) может подключаться к графическому адаптеру (2050). Архитектуры периферийной шины включают PCI, USB и т.п.
[0214] CPU (2041), GPU (2042), FPGA (2043) и ускорители (2044) могут исполнять определенные инструкции, которые в совокупности могут формировать упомянутый выше компьютерный код. Этот компьютерный код может храниться в ROM (2045) или RAM (2046). Промежуточные данные могут также храниться в RAM (2046), в то время как постоянные данные могут храниться, например, во внутреннем массовом запоминающем устройстве (2047). Быстрая запись и извлечение данных из любых запоминающих устройств может выполняться с использованием кэш-памяти, которая может быть тесно связана с одним или более CPU (2041), GPU (2042), внутренними массовыми запоминающими устройствами (2047), ROM (2045), RAM (2046) и т.п.
[0215] Машиночитаемый носитель может содержать компьютерный код для выполнения различных операций, реализуемых на компьютере. Носители и компьютерный код могут быть специально разработаны в целях настоящего изобретения, или они могут быть хорошо известны и доступны специалистам в области компьютерного программного обеспечения.
[0216] Например, без ограничения приведенным примером, компьютерная система (2000) определенной архитектуры и, в частности, ядро (2040) может обеспечивать функциональность системы в результате выполнения процессором(-ами) (включая CPU, GPU, FPGA, ускорители и т.п.) программного обеспечения, реализованного на одном или более машиночитаемых носителях. Такой машиночитаемый носитель может представлять собой носитель, связанный с доступным пользователю массовым запоминающим устройством, упомянутым выше, а также определенный носитель ядра (2040), являющимися по своей природе долговременными носителями информации, такими как массовое запоминающее устройство (2047), или ROM (2045). Программное обеспечение, реализующее различные варианты раскрытия настоящего изобретения, может храниться на таких устройствах и выполняться ядром (2040). Машиночитаемый носитель может содержать одно или более запоминающих устройств или микросхем в соответствии с конкретными требованиями. Программное обеспечение может инициализировать ядро (2040) и, в частности, процессоры, расположенные в нем (включая CPU, GPU, FPGA и т.п.), для выполнения конкретных процессов или частей конкретных процессов, приведенных в этом описании, включая определение структур данных в RAM (2046) и модификацию таких структур данных в соответствии с процессами, определенными программным обеспечением. Кроме того или в качестве альтернативы, компьютерная система может обеспечивать функциональность в результате логических аппаратно кодированных или, в противном случае, встроенных в схему (например, ускорителя (2044)) решений, которые могут работать вместо или совместно с программным обеспечением для выполнения конкретных процессов или конкретных частей конкретных процессов, приведенных в этом описании. Ссылка на программное обеспечение может охватывать логические схемы и наоборот, там где это приемлемо. Ссылка на машиночитаемый носитель может охватывать схему (например, интегральную микросхему (IС, Integrated Circuit)), в которой хранится исполняемое программное обеспечение, схему, в которой реализованы исполняемые логические команды, или оба этих компонента, там где это приемлемо. Раскрытие настоящего изобретения охватывает любую подходящую комбинацию аппаратуры и программного обеспечения.
Приложение А: Сокращения
ASIC: Application-Specific Integrated Circuit, специализированная интегральная схема
BMS: Benchmark Set, набор контрольных показателей
CANBus: Controller Area Network Bus, шина локальной сети контроллеров
CBF: Coded Block Flag, флаг кодированного блока
CCLM: Cross-Component Linear Model, линейная кросс-компонентная модель CD:
Compact Disc, компакт-диск
CPUs: Central Processing Units, центральные процессоры CRT:
Cathode Ray Tube, электронно-лучевая трубка CTBs:
Coding Tree Blocks, блоки дерева кодирования
CTUs: Coding Tree Units, единицы дерева кодирования
CU: Coding Unit, единица кодирования
DT: Dual Tree, дуальное дерево
DVD: Digital Video Disc, цифровой видеодиск
FPGA: Field Programmable Gate Areas, программируемая пользователем вентильная матрица
GOPs: Groups of Pictures, группы изображений
GPUs: Central Processing Units, центральные процессоры
GSM: Global System for Mobile Communications, глобальная система мобильной связи
HDR: High Dynamic Range, расширенный динамический диапазон
HEVC: High Efficiency Video Coding, высокоэффективное видеокодирование
HRD: Hypothetical Reference Decoder, гипотетический эталонный декодер
1С: Integrated Circuit, интегральная схема
ISP: Intra Sub-Partitions, внутреннее подразбиение
JVET: Joint Video Exploration Team, совместная группа исследования видеосигналов
LAN: Local Area Network, локальная сеть LCD:
Liquid-Crystal Display, жидкокристаллический дисплей LTE:
Long Term Evolution, технология долгосрочного развития MPM:
Most Probable Mode, наиболее вероятный режим MV: Motion Vector, вектор движения
JEM: Joint Exploration Model, объединенная модель исследования OLED:
Organic Light-Emitting Diode, органический светодиод PBs:
Prediction Blocks, единицы предсказания
PCI: Peripheral Component Interconnect, соединение периферийных компонентов
PLD: Programmable Logic Device, программируемое логическое устройство
PU: Prediction Unit, единица предсказания
QP: Quantization Parameter, параметр квантования
RAM: Random Access Memory, оперативная память
ROM: Read-Only Memory, постоянная память
SBT: Sub-block Transform, преобразование подблока
SDR: Standard Dynamic Range, стандартный динамический диапазон
SEI: Supplementary Enhancement Information, дополнительная информация улучшения
SNR: Signal Noise Ratio, отношение сигнал/шум SSD:
Solid-State Drive, твердотельный накопитель TU:
Transform Unit, блок передачи
USB: Universal Serial Bus, универсальная последовательная шина VUI:
Video Usability Information, удобная в использовании визуальная информация
VVC: Versatile Video Coding, усовершенствованное видеокодирование WAIP:
Wide-Angle Intra Prediction, широкоугольное внутреннее предсказание
[0217] Хотя изобретение было описано посредством нескольких не ограничивающих его вариантов осуществления, существуют изменения, перестановки и различные заменяющие эквиваленты, которые не выходят за рамки раскрытия настоящего изобретения.