Фильтр адаптивного смещения центральной полосы для видеокодирования

Иллюстрации

Показать все

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

Реферат

Данная заявка испрашивает приоритет по предварительной заявке США №61/556,085, поданной 04 ноября 2011 года, содержание которой целиком включено в данный документ по ссылке.

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

Настоящее изобретение относится в общем к видеокодированию и в, частности, относится к фильтрации с адаптивным смещением отсчетов (SAO) в процессе видеокодирования.

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

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

Согласно методикам сжатия видео выполняется пространственное (внутрикадровое, интра-) предсказание и/или временное (межкадровое, интер-) предсказание с целью уменьшения или исключения избыточности, свойственной видеопоследовательностям. Для видеокодирования на блочной основе видеослайс (то есть, видеокадр или часть видеокадра) может быть разделен на видеоблоки, которые также могут называться древовидными блоками, блоками кодирования (CU), и/или узлами кодирования. Видеоблоки в слайсе изображения с интра-кодированием (I) кодируют с использованием пространственного предсказания применительно к опорным отсчетам в соседних блоках одного и того же изображения. В видеоблоках в слайсе изображения с интер-кодированием (P или B) может использоваться пространственное предсказание в отношении опорных отсчетов в соседних блоках одного и того же изображения или временное предсказание в отношении опорных отсчетов других опорных изображений. Изображения могут называться кадрами, а опорные изображения могут называться опорными кадрами.

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

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

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

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

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

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

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

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

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

фиг. 2 - примеры, раскрывающие классификацию краевых смещений для фильтрации с адаптивным смещением отсчетов на основе краев;

фигуры 3А и 3В - примеры группирования полос для классификации смещений полос для фильтрации с адаптивным смещением отсчетов на основе полос;

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

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

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

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

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

Как более подробно объясняется ниже, в некоторых конфигурациях блок SAO фильтра может быть сконфигурирован для выполнения фильтрации со смещением двух типов, обычно называемых в данном описании как фильтрация со смещением полос и фильтрация со смещением краев. Блок SAO фильтра иногда может также не применять смещение, что само по себе можно рассматривать в качестве фильтрации со смещением третьего типа. О типе фильтрации со смещением, применяемой SAO фильтром, может быть сообщено видеодекодеру в явном или в неявном виде. При применении фильтрации со смещением краев пиксели можно классифицировать на основе информации о крае блока кодирования, а смещение для пикселей может быть определено на основе классификации краев. Как более подробно объясняется со ссылками на фиг. 2, как правило, имеется четыре варианта SAO на основе краев, где значение пикселя сравнивают с двумя из его восьми соседних пикселей. Какие два пикселя использовать для сравнения, зависит от используемого варианта смещения на основе края. Смещение добавляют к значению пикселя, исходя из разницы в величине.

При использовании фильтрации со смещением полос пиксели можно отнести к разным полосам в зависимости от значения пикселя, например, значения интенсивности, причем каждая полоса имеет соответствующее смещение. Полоса включает в себя диапазон пиксельных значений. Например, пиксельные значения в диапазоне от 0 до 255 можно разбить на 32 равные полосы (обозначенные от 0 до 31), так что пиксельные значения 0-7 будут представлять первую полосу, пиксельные значения 8-15 буду представлять вторую полосу, пиксельные значения 16-23 будут представлять третью полосу и так далее для всех тридцати двух полос. Эти полосы можно использовать для определения того, какое конкретное значение смещения применить к пикселю или к группе пикселей. Например, если пиксель имеет значение 10 (которое находится в пределах второй полосы, то есть, в диапазоне значений 8-15, в приведенном выше примере), то тогда к пиксельному значению можно добавить смещение, связанное со второй полосой.

В целях сигнализации и формирования смещений для различных полос, эти полосы можно сгруппировать в две или более группы. Для фильтрации со смещением полос пиксели, например, могут быть отнесены к тридцати двум полосам (полосы 0-31), как было описано выше, а эти полосы можно сгруппировать в две группы (например, две группы из шестнадцати полос, одну группу из четырех полос и одну группу из двадцати восьми полос, одну группу из восьми полос и одну группу из двадцати четырех полос, либо использовать другие варианты группировки). Эти варианты группировки полос можно использовать для определения порядка, в котором будет выполняться сигнализация о значениях смещения для указанных полос в закодированном битовом видеопотоке, и/или их можно использовать для определения того, имеет ли конкретная полоса значение смещения, отличное от нуля. Сигнализация о смещении для указанных полос может осуществляться с использованием различных методик кодирования, согласно которым сигнализация о текущем значении передается в виде разности между текущим значением и предыдущим значением. Экономия бит, достигаемая в результате использования указанных методик кодирования, в некоторых случаях может зависеть от порядка выполнения сигнализации об упомянутых значениях. Например, более существенная экономия бит может быть достигнута в случаях, когда близкие значения смещения передаются в качестве сигнализации последовательно. В некоторых случаях можно положить, что все значения смещения для конкретной группы, например, упомянутой второй группы, равны нулю.

Согласно некоторым методикам указанные варианты группировки полос являются статическими. Например, согласно одной методике шестнадцать средних полос (полосы 8-23) всегда образуют одну группу из шестнадцати полос, в то время как восемь полос слева (полосы 0-7) и восемь полос справа (полосы 24-31) образуют вторую группу из шестнадцати полос. В данном изобретении описываются методики для динамического определения вариантов группировки полос. Как более подробно объясняется ниже, видеокодер или видеодекодер могут динамически определить вариант группировки полос путем динамического определения значения центра на основе значений пикселей. В некоторых конфигурациях сигнализация, указывающая значение центра, может быть обеспечена в закодированном битовом видеопотоке, так что видеодекодеру не придется определять значение центра на основе значений пикселей, а вместо этого он может определить это значение пикселя на основе сигнализации в явном виде, представленной в битовом потоке. Указанное значение центра можно использовать для определения первой группы полос, а остальные полосы могут образовать вторую группу полос. Как будет ясно из приведенных ниже примеров, термин «значение центра», используемый в данном изобретении, обычно относится к любому значению, которое можно использовать для выравнивания или для приблизительного выравнивания центра группы полос по конкретному значению пикселя. Таким образом, используемый здесь термин «значение центра», может относиться к конкретному значению пикселя, по которому выравнивается центр группы полос, или может представлять собой какое-либо другое значение, например, начальное значение пикселя или конечное значение пикселя для полосы или группы полос. В некоторых случаях, в отличие от идентификации значения пикселя, значение центра может идентифицировать конкретную полосу в качестве первой полосы группы, последней полосы группы, либо представлять иную идентификацию, на основе которой центр группы полос можно выровнять по конкретному пиксельному значению.

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

На фиг. 1 представлена блок-схема, где показан пример системы видеокодирования и декодирования, в которой могут быть использованы методики адаптивного SAO, описанные в настоящем изобретении. Как показано на фиг. 1, система 10 включает в себя устройство-источник 12, которое формирует закодированные видеоданные, подлежащие в дальнейшем декодированию устройством-адресатом 14. Устройство-источник 12 и устройство-адресат 14 могут содержать любое из самых разных устройств, в том числе, настольный компьютер, ноутбук (то есть «лэптоп»), планшетный компьютер, телевизионную приставку, телефонную трубку, такую как так называемый «смартфон», так называемый «смартпад», телевизионный приемник, камеру, устройство отображения, цифровой медиаплеер, видеоигровую консоль, устройство потокового видео или т.п. В некоторых случаях устройство-источник 12 и устройство-адресат 14 могут быть оборудованы средствами беспроводной связи.

Устройство-адресат 14 может принимать закодированные видеоданные, подлежащие декодированию, через линию 16 связи. Линия 16 связи может содержать среду или устройство любого типа, способное перемещать закодированные видеоданные от устройства-источника 12 на устройство-адресат 14. В одном примере линия 16 связи может содержать среду связи, позволяющую устройству-источнику 12 передавать закодированные видеоданные непосредственно на устройство-адресат 14 в режиме реального времени. Кодированные видеоданные могут быть модулированы в соответствии со стандартом связи, таким как протокол беспроводной связи, и могут передаваться на устройство-адресат 14. Среда связи может содержать любую среду проводной или беспроводной связи, например, радиочастотный (RF) спектр или одна или более физических линий передачи. Среда связи может составлять часть сети пакетной передачи, такой как локальная сеть, региональная сеть или глобальная сеть, например Интернет. Среда связи может включать в себя маршрутизаторы, коммутаторы, базовые станции или любое другое оборудование, которое может быть полезно для осуществления связи между устройством-источником 12 и устройством-адресатом 14.

В качестве альтернативы закодированные данные могут выводиться из выходного интерфейса 22 в запоминающее устройство 32. Аналогичным образом, к закодированным данным возможен доступ со стороны запоминающего устройства 32 через входной интерфейс. Запоминающее устройство 32 может включать в себя любой запоминающий носитель из числа самых разных распределенных или локально доступных носителей данных, таких как накопитель на жестком диске, диски типа Blu-ray, диски DVD, диски CD, флэш-память, энергозависимая или энергонезависимая память, либо любой другой подходящий цифровой запоминающий носитель для хранения закодированных видеоданных. В еще одном примере запоминающее устройство 32 может соответствовать файловому серверу или другому промежуточному запоминающему устройству, которое может хранить закодированное видео, сформированное устройством-источником 12. Устройство-адресат 14 может обращаться к запомненным в запоминающем устройстве 32 видеоданным, используя потоковую передачу или загрузку видеоданных. Файловый сервер может представлять собой сервер любого типа, способный запоминать и хранить закодированные видеоданные и передавать их на устройство-адресат 14. Примеры файловых серверов включают в себя Веб-сервер (например, для Веб-сайта), FTP сервер, подключенные к сети запоминающие устройства (NAS) или локальный накопитель на диске. Устройство-адресат 14 может иметь доступ к закодированным видеоданным через любое стандартное соединение для передачи данных, в том числе Интернет соединение. Такое соединение может включать в себя беспроводной канал (например, Wi-Fi соединение), проводное соединение (например, DSL, кабельный модем и т.д.), либо комбинацию обоих видов соединений, которая подходит для доступа к кодированным видеоданным, хранящимся на файловом сервере. Передача закодированных видеоданных из запоминающего устройства 32 может быть реализована в виде потоковой передачи, передачи с выгрузкой или их комбинации.

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

В примере по фиг. 1 устройство-источник 12 включает в себя источник 18 видео, видеокодер 20 и выходной интерфейс 22. В некоторых случаях выходной интерфейс 22 может включать в себя модулятор/демодулятор (модем) и/или передатчик. В устройстве-источнике 12 источник 18 видео может включать в себя такой источник, как устройство захвата видео, например, видеокамеру, видеоархив, содержащий ранее захваченное видео, интерфейс подачи видео для приема видео от провайдера видеоконтента и/или системы компьютерной графики для формирования компьютерных графических данных в качестве исходного видео или комбинации указанных источников. Например, если источник 18 видео представляет собой видеокамеру, то устройство-источник 12 и устройство-адресат 14 могут образовать так называемые видеофоны или камерофоны. Однако описанные в данном изобретении методики можно применять к видеокодированию в целом и использовать для беспроводных и/или проводных приложений.

Захваченное в данный момент, предварительно захваченное или сформированное компьютером видео может быть закодировано видеокодером 20. Закодированные видеоданные могут передаваться непосредственно на устройство-адресат 14 через выходной интерфейс 22 устройства-источника 12. Закодированные видеоданные также (или в качестве альтернативы) могут запоминаться в запоминающем устройстве 32 для обращения к ним в будущем со стороны устройства-адресата 14 или других устройств для декодирования и/или воспроизведения.

Устройство-адресат 14 включает в себя входной интерфейс 28, видеодекодер 30 и устройство 32 отображения. В некоторых случаях входной интерфейс 28 может включать в себя приемник и/или модем. Входной интерфейс 28 устройства-адресата 14 принимает закодированные видеоданные через линию 16 связи. Закодированные видеоданные, переданные через линию 16 связи, или предусмотренные в запоминающем устройстве 32, могут включать в себя разнообразные синтаксические элементы, сформированные видеокодером 20 для использования видеодекодером, таким как видеодекодер 30, при декодировании видеоданных. Указанные синтаксические элементы могут быть включены в кодированные видеоданные, передаваемые через среду связи, запоминаемые на носителе данных или запоминаемые на файловом сервере.

Устройство 32 отображения может являться составной частью (или быть внешним) устройства-адресата 14. В некоторых примерах устройство-адресат 14 может включать в себя интегрированное в него устройство отображения, а также быть сконфигурировано для взаимодействия с внешним устройством отображения. В других примерах устройством-адресатом 14 может быть устройство отображения. В общем случае устройство 32 отображения отображает пользователю декодированные видеоданные и может содержать любое из разнообразных устройств отображения, таких как жидкокристаллический дисплей (LCD), плазменный дисплей, дисплей на органических светоизлучающих диодах (OLED) или устройство отображения другого типа.

Видеокодер 20 и видеодекодер 30 могут функционировать согласно стандарту сжатия видео, такому как стандарт высокоэффективного видеокодирования (HEVC), разрабатываемый в настоящее время, и может соответствовать тестовой модели HEVC (HM). Последний проект стандарта HEVC, называемый «HEVC Working Draft 8» или «WD8» описан в документе JCTVC-H1003_d7, Bross и др., «High efficiency video coding (HEVC) text specification draft 8» Объединенной команды разработчиков систем видеокодирования (JCT-VC) стандартов ITU-T SG16 WP3 и ISO/IEC JTC1/SC29/WG11, 10th Meeting: Stockholm, SE, July 11-20, 2012 года, который по состоянию на 2 октября 2012 года можно скачать по следующей ссылке: http://phenix.int-evry.fr/jct/doc_end_user/documents/10_Stockholm/wg11/JCTVC-J1003-v8.zip.

В качестве альтернативы видеокодер 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).

Видеокодер 20 и видеодекодер 30 могут быть реализованы каждый в виде любых подходящих схем кодера или декодера, таких как один или более микропроцессоров, процессоры DSP, интегральные схемы ASIC, вентильные матрицы FPGA, дискретные логические схемы, программные средства, аппаратные средства, программно-аппаратные средства или любая их комбинация. При частичной реализации указанных методик программными средствами устройство может хранить команды программного обеспечения на подходящем долговременном компьютерно-читаемом носителе для выполнения этих команд аппаратными средствами с использованием одного или более процессоров, реализующих раскрытые в изобретении методики. Как видеокодер 20, так и видеодекодер 30 могут быть включены в состав одного или более кодеров или декодеров, либо каждый из них может быть интегрирован в объединенном кодере/декодере («CODEC») в соответствующем устройстве.

JCT-VC работает над созданием стандарта HEVC. Работы по стандартизации HEVC основаны на совершенствуемой модели устройства видеокодирования, называемой тестовой моделью (HM) стандарта HEVC. В модели HM заложено несколько дополнительных возможностей для устройств видеокодирования по сравнению с существующими устройствами, соответствующими, например, стандарту ITU-T H.264/AVC. Например, в то время как стандарт H.264 обеспечивает девять режимов кодирования с интра-предсказанием, модель HM может обеспечить до тридцати трех режимов кодирования с интра-предсказанием.

В общем случае рабочая модель HM предполагает, что видеокадр или видеоизображение можно разделить на последовательность древовидных блоков или самых крупных блоков кодирования (LCU), которые включают в себя отсчеты яркости и отсчеты цветности. Назначение древовидного блока такое же, как у макроблока в стандарте H.264. Слайс включает в себя ряд последовательных древовидных блоков в порядке кодирования. Видеокадр или видеоизображение может быть разбито на один или более слайсов. Каждый древовидный блок можно разделить на блоки кодирования (CU) согласно квадродереву. Например, корневой узел квадродерева можно разделить на четыре дочерних узла, а каждый дочерний узел, в свою очередь, может представлять собой родительский узел и быть разделен на четыре других дочерних узла. Конечный не разделенный дочерний узел как концевой узел квадродерева содержит узел кодирования, то есть, кодированный видеоблок. Синтаксические данные, связанные с кодированным битовым потоком могут определять максимальное количество возможных разделений древовидного блока, а также могут определять минимальный размер узлов кодирования.

Блок CU включает в себя узел кодирования и блоки предсказания (PU) и блоки преобразования (TU), связанные с узлом кодирования. Размер блока CU соответствует размеру узла кодирования, причем он должен иметь квадратную форму. Размер блока CU может находиться в диапазоне от 8×8 пикселей до размера древовидного блока с максимальным размером 64×64 пикселя или более. Каждый блок CU может содержать один или более блоков PU и один или более блоков TU. Синтаксические данные, связанные с блоком CU, могут описывать, например, разбиение блока CU на один или более блоков PU. Режимы разбиения могут различаться в зависимости от того, пропущен ли блок CU, а также от того, в каком из режимов выполняется кодирование: в режиме прямого кодирования, кодирования с интра-предсказанием или с интер-предсказанием. Блоки PU могу быть разделены на части не квадратной формы. Синтаксические данные, связанные с блоком CU, могут также описывать, например, разбиение блока CU на один или более блоков TU согласно квадродереву. Блок TU может иметь квадратную или не квадратную форму.

Стандарт HEVC позволяет выполнять преобразование в соответствии с блоками TU, которые могут отличаться у разных блоков CU. Размер блоков TU, как правило, основан на размере блоков PU в данном блоке CU, определенном для разделенного блока LCU, хотя это не всегда так. Как правило, блоки TU имеют одинаковый или меньший размер с блоками PU. В некоторых примерах остаточные отсчеты, соответствующие одному блоку CU, можно дополнительно разделить на меньшие блоки, используя структуру квадродерева, известную под названием «остаточное квадродерево» (RQT). Концевые узлы дерева RQT могут называться блоками TU. Значения пиксельной разности, связанные с блоками TU, можно преобразовать для создания коэффициентов преобразования с последующим их квантованием.

В общем случае блок PU включает в себя данные, относящиеся к процессу предсказания. Например, когда блок PU закодирован в режиме интра-предсказания, он может включать в себя данные, описывающие режим интра-предсказания для данного блока PU. В другом примере, когда блок PU закодирован в режиме интер-предсказания, он может включать в себя данные, определяющие вектор движения для данного блока PU. Данные, определяющие вектор движения для блока PU, могут описывать, например, горизонтальную составляющую вектора движения, вертикальную составляющую вектора движения, разрешающую способность для вектора движения (например, с точностью до четверти пикселя или с точностью до одной восьмой пикселя), опорное изображение, на которое указывает вектор движения, и/или список опорных изображений (например, список 0, список 1 или список С) для вектора движения.

В общем случае блок TU используется в процессах преобразования и квантования. Данный блок CU, имеющий один или более блоков PU, может также включать в себя один или более блоков преобразования (TU). Вслед за предсказанием видеокодер 20 может вычислить остаточные значения, соответствующие данному блоку PU. Остаточные значения содержат значения пиксельной разности, которые можно преобразовать в коэффициенты преобразования, выполнить их квантование и сканирование с использованием блоков TU, чтобы создать сериализированные коэффициенты преобразования для энтропийного кодирования. В данном описании, как правило, используется термин «видеоблок» для ссылки на узел кодирования блока CU. В некоторых конкретных случаях в настоящем описании также может использоваться термин «видеоблок» для ссылки на древовидный блок, то есть, блок LCU или блок CU, который включает в себя узел кодирования и блоки PU и TU.

Видеопоследовательность, как правило, включает в себя ряд видеокадров или видеоизображений. Группа изображений (GOP) в общем случае содержит ряд, состоящий из одного или более видеоизображений. Группа GOP может включать в себя синтаксические данные в заголовке группы GOP, заголовок одного или более изображений или где-либо в другом месте, которые описывают количество изображений, включенных в группу GOP. Каждый слайс изображения может включать в себя синтаксические данные о слайсе, которые описывают режим кодирования для соответствующего слайса. Видеокодер 20 обычно работает с видеоблоками внутри отдельных видеослайсов для кодирования видеоданных. Видеоблок может соответствовать узлу кодирования в блоке CU. Видеоблоки могут иметь фиксированные или переменные размеры и могут отличаться по размерам в соответствии с заданным стандартом кодирования.

Например, модель HM поддерживает предсказание для разных размеров PU. Положим, что размер конкретного блока CU составляет 2Nx2N, модель HM поддерживает интра-предсказание для размеров PU, составляющих 2Nx2N или NxN, и интер-предсказание для симметричных размеров PU, составляющих 2Nx2N, 2NxN, Nx2N или NxN. Модель HM также поддерживает асимметричное разбиение для интра-предсказания для размеров PU, составляющих 2NxnU, 2NxnD, nLx2N и nRx2N. При асимметричном разбиении в одном направлении блока CU разбиение отсутствует, в то время как в другом направлении выполняется разбиение на части в отношении 25% и 75%. Часть блока CU, соответствующая 25% части, обозначена как «n», после которой следует обозначение «Вверх», «Вниз», «Влево» или «Вправо». Таким образом, например, «2NxnU» относится к блоку CU размером 2Nx2N, который разбит по горизонтали на блок PU размером 2Nx0,5N сверху и блок PU размером 2Nx1,5N снизу.

В данном описании формы «NxN» и «N на N» могут использоваться как взаимозаменяемые для ссылки на пиксельные размеры видеоблока с точки зрения размеров по вертикали и горизонтали. Например, 16×16 пикселей или 16 на 16 пикселей. В общем случае блок размером 16×16 будет иметь 16 пикселей в вертикальном направлении (y=16) и 16 пикселей в горизонтальном направлении (x=16). Аналогичным образом блок NxN обычно имеет N пикселей в вертикальном направлении и N пикселей в горизонтальном направлении, где N представляет не отрицательное целое значение. Пиксели в блоке могут быть скомпонованы по строкам и столбцам. Кроме того, блоки не обязательно должны иметь одинаковое количество пикселей в горизонтальном направлении и в вертикальном направлении. Например, блоки могут содержать NxM пикселей, где M не обязательно равно N.

Вслед за кодированием с интра- или интер-предсказанием с использованием блоков PU блока CU видеокодер 20 может вычислить остаточные данные для блоков TU блока CU. Блоки PU могут содержать пиксельные данные в пространственной области (называемой также пиксельной областью), а блоки TU могут содержать коэффициенты в области преобразования после применения преобразования, например, дискретного косинусного преобразования (DCT), целочисленного преобразования, вейвлетного преобразования или концептуально подобного преобразования, примененного к остаточным видеоданным. Остаточные данные могут соответствовать пиксельным разностям между пикселями не кодированного изображения и предсказанными значениями, соответствующими блокам PU. Видеокодер 20 может образовать блоки TU, включающие в себя остаточные данные для блока CU, а затем преобразовать блоки TU для создания коэффициентов преобразования для данного блока CU.

После любого преобразования для создания коэффициентов преобразования видеокодер 20 может выполнить квантование коэффициентов преобразования. Квантование в общем случае относится к процессу, в ходе которого выполняется квантование коэффициентов преобразования с целью возможного сокращения объема данных, используемых для представления указанных коэффициентов, что обеспечивает дополнительное сжатие. Процесс квантования может уменьшить глубину в битах, связанную с некоторыми или всеми упомянутыми коэффициентами. Например, n-битовое значение можно округлить в меньшую сторону, получив m-битовое значение во время квантования, где n больше, чем m.

В некоторых примерах видеокодер 20 может использовать заранее определенное сканирование или порядок «сканирования» для сканирования квантованных коэффициентов преобразования, чтобы получить сериализированный вектор, который можно закодировать с использованием энтропийного кодирования. В других примерах видеокодер 20 может выполнять адаптивное сканирование. После сканирования квантованных коэффициентов преобразования для формирования одномерного вектора видеокодер 20 может выполнить кодирование этого одномерного вектора, используя энтропийное кодирование, например, в соответствии с контекстно-зависимым адаптивным кодированием с переменной длиной слова (CAVLC), контекстно-адаптивным бинарным арифметическим кодированием (CABAC), синтаксически ориентированным адаптивным бинарным арифметическим кодированием (SBAC), вероятностным энтропийным кодированием с интервальным разбиением (PIPE), или другим методом энтропийного кодирования. Видеокодер 20 может также, выполнить энтропийное кодирование синтаксических элементов, связанных с закодированными видеоданными, для использования видеодекодером 30 при декодировании видеоданных.

Для выполнения кодирования CABAC видеокодер 20 может присвоить контекст в контекстной модели для символа, подлежащего передаче. Этот контекст может относиться, например, к тому, являются ли соседние значения символа ненулевыми. Для выполнения кодирования CAVLC видеокодер 20 может выбрать код переменной длины для символа, подлежащего передаче. Кодовые слова в VLC могут быть построены так, чтобы относительно более короткие коды соответствовали более вероятным символам, в то время как относительно более длинные коды соответствовали менее вероятным символам. Таким образом, использование кодирования VLC может обеспечить экономное использование бит, например, путем использования кодовых слов одинаковой длины для каждого символа, подлежащего передаче. Определение вероятности может быть основано на контексте, присвоенном данному символу.

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