Получение контекста для кодирования последней позиции при выполнении видеокодирования
Иллюстрации
Показать всеИзобретение относится к вычислительной технике. Технический результат заключается в повышении эффективности использования памяти видеокодера/видеодекодера. Способ кодирования видеоданных содержит определение контекста для энтропийного кодирования бина значения, указывающего последний значащий коэффициент блока видеоданных, с использованием функции индекса упомянутого бина, в котором функция создает контекстный индекс для контекста путем сдвига вправо индекса бина на величину k и добавления сдвинутого вправо значения к значению смещения, причем значение смещения определяют согласно формуле: offset=3*n+((n+1)>>2), причем значение k определяют согласно формуле: k=(n+3)>>2, и причем значение n определяют согласно формуле: n=(log2(block_size)-2), и причем значение block_size содержит значение, указывающее размер блока, и кодирование упомянутого бина с использованием определенного контекста. 4 н. и 17 з.п. ф-лы, 5 ил., 10 табл.
Реферат
Данная заявка испрашивает приоритет предварительной заявки США №61/614,178, поданной 22 марта 2012 года, предварительной заявки США №61/620,273, поданной 04 апреля 2012 года и предварительной заявки США №61/666,316, поданной 29 июня 2012 года, содержание каждой из которых включено сюда по ссылке.
Область техники
Настоящее изобретение относится к видеокодированию.
Уровень техники
Возможности цифрового видео могут быть предусмотрены в устройства самого широкого применения, в том числе цифровые телевизионные приемники, системы прямого цифрового вещания, системы беспроводного вещания, персональные цифровые помощники (PDA), портативные компьютеры или настольные компьютеры, планшетные компьютеры, устройства считывания электронных книг, цифровые камеры, цифровые записывающие устройства, цифровые медиаплееры, видеоигровые устройства, видеоигровые консоли, сотовые или спутниковые радиотелефоны, так называемые «смартфоны», устройства для проведения видеотелеконференций, устройства потокового видео и т.п. Устройства цифрового видео реализуют методики видеокодирования, такие как описаны в стандартах, определенных как MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Часть 10, стандарт усовершенствованного видеокодирования (AVC), стандарт высокоэффективного видеокодирования (HEVC), находящийся в процессе разработки, а также расширения указанных стандартов. Видеоустройства могут передавать, принимать, кодировать, декодировать и/или запоминать цифровую видеоинформацию более эффективным образом путем реализации указанных методик видеокодирования.
Методики видеокодирования включают в себя пространственное (интракадровое) предсказание и/или временное (интеркадровое) предсказание для уменьшения или устранения избыточности, присущей видеопоследовательностям. Для видеокодирования на основе блоков видеослайсы (например, видеокадр или часть видеокадра) могут быть разделены на видеоблоки, которые также могут называться древовидными блоками, единицами кодирования (CU), и/или узлами кодирования. Видеоблоки в интракодированном (I) слайсе изображения кодируют с использованием пространственного предсказания применительно к опорным отсчетам в соседних блоках одного и того же изображения. В видеоблоках в интеркодированном (P или B) слайсе изображения может использоваться пространственное предсказание в отношении опорных отсчетов в соседних блоках одного и того же изображения или временное предсказание в отношении опорных отсчетов других опорных изображений. Изображения могут называться кадрами, а опорные изображения могут называться опорными кадрами.
В результате пространственного или временного предсказания получают блок предсказания для блока, подлежащего кодированию. Остаточные данные представляют пиксельные разности между исходным блоком, подлежащим кодированию, и блоком предсказания. Интеркодированный блок кодируют в соответствии с вектором движения, который указывает блок опорных отсчетов, образующих блок предсказания, и в соответствии с остаточным данными, показывающими разность между кодированным блоком и блоком предсказания. Интракодированный блок кодируют в соответствии с режимом интракодирования и остаточными данными. Для дополнительного сжатия остаточные данные можно преобразовать из пиксельной области в область преобразования, в результате чего получают остаточные коэффициенты преобразования, которые затем могут быть подвергнуты квантованию. Квантованные коэффициенты преобразования, первоначально скомпонованные в двумерной матрице, могут быть отсканированы для создания одномерного вектора коэффициентов преобразования, к которым можно применить энтропийное кодирование для достижения еще большего сжатия.
Сущность изобретения
В общем случае в этом изобретении описываются методики для кодирования синтаксических элементов, связанных с видеоданными, с использованием одной или нескольких функций. Например, устройство может реализовать одну или несколько методик для кодирования значения, указывающего позицию последнего значащего коэффициента блока видеоданных (такого как единица преобразования, или «TU»). Для кодирования этого значения устройство может использовать функцию индекса каждого бита (или «бина») в бинаризованном значении, соответствующем последнему значащему коэффициенту, где индекс указывает позицию бина в матрице бинов, представляющих упомянутое бинаризованное значение.
В одном примере способ включает в себя определение контекста для энтропийного кодирования бина значения, указывающего последний значащий коэффициент блока видеоданных, с использованием функции индекса этого бина, и кодирование указанного бина с использованием определенного контекста.
В другом примере устройство для кодирования видеоданных включает в себя видеокодер, выполненный с возможностью определения контекста для энтропийного кодирования бина значения, указывающего последний значащий коэффициент блока видеоданных, с использованием функции индекса этого бина, и кодирование бина с использованием определенного контекста.
Еще в одном примере устройство включает в себя средство для определения контекста для энтропийного кодирования бина значения, указывающего последний значащий коэффициент блока видеоданных, с использованием функции индекса этого бина, и средство для кодирования бина с использованием определенного контекста.
В следующем примере считываемый компьютером носитель данных закодирован командами. При выполнении эти команды предписывают программируемому процессору вычислительного устройства определять контекст для энтропийного кодирования бина значения, указывающего последний значащий коэффициент блока видеоданных, с использованием функции индекса этого бина, и кодирования бина с использованием определенного контекста.
Далее на сопроводительных чертежах и приведенном ниже описании излагаются детали одного или нескольких примеров. Другие признаки, задачи и преимущества изобретения станут очевидными из упомянутого описания, чертежей, а также из формулы изобретения.
Краткое описание чертежей
Фиг. 1 - блок-схема, иллюстрирующая приведенную в качестве примера систему видеокодирования и видеодекодирования, в которой могут использоваться методики для определения контекста с целью его использования для кодирования значения, представляющего последний значащий коэффициент блока видеоданных;
Фиг. 2 - блок-схема, иллюстрирующая приведенный в качестве примера видеокодер, которой может реализовать методики для определения контекста с целью его использования для кодирования значения, представляющего последний значащий коэффициент блока видеоданных;
Фиг. 3 - блок-схема, иллюстрирующая приведенный в качестве примера видеодекодер, которой может реализовать методики для определения контекста с целью его использования для кодирования значения, представляющего последний значащий коэффициент блока видеоданных;
Фиг. 4 - блок-схема, иллюстрирующая приведенный в качестве примера способ кодирования текущего блока видеоданных;
Фиг. 5 - блок-схема, иллюстрирующая приведенный в качестве примера способ декодирования текущего блока видеоданных.
Подробное описание изобретения
В общем случае методики этого изобретения относятся к видеокодированию. При видеокодировании последовательность изображений кодируют индивидуально, используя либо пространственное предсказание (интра-предсказание), либо временное предсказание (интер-предсказание). В частности, видеокодеры кодируют отдельные блоки изображений, используя интра- или инте-предсказание. Видеокодеры также кодируют остаточные данные для блоков, где остаточные данные в общем случае соответствуют остаточным блокам, которые представляют разности по пикселям между предсказанными данными и не обработанными, не кодированными данными. Видеокодеры могут выполнить преобразование и квантование остаточных данных для создания квантованных коэффициентов преобразования для остаточных блоков. Видеокодеры дополнительно кодируют синтаксические данные такие как, являются ли эти коэффициенты значащими (то есть имеют абсолютные значения, превышающие 0), местоположения значащих коэффициентов, местоположение последнего значащего коэффициента в порядке сканирования и значения уровня для значащих коэффициентов.
В настоящем изобретении описаны методики для кодирования значения, указывающего последний значащий коэффициент в блоке видеоданных, таком как единица преобразования (TU). В частности, для кодирования синтаксических элементов, таких как значение, указывающее последний значащий коэффициент в блоке, видеокодеры могут быть выполнены с возможностью применения контекстно-адаптивного бинарного арифметического кодирования (CABAC). CABAC кодирование включает в себя использование различных контекстов, указанных контекстными индексами, которые обычно указывают вероятность того, что отдельный бит (или «бин») бинаризованной цепочки будет иметь конкретное значение (например 0 или 1). В частности контекст для кодирования бина значения, указывающего последний значащий коэффициент в блоке, определяют отдельно для каждого бина указанного значения, то есть на основе местоположения этого бина в данном значении (например, индекс бина в предположении, что упомянутое значение представлено в виде матрицы бинов).
Методики этого изобретения включают в себя использование некой функции для определения контекстного индекса контекста для использования с целью кодирования бина, а не использование таблицы отображения, которая обеспечивает указания контекстных индексов для контекстов с целью их использования для кодирования конкретных бинов. В частности, такой функцией может быть функция индекса бина. Например, если предположить, что упомянутый бин является i-м бином кодируемого значения, то может быть определена функция в виде f(i), где f(i) возвращает значение контекстного индекса, соответствующего контексту для использования с целью кодирования бина i бинаризованного значения. Как было описано выше, контекст может указывать вероятность того, что бин i будет иметь конкретное значение, например, 0 или 1.
Таким путем в настоящем изобретении описаны методики кодирования согласно CABAC позиции последнего значащего коэффициента (последняя позиция). Для бина последней позиции, подлежащего кодированию, индекс контекста CABAC можно получить, используя функцию, такую как таблица отображения бинов последней позиции на контексты CABAC, на которой можно сэкономить (например, не хранить). Кодирование CABAC обычно включает в себя две части: бинаризацию и кодирование CABAC. Процесс бинаризации выполняют для преобразования местоположения последнего значащего коэффициента блока в двоичную цепочку, например, матрицу бинов. Способом бинаризации, используемым в тестовой модели высокоэффективного видеокодирования (HM), является усеченное унарное кодирование с фиксированной длиной. Для части усеченного унарного кода кодирование бинов осуществляется с использование контекстов CABAC. Для части с фиксированной длиной кодирование бинов осуществляется с использованием обходного режима (без контекстов). Пример TU (единица преобразования/блок преобразования) размером 32×32 показан в Таблице 1.
Таблица 1 | |||
Величина компоненты последней позиции | Усеченный унарный (контекстная модель) | Фиксированный бинарный (обходной) | f_value |
0 | 1 | - | 0 |
1 | 01 | - | 0 |
2 | 001 | - | 0 |
3 | 0001 | - | 0 |
4-5 | 00001 | X | 0-1 |
6-7 | 000001 | X | 0-1 |
8-11 | 0000001 | XX | 0-3 |
12-15 | 00000001 | XX | 0-3 |
16-23 | 000000001 | XXX | 0-7 |
24-31 | 0000000001 | XXX | 0-7 |
В приведенной ниже Таблице 2 показан пример таблицы контекстного отображения, используемой в стандартной модели HM. В Таблице 2 показано, что последние позиции в разных местах могут иметь одинаковые контексты. Для некоторых бинов, например, бины 6-7 блока 8×8 контекст не присвоен, поскольку они кодированы без контекста (обходной режим), как показано в приведенной выше Таблице 1.
Таблица 2 | ||||||||||
Индекс бина | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
TU 4×4 | 0 | 1 | 2 | |||||||
TU 8×8 | 3 | 4 | 5 | 5 | 2 | |||||
TU 16×6 | 6 | 7 | 8 | 8 | 9 | 9 | 2 | |||
TU 32×32 | 10 | 11 | 12 | 14 | 13 | 13 | 14 | 14 | 2 |
Хотя в стандартной модели HM таблица, такая как таблица 2, используется для определения контекстов для кодирования бинов, значения последней позиции (то есть значения, указывающего позицию последнего значащего коэффициента в блоке видеоданных), раскрытые здесь методики включают в себя использование функции для определения контекстов для кодирования бинов значения последней позиции. Таким образом, в видеокодере, сконфигурированном согласно методикам, предложенным в настоящем изобретении, нет необходимости иметь таблицу, подобную Таблице 2. Для получения контекстного индекса CABAC для бинов при кодировании последней позиции можно использовать функцию, так что таблицу отображения (Таблица 2) можно исключить. Далее более подробно описываются различные примеры устройств кодирования, выполненных с возможностью реализации функции, предназначенной для определения контекстов для кодирования бинов синтаксических элементов.
На фиг. 1 представлена блок-схема, где показан пример системы 10 видеокодирования и видеодекодирования, в которой могут быть использованы методики для определения контекста с целью его использования для кодирования значения, представляющего последний значащий коэффициент блока видеоданных. Как показано на фиг. 1 система 10 включает в себя устройство-источник 12, которое обеспечивает кодированные видеоданные, в последствии подлежащие декодированию устройством-адресатом 14. В частности, устройство-источник 12 подает видеоданные на устройство-адресат 14, используя считываемую компьютером среду 16. Устройство-источник 12 и устройство-адресат 14 могут содержать любое из самых разных устройств, в том числе, настольные компьютеры, компьютеры типа «ноутбук» (например, «лэптоп»), планшетные компьютеры, телевизионные приставки, телефонные трубки, такие как так называемые «смартфоны», так называемые «смартпэды», телевизионные приемники, камеры, устройства отображения, цифровые медиаплееры, видеоигровые консоли, устройство потокового видео или т.п. В некоторых случаях устройство-источник 12 и устройство-адресат 14 могут быть оборудованы средствами беспроводной связи.
Устройство-адресат 14 может принимать кодированные видеоданные, подлежащие декодированию, через считываемую компьютером среду 16. Считываемая компьютером среда 16 может содержать среду или устройство любого типа, способное перемещать кодированные видеоданные от устройства-источника 12 на устройство-адресат 14. В одном примере считываемая компьютером среда 16 может содержать среду связи, предоставляющую устройству-источнику 12 возможность передавать кодированные видеоданные непосредственно на устройство-адресат 14 в режиме реального времени. Кодированные видеоданные могут модулироваться согласно стандарту связи, такому как протокол беспроводной связи, и передаваться на устройство-адресат 14. Среда связи может содержать любой носитель проводной или беспроводной связи, например, радиочастотный (RF) спектр или одно или несколько физических линий передачи. Среда связи может составлять часть сети пакетной передачи, такой как локальная сеть, региональная сеть или глобальная сеть, например Интернет. Среда связи может включать в себя маршрутизаторы, коммутаторы, базовые станции или любое другое оборудование, которое может быть полезно для осуществления связи между устройством-источником 12 и устройством-адресатом 14.
В некоторых примерах кодированные данные могут выводиться через выходной интерфейс 22 в запоминающее устройство. Аналогичным образом, доступ к кодированным данным из запоминающего устройства может осуществляться через входной интерфейс. Это запоминающее устройство может включать в себя самые разные распределенные или локально доступные запоминающие среды, такие как накопитель на жестких дисках, диски типа Blu-ray, диски DVD, диски CD-ROM, флэш-память, энергозависимую или энергонезависимую память, либо любую другую подходящую цифровую запоминающую среду для хранения кодированных видеоданных. В еще одном примере запоминающее устройство может соответствовать файловому серверу или другому промежуточному запоминающему устройству, которое может хранить кодированное видео, созданное устройством-источником 12. Устройство-адресат 14 в этом примере может обращаться к кодированным видеоданным из запоминающего устройства посредством потоковой передачи или загрузки. Файловый сервер может представлять собой сервер любого типа, способный запоминать и хранить кодированные видеоданные и передавать эти кодированные видеоданные на устройство-адресат 14. Примеры файловых серверов включают в себя Web-сервер (например, для Web-сайта), сервер Протокола пересылки файлов (FTP), подключенные к сети запоминающие устройства (NAS) и локальные накопители на диске. Устройство-адресат 14 может иметь доступ к кодированным видеоданным через любое стандартное соединение для передачи данных, в том числе Интернет соединение. Такие соединения могут включать в себя беспроводные каналы (например, Wi-Fi соединения), проводные соединения (например, DSL, кабельный модем и т.д.), либо комбинацию обоих видов соединений, которая подходит для доступа к кодированным видеоданным, хранящимся на файловом сервере. Передача кодированных видеоданных от запоминающего устройства может быть реализована в виде потоковой передачи, передачи с загрузкой или их комбинации.
Раскрытые здесь методики не обязательно ограничиваются беспроводными приложениями или установками. Эти методики можно применить к видеокодированию для поддержки любого из разнообразных мультимедийных приложений, таких как эфирное телевизионное вещание, передачи кабельного телевидения, передачи спутникового телевидения, передачи потокового видео, например, через Интернет, такие как динамическая адаптивная потоковая передача по Протоколу HTTP (DASH), цифровое видео, кодированное в запоминающей среде, декодирование цифрового видео, хранящегося в запоминающей среде, или другие приложения. В некоторых примерах система 10 может быть выполнена с возможностью поддержки однонаправленной или двунаправленной передачи видео для поддержки приложений, таких как потоковое видео, видео воспроизведение, видеовещание и/или видеотелефония.
В примере по фиг. 1 устройство-источник 12 включает в себя источник 18 видео, видеокодер 20 и выходной интерфейс 22. Устройство-адресат 14 включает в себя входной интерфейс 28, видеодекодер 30 и устройство 32 отображения. Согласно настоящему изобретению видеокодер 20 устройства-источника 12 может быть выполнен с возможностью применения методик определения контекста с целью использования для кодирования значения, представляющего последний значащий коэффициент блока видеоданных. В других примерах устройство-источник и устройство-адресат могут включать в себя другие компоненты или компоновки. Например, устройство-источник 12 может принимать видеоданные от внешнего источника 18 видео, такого как внешняя камера. Аналогичным образом устройство-адресат 14 может взаимодействовать с внешним устройством отображения, а не содержать встроенное устройство отображения.
Показанная на фиг. 1 система 10 является просто одним из примеров. Методики определения контекста с целью его использования для кодирования значения, представляющего последний значащий коэффициент блока видеоданных, могут быть реализованы с помощью любого устройства цифрового видеокодирования и/или видеодекодирования. Хотя в общем случае раскрытые здесь методики реализуются устройством видеокодирования, они также могут быть реализованы видеокодером/видеодекодером, называемым, как правило, «кодек». Кроме того, раскрытые здесь методики могут быть реализованы процессором предварительной обработки видео. Устройство-источник 12 и устройство-адресат 14 являются лишь примерами указанных устройств кодирования, в которых устройство-источник 12 создает кодированные видеоданные для передачи на устройство-адресат 14. В некоторых примерах устройства 12, 14 могут функционировать по существу симметричным образом, так что каждое из устройств 12, 14 включает в себя компоненты видеокодирования и видеодекодирования. Таким образом, система 10 может поддерживать однонаправленную или двунаправленную передачу видео между устройствами 12, 14, например, для потокового видео, воспроизведения видео, видеовещания или видеотелефонии.
Источник 18 видео устройства-источника 12 может включать в себя устройство захвата изображения, такое как видеокамера, видеоархив, содержащий ранее зафиксированное видео, и/или интерфейс подачи видео для приема видео от провайдера видеоконтента. В качестве дополнительной альтернативы, источник 18 видео может создавать данные на основе компьютерной графики в качестве исходного видео или комбинации реального видео, архивированного видео и видео, созданного компьютером. В некоторых случаях, если источником 18 видео является видеокамера, устройство-источник 12 и устройство-адресат 14 могут образовать так называемые «камерофоны» или «видеофоны». Однако, как упоминалось выше, раскрытые здесь методики можно применить к видеокодированию в целом, а также к приложениям для беспроводной и/или проводной связи. В каждом случае зафиксированное видео, предварительно зафиксированное видео или созданное компьютером видео может быть кодировано видеокодером 20. Затем кодированная видеоинформация может быть выведена выходным интерфейсом 22 в считываемую компьютером среду 16.
Считываемая компьютером среда 16 может включать в себя среду передачи, такую как беспроводное вещание или проводная сетевая передача, либо запоминающую среду (то есть некратковременная запоминающая среда), такую как жесткий диск, флэш-память, компакт-диск, цифровой видеодиск, диск Blue-ray или другую, считываемую компьютером среду. В некоторых примерах сетевой сервер (не показан) может принимать кодированные видеоданные от устройства-источника 12 и подавать эти кодированные видеоданные на устройство-адресат 14, например, посредством сетевой передачи. Аналогичным образом, вычислительное устройство средства создания медиа, такого как средство штамповки дисков, может принимать кодированные видеоданные от устройства-источника 12 и формировать диск, содержащий кодированные видеоданные. Таким образом, следует понимать, что в разных примерах считываемая компьютером среда 16 включает в себя одну или более считываемых компьютером сред различных видов.
Входной интерфейс 28 устройства-адресата 14 принимает информацию из считываемой компьютером среды 16. Информация в считываемой компьютером среде 16 может включать в себя синтаксическую информацию, определенную видеокодером 20, которая также используется видеодекодером 30, которая содержит синтаксические элементы, описывающие характеристики, и/или обработку блоков и других кодированных единиц (например, GOP). Устройство 32 отображения отображает декодированные видеоданные пользователю и может содержать любое из множества различных устройств отображения, таких как электронно-лучевая трубка (CRT), жидкокристаллический дисплей (LCD), плазменный дисплей, дисплей на органических светоизлучающих диодах (OLED), либо устройство отображения другого типа.
Видеокодер 20 и видеодекодер 30 могут работать в соответствии со стандартом видеокодирования, таким как стандарт высокоэффективного видеокодирования (HEVC), разрабатываемый в настоящее время, и может соответствовать тестовой модели (HM) стандарта HEVC. В качестве альтернативы, видеокодер 20 и видеодекодер 30 могут работать согласно другим коммерческим или промышленным стандартам, таким как стандарт ITU-T H.264, имеющий другое название MPEG-4 часть 10, стандарт усовершенствованного видеокодирования (AVC) или расширения указанных стандартов. Однако раскрытые здесь методики не ограничиваются любым конкретным стандартом кодирования. Другие примеры стандартов видеокодирования включают в себя стандарты MPEG-2 и ITU-T H.263. Хотя это на фиг. 1 не показано, согласно некоторым аспектам видеокодер 20 и видеодекодер 30 могут каждый быть интегрированными с аудиокодером и аудиодекодером, причем они могут включать в себя соответствующие блоки MUX-DEMUX или другие элементы аппаратного и программного обеспечения для обработки кодирования как аудио, так и видео в общем потоке данных или отдельных потоках данных. Если это применимо, то блоки MUX-DEMUX могут соответствовать протоколу мультиплексора ITU H.223 или другим протоколам, таким как протокол дейтаграмм пользователя (UDP).
Стандарт ITU-T H.264/MPEG-4 (AVC) был разработан экспертной группой по видеокодированию ITU-T вместе с экспертной группой по движущимся изображениям (MPEG) ISO/IEC, как продукт коллектива, известного как Объединенная команда разработчиков (JVT). В некоторых аспектах описанные в этом изобретении методики можно применить к устройствам, которые в целом соответствуют стандарту H.264. Стандарт H.264 описан в ITU-T Recommendation H.264, Advanced Video Coding для стандартных аудиовизуальных услуг исследовательской группой ITU-T в марте 2005 года, который далее называется здесь стандартом H.264, спецификацией H.264 или стандартом или спецификацией H.264/AVC. Объединенная команда разработчиков видео (JVT) продолжает работу над расширениями H.264/MPEG-4 AVC.
Видеокодер 20 и видеодекодер 30 могут быть реализованы каждый в виде любого из множества подходящих схем кодера, таких как один или несколько микропроцессоров, цифровых процессоров сигналов (DSP), прикладных специализированных интегральных схем (ASIC), вентильных матриц, программируемых пользователем (FPGA), дискретной логики, программного обеспечения, аппаратного обеспечения, программно-аппаратного обеспечения или любой их комбинации. При частичной реализации этих методик программными средствами в устройстве могут храниться команды для этих программных средств на подходящем считываемом компьютером носителе длительного хранения, и устройство может выполнять эти команды аппаратными средствами, используя один или несколько процессоров для выполнения раскрытых здесь методик. Видеокодер 20 и видеодекодер 30 могут входить в состав одного или нескольких кодеров либо декодеров, любой из которых может являться составной частью комбинированного кодера/декодера (CODEC) в соответствующем устройстве.
Команда JCT-VC работает в настоящее время над созданием стандарта HEVC. Работы по созданию стандарта HEVC основаны на усовершенствовании модели устройства видеокодирования, называемой тестовой моделью стандарта HEVC (HM). Модель HM предлагает несколько дополнительных функций устройств видеокодирования по сравнению с существующими устройствами, соответствующими, например, стандарту ITU-T H.264/AVC. В то время как стандарт H.264 обеспечивает девять режимов интра-кодирования, модель HM может обеспечить до тридцати трех режимов интра-кодирования.
В общем случае рабочая модель HM предполагает возможность разделения видеокадра или видеоизображения на последовательность древовидных блоков или максимальных единиц кодирования (LCU), которые включают в себя как отсчеты яркости, так и отсчеты цветности. Синтаксические данные в битовом потоке могут определить размер для LCU, которая является максимальной единицей кодирования с точки зрения количества пикселей. Слайс включает в себя несколько последовательных древовидных блоков в порядке кодирования. Видеокадр или видеоизображение можно разбить на один или несколько слайсов. Каждый древовидный блок можно разделить на единицы кодирования (CU) согласно квадродереву. В общем случае структура данных квадродерева включает в себя один узел на одну CU с корневым узлом, соответствующим указанному древовидному блоку. Если CU разделена на четыре суб-CU, то узел, соответствующий этой CU, включает в себя четыре концевых узла, каждый из которых соответствует одной из суб-CU.
Каждый узел структуры данных квадродерева может обеспечить синтаксические данные для соответствующей CU. Например, узел в квадродереве может включать в себя флаг разделения, указывающий, разделена ли CU, соответствующая данному узлу, на несколько суб-CU. Синтаксические элементы для CU могут быть определены рекурсивно и зависеть от того, разделена ли данная CU на суб-CU. Если CU далее не разделяется, то она называется концевой CU. В этом изобретении четыре суб-CU концевой CU также называются концевыми CU, даже в том случае, если в явном виде отсутствует разделение исходной концевой CU. Например, если CU размером 16×16 далее не разделена, то четыре суб-CU размером 8×8 также будут называться концевыми CU, хотя CU размером 16×16 никогда не расщеплялась.
Единица CU имеет такое же назначение, как макроблок в стандарте H.264 за исключением того, что CU не имеет точно установленный размер. Например, древовидный блок может быть разделен на четыре дочерних узла (называемых также суб-CU), а каждый дочерний узел, в свою очередь, может быть родительским узлом и быть разделен на четыре других дочерних узла. Конечный неразделенный дочерний узел, называемый концевым узлом квадродерева, содержит узел кодирования, также называемый концевой CU. Синтаксические данные, связанные с кодированным битовым потоком могут определить максимально возможное количество разделений древовидного блока, называемое максимальной глубиной CU, а также могут определить минимальный размер узлов кодирования. Соответственно, битовый поток также может определить минимальную единицу кодирования (SCU). В настоящем изобретении для ссылки на любую из единиц (CU, PU или TU) в контексте стандарта HEVC используется термин «блок», или на аналогичные структуры данных в контексте других стандартов (например, макроблоки и их субблоки в стандарте H.264/AVC).
Единица CU включает в себя узел кодирования и единицы предсказания (PU), а также единицы преобразования (TU) связанные с узлом кодирования. Размер единицы CU соответствует размеру узла кодирования, причем она должна иметь форму квадрата. Размер CU может находиться в диапазоне от 8×8 пикселей до размера древовидного блока с максимальным размером 64×64 пикселей или более. Каждая CU может содержать одну или несколько PU и одну или несколько TU. Синтаксические данные, связанные с CU, могут, например, описывать разделения CU на одну или несколько PU. Режимы разделения могут отличаться друг от друга в зависимости от того, закодирована ли CU в режиме с интра-предсказанием или в режиме с интер-предсказанием. Единицы PU могут быть разделены на неквадратные части. Синтаксические данные, связанные с CU, могут также описывать, например, разделение CU на одну или несколько PU согласно квадродереву. Единица TU может иметь квадратную или неквадратную (например, прямоугольную) форму.
Стандарт HEVC позволяет выполнять преобразования в соответствии с единицами TU, которые могут отличаться для разных CU. Размеры TU, как правило, устанавливают на основе размера единиц PU в данной CU, определенной для LCU, хотя так может быть не всегда. Единицы TU, как правило, имеют такой же или меньший размер, чем единицы PU. В некоторых примерах остаточные отсчеты, соответствующие CU, могут быть подразделены на меньшие единицы с использованием структуры квадродерева, известной как «остаточное квадродерево» (RQT). Концевые узлы RQT могут называться единицами преобразования (TU). Значения пиксельной разности, связанные с единицами TU, можно преобразовать для создания коэффициентов преобразования, которые можно подвергнуть квантованию.
Концевая CU может включать в себя одну или несколько единиц предсказания (PU). В общем случае PU представляет пространственную область, соответствующую всем или части соответствующих CU и может включать в себя данные для извлечения опорного отсчета для данной PU. Кроме того, PU включает в себя данные, относящиеся к предсказанию. Например, когда PU кодируют с использованием интра-режима, данные для этой PU могут быть включены в остаточное квадродерево (RQT), которое может включать в себя данные, описывающие режим интра-предсказания для TU, соответствующей данной PU. В другом примере, когда при кодировании PU используется интер-режим, PU может содержать данные, определяющие один или несколько векторов движения для этой PU. Данные, определяющие вектор движения для PU, могут, например, описывать горизонтальную компоненту вектора движения, вертикальную компоненту вектора движения, разрешающую способность для вектора движения (например, с точностью в четверть пикселя или с точностью в одну восьмую пикселя), опорное изображение, на которое указывает вектор движения и/или список опорных изображений (например, список 0, список 1 или список С) для вектора движения.
Концевая CU, имеющая одну или несколько PU, также может включать в себя одну или несколько единиц преобразования (TU). Единицы преобразования могут быть заданы с использованием RQT (также называемым структурой квадродерева TU), как было описано выше. Например, флаг разделения может указывать, разделена ли концевая CU на четыре единицы преобразования. Затем каждая единица преобразования может быть дополнительно разделена на суб-TU. Когда TU далее не разделяется, ее можно назвать концевой TU. В общем случае для интра-кодирования все концевые TU, принадлежащие одной концевой CU, совместно используют один и тот же режим интра-предсказания. То есть для вычисления предсказанных значений для всех TU концевой CU обычно применяется один и тот же режим интра-предсказания. Для интра-кодирования видеокодер может вычислить остаточное значение для каждой концевой TU, используя режим интра-предсказания, в виде разности между частью CU, соответствующей TU, и исходным блоком. Размер TU нет необходимости ограничить размером PU. Таким образом, TU могут быть больше и меньше, чем PU. Для интра-кодирования PU может быть совмещена с соответствующей концевой TU для одной и той же CU. В некоторых примерах максимальный размер концевой TU может соответствовать размеру соответствующей концевой CU.
Кроме того, единицы TU концевых CU также могут быть связаны с соответствующими структурами данных квадродерева, называемыми остаточными квадродеревьями (RQT). То есть концевая CU может включать в себя квадродерево, указывающее, каким образом концевая CU разделена на единицы TU. В общем случае корневой узел квадродерева TU соответствует концевой CU, в то время как корневой узел квадродерева CU в общем случае соответствует древовидному блоку (или