Эффективное по памяти моделирование контекста

Иллюстрации

Показать все

Изобретение относится к технологиям кодирования и декодирования видеоданных. Техническим результатом является повышение эффективности кодирования или декодирования за счет того, что энтропийное кодирование или декодирование осуществляется с использованием контекстной информации, определенной на основании глубины в структуре квадродерева. Предложен способ кодирования видеоданных. Способ включает в себя этап, на котором определяют контекстную информацию для одного или более синтаксических элементов, связанных с блоком видеоданных, причем упомянутый блок включен в единицу кодирования (CU) видеоданных. При этом видеоданные определяют структуру квадродерева, и единица кодирования является узлом структуры квадродерева. Определение контекстной информации содержит определение контекстной информации на основе глубины в структуре квадродерева. Далее, согласно способу, осуществляют энтропийное кодирование одного или более синтаксических элементов с использованием определенной контекстной информации. 4 н. и 40 з.п. ф-лы, 11 ил.

Реферат

[0001] Настоящая заявка испрашивает приоритет предварительной заявки США № 61/493,361, поданной 3 июня 2011 года, предварительной заявки США № 61/504,153, поданной 1 июля 2011 года, и предварительной заявки США 61/546,732, поданной 13 октября 2011 года, содержание каждой из которых включено в настоящий документ посредством ссылки во всей их полноте.

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

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

ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[0015] На Фиг.4А и 4B представлены концептуальные схемы, иллюстрирующие пример квадродерева и соответствующую наибольшую единицу кодирования (LCU).

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

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

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

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

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

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

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

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

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

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

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

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

[0027] После того как SM закодирована, видеокодер может энтропийно кодировать уровень каждого значимого коэффициента преобразования. Например, видеокодер может преобразовывать абсолютное значение каждого ненулевого коэффициента преобразования в двоичную форму. Таким образом, каждый ненулевой коэффициент преобразования может быть "бинаризован", например, с использованием унарного кода, содержащего один или более битов, или "бинов" (элементов кодированных данных). Кроме того, ряд других бинаризованных синтаксических элементов может быть включен, чтобы позволить видеодекодеру декодировать видеоданные.

[0028] Видеокодер может кодировать каждый “бин” для блока видеоданных, в соответствии с коэффициентами преобразования и с синтаксической информацией для блока, используя вероятностные оценки для каждого бина. Вероятностные оценки могут указывать вероятность того, что бин имеет данное двоичное (бинарное) значение (например, "0" или "1"). Вероятностные оценки могут быть включены в модель вероятности, также известную как "модель контекста". Видеокодер может выбрать модель контекста путем определения контекста для бина. Контекст для бина синтаксического элемента может включать в себя значения соответствующих бинов ранее кодированных соседних синтаксических элементов. В некоторых примерах контекст для кодирования текущего синтаксического элемента может включать в себя соседние синтаксические элементы, расположенные сверху и слева от текущего синтаксического элемента. В любом случае, отличающаяся модель вероятности определяется для каждого контекста. После кодирования бина, модель контекста дополнительно обновляется на основании значения бина, чтобы отразить самые актуальные вероятностные оценки.

[0029] В некоторых примерах блоки видеоданных величиной 4x4 пикселей могут быть использованы для кодирования изображения. Например, кадр из 1920x1080 пикселей (например, для видео 1080p) может включать в себя 495 блоков 4x4 пикселей. Соответственно, для того чтобы бит контекстной информации был сохранен на каждый блок, видеокодер может буферизовать 495 битов информации. Кроме того, в некоторых примерах более чем один бит информации может быть использован в качестве контекста для кодирования конкретного синтаксического элемента, что может значительно увеличить количество данных, буферизуемых для энтропийного кодирования.

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

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

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

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

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

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

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

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

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

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

[0040] Настоящее раскрытие может в целом относиться к видеокодеру 20, "сигнализирующему" определенную информацию к другому устройству, такому как видеодекодер 30. Следует понимать, однако, что видеокодер 20 может сигнализировать информацию путем ассоциирования определенных синтаксических элементов с различными участками кодированных видеоданных. То есть, видеокодер 20 может "сигнализировать" данные путем сохранения определенных синтаксических элементов в заголовках различных кодированных частей видеоданных. В некоторых случаях такие синтаксические элементы могут быть закодированы и сохранены (например, сохранены в носителе 34 хранения данных или файловом сервере 36), прежде чем приниматься и декодироваться видеодекодером 30. Таким образом, термин "сигнализация" может в целом относиться к передаче синтаксиса или других данных для декодирования сжатых видеоданных, независимо от того, происходит ли такая передача в реальном или почти реальном времени или в течение определенного периода времени, как это может происходить при сохранении синтаксических элементов на носителе во время кодирования, которые затем могут быть извлечены с помощью декодирующего устройства в любое время после сохранения на этом носителе.

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

[0042] В примере на Фиг.1 устройство-источник 12 включает в себя источник 18 видео, видеокодер 20 и интерфейс 22 вывода. Целевое устройство 14 включает интерфейс 28 ввода, видеодекодер 30 и устройство 32 отображения. В соответствии с настоящим раскрытием, видеокодер 20 из устройства-источника 12 может быть выполнен с возможностью применять методы для кодирования векторов движения и для выполнения двунаправленного предсказания в HEVC и его расширениях, таких как многовидовые или 3DV расширения. В других примерах, устройство-источник и целевое устройство могут включать в себя другие компоненты или конфигурации. Например, устройство-источник 12 может принимать видеоданные от внешнего источника 18 видео, например, внешней камеры. Аналогичным образом, целевое устройство 14 может взаимодействовать с внешним устройством отображения, но не включать в себя интегрированное устройство отображения.

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

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

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

[0046] Интерфейс 28 ввода целевого устройства 14 получает информацию из машиночитаемого носителя 16. Информация машиночитаемого носителя 16 может включать в себя синтаксическую информацию, определенную видеокодером 20, которая также используется видеодекодером 30, которая включает в себя синтаксические элементы, которые описывают характеристики и/или обработку блоков и других кодируемых единиц, например GOP. В частности, настоящее раскрытие относится к «кодированной единице" в качестве единицы данных, включающей в себя несколько блоков, таких как сегмент, изображение, набор волновых фронтов, или элемент мозаичного изображения. Таким образом, термин "кодированная единица" следует понимать как включающий в себя несколько блоков, например, несколько наибольших единиц кодирования (LCU). Кроме того, термин "кодированная единица" не следует путать с термином «единица кодирования" или CU, как используется в HEVC. Устройство 32 отображения отображает декодированные видеоданные пользователю и может содержать любое из множества устройств отображения, таких как электронно-лучевая трубка (ЭЛТ), жидкокристаллический дисплей (LCD), плазменный дисплей, дисплей на органических светоизлучающих диодах (OLED) или устройство отображения другого типа.

[0047] Видеокодер 20 и видеодекодер 30 могут работать в соответствии со стандартом видеокодирования, таким как стандарт Высокоэффективного видеокодирования (HEVC), находящийся в настоящее время в стадии развития, и может соответствовать HEVC тестовой модели (HM). Альтернативно, видеокодер 20 и видеодекодер 30 могут действовать в соответствии с другими проприетарными или промышленными стандартами, такими как стандарт ITU-T H.264, альтернативно упоминаемый как MPEG-4, часть 10, Усовершенствованное видеокодирование (AVC) или расширения таких стандартов. Однако методы настоящего раскрытия не ограничиваются каким-либо конкретным стандартом кодирования. Другие примеры стандартов видеокодирования включают в себя MPEG-2 и ITU-T H.263. Хотя это не показано на Фиг.1, в некоторых аспектах видеокодер 20 и видеодекодер 30 могут, каждый, быть интегрированы с аудиокодером и декодером и могут включать в себя соответствующие блоки MUX-DEMUX или другое оборудование и программное обеспечение для обработки аудио и видеокодирования в общем потоке данных или отдельных потоках данных. Если применимо, блоки MUX-DEMUX могут соответствовать протоколу мультиплексора ITU H.223 или другим протоколам, таким как протокол пользовательских дейтаграмм (UDP).

[0048] Стандарт ITU-T H.264/MPEG-4 (AVC) был сформулирован ITU-T Экспертной группой по кодированию видео (VCEG) вместе с ISO/IEC Экспертной группой по движущимся изображениям (MPEG) в виде продукта коллективного партнерства, известного как Объединенная видео группа (JVT). В некоторых аспектах методы, описанные в настоящем раскрытии, могут быть применены к устройствам, которые обычно соответствуют стандарту H.264. Стандарт H.264 описан в ITU-T Рекомендации H.264 Усовершенствованное кодирование видео для общих аудиовизуальных услуг ITU-T Исследовательской группой и датирован мартом 2005 года, что может упоминаться здесь как стандарт H.264 или спецификация H.264 или стандарт или спецификация H.264/AVC. JVT продолжает работу над расширениями H.264/MPEG-4 AVC.

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

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

[0051] Каждый узел структуры данных квадродерева может предоставить данные синтаксиса для соответствующей CU. Например, узел в квадродереве может включать в себя флаг разделения, показывающий, разделена ли CU, соответствующая вершине, на суб-CU. Элементы синтаксиса для CU могут быть определены рекурсивно и могут зависеть от того, разделена ли CU на суб-CU. Если CU не разделена дальше, то она называется листовой (концевой) CU. В настоящем раскрытии четыре суб-CU концевой CU также будут у