Способ и устройство кодирования видео с предсказанием

Иллюстрации

Показать все

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

Реферат

Область технического применения

Данное изобретение относится к технологиям обработки видео, в частности к способу и устройству кодирования видео с предсказанием.

Предпосылки к созданию изобретения

В настоящее время сетевые приложения постепенно развиваются в направлении предоставления мультимедийных услуг. Видео как важный компонент мультимедийных услуг стало одним из основных носителей информации. Широкое применение видео привело к появлению новых требований к его качеству. Разрешение всех типов видео в настоящее время возрастает. При этом темпы увеличения объема видеоданных превышают темпы развития устройств хранения данных и скорость расширения полосы пропускания сети. Поэтому в течение длительного времени большое внимание уделялось технологиям сжатия и кодирования видео.

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

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

В настоящее время в стандартах MPEG-2 (Moving Picture Exports Group-2) для внутрикадрового предсказания может применяться простой алгоритм пространственного предсказания. Для предсказания вместо использования информации кадра кодирования каждый пиксель в блоке кодирования может использовать значение 128. Для большинства последовательностей ошибка предсказания такого способа больше. Поэтому эффективность сжатия I-кадра, для которого используется такой алгоритм внутрикадрового предсказания, ниже. В стандартах MPEG-4 блок внутрикадрового кодирования использует алгоритм предсказания по постоянному/переменному току (DC/AC) частотной области. Сначала блок кодирования выполняет Дискретное Косинусное Преобразование ДКП (Direct Cosine Transform (DCT)) в частотную область, а затем - предсказание по коэффициенту текущего блока, используя коэффициент DC/AC соседнего блока. При использовании метода MPEG-4 эффективность сжатия I-кадра повышается. В спецификации H.264/AVC (Advanced Video Coding) предусмотрен алгоритм внутрикадрового предсказания по направлению. Для каждого блока пикселей 16*16, 8*8 и 4*4 этот алгоритм позволяет выполнять предсказание с определенного направления, используя верхний, левый, левый верхний и правый верхний кодированные блоки. Эффективность сжатия I-кадра может быть существенно повышена путем использования технологий предсказания по направлению. Однако в процессе предсказания, в котором блок применяется как блок предсказания, используется только корреляция пикселей между блоками, а корреляция между соседними пикселями в пределах блока полностью не используется. Для всего блока трудно точно предсказать пиксель, расположенный далеко от пикселя предсказания в пределах блока. Поэтому ошибка предсказания в пределах кадра больше. В частности, для блока со сложной текстурной информацией трудно достигнуть хорошего предсказания, что приводит к снижению эффективности сжатия внутрикадрового кодирования. Это может отрицательно сказаться на эффективности сжатия всей видеопоследовательности.

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

Краткое описание изобретения

В реализации настоящего изобретения предлагается способ кодирования видео с предсказанием для повышения эффективности сжатия при кодировании видео.

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

Далее рассматриваются технические схемы, использованные в реализациях настоящего изобретения.

Предлагается способ кодирования видео с предсказанием, в котором предусмотрены следующие действия:

извлечение блока пикселей из текущего кадра и деление этого блока на основной и дополнительный наборы пикселей;

кодирование основного набора пикселей, вывод его кодового потока и получение значения восстановления этого набора пикселей;

интерполяция по восстановленным значениям пикселей, содержащим значение восстановления основного набора пикселей, использование результата в качестве предсказательного значения дополнительного набора пикселей, кодирование дополнительного набора пикселей с внутрикадровым предсказанием, вывод кодового потока дополнительного набора пикселей и получение значения восстановления дополнительного набора пикселей;

объединение значения восстановления основного набора пикселей со значением восстановления дополнительного набора пикселей и получение значения восстановления блока пикселей.

Предлагается устройство кодирования видео с предсказанием, содержащее блок деления пикселей, блок кодирования основного набора пикселей, блок кодирования дополнительного набора пикселей и блок объединения значений восстановления блока пикселей, причем

блок деления пикселей предназначен для извлечения блока пикселей из текущего кадра и деления этого блока на основной и дополнительный наборы пикселей;

блок кодирования основного набора пикселей служит для кодирования основного набора пикселей, вывода его кодового потока и получения значения восстановления этого набора пикселей;

блок кодирования дополнительного набора пикселей предназначен для интерполяции по восстановленным значениям пикселей, содержащим значение восстановления основного набора пикселей, использования результата в качестве предсказательного значения дополнительного набора пикселей, кодирования дополнительного набора пикселей с внутрикадровым предсказанием, вывода кодового потока дополнительного набора пикселей и получения значения восстановления дополнительного набора пикселей;

блок объединения значений восстановления блока пикселей служит для объединения значения восстановления основного набора пикселей со значением восстановления дополнительного набора пикселей и получения значения восстановления блока пикселей.

Как указано в приведенном выше описании технических схем, в режимах реализации данного изобретения сначала из текущего кадра извлекается блок пикселей, который делится на основной и дополнительный наборы пикселей. Затем выполняется кодирование основного набора пикселей, осуществляется вывод кодового потока основного набора пикселей и производится получение значения восстановления основного набора пикселей. Далее выполняется интерполяция по восстановленным значениям пикселей, содержащим значение восстановления основного набора пикселей, результат используется в качестве предсказательного значения дополнительного набора пикселей, дополнительный набор пикселей кодируется с внутрикадровым предсказанием, выводится кодовый поток дополнительного набора пикселей и производится получение значения восстановления дополнительного набора пикселей. Наконец, значение восстановления основного набора пикселей объединяется со значением восстановления дополнительного набора пикселей для получения значения восстановления блока пикселей. Таким образом, в режимах реализации настоящего изобретения полностью используется корреляция между внутрикадровыми пикселями. В результате точность предсказания может быть увеличена, а ошибка предсказания уменьшена. Кроме того, может быть непосредственно уменьшен объем связанных с ошибкой предсказания служебных данных кодового потока и повышена эффективность сжатия.

Режимы реализации настоящего изобретения могут применяться для кодирования I-кадра согласно спецификации H.264/AVC. Четный и нечетный макроблоки могут быть получены после выборки и деления по горизонтали с использованием каждого столбца для уменьшения доли служебных данных флагов в кодовом потоке в режиме кодирования с внутрикадровым предсказанием. В результате может быть дополнительно повышена эффективность сжатия. Для нечетного макроблока объем служебных данных флагов в кодовом потоке, связанных с режимом предсказания, может быть уменьшен посредством использования режима фиксированного предсказания. Для четного макроблока можно в большей степени уменьшить объем связанных с режимом внутрикадрового предсказания служебных данных флагов в кодовом потоке посредством кодирования с предсказанием усовершенствованного режима внутрикадрового предсказания.

Сложность реализации настоящего изобретения меньше. При кодировании нечетного макроблока с предсказанием с использованием восстановленного блока пикселей кодированного четного макроблока в вычислении интерполяционного фильтра с шестью ответвлениями используется только пиксель 19*16, причем пиксель 16*16 берется из пикселей, относящихся к четному макроблоку в текущем блоке 32*16, а пиксель 3*16 - из левого восстановленного соседнего макроблока. Буферизация макроблоков других строк в процессе кодирования не требуется. В результате объем используемой памяти существенно уменьшается и коэффициент успешных обращений к кэшу возрастает. Для источника видео высокой четкости с очень большим объемом данных схема с малым объемом используемой памяти легко реализуется с помощью микросхемы. Кроме того, режим реализации настоящего изобретения очень подходит для высокопараллельных вычислений. Таким образом, для источника видео высокой четкости может быть реализовано кодирование с быстрым сжатием.

Краткое описание изображений

На фиг.1 показана соответствующая реализации настоящего изобретения блок-схема способа кодирования видео с предсказанием.

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

На фиг.3 приведено соответствующее реализации настоящего изобретения схематическое представление выборки на доске.

На фиг.4 приведено соответствующее реализации настоящего изобретения схематическое представление выборки на классной доске, в котором в качестве единицы выборки используется блок пикселей 2*1.

На фиг.5 показана соответствующая реализации настоящего изобретения блок-схема способа кодирования яркостного компонента I-кадра.

На фиг.6 приведено соответствующее реализации настоящего изобретения схематическое представление способа деления макроблока.

На фиг.7 приведено соответствующее реализации настоящего изобретения схематическое представление способа выбора пикселя предсказания яркостного блока 4*4.

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

На фиг.9 приведено соответствующее реализации настоящего изобретения схематическое представление способа предсказания четного макроблока в режиме внутрикадрового предсказания.

На фиг.10 приведено соответствующее реализации настоящего изобретения схематическое представление общей структуры устройства кодирования видео с предсказанием.

На фиг.11 приведена соответствующая реализации настоящего изобретения структурная схема устройства кодирования видео с предсказанием.

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

Варианты реализации изобретения

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

В реализациях на базе известного уровня техники недостатком является неполное использование внутрикадровой фиксированной пространственной взаимосвязи в технологиях внутрикадрового кодирования. Для устранения указанного выше недостатка и повышения эффективности кодирования в реализации настоящего изобретения используется способ кодирования видео с предсказанием на основе взаимосвязи соседних пикселей.

На фиг.1 показана соответствующая реализации настоящего изобретения блок-схема способа кодирования видео с предсказанием.

Как видно из фиг.1, в этом способе предусмотрены следующие действия.

Блок 101: извлечение блока пикселей из текущего кадра и деление этого блока на основной и дополнительный наборы пикселей.

Например, из текущего кадра кодирования может быть извлечен блок пикселей М*N, называемый исходным. М - ширина блока пикселей, а N - высота. Блоком пикселей M*N может быть яркостный блок или блок цветности (в реализациях изобретения нет ограничений на тип блока). Затем делается выборка нескольких пикселей блока пикселей M*N согласно определенному правилу выборки (предположим, что число этих пикселей - Р). Прошедшие выборку пиксели считаются основным набором пикселей. Остальные пиксели составляют дополнительный набор пикселей. То есть выполняется выборка Р пикселей из исходного блока M*N для формирования основного набора пикселей. Остальные пиксели могут образовать дополнительный набор пикселей. Значение М должно быть меньше или равно ширине текущего кадра. Значение N должно быть меньше или равно высоте текущего кадра, a P<M*N (т.е. размер основного набора пикселей должен быть меньше размера исходного блока).

В частности, блок пикселей может быть разделен на основной и дополнительный наборы пикселей с использованием режима выборки по всем строкам и столбцам или режима выборки на доске (либо классной доске). Ниже приведено подробное описание режимов выборки.

В режиме выборки по всем строкам и столбцам могут использоваться разные подрежимы выборки в зависимости от периода выборки по строке (обозначаемого Tr, Tr - целое, отличное от нуля, Tr<N), периода выборки по столбцу (обозначаемого Тc, Тc - целое, отличное от нуля, Тс≤М, Тr·Тс≠1), номера первой строки основного набора пикселей в блоке пикселей (обозначаемого r, r=1,…, Tr) и номера первого столбца основного набора пикселей в блоке пикселей (обозначаемого с, с=1,…, Тc).

На фиг.2 приведено соответствующее реализации настоящего изобретения схематическое представление режима выборки по всем строкам и столбцам, где параметры имеют следующие значения: с=3, r=4, Тc=4, Tr=5. Пиксели, представленные серыми прямоугольниками, образуют основной набор пикселей. При размещении основного набора пикселей для формирования блока m*n согласно начальной последовательности расположения (ширина основного набора пикселей - m, высота основного набора пикселей - n) отношение между значениями m, n и М, N определяется формулой (1).

m = ⌊ M − c T c ⌋ + 1 , n = ⌊ N − r T r ⌋ + 1     ф о р м у л а   ( 1 )

Функция ⌊ ⌋ означает округление до ближайшего целого в сторону меньшего значения.

К режиму выборки на доске (классной доске) относятся сам этот режим и различные производные от него подрежимы выборки. При выборке на доске выборка соседних пикселей (верхнего, нижнего, левого и правого) каждого подлежащего выборке пикселя не выполняется. Когда подлежащей выборке единицей является блок пикселей фиксированного размера, а не отдельный пиксель, используется правило выборки на доске и такая выборка называется выборкой на классной доске. На фиг.3 приведено соответствующее реализации настоящего изобретения схематическое представление выборки на доске. На фиг.4 приведено соответствующее реализации настоящего изобретения схематическое представление выборки на классной доске, в котором в качестве единицы выборки используется блок пикселей 2*1. Как видно из фиг.3, пиксели, представленные серыми (или белыми) прямоугольниками, могут быть выбраны для формирования основного набора пикселей.

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

Блок 102: кодирование основного набора пикселей, вывод кодового потока основного набора пикселей и получение значения восстановления основного набора пикселей.

Способ предсказания, связанный с основным набором пикселей, может быть разным в зависимости от типа текущего кадра. Когда текущим является I-кадр, основной набор пикселей позволяет осуществлять предсказание с помощью алгоритмов, подобных алгоритму предсказания по направлению H.264/AVC. Когда текущим является Р- или В-кадр, основной набор пикселей позволяет осуществлять предсказание посредством алгоритма, подобного алгоритму предсказания по направлению H.264/AVC, или с помощью технологий межкадрового поиска вектора движения.

Сначала определяется тип текущего кадра. Если текущим является I-кадр, для кодирования основного набора пикселей используется алгоритм, подобный алгоритму предсказания по направлению H.264/AVC. Если текущим является Р- или В-кадр, для кодирования основного набора пикселей используется алгоритм, подобный алгоритму предсказания по направлению H.264/AVC, или технологии межкадрового поиска вектора движения.

H.264/AVC - это стандарт кодирования видео с самой высокой в настоящее время эффективностью сжатия. В стандарте H.264/AVC технологии предсказания по направлению используются блоком внутрикадрового кодирования для внутрикадрового предсказания. Для блоков с разными размерами при предсказании по направлению используются разные режимы предсказания. Для яркостного компонента размер блока может быть 16*16 или 4*4. Для яркостного блока 16*16 (тип соответствующего макроблока - I16МВ) возможны 4 разновидности режимов предсказания. Для яркостного блока 4*4 (тип соответствующего макроблока - I4MB) возможны 9 разновидностей режимов предсказания. Для компонента цветности размер блока - 8*8 и может быть 4 разновидности режимов предсказания. Для яркостного блока 16*16 (и блока цветности 8*8) возможны 4 разновидности режимов предсказания - предсказание по горизонтали, предсказание по вертикали, предсказание по постоянному току ПТ (DC) и планарное предсказание. При предсказании по горизонтали предсказательные значения всех пикселей в одной строке одинаковы. Предсказательное значение - это значение краевого пикселя левого соседнего восстановленного блока в строке. При предсказании по вертикали предсказательные значения всех пикселей в одном столбце одинаковы. Предсказательное значение - это значение краевого пикселя верхнего соседнего восстановленного блока в столбце. При предсказании по ПТ (DC) для всего блока используется одно и то же Предсказательное значение. Это значение может быть получено усреднением 16 (или 8) краевых пикселей верхнего соседнего восстановленного блока данного блока, 16 (или 8) краевых пикселей левого соседнего восстановленного блока данного блока и соседних пикселей в верхнем левом углу. Если некоторые из этих пикселей отсутствуют (текущий макроблок расположен на верхней или левой границе изображения), Предсказательное значение может быть получено усреднением существующих пикселей. При планарном предсказании предсказание для каждого пикселя в текущем блоке может выполняться с помощью линейной функции с использованием краевых пикселей левого и правого соседних восстановленных блоков текущего блока. При предсказании по направлению для яркостного блока 4*4 может быть 9 разновидностей режимов предсказания: предсказание по вертикали (режим 0), предсказание по горизонтали (режим 1), предсказание по диагонали в направлении влево вниз (режим 3), предсказание по диагонали в направлении вправо вниз (режим 4), предсказание по вертикали в направлении вправо (режим 5), предсказание по горизонтали в направлении вниз (режим 6), предсказание по вертикали в направлении влево (режим 7), предсказание по горизонтали в направлении влево (режим 8) и предсказание по ПТ (DC) (режим 2). Для предсказания пикселей в текущем блоке во всех режимах предсказания могут использоваться восстановленные пиксели в направлении, соответствующем режиму.

Блок 103: интерполяция по восстановленным значениям пикселей, содержащим значение восстановления основного набора пикселей, получение предсказательного значения дополнительного набора пикселей, кодирование дополнительного набора пикселей с внутрикадровым предсказанием, вывод кодового потока дополнительного набора пикселей и получение значения восстановления дополнительного набора пикселей.

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

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

Для предсказания дополнительный набор пикселей может использовать все восстановленные значения пикселей, в частности значение восстановления основного набора пикселей. Дополнительные наборы пикселей могут также классифицироваться по их размеру, в частности, когда размеры этих наборов намного превышают размеры основных наборов пикселей (например, в 10 раз). Затем дополнительный набор пикселей может быть предсказан с использованием иерархической структуры. Дополнительные наборы пикселей классифицируются, главным образом, по своему местоположению. "Известная степень" информации о соседних пикселях может определяться по местоположению пикселей. Дополнительные наборы пикселей с информацией о соседних пикселях одной и той же известной степени могут классифицироваться в одну категорию. Для пикселей одной категории может использоваться один и тот же режим предсказания. Для дополнительных наборов пикселей, находящихся в разных категориях, могут использоваться разные режимы предсказания. Когда для дополнительного набора пикселей выполняется кодирование с предсказанием с использованием иерархической структуры, при предсказании самого низкого уровня (т.е. предсказании последних кодированных пикселей) может использоваться результат кодирования из процесса предсказания высокого уровня (т.е. процесса предсказания ранее кодированных пикселей). Предсказание более низкого уровня может иметь более высокую точность. Таким образом, в последующем процессе квантования для пикселей, расположенных в разных категориях, могут выбираться разные точности квантования в зависимости от точности предсказания. Для данных ошибок предсказания более высокого уровня может использоваться более высокая точность квантования.

В конкретных реализациях получение предсказательного значения дополнительного набора пикселей осуществляется, в основном, путем интерполяции по восстановленным значениям пикселей с помощью интерполяционного фильтра. Для предсказания с использованием иерархической структуры могут быть созданы различные фильтры, соответствующие дополнительному набору пикселей на каждом уровне. Может быть несколько вариантов фильтров. Возможно непосредственное копирование восстановленных значений соседних пикселей или использование фильтра H.264/AVC с шестью ответвлениями. Возможна также разработка фильтров других типов. Для соответствующей интерполяции и выбора оптимального результата предсказания могут использоваться различные фильтры.

Блок 104: объединение значения восстановления основного набора пикселей со значением восстановления дополнительного набора пикселей для получения значения восстановления блока пикселей.

В этом блоке значение восстановления основного набора пикселей, полученное в блоке 102, повторно объединяется с полученным в блоке 103 значением восстановления дополнительного набора пикселей для получения значения восстановления исходного блока. Режим объединения представляет собой обратный процесс относительно режима выборки в блоке 101.

Выше подробно описан процесс кодирования в реализации данного изобретения.

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

На фиг.5 показана соответствующая реализации настоящего изобретения блок-схема способа кодирования яркостного компонента I-кадра. Ниже описывается процесс реализации данного изобретения с использованием яркостного блока 32*16 шириной и высотой 32 и 16 соответственно (число 32 соответствует упоминавшемуся выше значению М, а 16 - упоминавшемуся выше значению N). Специалистам в данной области должно быть понятно, что описание с использованием яркостного блока 32*16 в качестве примера является только иллюстративным и не служит для ограничения области реализации настоящего изобретения.

Как видно из фиг.5, в данном способе предусмотрены следующие действия. В блоке 501 из местоположения текущего кадра кодирования (соответствующего двум последовательно расположенным в направлении по горизонтали обычным макроблокам) извлекается яркостный блок 32*16 и выполняется его деление по горизонтали. Четные столбцы могут формировать четный макроблок (МБ), а нечетные - соответствующий ему нечетный макроблок (МБ).

В частности, извлекаются столбцы с четными номерами (2, 4, 6,…, 16) яркостного блока 32*16 для формирования четного макроблока и столбцы с нечетными номерами (1, 3, 5,…, 15) яркостного блока 32*16 для формирования нечетного макроблока. Соответствующее схематическое представление показано на фиг.6.

В блоке 502 определяется, достигает ли текущая позиция кодирования макроблока, расположенного на правой границе кадра, а также, существует ли только один макроблок и невозможно ли извлечь яркостный блок 32*16. Если да, осуществляется переход к блоку 503, а в противном случае - к блоку 504.

В блоке 503 выполняется кодирование одного макроблока с помощью алгоритма предсказания по направлению и осуществляется переход к блоку 507. Для одного макроблока на правой границе выполняются предсказание с помощью алгоритма предсказания по направлению, преобразование, квантование и энтропийное кодирование ошибки предсказания для вывода кодового потока блока, а также обратное квантование и обратное преобразование коэффициента квантования для получения блока восстановления данного блока.

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

Для четного макроблока требуется также принять решение в отношении одной из 4 разновидностей режимов предсказания (предсказание по горизонтали, предсказание по вертикали, предсказание по ПТ (DC) и планарное предсказание) для блока типа I16МВ (ответственного за выполнение внутрикадрового предсказания для всего макроблока 16*16) и одной из 9 разновидностей режимов предсказания (предсказание по вертикали (режим 0), предсказание по горизонтали (режим 1), предсказание по диагонали в направлении влево вниз (режим 3), предсказание по диагонали в направлении вправо вниз (режим 4), предсказание по вертикали в направлении вправо (режим 5), предсказание по горизонтали в направлении вниз (режим 6), предсказание по вертикали в направлении влево (режим 7), предсказание по горизонтали в направлении влево (режим 8) и предсказание по ПТ (DC) (режим 2)) для блока типа I4MB (ответственного за выполнение внутрикадрового предсказания для 16 блоков 4*4, которые получаются в результате деления макроблока 16*16). Такое решение необходимо для выбора оптимального режима предсказания с вычислением кода. Если текущий четный макроблок используется в качестве блока 16*16, который требуется предсказать, способ предсказания и местоположение вводимых пикселей совместимы со способом предсказания и местоположением вводимых пикселей в способе предсказания яркостного блока 16*16 при применении алгоритма предсказания по направлению, используемого в реализациях на базе известного уровня техники. Если текущий макроблок делится на 16 подлежащих предсказанию блоков 4*4, то, несмотря на наличие 9 разновидностей режимов предсказания, местоположение пикселя, используемого для предсказания, может изменяться. На фиг.6 серые точки представляют пиксели, образующие четный макроблок, а белые точки - пиксели, образующие нечетный макроблок. Серые точки в прямоугольнике могут формировать кодируемый в данный момент блок 4*4. Для предсказания используются пиксели А-М. Пиксели A-D берутся из верхнего соседнего четного макроблока текущего макроблока. Пиксели I-M берутся из левого соседнего четного макроблока текущего макроблока. Они совместимы с выбором пикселей предсказания при выполнении предсказания для яркостного блока 4*4 с помощью алгоритма предсказания по направлению, используемого в реализациях на базе известного уровня техники. Однако местоположение пикселей Е-Н может изменяться. Пиксели Е-Н могут браться из ближайшего обычного макроблока, расположенного в верхней правой части текущего макроблока.

В блоке 505 выполняется предсказание нечетного макроблока с помощью пикселей восстановления четного макроблока. Используется фильтр H.264/AVC с шестью ответвлениями для интерполяции по восстановленному четному макроблоку и получения предсказательного значения нечетного макроблока. Выполняются преобразование, квантование и энтропийное кодирование ошибки предсказания нечетного макроблока для вывода кодового потока, а также обратное квантование и обратное преобразование коэффициента квантования для получения блока восстановления данного блока.

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

Для пикселя X, подлежащего кодированию в текущем нечетном макроблоке, предсказательное значение может быть заранее представлено значением X. Для интерполяции по значениям восстановления восстановленных пикселей А, В, С, D, Е и F, расположенных слева и справа от пикселя X, применяется формула (2). Результат используется в качестве предсказательного значения Хпредсказание пикселя X, подлежащего кодированию в текущем нечетном макроблоке.

X п р е д с к а з а н и е = О к р у г л е н и е ( ( А в о с с т а н о в л е н и е − 5 В в о с с т а н о в л е н и е + 20 С в о с с т а н о в л е н и е + 20 D в о с с т а н о в л е н и е − 5 Е в о с с