Кодирование видео при помощи больших макроблоков

Иллюстрации

Показать все

Изобретение относится к кодированию цифрового видео и, в частности, к кодированию видео, основанному на макроблоках. Техническим результатом является повышение эффективности предсказания видео. Указанный технический результат достигается тем, что осуществляют кодирование и декодирование видеопотока с использованием макроблоков, содержащих больше чем 16х16 пикселей, например 64х64 пикселей. В одном примере устройство включает в себя кодер видео, сконфигурированный для: кодирования видеоблока, обладающего размерами больше чем 16х16 пикселей; формирования информации синтаксиса типа блоков, которая указывает размер блока; и формирования значения модели кодируемых блоков для закодированного блока, при этом значение модели кодируемых блоков указывает на то, включает ли в себя закодированный блок, по меньшей мере, один ненулевой коэффициент. Кодер видео может установить значение модели кодируемых блоков в ноль, когда закодированный блок не включает в себя, по меньшей мере, один ненулевой коэффициент, или установить значение модели кодируемых блоков в единицу, когда закодированный блок включает в себя ненулевой коэффициент. 8 н. и 40 з.п. ф-лы, 18 ил., 2 табл.

Реферат

[0001] Данная заявка испрашивает приоритет по Предварительным Заявкам на патент США №61/102787, поданной 3 октября 2008 г., 61/144357, поданной 13 января 2009 г. и 61/166631, поданной 3 апреля 2009г., каждая из которых во всей своей полноте заключена в настоящее описание посредством ссылки.

[0002] Данная заявка связана с Заявками на патент США, которые имеют дату подачи точно такую же, как и у настоящей заявки, и точно такое же название, «VIDEO CODING WITH LARGE MACROBLOCKS» (с временно присвоенными Номерами в Досье Поверенного 090033U2, 090033U3, 090033U4), и все из которых, переуступлены их правопреемнику, и настоящим в прямой форме включены в настоящее описание во всей своей полноте посредством ссылки.

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

[0003] Изобретение относится к кодированию цифрового видео и, в частности, к кодированию видео, основанному на блоках.

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

[0004] Возможности цифрового видео могут быть заключены в широкое многообразие приборов, включая цифровые телевизоры, системы цифрового прямого вещания, системы беспроводного вещания, персональные цифровые помощники (PDA), ноутбуки или настольные компьютеры, приборы цифровой записи, приборы видеоигр, игровые видеоконсоли, сотовые или спутниковые радиотелефоны и подобное. Приборы цифрового видео реализуют методики сжатия видео, такие как те, что описаны в стандартах, заданных как MPEG-2, MPEG-4, ITU-T H.263 или ITU-T H.264/MPEG-4, Часть 10, Улучшенное Кодирование Видео (AVC), и улучшения таких стандартов для более эффективной передачи и приема информации цифрового видео.

[0005] Методики сжатия видео выполняют пространственное предсказание и/или временное предсказание для сокращения или удаления избыточности, свойственной видеопоследовательностям. Применительно к кодированию видео, основанному на блоках, видеокадр или вырезка могут быть разделены на макроблоки. Каждый макроблок может быть дополнительно разделен. Макроблоки в кадре или в вырезке с внутрикадровым кодированием (I) кодируются с использованием пространственного предсказания в отношении соседних макроблоков. Макроблоки в кадре или в вырезке с межкадровым кодированием (P или B) могут использовать пространственное предсказание в отношении соседних макроблоков в том же самом кадре или в вырезке или временное предсказание в отношении других опорных кадров.

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

[0006] В целом, изобретение описывает методики кодирования данных цифрового видео с использованием больших макроблоков. Большие макроблоки являются более крупными, чем макроблоки, как правило, предписанные существующими стандартами кодирования видео. Большинство стандартов кодирования видео предписывают использование макроблока в виде 16×16-пиксельного массива. В соответствии с данным изобретением, кодер и декодер могут использовать большие макроблоки, которые по размеру больше чем 16×16 пикселей. В качестве примеров, большие макроблоки могут обладать 32×32, 64×64 или большим массивом пикселей.

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

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

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

[0010] В другом примере, изобретение предоставляет устройство, содержащее кодер видео, сконфигурированный для: кодирования видеоблока, обладающего размером, большим чем 16×16 пикселей; формирования информации синтаксиса типа блоков, которая указывает размер блока; и формирования значения модели кодируемых блоков для закодированного блока, при этом значение модели кодируемых блоков указывает на то, включает ли в себя закодированный блок, по меньшей мере, один ненулевой коэффициент.

[0011] В другом примере, изобретение предоставляет компьютерно-читаемый носитель информации с закодированными на нем инструкциями, которые предписывают устройству кодирования видео: закодировать, при помощи кодера видео, видеоблок, обладающий размером, большим чем 16×16 пикселей; сформировать информацию синтаксиса типа блоков, которая указывает размер блока; и сформировать значение модели кодируемых блоков для закодированного блока, при этом значение модели кодируемых блоков указывает на то, включает ли в себя закодированный блок, по меньшей мере, один ненулевой коэффициент.

[0012] В дополнительном примере, изобретение предоставляет способ, содержащий: прием, при помощи декодера видео, закодированного видеоблока, обладающего размером, большим чем 16×16 пикселей; прием информации синтаксиса типа блоков, которая указывает размер закодированного блока; прием значения модели кодируемых блоков для закодированного блока, при этом значение модели кодируемых блоков указывает на то, включает ли в себя закодированный блок, по меньшей мере, один ненулевой коэффициент; и декодирование закодированного блока на основании информации синтаксиса типа блоков и значения модели кодируемых блоков для закодированного блока.

[0013] В дополнительном примере, изобретение предоставляет устройство, содержащее декодер видео, сконфигурированный для: приема закодированного видеоблока, обладающего размером, большим чем 16×16 пикселей; приема информации синтаксиса типа блоков, которая указывает размер закодированного блока; приема значения модели кодируемых блоков для закодированного блока, при этом значение модели кодируемых блоков указывает на то, включает ли в себя закодированный блок, по меньшей мере, один ненулевой коэффициент; и декодирования закодированного блока на основании информации синтаксиса типа блоков и значения модели кодируемых блоков для закодированного блока.

[0014] В другом примере, изобретение предоставляет компьютерно-читаемый носитель информации, содержащий инструкции, предписывающие декодеру видео: принять закодированный видеоблок, обладающий размером, большим чем 16×16 пикселей; принять информацию синтаксиса типа блоков, которая указывает размер закодированного блока; принять значение модели кодируемых блоков для закодированного блока, при этом значение модели кодируемых блоков указывает на то, включает ли в себя закодированный блок, по меньшей мере, один ненулевой коэффициент; и декодировать закодированный блок на основании информации синтаксиса типа блоков и значения модели кодируемых блоков для закодированного блока.

[0015] В другом примере, изобретение предоставляет способ содержащий: прием, при помощи кодера видео, видеоблока, обладающего размером, большим чем 16×16 пикселей; разделение блока на разделы; кодирование одного из разделов, используя первый режим кодирования; кодирование других разделов, используя второй режим кодирования, отличный от первого режима кодирования; и формирование информации синтаксиса типа блоков, которая указывает размер блока и указывает разделы и режимы кодирования, использованные для кодирования разделов.

[0016] В дополнительном примере, изобретение предоставляет устройство, содержащее кодер видео, сконфигурированный для: приема видеоблока, обладающего размером, большим чем 16×16 пикселей; разделения блока на разделы; кодирования одного из разделов, используя первый режим кодирования; кодирования других разделов, используя второй режим кодирования, отличный от первого режима кодирования; формирования информации синтаксиса типа блоков, которая указывает размер блока и указывает разделы и режимы кодирования, использованные для кодирования разделов.

[0017] В другом примере, изобретение предоставляет компьютерно-читаемый носитель информации с закодированными на нем инструкциями, предписывающими кодеру видео: принять видеоблок, обладающий размером, большим чем 16×16 пикселей; разделить блок на разделы; закодировать один из разделов, используя первый режим кодирования; закодировать другие разделы, используя второй режим кодирования, отличный от первого режима кодирования; и сформировать информацию синтаксиса типа блоков, которая указывает размер блока и указывает разделы и режимы кодирования, использованные для кодирования разделов.

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

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

[0020] В дополнительном примере, изобретение предоставляет компьютерно-читаемый носитель информации с закодированными на нем инструкциями, предписывающими декодеру видео: принять видеоблок, обладающий размером, большим чем 16×16 пикселей, при этом блок разделен на разделы, и один из разделов закодирован при помощи первого режима кодирования, а другие разделы закодированы при помощи второго режима кодирования, отличного от первого режима кодирования; принять информацию синтаксиса типа блоков, которая указывает размер блока и указывает разделы и режимы кодирования, использованные для кодирования разделов; и декодировать видеоблок на основании информации синтаксиса типа блоков.

[0021] В другом примере, изобретение предоставляет способ, содержащий: прием, при помощи кодера цифрового видео, единицы кодирования видео; определение первого показателя искажения и скорости для кодирования единицы кодирования видео, использующего первые видеоблоки с размерами 16×16 пикселей; определение второго показателя искажения и скорости для кодирования единицы кодирования видео, использующего вторые видеоблоки с размерами, большими чем 16×16 пикселей; кодирование единицы кодирования видео с использованием первых видеоблоков, если первый показатель искажения и скорости меньше второго показателя искажения и скорости; и кодирование единицы кодирования видео с использованием вторых видеоблоков, если второй показатель искажения и скорости меньше первого показателя искажения и скорости.

[0022] В дополнительном примере, изобретение предоставляет устройство, содержащее кодер видео, сконфигурированный для: приема единицы кодирования видео; определения первого показателя искажения и скорости для кодирования единицы кодирования видео, использующего первые видеоблоки с размерами 16×16 пикселей; определения второго показателя искажения и скорости для кодирования единицы кодирования видео, использующего вторые видеоблоки с размерами, большими чем 16×16 пикселей; кодирования единицы кодирования видео с использованием первых видеоблоков, если первый показатель искажения и скорости меньше второго показателя искажения и скорости; и кодирование единицы кодирования видео с использованием вторых видеоблоков, если второй показатель искажения и скорости меньше первого показателя искажения и скорости.

[0023] В другом примере, изобретение предоставляет компьютерно-читаемый носитель информации, с закодированными на нем инструкциями, предписывающими кодеру видео: принять единицу кодирования видео; определить первый показатель искажения и скорости для кодирования единицы кодирования видео, использующего первые видеоблоки с размерами 16×16 пикселей; определить второй показатель искажения и скорости для кодирования единицы кодирования видео, использующего вторые видеоблоки с размерами, большими чем 16×16 пикселей; кодировать единицу кодирования видео, используя первые видеоблоки, если первый показатель искажения и скорости меньше второго показателя искажения и скорости; и кодировать единицы кодирования видео, используя вторые видеоблоки, если второй показатель искажения и скорости меньше первого показателя искажения и скорости.

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

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

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

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

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

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

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

[0031] В другом примере, изобретение предоставляет компьютерно-читаемый носитель информации с закодированными на нем инструкциями, предписывающими программируемому процессору: принять кодируемую единицу, содержащую множество видеоблоков, при этом, по меньшей мере, один из множества видеоблоков содержит размер, больший чем 16×16 пикселей; принять информацию синтаксиса для кодируемой единицы, которая включает в себя значение максимального размера, при этом значение максимального размера указывает размер наибольшего одного из множества видеоблоков в кодируемой единице; выбрать декодер синтаксиса типа блоков в соответствии со значением максимального размера; и декодировать каждый из множества видеоблоков в кодируемой единице, используя выбранный декодер синтаксиса типа блоков.

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

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

[0033] Фиг. 1 является структурной схемой, иллюстрирующей пример системы кодирования и декодирования видео, которая кодирует и декодирует данные цифрового видео, используя большие макроблоки.

[0034] Фиг. 2 является структурной схемой, иллюстрирующей пример кодера видео, который реализует методики кодирования больших макроблоков.

[0035] Фиг. 3 является структурной схемой, иллюстрирующей пример декодера видео, который реализует методики кодирования больших макроблоков.

[0036] Фиг. 4A является концептуальной схемой, иллюстрирующей разделение большого макроблока по различным уровням.

[0037] Фиг. 4B является концептуальной схемой, иллюстрирующей разные режимы кодирования для разных разделов большого макроблока.

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

[0039] Фиг. 6 является блок-схемой, иллюстрирующей примерный способ установки значения модели кодируемых блоков (CBP) 64×64-пиксельного большого макроблока.

[0040] Фиг. 7 является блок-схемой, иллюстрирующей примерный способ установки значения CBR 32×32-пиксельного раздела 64×64-пиксельного большого макроблока.

[0041] Фиг. 8 является блок-схемой, иллюстрирующей примерный способ установки значения CBP 16×16-пиксельного раздела 32×32-пиксельного раздела 64×64-пиксельного большого макроблока.

[0042] Фиг. 9 является блок-схемой, иллюстрирующей примерный способ определения двухбитного значения luma16×8_CBP.

[0043] Фиг. 10 является структурной схемой, иллюстрирующей примерную компоновку 64×64-пиксельного большого макроблока.

[0044] Фиг. 11 является блок-схемой, иллюстрирующей примерный способ вычисления оптимального разделения и способов кодирования для N×N-пиксельного большого видеоблока.

[0045] Фиг. 12 является структурной схемой, иллюстрирующей примерный 64×64-пиксельный макроблок с разными разделами и выбранными способами кодирования для каждого раздела.

[0046] Фиг. 13 является блок-схемой, иллюстрирующей примерный способ определения оптимального размера макроблока для кодирования кадра видеопоследовательности.

[0047] Фиг. 14 является структурной схемой, иллюстрирующей примерный прибор беспроводной связи, включающий в себя кодер/декодер (КОДЕК) видео, который кодирует данные цифрового видео, используя большие макроблоки.

[0048] Фиг. 15 является структурной схемой, иллюстрирующей примерное представление в виде массива иерархического представления CBP для большого макроблока.

[0049] Фиг. 16 является структурной схемой, иллюстрирующей примерную древовидную структуру, соответствующую иерархическому представлению CBP на Фиг. 15.

[0050] Фиг. 17 является блок-схемой, иллюстрирующей примерный способ использования информации синтаксиса кодируемой единицы для указания и выбора кодеров и декодеров синтаксиса, основанного на блоках для видеоблоков кодируемой единицы.

ПОДРОБНОЕ ОПИСАНИЕ

[0051] Изобретение описывает методики кодирования и декодирования данных цифрового видео с использованием больших макроблоков. Большие макроблоки больше макроблоков, которые, как правило, предписаны существующими стандартами кодирования видео. Большинство стандартов кодирования видео предписывают использование макроблока в виде 16×16-пиксельного массива. В соответствии с изобретением, кодер и/или декодер может использовать большие макроблоки, которые размером больше чем 16×16 пикселей. В качестве примеров, большой макроблок может иметь 32×32, 64×64 или даже возможно больший массив пикселей.

[0052] Как правило, макроблок, в соответствии с тем, как это понятие используется в изобретении, может относиться к структуре данных применительно к массиву пикселей, который имеет заданный размер, выраженный как N×N пикселей, где N является положительным целочисленным значением. Макроблок может задавать четыре блока яркости, каждый из которых содержит массив из (N/2)×(N/2) пикселей, два блока цветности, каждый из которых содержит массив из N×N пикселей и заголовок, содержащий информацию типа макроблока и информацию модели кодируемых блоков (CBP), как рассматривается более подробно ниже.

[0053] Обычные стандарты кодирования видео обычно предписывают, что заданным размером макроблока является 16×16-пиксельный массив. В соответствии с различными описанными в данном изобретении методиками, макроблоки могут содержать массив из N×N пикселей, где N может быть больше 16. Также обычные стандарты кодирования видео предписывают, что макроблоку с межкадровым кодированием, как правило, назначается один вектор движения. В соответствии с различными описанными в данном изобретении методиками, разделам с межкадровым кодированием макроблока N×N может быть назначено множество векторов движения, как описывается более подробно ниже. Упоминание «больших макроблоков» или подобного словосочетания, как правило, относится к макроблокам с массивом пикселей, большим чем 16×16.

[0054] В некоторых случаях, большие макроблоки могут обеспечивать улучшение эффективности кодирования и/или сокращение затрат на передачу данных, сохраняя при этом или возможно улучшая качество изображения. Например, использование больших макроблоков может предоставить возможность кодеру и/или декодеру видео использовать преимущество увеличенной избыточности, предоставляемое данными видео, формируемыми с увеличенным пространственным разрешением (например, 1280×720 или 1920×1080 пикселей на кадр) и/или увеличенной частоты кадров (например, 30 или 60 кадров в секунду).

[0055] В качестве иллюстрации, последовательность цифрового видео с пространственным разрешением 1280×720 пикселей на кадр и частотой кадров, составляющей 60 кадров в секунду, в пространственном отношении в 36 раз больше и во временном отношении в 4 раза быстрее, чем последовательность цифрового видео с пространственным разрешением 176×144 пикселей на кадр и частотой кадров, составляющей 15 кадров в секунду. При помощи увеличенного размера макроблока, кодер и/или декодер видео может лучше использовать пространственную и/или временную избыточность для обеспечения сжатия видеоданных.

[0056] Также посредством использования более крупных макроблоков, может кодироваться меньшее число блоков для заданного кадра или вырезки, уменьшая объем служебной информации, которую требуется передать. Другими словами, более крупные макроблоки могут предоставить возможность сокращения общего числа макроблоков, кодируемых на каждый кадр или вырезку. Если пространственное разрешение кадра увеличивается, например, в четыре раза, то тогда для пикселей в кадре потребуется в четыре раза больше макроблоков 16×16. В этом примере, число макроблоков, требуемых для обработки возросшего пространственного разрешения, сокращается при использовании макроблоков 64×64. При помощи сокращенного числа макроблоков на каждый кадр или вырезку, например, может быть сокращен совокупный объем информации кодирования, такой как информации синтаксиса, данных векторов движения и подобной.

[0057] В данном изобретении размер макроблока, как правило, относится к числу пикселей, вмещенных в макроблоке, например, 64×64, 32×32, 16×16 или подобному. Следовательно, большой макроблок (например, 64×64 или 32×32) может быть большим в том смысле, что он вмещает в себя большее число пикселей, чем макроблок 16×16. Тем не менее, пространственная зона, заданная вертикальным и горизонтальным размерами большого макроблока, т.е. часть зоны, заданной вертикальным и горизонтальным размерами видеокадра, может быть, а может и не быть больше зоны обычного макроблока 16×16. В некоторых примерах, зона большого макроблока может быть точно такой же или похожей на обычный макроблок 16×16. Тем не менее, большой макроблок имеет более высокое пространственное разрешение, описываемое более высоким числом и более высокой пространственной плотностью пикселей внутри макроблока.

[0058] Размер макроблока может конфигурироваться на основании, по меньшей мере частично, числа пикселей в кадре, т.е. пространственного разрешения в кадре. Если кадр обладает более высоким числом пикселей, большой макроблок может быть сконфигурирован таким образом, чтобы иметь более высокое число пикселей. В качестве иллюстрации, кодер видео может быть сконфигурирован для использования 32×32-пиксельного макроблока для 1280×720 пиксельного кадра, отображаемого с частотой 30 кадров в секунду. В качестве другой иллюстрации, кодер видео может быть сконфигурирован для использования 64×64-пиксельного макроблока для 1280×720 пиксельного кадра, отображаемого с частотой 60 кадров в секунду.

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

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

[0061] Методики кодирования видео, описанные в данном изобретении, могут использовать одну или более возможностей для обеспечения кодирования больших макроблоков. Например, большой макроблок может быть разделен на меньшие разделы. К выбранным разделам внутри большого макроблока могут применяться разные режимы кодирования, например разные пространственные (I) или временные (P или B) режимы кодирования. Также, могут использоваться иерархические значения модели кодируемых блоков (CBP) для эффективной идентификации кодированных макроблоков и разделов, обладающих ненулевыми коэффициентами преобразования, представляющими собой данные остатка. В дополнение, для кодирования с использованием макроблоков большого и маленького размеров может производиться сравнение показателей искажения и скорости для выбора размера макроблока, дающего благоприятные результаты. Кроме того, кодируемая единица (например, кадр, вырезка, последовательность или группа изображений), содержащая макроблоки изменяющихся размеров, может включать в себя элемент синтаксиса, который указывает размер наибольшего макроблока в кодируемой единице. Как описано более подробно ниже, большие макроблоки содержат другой синтаксис уровня блока, чем стандартные 16×16-пиксельные блоки. Соответственно, посредством указания размера наибольшего макроблока в кодируемой единице кодер может сигнализировать декодеру синтаксис уровня блока, который должен применить декодер к макроблокам кодируемой единицы.

[0062] Использование разных режимов кодирования для разных разделов в большом макроблоке может именоваться как смешанный режим кодирования больших макроблоков. Вместо единообразного кодирования макроблока таким образом, что все разделы имеют один и тот же режим с внутрикадровым или с межкадровым кодированием, большой макроблок может кодироваться таким образом, что некоторые разделы имеют разные режимы кодирования, как например разные режимы с внутрикадровым кодированием (например, I_16×16, I_8×8, I_4×4) или режимы с внутрикадровым кодированием и межкадровым кодированием.

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

[0064] Одно или более значений иерархической модели кодируемых блоков (CBP) могут использоваться для эффективного описания того, обладают ли какие-нибудь разделы большого макроблока, по меньшей мере, одним ненулевым коэффициентом преобразования и, если да, то какие разделы. Коэффициенты преобразования кодируют данные остатка для большого макроблока. Бит уровня CBP большого макроблока указывает на то, включают ли в себя какие-нибудь разделы в большом макроблоке ненулевой, квантованный коэффициент. Если нет, то нет необходимости в рассмотрении того, обладает ли какой-нибудь из разделов ненулевым коэффициентом, так как известно, что весь большой макроблок не имеет ненулевых коэффициентов. В этом случае, для декодирования макроблока может использоваться предсказанный макроблок без данных остатка.

[0065] В качестве альтернативы, если значение CBP уровня макроблока указывает на то, что, по меньшей мере, один раздел в большом макроблоке обладает ненулевым коэффициентом, то затем могут анализироваться значения CBP уровня раздела для того, чтобы идентифицировать, какой из разделов включает в себя, по меньшей мере, один ненулевой коэффициент. Затем декодер может получить соответствующие данные остатка для разделов, обладающих, по меньшей мере, одним ненулевым коэффициентом, и декодировать разделы, используя данные остатка и данные предсказанного блока. В некоторых случаях, один или более разделов могут обладать ненулевыми коэффициентами, и поэтому включают в себя значения CBP уровня раздела с соответствующим указанием. Как большой макроблок, так и, по меньшей мере, некоторые разделы могут быть больше чем 16×16 пикселей.

[0066] Для выбора размеров макроблока, дающих благоприятные показатели искажения и скорости, показатели искажения и скорости могут анализироваться как для больших макроблоков (например, 32×32 или 64×64), так и для маленьких макроблоков (например, 16×16). Например, кодер может производить сравнение показателей искажения и скорости между макроблоками 16×16, макроблоками 32×32 и макроблоками 64х64 для кодируемой единицы, такой как кадр или вырезка. Затем кодер может выбрать размер макроблока, который приводит к наилучшему соотношению искажения и скорости и закодировать кодируемую единицу, используя выбранный размер макроблока, т.е. размер макроблока с наилучшим показателем искажения и скорости.

[0067] Выбор может быть основан на кодировании кадра или вырезки в три или более прохода, например, первый проход с использованием 16×16-пиксельных макроблоков, второй проход с использованием 32×32-пиксельных макроблоков и третий проход с использованием 64×64-пиксельного макроблоков, и сравнении показателей искажения и скорости для каждого прохода. Таким образом, кодер может оптимизировать соотношение искажения и скорости посредством изменения размера макроблока и выбора размера макроблока, который приводит к наилучшему или оптимальному показателю искажения и скорости для заданной единицы кодирования, такой как вырезка или кадр. Кодер дополнительно может передать информацию синтаксиса кодируемой единицы, например, как часть заголовка кадра или заголовка вырезки, которая идентифицирует размер макроблоков, использованных в кодируемой единице. Как рассматривается более подробно ниже, информация синтаксиса для единицы кодирования может содержать указатель максимального размера, который указывает максимальный размер макроблоков, используемых в кодируемой единице. Таким образом, кодер может сообщить декодеру, например, какой синтаксис ожидать для макроблоков кодируемой единицы. Когда максимальный размер макроблоков содержит 16×16 пикселей, декодер может ожидать использование синтаксиса стандарта H.264 и анализировать макроблоки в соответствии с синтаксисом, заданным для H.264. Тем не менее, когда максимал