Сигнализация элементов синтаксиса для коэффициентов преобразования для поднаборов единицы кодирования на уровне листьев

Иллюстрации

Показать все

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

Реферат

[0001] Настоящая заявка испрашивает приоритет предварительной заявки на патент США № 61/503,541, поданной 30 июня 2011, и предварительной заявки на патент США № 61/552,341, поданной 27 октября 2011, все содержимое каждой из которых включено здесь по ссылке.

ОБЛАСТЬ ТЕХНИКИ

[0002] Настоящее раскрытие относится к кодированию и сжатию видео. Более конкретно, настоящее раскрытие направлено на способы для того, чтобы сканировать квантованные коэффициенты преобразования.

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

[0003] Цифровые возможности видео могут быть включены в широкий диапазон устройств, включая цифровые телевизоры, цифровые системы прямого вещания, беспроводные системы вещания, персональные цифровые помощники (PDA), портативные или настольные компьютеры, планшетные компьютеры, считыватели электронных книг, цифровые камеры, цифровые устройства регистрации, цифровые медиа плееры, видео игровые устройства, пульты видеоигр, сотовые или спутниковые радиотелефоны, так называемые "смартфоны," устройства организации видео телеконференций, устройства потоковой передачи видео и т.п. Цифровые видео устройства реализуют способы сжатия видео, такие как описанные в стандартах, определенных посредством MPEG-2, MPEG-4, ITU-T H.263 или ITU-T H.264/MPEG-4, Part 10, Advanced Video Coding (AVC), стандарта высокоэффективного кодирования видео (HEVC), развивающегося в настоящее время, и расширениях таких стандартов. Видео устройства могут передавать, принимать, кодировать, декодировать и/или сохранять цифровую видео информацию более эффективно, реализуя такие способы сжатия видео.

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

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

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

[0006] При кодировании видео, чтобы сжать объем данных, используемых для представления видео данных, видео кодер может выполнять энтропийное кодирование видео данных. Согласно способам, описанным в настоящем описании, в качестве части энтропийного кодирования, видео кодер делит единицу уровня листьев (концевого уровня) видео данных на множество поднаборов коэффициентов преобразования. Единица уровня листьев, как описано здесь, относится к неразделенной единице структуры данных видео, одним примером которой является оконечный, неразделенный дочерний узел структуры данных квадродерева, как описано более подробно ниже.

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

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

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

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

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

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

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

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

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

[0016] Способы, описанные в настоящем раскрытии, могут быть реализованы в аппаратном обеспечении, программном обеспечении, программно-аппаратных средствах, или любой их комбинации. Например, различные способы могут быть реализованы или выполнены одним или более процессорами. Как используется здесь, процессор может относиться к микропроцессору, специализированной интегральной схеме (ASIC), программируемой пользователем вентильной матрице (FPGA), цифровому сигнальному процессору (DSP), или другой эквивалентной интегральной или дискретной логической схеме. Программное обеспечение может быть выполнено одним или более процессорами. Программное обеспечение, содержащее инструкции для выполнения способов, может быть первоначально сохранено в считываемом компьютером носителе и загружено и выполнено процессором.

[0017] Соответственно, настоящее раскрытие также рассматривает считываемые компьютером носители данных, содержащие инструкции, чтобы заставить процессор (или другое вычислительное устройство) выполнять любые способы, описанные в настоящем раскрытии. В некоторых случаях считываемый компьютером носитель данных может являться частью компьютерного продукта, хранящего программу, который может быть продан изготовителям и/или использоваться в устройстве. Компьютерный программный продукт может включать в себя считываемый компьютером носитель, и в некоторых случаях может также включать в себя упаковочные материалы.

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

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

[0020] Детали одного или более примеров сформулированы в прилагаемых чертежах и описании ниже. Другие признаки, объекты, и преимущества изобретения будут очевидны из описания и чертежей и из формулы изобретения.

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

[0021] ФИГ. 1 является блок-схемой, которая иллюстрирует один пример системы кодирования и декодирования видео, сконфигурированная, чтобы работать согласно способам настоящего раскрытия.

[0022] ФИГ. 2 является блок-схемой, которая иллюстрирует один пример видео кодера, сконфигурированного, чтобы работать согласно способам настоящего раскрытия.

[0023] ФИГ. 3 является блок-схемой, которая иллюстрирует один пример видео декодера, сконфигурированного, чтобы работать согласно способам настоящего раскрытия.

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

[0025] ФИГ. 5 является блок-схемой, которая иллюстрирует один пример способа кодирования единицы уровня листьев видео данных, совместимого с одним или более аспектами настоящего раскрытия.

[0026] ФИГ. 6 является блок-схемой, которая иллюстрирует другой пример способа кодирования единицы уровня листьев видео данных, совместимого с одним или более аспектами настоящего раскрытия.

[0027] ФИГ. 7 является блок-схемой, которая иллюстрирует другой пример способа кодирования единицы уровня листьев видео данных, совместимого с одним или более аспектами настоящего раскрытия.

[0028] ФИГ. 8 является блок-схемой, которая иллюстрирует один пример способа декодирования единицы уровня листьев видео данных, совместимого с одним или более аспектами настоящего раскрытия.

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

[0029] ФИГ. 1 является блок-схемой, иллюстрирующей примерную систему 10 кодирования и декодирования видео, которая может использовать способы, описанные в настоящем раскрытии. Как показано на фиг. 1, система 10 включает в себя устройство-источник 12, которое генерирует кодированные видео данные, которые должны быть декодированы в более позднее время устройством 14 назначения. Устройство-источник 12 и устройство 14 назначения могут содержать любое из широкого диапазона устройств, включая настольные компьютеры, портативные компьютеры (то есть, ноутбуки), планшетные компьютеры, телевизионные приставки, телефонные трубки, такие как так называемые "смартфоны”, так называемые "интеллектуальные" клавиатуры, телевизоры, камеры, устройства отображения, цифровые медиа плееры, пульты видеоигр, устройство потоковой передачи видео, или подобные. В некоторых случаях устройство-источник 12 и устройство 14 назначения могут быть оборудованы для беспроводной связи.

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

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

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

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

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

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

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

[0037] Видео кодер 20 и видео декодер 30 могут работать согласно стандарту сжатия видео, такому как стандарт кодирование видео высокой производительности (HEVC), находящемся сейчас в развитии, и могут соответствовать Тестовой Модели HEVC (HM). Альтернативно, видео кодер 20 и видео декодер 30 могут работать согласно другим составляющим собственность стандартам или стандартам промышленности, таким как стандарт ITU-T H.264, альтернативно называемый MPEG-4, Part 10, Advanced Video Coding (AVC), или расширениям таких стандартов. Способы настоящего раскрытия, однако, не ограничены никаким конкретным стандартом кодирования. Другие примеры включают в себя MPEG-2 и ITU-T H.263.

[0038] Хотя не показано на фиг. 1, в некоторых аспектах видео кодер 20 и видео декодер 30 могут каждый интегрироваться с аудио кодером и декодером, и могут включать в себя соответствующие блоки MUX-DEMUX (мультиплексоров-демультиплексоров), или другое аппаратное обеспечение и программное обеспечение, чтобы выполнять кодирование как аудио так и видео в общем потоке данных или отдельных потоках данных. Если применимо, блоки MUX-DEMUX могут соответствовать протоколу мультиплексора ITU H.223, или другим протоколам, таким как протокол дейтаграмм пользователя (UDP).

[0039] Видео кодер 20 и видео декодер 30 каждый может быть реализован как любая из множества подходящих схем кодера, таких как один или более микропроцессоров, цифровых сигнальных процессоров (DSPs), специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA), дискретной логики, программного обеспечения, аппаратного обеспечения, программно-аппаратных средств или любых их комбинаций. Когда способы реализуются частично в программном обеспечении, устройство может сохранять инструкции для программного обеспечения в подходящем невременном считываемом компьютером носителе и выполнять инструкции в аппаратном обеспечении, используя один или более процессоров, чтобы выполнить способы настоящего раскрытия. Каждый видео кодер 20 и видео декодер 30 может быть включен в один или более кодеров или декодеров, любой из которых может быть интегрированным как часть объединенного кодера/декодера (кодек) в соответствующем устройстве.

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

[0041] Обычно рабочая модель HM описывает, что видео кадр или картинка могут быть разделены на последовательность блоков дерева или наибольших единиц кодирования (LCU), которые включают в себя выборки как яркости так и цветности. Блок дерева имеет аналогичную цель, что и макроблок стандарта H.264. Вырезка включает в себя несколько последовательных блоков дерева в порядке кодирования. Видео кадр или картинка могут быть разделены на одну или более вырезок. Каждый блок дерева может быть разделен на единицы кодирования (CUs) согласно квадродереву. Например, блок дерева, как узел корня квадродерева, может быть разделен на четыре дочерних узла, и каждый дочерний узел может в свою очередь быть родительским узлом и быть разделен еще на четыре дочерних узла. Оконечный неразделенный дочерний узел, в качестве узла листа квадродерева, содержит узел кодирования, то есть, кодированный видео блок. Такой оконечный неразделенный дочерний узел структуры данных видео упоминается здесь как единица уровня листьев. Данные синтаксиса, ассоциированные с кодированным потоком битов, могут определить максимальное количество раз, сколько блок дерева может быть разделен, и могут также определять минимальный размер узлов кодирования.

[0042] CU включает в себя узел кодирования и единицы предсказания (PUs) и блоки преобразования (TUs), ассоциированные с узлом кодирования. Размер CU соответствует размеру узла кодирования и должен быть квадратным по форме. Размер единицы CU может изменяться от 8x8 пикселей до размера блока дерева с максимумом 64x64 пикселями или больше. Каждая CU может содержать одну или более PU и одну или более TU. Данные синтаксиса, ассоциированные с CU, могут описывать, например, разделение CU в одну или более единиц PU. Режимы разделения могут отличаться между тем, является ли CU кодированной в режиме пропуска или прямом режиме, кодированной в режиме внутреннего предсказания или кодированной в режиме внешнего предсказания. PU могут быть разделены, чтобы быть неквадратными по форме. Данные синтаксиса, ассоциированные с CU, могут также описывать, например, разделение CU в одну или более TU согласно квадродереву. TU может быть квадратной или неквадратной по форме.

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

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

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

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

[0047] В качестве примера 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", сопровождаемым индикацией "Верхняя" (Up), "Левая" (Left), или "Правая" (Right). Таким образом, например, "2NxnU" относится к CU размером 2Nx2N, которая разделена горизонтально с PU 2Nx0,5N сверху и PU 2Nx1,5N внизу.

[0048] В настоящем описании "NxN" и "N на N" могут использоваться взаимозаменяемо, чтобы ссылаться на пиксельные размерности блока в терминах вертикального и горизонтального измерений, например, 16x16 пикселей или 16 на 16 пикселей. Обычно блок 16x16 будет иметь 16 пикселей в вертикальном направлении (y=16) и 16 пикселей в горизонтальном направлении (x=16). Аналогично, блок NxN обычно имеет N пикселей в вертикальном направлении и N пикселей в горизонтальном направлении, где N представляет неотрицательное целочисленное значение. Пиксели в блоке могут быть размещены в строках и колонках. Кроме того, блоки не должны обязательно иметь одинаковое количество пикселей в горизонтальном направлении как в вертикальном направлении. Например, блоки могут содержать NxM пикселей, где М не обязательно равно N.

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

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

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

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

[0053] В соответствии с этим раскрытием, видео кодер 20 из устройства-источника 12 может сканировать коэффициенты преобразования единицы уровня листьев видео данных (например, листовой узел квадродерева или другой структуры данных), которая включает в себя двумерную матрицу коэффициентов преобразования (например, где каждый соответствует пикселям отображенного изображения) в одномерный вектор, который представляет коэффициенты преобразования. Согласно способам, описанным в настоящем описании, выполняя такое сканирование, видео кодер 20 может разделить единицу уровня листьев видео данных на множество поднаборов коэффициентов преобразования. Для каждого из поднаборов единицы уровня листьев кодер 20 может определить, сигнализировать ли к декодеру в качестве части энтропийно кодированного битового потока элемент синтаксиса, который указывает, включает ли в себя упомянутый поднабор какие-либо ненулевые коэффициенты. Кодер 20 может определить, сигнализировать ли элемент синтаксиса для конкретного поднабора, на основании определения, улучшит ли сигнализация элемента синтаксиса эффективность кодирования. Чтобы определить, улучшит ли сигнализация элемента синтаксиса эффективность кодирования, кодер 20 может применить одно или более правил, как описано более подробно ниже. Кодер 20 мож