Инициализация вероятностей и состояний контекстов для контекстно-адаптивного энтропийного кодирования

Иллюстрации

Показать все

Изобретение относится к области контекстно-адаптивного энтропийного кодирования видеоданных. Технический результат - обеспечение инициализации контекстов процесса кодирования посредством определения значений индексов параметров инициализации. Способ инициализации контекста, используемого для того, чтобы кодировать видеоданные в процессе контекстно-адаптивного энтропийного кодирования, содержит этапы, на которых: определяют первое значение индекса параметра инициализации в качестве x>>4, где x является 8-битовым параметром; определяют второе значение индекса параметра инициализации в качестве x&15, где x является идентичным 8-битовым параметром; определяют один или более параметров инициализации для процесса контекстно-адаптивного энтропийного кодирования на основе первого и второго значений индексов параметров инициализации и инициализируют на основе одного или более параметров инициализации состояние контекста, используемого для того, чтобы кодировать видеоданные в процессе контекстно-адаптивного энтропийного кодирования. 4 н. и 41 з.п. ф-лы, 8 ил.

Реферат

[0001] Данная заявка испрашивает приоритет предварительной заявки на патент (США) № 61/555469, поданной 3 ноября 2011 года, предварительной заявки на патент (США) № 61/556808, поданной 7 ноября 2011 года, предварительной заявки на патент (США) № 61/557785, поданной 9 ноября 2011 года, и предварительной заявки на патент (США) № 61/560107, поданной 15 ноября 2011 года, содержимое каждой из которых полностью содержится в данном документе по ссылке.

Область техники, к которой относится изобретение

[0002] Данное раскрытие сущности относится к энтропийному кодированию видеоданных и т. п., а более конкретно - к контекстно-адаптивному энтропийному кодированию.

Уровень техники

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

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

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

Сущность изобретения

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Подробное описание изобретения

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

[0021] В этом раскрытии сущности термин "кодирование" (coding) означает кодирование (encoding), которое осуществляется в кодере, или декодирование, которое осуществляется в декодере. Аналогично термин "кодер" (coder) означает кодер (encoder), декодер или комбинированный кодер/декодер (к примеру, "кодек"). Термины «кодер» (coder), «кодер» (encoder), «декодер» и «кодек» означают конкретные машины, спроектированные с возможностью кодирования (coding) (т. е. кодирования (encoding) и/или декодирования) данных, таких как видеоданные, в соответствии с этим раскрытием сущности.

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

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

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

[0025] Технологии этого раскрытия сущности в некоторых примерах могут быть использованы с любой технологией контекстно-адаптивного энтропийного кодирования, включающей в себя контекстно-адаптивное кодирование переменной длины (CAVLC), CABAC, синтаксическое контекстно-адаптивное двоичное арифметическое кодирование (SBAC), энтропийное кодирование на основе сегментирования на интервалы вероятности (PIPE) или другую технологию контекстно-адаптивного энтропийного кодирования. CABAC описано в данном документе только в целях иллюстрации и без ограничения в отношении технологий, описанных в широком смысле в этом раскрытии сущности. Кроме того, технологии, описанные в данном документе, могут, в общем, применяться к кодированию других типов данных, например, в дополнение к видеоданным.

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

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

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

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

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

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

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

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

[0034] Видеокодер 20 и видеодекодер 30 могут работать согласно стандарту сжатия видео, такому как стандарт высокоэффективного кодирования видео (HEVC), разрабатываемый в данный момент посредством объединенной группы для совместной работы над видеостандартами (JCT-VC) экспертной группы в области кодирования видео (VCEG) ITU-T и экспертной группы по киноизображению (MPEG) ISO/IEC, и могут соответствовать тестовой модели HEVC (HM). Альтернативно видеокодер 20 и видеодекодер 30 могут работать согласно другим собственным или отраслевым стандартам, таким как стандарт ITU-T H.264, альтернативно называемый "MPEG-4, часть 10, усовершенствованное кодирование видео (AVC) (далее H.264/AVC)", или расширениям таких стандартов. Тем не менее, технологии этого раскрытия сущности не ограничены каким-либо конкретным стандартом кодирования. Другие примеры стандартов сжатия видео включают в себя MPEG-2 и ITU-T H.263. Последний проект HEVC-стандарта, называемый "рабочим проектом HEVC 8" или "WD8", описывается в документе JCTVC-J1003_d7, Bross и др., "High efficiency video coding (HEVC) text specification draft 8", Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 10th Meeting: Стокгольм, SE, 11-20 июля 2012 года.

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

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

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

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

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

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

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

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

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

[0044] В качестве примера HM поддерживает прогно