Генерирование дополнительных кандидатов для слияния

Иллюстрации

Показать все

Изобретение относится к видеокодированию и, в частности, к предсказанию видеоданных в режиме слияния. Техническим результатом является повышение эффективности кодирования видео. Указанный технический результат достигается тем, что при генерировании списка кандидатов для кодирования видео с интер-предсказанием, видеокодер может выполнять операции отсечения при добавлении пространственных кандидатов и временных кандидатов в список кандидатов, в то же время не выполняя операции отсечения при добавлении искусственно сгенерированного кандидата в список кандидатов. При этом определяют набор пространственных кандидатов, ассоциированных с текущим участком текущего видеокадра, где набор пространственных кандидатов соответствует соседним участкам текущего видеокадра, смежным с текущим участком, а каждый из пространственных кандидатов имеет ассоциированную информацию движения. Искусственно сгенерированный кандидат может иметь информацию движения, которая является такой же, как информация движения пространственного кандидата или временного кандидата, уже находящихся в списке кандидатов. 4 н. и 25 з.п. ф-лы, 1 табл., 14 ил.

Реферат

[0001] Эта заявка испрашивает приоритет по:

предварительной заявке США №61/556,746, поданной 07 ноября 2011; предварительной заявке США №61/562,284, поданной 21 ноября 2011; и предварительной заявке США №61/562,940, поданной 22 ноября 2011, все содержимое каждой из которых включено в настоящий документ посредством ссылки.

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

[0002] Это раскрытие относится к кодированию видео и, более конкретно к предсказанию видеоданных в режиме слияния. УРОВЕНЬ ТЕХНИКИ

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

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

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

[0005] Это раскрытие описывает способы генерирования списков кандидатов, для использования в кодировании с интерпредсказанием (внешним предсказанием), на видеокодере и для генерирования тех же списков кандидатов на видеодекодере. Видеокодер и видеодекодер могут генерировать одинаковые списки кандидатов посредством реализации одинаковых способов для формирования списка кандидатов. Например, как видеокодер, так и видеодекодер могут формировать списки с одинаковым числом кандидатов. Видеокодер и декодер могут сначала рассматривать пространственных кандидатов (например, соседние блоки в одном и том же изображении), затем рассматривать временных кандидатов (например, кандидатов в разных изображениях), и наконец, могут рассматривать искусственно сгенерированных кандидатов, пока в список не будет добавлено желаемое число кандидатов. Согласно способам данного раскрытия, во время формирования списка кандидатов для определенных типов кандидатов могут быть использованы операции отсечения, для того, чтобы удалить дубликаты из списка кандидатов, тогда как для других типов кандидатов, отсечение может не использоваться, для того, чтобы уменьшить сложность кодера.

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

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

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

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

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

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

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

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

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

[0014] Фиг. 4 является блок-схемой, которая иллюстрирует примерную конфигурацию модуля интер-предсказания.

[0015] Фиг. 5 является схемой последовательности операций, которая иллюстрирует примерную операцию слияния.

[0016] Фиг. 6 является схемой последовательности операций, которая иллюстрирует примерную операцию усовершенствованного предсказания вектора движения (AMVP).

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

[0018] Фиг. 8 является принципиальной схемой, которая иллюстрирует единицу кодирования (CU) и примерные исходные размещения, ассоциированные с CU.

[0019] Фиг. 9 является схемой последовательности операций, которая иллюстрирует примерную операцию формирования списка кандидатов.

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

[0021] Фиг. 11 показывает графический пример добавления масштабированных кандидатов к списку кандидатов для слияния.

[0022] Фиг. 12 показывает графический пример добавления нулевых кандидатов к списку кандидатов для слияния.

[0023] Фиг. 13А и 13В показывают графический пример генерирования mv_offset-кандидатов.

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

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

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

[0026] Чтобы уменьшить число битов, требуемых для представления информации движения PU, видеокодер может генерировать списки кандидатов для каждой из PU согласно режиму слияния или процессу усовершенствованного предсказания вектора движения (AMVP). Каждый кандидат в списке кандидатов для PU может указывать информацию движения. Информация движения, указанная некоторыми из кандидатов в списке кандидатов может быть основана на информации движения других PU. В этом раскрытии кандидат может называться "первоначальным" кандидатом, если кандидат указывает информацию движения одного из точно определенных размещений пространственных или временных кандидатов. Например, для режима слияния, может быть пять размещений первоначальных пространственных кандидатов и одно размещение первоначального временного кандидата. В некоторых примерах, видеокодер может генерировать дополнительных кандидатов посредством объединения пространственных векторов движения из разных первоначальных кандидатов, модифицируя первоначальных кандидатов, или просто вставлять нулевые векторы движения в качестве кандидатов. Эти дополнительные кандидаты не рассматриваются как первоначальные кандидаты и в этом раскрытии могут быть названы искусственно сгенерированными кандидатами.

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

[0028] После генерирования списка кандидатов для PU из CU, видеокодер может выбрать кандидата из списка кандидатов и вывести индекс кандидата в битовом потоке. Выбранный кандидат может быть кандидатом, который имеет вектор движения, который дает в результате предиктор, который больше всего совпадает с целевой PU, которая кодируется. Индекс кандидата может указывать положение выбранного кандидата в списке кандидатов. Видеокодер может также генерировать предсказательный видеоблок для PU на основе опорного блока, указанного посредством информации движения PU. Информация движения PU может быть определяемой на основе информации движения, указанной выбранным кандидатом. Например, в режиме слияния, информация движения PU может быть такой же как информация движения, указанная выбранным кандидатом. В режиме AM.VP, информация движения PU может быть определена на основе разности векторов движения PU и информации движения, указанной выбранным кандидатом. Видеокодер может генерировать один или более остаточных видеоблоков для CU на основе предсказательных видеоблоков PU из CU и первоначального видеоблока для CU. Видеокодер может затем кодировать и выводить один или более остаточных видеоблоков в битовом потоке.

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

[0030] Для простоты разъяснения, это раскрытие может описывать размещения или видеоблоки как имеющие различные пространственные взаимосвязи с CU или PU. Такое описание может быть интерпретировано, чтобы означать, что размещения или видеоблоки имеют различные пространственные взаимосвязи с видеоблоками, ассоциированными с CU или PU. Кроме того, в этом раскрытии PU, которую видеокодер кодирует в текущий момент, может называться текущей PU. В этом раскрытии CU, которую видеокодер кодирует в текущий момент, может называться текущей CU. В этом раскрытии изображение, которое видеокодер кодирует в текущий момент, может называться текущим изображением.

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

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

[0033] Как показано на фиг. 1, система 10 кодирования видео включает в себя исходное устройство 12 и устройство 14 назначения. Исходное устройство 12 генерирует кодированные видеоданные. Соответственно, исходное устройство 12 может быть названо устройством кодирования видео. Устройство 14 назначения может декодировать кодированные видеоданные, сгенерированные исходным устройством 12. Соответственно, устройство 14 назначения может быть названо устройством декодирования видео. Исходное устройство 12 и устройство 14 назначения могут быть примерами устройств кодирования видео.

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

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

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

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

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

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

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

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

[0042] Видеодекодер 20 и видеодекодер 30 могут функционировать согласно стандарту сжатия видео, такому как стандарт Высокоэффективного кодирования видео (HEVC), в настоящий момент в разработке, и могут соответствовать Тестовой модели HEVC (НМ). Недавний проект предстоящего стандарта HEVC, называемый "Рабочим проектом HEVC. 6" или "WD6", описан в документе JCTVC-H1003, Bross и др., "High efficiency video coding (HEVC) text specification draft 6", Объединенная команда по кодированию видео (JCT-VC) ITU-T SG16 WP3 и ISO/IEC JTC1/SC29/WG11, 8-ая встреча: Сан-Хосе, Калифорния, США, февраль 2012, который, по данным на 1 мая 2012, может быть загружен по: http://phenix.intevry.fr/jct/doc_end_user/documents/8_San%20Jose/wgl 1/JCTVC-H1003-v22.zip, все содержимое которого включено в настоящий документ посредством ссылки. Другой недавний проект стандарта HEVC, называемый "Рабочим проектом HEVC 7" или "WD7", описан в документе HCTVC-I1003, Bross и др., "High Efficiency Video Coding (HEVC) Text Specification Draft 7", Объединенная команда по кодированию видео (JCT-VC) ITU-T SG16 WP3 и ISO/IEC JTC1/SC29/WG11, 9-ая встреча: Женева, Швейцария, с 27 апреля 2012 по 7 мая 2012, который, по данным на 5 июня 2012, может быть загружен по: http://phenix.it-sudparis.eu/jct/doc_end_user/documents/9_Geneva/wg11/JCTVC-I1003-V3.zip.

[0043] В качестве альтернативы, видеокодер 20 и видеодекодер 30 могут функционировать согласно другим проприетарным или отраслевым стандартам, таким как стандарт ITU-T H.264, альтернативно называемый MPEG-4, Часть 10, Усовершенствованное кодирование видео (AVC), или расширениям таких стандартов. Однако, способы этого раскрытия не ограничены каким-либо конкретным стандартом или способом кодирования. Другие примеры стандартов и способов сжатия видео включают в себя MPEG-2, ITU-T H. 263 и проприетарные форматы сжатия с открытым исходным кодом, такие как VP8 и родственные форматы.

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

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

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

[0047] Как кратко упомянуто выше, видеокодер 20 кодирует видеоданные. Видеоданные могут содержать одно или более изображений. Каждое из изображений является неподвижным изображением, образующим часть видео. В некоторых случаях, изображение может быть названо "видеокадром". Когда видеокодер 20 кодирует видеоданные, видеокодер 20 может генерировать битовый поток. Битовый поток может включать в себя последовательность битов, которые образуют представление видеоданных. Битовый поток может включать в себя кодированные изображения и ассоциированные данные. Кодированное изображение является кодированным представлением изображения.

[0048] Чтобы сгенерировать битовый поток, видеокодер 20 может выполнить операции кодирования в отношении каждого изображения в видеоданных. Когда видеокодер 20 выполняет операции кодирования в отношении изображений, видеокодер 20 может генерировать ряд кодированных изображений и ассоциированных данных. Ассоциированные данные могут включать в себя наборы параметров последовательности, наборы параметров изображения и другие синтаксические структуры. Набор параметров последовательности (SPS) может содержать параметры, применимые к нулю или более последовательностям изображений. Набор параметров изображения (PPS) может содержать параметры, применимые к нулю или более изображениям. Набор параметров адаптации (APS) может содержать параметры, применимые к нулю или более изображениям. Параметры в APS могут быть параметрами, которые изменяются с большей вероятностью, чем параметры в PPS.

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

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

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

[0052] Чтобы сгенерировать кодированный слайс, видеокодер 20 может выполнить операции кодирования в отношении каждого древовидного блока в слайсе. Когда видеокодер 20 выполняет операцию кодирования в отношении древовидного блока, видеокодер 20 может сгенерировать кодированный древовидный блок. Кодированный древовидный блок может содержать данные, представляющие собой кодированную версию древовидного блока.

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

[0054] В результате кодирования древовидных блоков согласно порядку растрового сканирования, могут быть кодированы древовидные блоки выше и слева от заданного древовидного блока, но древовидные блоки ниже и справа от заданного древовидного блока еще не были кодированы. Следовательно, видеокодер 20 может иметь возможность осуществления доступа к информации, сгенерированной посредством кодирования древовидных блоков выше и слева от заданного древовидного блока, при кодировании заданного древовидного блока. Однако, видеокодер 20 может не иметь возможность осуществления доступа к информации, сгенерированной посредством кодирования древовидных блоков ниже и справа от заданного древовидного блока, при кодировании заданного древовидного блока.

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

[0056] Один или более синтаксических элементов в битовом потоке могут указывать максимальное число раз, которое видеокодер 20 может разбивать видеоблок древовидного блока. Видеоблок CU может быть квадратной формы. Размер видеоблока CU (т.е. размер CU) может ранжироваться от 8x8 пикселей до размера видеоблока древовидного блока (т.е. размера древовидного блока) с максимумом 64x64 пикселей или больше.

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

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