Указание использования параллельной волновой обработки в кодировании видео

Иллюстрации

Показать все

Изобретение относится к технологиям кодирования/декодирования видеоданных. Техническим результатом является повышение эффективности кодирования/декодирования видеоданных за счет обеспечения выборочной параллельной волновой обработки. Предложен способ декодирования видеоданных. Способ включает в себя этап анализа синтаксического элемента из битового потока, причем битовый поток включает в себя узел уровня сетевой абстракции (NAL) кодированного слайса для слайса изображения видеоданных, которое разделено на блоки дерева кодирования (СТВ). Каждый из блоков СТВ ассоциирован с разными равноразмерными блоками пикселов в изображении. Узел уровня сетевой абстракции (NAL) кодированного слайса включает в себя множество подпотоков, причем синтаксический элемент, имеющий конкретное значение, указывающее каждый соответствующий ряд блоков СТВ изображения, формирует соответствующий мозаичный фрагмент изображения. Осуществляют определение, включают ли подпотоки биты заполнения. В ответ на определение, что синтаксический элемент имеет конкретное значение, осуществляют декодирование каждого мозаичного фрагмента изображения с использованием параллельной волновой обработки. 8 н. и 32 з.п. ф-лы, 12 ил., 4 табл.

Реферат

Данная заявка испрашивает приоритет по предварительной заявке на патент США № 61/588096, поданной 18 января 2012, все содержание которой таким образом включено в документ посредством ссылки.

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

Данное раскрытие относится к кодированию видео (то есть кодированию и/или декодированию видеоданных).

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

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

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

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

КРАТКОЕ ОПИСАНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Фиг. 7 - структурная схема, иллюстрирующая примерную работу видеокодера по кодированию видеоданных, в котором каждый ряд блоков дерева кодирования (CTB) изображения находится в отдельном подпотоке, в соответствии с одним или несколькими аспектами этого раскрытия.

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

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

Фиг. 9B - структурная схема, иллюстрирующая продолжение примера процесса анализа в CABAC Фиг. 9A.

Фиг. 10 - концептуальная схема, которая иллюстрирует пример WPP.

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

ПОДРОБНОЕ ОПИСАНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ

В ходе кодирования видео изображение может быть разделено на множественные мозаичные фрагменты, волны параллельной волновой обработки (WPP) и/или энтропийные слайсы. Мозаичные фрагменты изображения задаются горизонтальными и/или вертикальными границами мозаичного фрагмента, которые проходят через изображение. Мозаичные фрагменты изображения кодируются в соответствии с порядком растрового сканирования, и блоки дерева кодирования (CTB) внутри каждого мозаичного фрагмента также кодируются в соответствии с порядком растрового сканирования. В WPP каждый ряд CTB-единиц в изображении представляет "WPP волну". Когда видеокодер использует WPP, чтобы кодировать изображение, кодер видео может начинать кодирование CTB-единиц WPP волны слева направо после того, как кодер видео закодировал два или большее число CTB-единиц непосредственно выше WPP волны. Энтропийный слайс может включать в себя серию последовательных CTB-единиц в соответствии с порядком растрового сканирования. Использование информации через границы энтропийных слайсов запрещается для использования в выборе контекстов энтропийного кодирования, но может позволяться для других целей.

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

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

Кроме того, в этом примере, видеодекодер может анализировать синтаксический элемент из битового потока, который включает в себя кодированное представление изображения. В ответ на определение, что синтаксический элемент имеет конкретное значение, видеодекодер может декодировать изображения полностью с использованием WPP. В ответ на определение, что синтаксический элемент не имеет конкретного значения, видеодекодер может декодировать каждый мозаичный фрагмент изображения без использования WPP. Изображение может иметь один или несколько мозаичных фрагментов.

Сопроводительные чертежи иллюстрируют примеры. Элементы, обозначенные ссылочными позициями на сопроводительных чертежах, соответствуют элементам, обозначенным подобными ссылочными позициями в последующем описании. В этом раскрытии элементы, имеющие имена, которые начинаются с порядковых слов (например, "первый", "второй", "третий" и так далее) не обязательно подразумевают, что у элементов имеется конкретный порядок. Предпочтительнее такие порядковые слова просто используются для ссылки на различные элементы такого же или подобного типа.

На фиг. 1 показана блок-схема, иллюстрирующая примерную систему 10 кодирования видео, которая может использовать способы этого раскрытия. Как используется в описании в документе, термин "кодер видео" относится обобщенно и к видеокодерам, и к видеодекодерам. В этом раскрытии термины "кодирование видео" или "кодирование" могут относиться обобщенно к кодированию видео или декодированию видео.

Как показано на фиг. 1, система 10 кодирования видео включает в себя исходное устройство 12 и целевое устройство 14. Исходное устройство 12 формирует кодированные видеоданные. Соответственно, исходное устройство 12 может именоваться устройством кодирования видео или аппаратом кодирования видео. Целевое устройство 14 может декодировать кодированные видеоданные, сформированные исходным устройством 12. Соответственно, целевое устройство 14 может именоваться устройством декодирования видео или аппаратом декодирования видео. Исходное устройство 12 и целевое устройство 14 могут быть примерами устройств кодирования видео или аппаратов кодирования видео. Исходное устройство 12 и целевое устройство 14 могут содержать широкий спектр устройств, включая настольные компьютеры, мобильные вычислительные устройства, портативные (например, переносные) компьютеры, планшетные компьютеры, телевизионные абонентские приставки, телефонные трубки, такие как так называемые "интеллектуальные" телефоны, телевизионные приемники, камеры, устройства отображения, цифровые мультимедийные проигрыватели, игровые видеоприставки, встроенные в автомобили компьютеры и т.п.

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

В другом примере канал 16 может включать в себя в носитель данных, который хранит кодированные видеоданные, сформированные исходным устройством 12. В этом примере целевое устройство 14 может осуществлять доступ к носителю данных посредством доступа к диску или доступа к карте. Носитель данных может включать в себя множество носителей данных для локально-доступных данных, такие как диски формата Blue-ray, цифровые многофункциональные диски (DVD), ПЗУ на компакт-дисках (CD-ROM), флэш-память или другие подходящие носители цифровых данных для хранения кодированных видеоданных.

В дополнительном примере канал 16 может включать в себя файловый сервер или другое промежуточное устройство хранения данных, которое хранит кодированное видеоизображение, сформированное исходным устройством 12. В этом примере целевое устройство 14 может осуществлять доступ к кодированным видеоданным, сохраненным в файловом сервере или другом промежуточном устройстве хранения данных, посредством потоковой передачи или загрузки по сети. Файловый сервер может быть типом сервера, способным хранить кодированные видеоданные и передавать кодированные видеоданные на целевое устройство 14. Примерные файловые серверы включают в себя веб-серверы (например, для веб-сайта), серверы с поддержкой протокола передачи файлов (FTP), устройства подключаемых к сети накопителей (NAS) и локальные накопители на дисках.

Целевое устройство 14 может осуществлять доступ к кодированным видеоданным посредством стандартного информационного соединения, такого как Интернет-соединение. Примерные типы соединений данных включают в себя беспроводные каналы (например, соединения беспроводного доступа стандарта Wi-Fi), проводные соединения (например, цифровую абонентскую линию (DSL), кабельный модем и т.д.) или их комбинации, которые являются подходящими для осуществления доступа к кодированным видеоданным, сохраненным на файловом сервере. Передача кодированных видеоданных от файлового сервера может быть потоковой передачей, передачей загрузки из главной системы или их комбинацией.

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

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

Видеокодер 20 может закодировать видеоданные от источника 18 видеосигнала. В некоторых примерах исходное устройство 12 непосредственно передает кодированные видеоданные на целевое устройство 14 через выходной интерфейс 22. Кодированные видеоданные также могут сохраняться на носителе данных или файловом сервере для доступа впоследствии целевым устройством 14 для декодирования и/или воспроизведения.

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

Видеокодер 20 и видеодекодер 30 могут работать согласно стандарту сжатия видеоизображения, такому как стандарт высокоэффективного кодирования видеоизображений (HEVC), разрабатываемый в настоящее время, и могут соответствовать тестовой модели HEVC (HM). Проект будущего стандарта HEVC, называемый "HEVC Working Draft 5" (Рабочий проект 5 по HEVC) или "WD5", описывается в работе Bross и др., "WD5: Working Draft 5 of High-Efficiency Video Coding", (WD5: Рабочий проект 5 по высокоэффективному кодированию видеоизображений) в рабочих материалах WP3 исследовательской группы секторов SG16 Объединенной совместной группы по кодированию видеоизображений (JCT-VC) Международного союза электросвязи - сектора телекоммуникаций (ITU-T) и материалах 7-ой Конференции JTC1/SC29/WG11 ISO/IEC: Женева, Швейцария, ноябрь 2011, которые с 10 октября 2012 доступны для загрузки с адреса: http://phenix.int-evry.fr/jct/doc_end_user/documents/7_Geneva/wg11/JCTVC-G1103-v3.zip, содержание которых полностью включено в документ посредством ссылки. Другой проект будущего стандарта HEVC, называемый "HEVC Working Draft 9" (Рабочий проект 9 по HEVC), описывается авторами Bross и др. в рабочих материалах WP3 исследовательской группы секторов SG16 Объединенной совместной группы по кодированию видеоизображений (JCT-VC) ITU-T и ИСО/МЭК (ISO/IEC) JTC1/SC29/WG11, 11-ая Конференция: Шанхай, Китай, октябрь 2012, которые с 7 ноября 2012 доступны для загрузки с адреса: http://phenix.int-evry.fr/jct/doc_end_user/documents/11_Shanghai/wg11/JCTVC-K1003-v8.zip, содержание которых полностью включено в документ посредством ссылки.

Альтернативно, видеокодер 20 и видеодекодер 30 могут работать согласно другим частным или промышленным стандартам, включая стандарты ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 или ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual и ITU-T H.264 (также известный как ISO/1EC MPEG-4 AVC), включая его расширения Масштабируемого кодирования видеоизображений (SVC) и Кодирования многовидовых видеоизображений (MVC). Способы этого раскрытия, однако, не ограничиваются каким-либо конкретным стандартом или способом кодирования.

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

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

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

Как кратко упомянуто выше, видеокодер 20 кодирует видеоданные. Видеоданные могут содержать одно или несколько изображений. Каждое из изображений может быть неподвижным (фотографическим) изображением. В некоторых случаях изображение может именоваться "кадром" видео. Видеокодер 20 может формировать битовый поток, который включает в себя последовательность битов, которые образуют кодированное представление видеоданных. Битовый поток может включать в себя кодированные изображения и связанные с ними данные. Кодированное изображение является кодированным представлением изображения. Связанные с ним данные могут включать в себя наборы параметров последовательности (SPS), наборы параметров изображения (PPS) и другие синтаксические структуры. SPS может содержать параметры, применимые к нулю или большему количеству последовательностей изображений. PPS может содержать параметры, применимые к нулю или большему количеству изображений.

Для формирования кодированного представления изображения видеокодер 20 может разделить изображение на «сетку» блоков дерева кодирования (CTB). В некоторых случаях CTB может именоваться "древовидным блоком", "наибольшей единицей кодирования" (LCU) или "единицей дерева кодирования". CTB-единицы в HEVC могут в общих чертах быть похожими на макроблоки из предшествующих стандартов, например H.264/AVC. Однако CTB не обязательно ограничивается конкретным размером и может включать в себя один или несколько единиц кодирования (CU).

Каждый из CTB-единиц может быть связан с другим равноразмерным блоком пикселов внутри изображения. Каждый пиксел может содержать выборку яркости (luma) и две выборки цветности (chroma). Таким образом, каждый CTB может быть связан с блоком выборок яркости и двумя блоками выборок цветности. Для простоты пояснения в этом раскрытии двумерный массив пикселов может называться пиксельным блоком и двумерный массив выборок может называться блоком выборок. Видеокодер 20 может использовать разделение типа квадрадерево, чтобы разделять пиксельный блок, связанный с CTB, на пиксельные блоки, связанные с CU-единицами, отсюда название "блоки дерева кодирования".

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

Чтобы формировать кодированный CTB, видеокодер 20 может рекурсивно выполнять разделение типа квадрадерево на пиксельном блоке, связанном с CTB, чтобы разделить пиксельный блок на прогрессивно более мелкие пиксельные блоки. Каждый из меньших пиксельных блоков может быть связан с CU. Разделенной CU может быть CU, пиксельный блок которой разделен на пиксельные блоки, связанные с другими CU. Неразделенной CU может быть CU, пиксельный блок которой не является разделенным на пиксельные блоки, связанные с другими CU.

Видеокодер 20 может формировать одну или несколько единиц предсказания (PU) для каждой неразделенной CU. Каждая из PU-единиц CU может быть связана с другим пиксельным блоком внутри пиксельного блока CU. Видеокодер 20 может формировать пиксельные блоки по предсказанию для каждой PU у CU. Предсказанный пиксельный блок для PU может быть блоком пикселов.

Видеокодер 20 может использовать внутрикадровое (intra) предсказание или межкадровое (inter) предсказание, чтобы формировать предсказываемый пиксельный блок для PU. Если видеокодер 20 использует внутрикадровое предсказание, чтобы сформировать предсказанный пиксельный блок PU, видеокодер 20 может формировать предсказываемый пиксельный блок PU на основании декодированных пикселов изображения, связанного с PU. Если видеокодер 20 использует межкадровое предсказание, чтобы сформировать предсказанный пиксельный блок для PU, видеокодер 20 может формировать предсказываемый пиксельный блок для PU на основании декодированных пикселов одного или нескольких изображений, отличных от изображения, связанного с PU.

Видеокодер 20 может формировать остаточный пиксельный блок для CU на основании предсказанных пиксельных блоков PU для CU. Остаточный пиксельный блок для CU может указывать разности между выборками в предсказанных пиксельных блоках для PU-единиц CU и соответствующими выборками в исходной пиксельной единице CU.

Кроме того, в качестве части кодирования неразделенной CU видеокодер 20 может выполнять рекурсивное разделение типа квадрадерево на остаточном пиксельном блоке CU, чтобы разделить остаточный пиксельный блок CU на один или несколько меньших остаточных пиксельных блоков, связанных с единицами преобразования (TU) у CU. Поскольку пикселы в пиксельных блоках, связанных с TU-единицами, каждый включает выборку яркости и две выборки цветности, каждая из TU-единиц может быть связана с остаточным блоком выборок из выборок яркости и двумя остаточными блоками выборок из выборок цветности.

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

Видеокодер 20 может формировать наборы синтаксических элементов, которые представляют коэффициенты в блоках квантованных коэффициентов. Видеокодер 20 может применять операции энтропийного кодирования, такие как операции контекстно-зависимого адаптивного двоичного арифметического кодирования (CABAC), по меньшей мере, к некоторым из этих синтаксических элементов. В качестве части выполнения операции энтропийного кодирования видеокодер 20 может выбирать контекст кодирования. В случае CABAC контекст кодирования может указывать вероятности последовательностей двоичных сигналов (bin) со значением 0 и значением 1.

Битовый поток, сформированный видеокодером 20, может включать в себя серию узлов уровня сетевой абстракции (NAL). Каждый из узлов NAL может быть синтаксической структурой, содержащей указание типа данных в узле NAL и байты, содержащие данные. Например, узел NAL может содержать данные, представляющие SPS, PPS, кодированный слайс, дополнительную информацию о расширении (SEI), разделитель модуля доступа, данные заполнителя или другой тип данных. Узлы NAL кодированного слайса являются узлами NAL, которые включают в себя кодированные слайсы.

Видеодекодер 30 может принимать битовый поток. Битовый поток может включать в себя кодированное представление видеоданных, закодированных видеокодером 20. Видеодекодер 30 может анализировать битовый поток, чтобы извлекать синтаксические элементы из битового потока. В качестве части извлечения некоторых синтаксических элементов из битового потока видеодекодер 30 может энтропийно декодировать (например, декодировать по CABAC, декодировать экспоненциальным кодом Голомба и т.д.) данные в битовом потоке. Видеодекодер 30 может восстанавливать изображения из видеоданных на основании синтаксических элементов, извлеченных из битового потока.

Процесс для восстановления видеоданных на основании синтаксических элементов может быть в целом взаимообратным процессу, выполняемому видеокодером 20 для формир