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

Иллюстрации

Показать все

Изобретение относится к вычислительной технике. Технический результат заключается в уменьшении сложности реализации систем видеокодирования. Способ кодирования видеоданных, в котором сигнализируют в битовом потоке синтаксический элемент, который указывает, что волновая параллельная обработка (WPP) используется для кодирования изображения последовательности видеоизображений, причем когда синтаксический элемент указывает, что WPP используется для кодирования изображения, каждая строка древовидных блоков кодирования (CTB) изображения формирует один мозаичный элемент; выполняют WPP для формирования множества подпотоков, причем каждый из подпотоков включает в себя последовательную серию битов, которая представляет одну из строк CTB, причем ни один из подпотоков не содержит закодированные биты более чем одного мозаичного элемента; и формируют элемент уровня сетевой абстракции (NAL) закодированного слайса, который включает в себя множество подпотоков. 8 н. и 25 з.п. ф-лы, 12 ил., 4 табл.

Реферат

[0001] Данная заявка испрашивает приоритет предварительной Заявки на патент США № 61/588,096, поданной 18 января 2012 года, информационное содержание которой включено в настоящий документ по ссылке во всей полноте.

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

[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] В целом это раскрытие описывает методики для видеокодирования с использованием мозаичных элементов и волновой параллельной обработки (WPP). Более определенно, видеокодер может сигнализировать, используется ли WPP для кодирования изображения последовательности видеоизображения. Если WPP используется для кодирования изображения, видеокодер формирует множество подпотоков. Каждый из подпотоков может включать в себя последовательную серию битов, которая представляет одну закодированную строку древовидных блоков кодирования (CTB) в слайсе изображения. Видеокодер может формировать элемент уровня сетевой абстракции (NAL) закодированного слайса, который включает в себя множество подпотоков. Видеодекодер может принять битовый поток, который включает в себя элемент NAL закодированного слайса. Кроме того, видеодекодер может определить на основе синтаксического элемента в битовом потоке, что слайс закодирован с использованием WPP, и может декодировать слайс с использованием WPP.

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

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

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

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

[0011] В другом аспекте это раскрытие описывает способ декодирования видеоданных. Способ содержит этап, на котором принимают битовый поток, который включает в себя элемент NAL закодированного слайса, причем элемент NAL закодированного слайса включает в себя множество подпотоков, причем каждый из подпотоков включает в себя последовательную серию битов, которая представляет одну строку древовидных блоков кодирования (CTB) в слайсе изображения. Способ также содержит этап, на котором определяют на основе синтаксического элемента в битовом потоке, что слайс закодирован с использованием WPP. Кроме того, способ содержит этап, на котором декодируют слайс с использованием WPP.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[0025] Фиг. 9B - блок-схема последовательности операций, показывающая продолжение примерного процесса анализа кодирования CABAC на фиг. 9A.

[0026] Фиг. 10 - концептуальная схема, которая показывает пример WPP.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[0041] Видеокодер 20 может закодировать видеоданные из источника 18 видео. В некоторых примерах устройство 12 источника непосредственно передает закодированные видеоданные устройству 14 назначения через выходной интерфейс 22. Закодированные видеоданные могут также быть сохранены на запоминающий носитель или файловый сервер для более позднего доступа посредством устройства 14 назначения для декодирования и/или воспроизведения.

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

[0043] Видеокодер 20 и видеодекодер 30 могут работать в соответствии со стандартом сжатия видеоинформации, таким как стандарт высокоэффективного видеокодирования (HEVC), разрабатываемый в настоящее время, и может соответствовать тестовой модели стандарта HEVC (HM). Проект предстоящего стандарта HEVC, называемый "Рабочий проект HEVC 5" или "WD5", описан в документе Bross et al, "WD5: Working Draft 5 of High-Efficiency Video Coding," Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SGI 6 WP3 and ISO/IEC JTC1/SC29/WG11, 7th Meeting: Geneva, Switzerland, November, 2011, версия которого от 10 октября 2012 может быть загружена по адресу: http://phenix.int-evry.fr/jct/doc_end_user/documents/7_Geneva/wg11/JCTVC-G1103-v3.zip, и информационное содержание которого включено в настоящий документ по ссылке. Другой проект предстоящего стандарта HEVC, называемый "Рабочий проект HEVC 9," описан в документе Bross et al, "High Efficiency Video Coding (HEVC) text specification draft 9," Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SGI 6 WP3 and ISO/IEC JTC1/SC29/WG11, 11th Meeting: Shanghai, China, October, 2012, версия которого от 7 ноября 2012 года может быть загружена по адресу: http://phenix.int-evry.fr/jct/doc_end_user/documents/11_Shanghai/wg11/JCTVC-K1003-v8.zip, и информационное содержание которого включено в настоящий документ по ссылке.

[0044] В качестве альтернативы, видеокодер 20 и видеодекодер 30 могут работать в соответствии с другими собственными или промышленными стандартами, в том числе ITU-T H.261, MPEG ISO/IEC 1 Visual, ITU-T H.262 или MPEG ISO/IEC 2 Visual, ITU-T H.263, MPEG ISO/IEC 4 Visaul и ITU-T H.264 (также известный как MPEG ISO/IEC 4 AVC), в том числе его расширения масштабируемого видеокодирования (SVC) и многовидового видеокодирования (MVC). Однако методики этого раскрытия не ограничены каким-либо конкретным стандартом или методикой кодирования.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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