Сокращение контекста для контекстно-адаптивного бинарного арифметического кодирования

Иллюстрации

Показать все

Изобретение относится к технологиям кодирования и декодирования видео. Техническим результатом является повышение эффективности кодирования или декодирования за счет сокращения числа контекстов контекстно-адаптированного бинарного арифметического кодирования (CABAC), которое используется для одного или нескольких синтаксических элементов. Предложен способ кодирования видеоданных. Способ включает в себя этап, на котором определяют первый тип предсказания для блока видеоданных в Р сегменте и представляют первый тип предсказания как синтаксический элемент типа предсказания Р сегмента. Далее, согласно способу определяют второй тип предсказания для блока видеоданных в B сегменте и представляют второй тип предсказания как синтаксический элемент типа предсказания В сегмента, а также, осуществляют определение бинаризации Р сегмента для синтаксического элемента типа предсказания Р сегмента и осуществляют определение бинаризации В сегмента для синтаксического элемента типа предсказания B сегмента. 8 н. и 32 з.п. ф-лы, 10 ил., 22 табл.

Реферат

[0001] Настоящая заявка испрашивает приоритет предварительной заявки США 61/557325, поданной 8 ноября 2011 г., и предварительной заявки США 61/561911, поданной 20 ноября 2011 г., обе из которых включены в настоящий документ в качестве ссылки во всей их полноте.

Область техники

[0002] Настоящее изобретение относится к кодированию видео и, в частности, контекстно-адаптивному бинарному арифметическому кодированию (CABAC), используемому в кодировании видео.

Предшествующий уровень техники

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

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

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

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

[0006] В общем, это раскрытие описывает методы для контекстно-адаптивного бинарного арифметического кодирования (CABAC) в процессе видеокодирования. В частности, это раскрытие предлагает сокращение числа контекстов CABAC, используемых для одного или нескольких синтаксических элементов, неограничительные примеры которых включают pred_typ, merge_idx, inert_pred_flag, ref_idx_lx, cbf_cb, cbf_cr, coeff_abs_level_greater1_flag и coeff_abs_level_greater2_flag. Модификации могут сократить до 56 контекстов с пренебрежимо малыми изменениями эффективности кодирования. Предлагаемые сокращения контекста для синтаксических элементов могут быть использованы отдельно или в любой комбинации.

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

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

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

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

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

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

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

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

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

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

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

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

[0018] На фиг. 5 показан концептуальный чертеж, демонстрирующий асимметричные типы разделения.

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

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

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

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

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

Подробное описание

[0024] Настоящее раскрытие описывает способы кодирования данных, таких как видеоданные. В частности, в настоящем раскрытии описываются способы, которые могут способствовать эффективному кодированию видеоданных с использованием процессов контекстно-адаптивного энтропийного кодирования. В частности, в настоящем раскрытии предлагается сокращение количества контекстов CABAC, используемых для кодирования синтаксических элементов, таких как pred_typ, merge_idx, inert_pred_flag, ref_idx_lx, cbf_cb, cbf_cr, coeff_abs_level_greater1_flag и coeff_abs_level_greater2_flag. Модификации сокращают до 56 контекстов с пренебрежимо малыми изменениями эффективности кодирования. Настоящее раскрытие описывает кодирование видео для целей иллюстрации. Однако способы, описанные в данном описании, также могут быть применимы к кодированию других типов данных.

[0025] На фиг. 1 представлена блок-схема, иллюстрирующая пример системы 10 кодирования и декодирования видео, которая может быть сконфигурирована, чтобы использовать методы контекстно-адаптивного бинарного арифметического кодирования (CABAC) в соответствии с примерами настоящего раскрытия. Как показано на фиг. 1, система 10 включает в себя устройство-источник 12, которое передает кодированное видео к устройству-получателю 14 через канал 16 связи. Кодированные видеоданные могут также храниться на носителе 34 хранения данных или файловом сервере 36, и устройство-получатель 14 может обращаться к ним по желанию. При хранении на носителе хранения данных или файловом сервере видеокодер 20 может предоставить кодированные видеоданные другому устройству, такому как сетевой интерфейс, компакт-диск (CD), программатор или устройство оборудования штамповки Blu-Ray или цифрового видеодиска (DVD) или другие устройства, для хранения кодированных видеоданных на носителе хранения данных. Кроме того, устройство, отдельное от видеодекодера 30, такое как сетевой интерфейс, CD или DVD считыватель или тому подобное, может извлекать кодированные видеоданные с носителя хранения данных и предоставлять извлеченные данные на видеодекодер 30.

[0026] Устройство-источник 12 и устройство-получатель 14 могут включать в себя любое из широкого спектра устройств, включая настольные компьютеры, ноутбуки (т. е. портативные компьютеры), планшетные компьютеры, телевизионные приставки, телефонные аппараты, такие как так называемые смартфоны, телевизоры, камеры, устройства отображения, цифровые медиаплееры, игровые консоли или тому подобное. Во многих случаях такие устройства могут быть оснащены для беспроводной связи. Таким образом, канал 16 связи может содержать беспроводной канал, проводной канал или комбинацию проводных и беспроводных каналов, пригодных для передачи кодированных видеоданных. Аналогично файловый сервер 36 может быть доступен для устройства-получателя 14 через любое стандартное соединение передачи данных, в том числе Интернет-соединение. Это может включать в себя беспроводной канал (например, соединение Wi-Fi), проводное соединение (например, DSL, кабельный модем и т. д.) или сочетание того и другого, которое подходит для доступа к кодированным видеоданным, хранящимся на файловом сервере.

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

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

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

[0030] Захваченное, предварительно захваченное или генерируемое компьютером видео, которое кодируется с помощью видеокодера 20, также может храниться на носителе 34 хранения данных или файловом сервере 36 для последующего потребления. Носитель 34 хранения данных может включать Blu-Ray диски, DVD-диски, CD-ROM, флэш-память или любой другой подходящий цифровой носитель хранения данных для хранения кодированного видео. Кодированное видео, сохраненное на носителе 34 хранения данных, может затем быть доступным для устройства-получателя 14 для декодирования и воспроизведения. Хотя это не показано на фиг. 1, в некоторых примерах носитель 34 хранения данных и/или файловый сервер 36 может хранить выходной сигнал передатчика 24.

[0031] Файловый сервер 36 может быть любым типом сервера, способным хранить кодированное видео и передавать это кодированное видео к устройству-получателю 14. Примерные файловые серверы включают в себя веб-сервер (например, для веб-сайта), FTP-сервер, устройства хранения, связанные с сетью (NAS), локальный диск или любой другой тип устройства, способного хранить кодированные видеоданные и передавать его к устройству-получателю. Передача кодированных видеоданных с файлового сервера 36 может быть потоковой передачей, передачей загрузки или сочетанием того и другого. Файловый сервер 36 может быть доступным для устройства-получателя 14 через любое стандартное соединение передачи данных, в том числе Интернет-соединение. Это может включать в себя беспроводной канал (например, соединение Wi-Fi), проводное соединение (например, DSL, кабельный модем, Ethernet, USB и т. д.) или сочетание того и другого, которое подходит для доступа к кодированным видеоданным, хранящимся на файловом сервере.

[0032] Устройство-получатель 14 в примере по фиг. 1 включает в себя приемник 26, модем 28, видеодекодер 30 и устройство 32 отображения. Приемник 26 устройства-получателя 14 принимает информацию по каналу 16, и модем 28 демодулирует информацию для получения демодулированного потока битов для видеодекодера 30. Информация, передаваемая через канал 16, может включать в себя различную синтаксическую информацию, генерируемую видеокодером 20, для использования видеодекодером 30 при декодировании видеоданных. Такой синтаксис также может быть включен в кодированные видеоданные, сохраненные на носителе 34 хранения данных или файловом сервере 36. Каждый из видеокодера 20 и видеодекодера 30 может являться частью соответствующего кодера-декодера (кодека), который способен кодировать или декодировать видеоданные.

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

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

[0035] Видеокодер 20 и видеодекодер 30 могут работать в соответствии со стандартом сжатия видео, таким как стандарт Высокоэффективного кодирования видео (HEVC), находящийся в настоящее время на стадии разработки Объединенной совместной группы по кодированию видео (JCT-VC) ITU-Т Группы экспертов по кодированию видео (VCEG) и ISO/IEC Группы экспертов по движущемуся изображению (MPEG). Недавний проект стандарта HEVC, называемый "HEVC рабочий проект 6" или "WD6", описывается в документе JCTVC-H1003, Bross et al., "High efficiency video coding (HEVC) text specification draft 6", Объединенной совместной группы по кодированию видео (JCT-VC) ITU-T SGI 6 WP3 и ISO/IEC JTC1/SC29/WG11, 8-е заседание: Сан-Хосе, Калифорния, США, февраль 2012 г., который по состоянию на 1 июня 2012 года можно скачать с http://phenix.int-evry.fr/jct/doc_end_user/documents/8_San%20Jose/wg11/JCTVC-1003-v22.zip.

[0036] Кроме того, видеокодер 20 и видеодекодер 30 могут действовать в соответствии с другими проприетарными или промышленными стандартами, такими как стандарт ITU-T H.264, альтернативно называемый MPEG-4, часть 10, Расширенное кодирование видео (AVC), или расширения таких стандартов. Методы настоящего раскрытия, однако, не ограничиваются каким-либо конкретным стандартом кодирования. Другие примеры включают MPEG-2 и ITU-T H.263.

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

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

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

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

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

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

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

[0044] В другом примере настоящего раскрытия, как видеокодер 20, так и видеодекодер 30 могут быть сконфигурированы, чтобы кодировать флаг кодированного блока цветности Cb для блока видеоданных с использованием CABAC, причем кодирование флага кодированного блока цветности Cb включает в себя использование набора контекстов, включающего в себя один или более контекстов как часть CABAC, и кодировать флаг кодированного блока цветности Cr с использованием CABAC, причем кодирование флага кодированного блока цветности Cr содержит использование того же самого набора контекстов, что и для флага кодированного блока цветности Cb, как часть CABAC.

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

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

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

[0048] Новый стандарт HEVC допускает преобразования в соответствии с TU, которые могут быть различными для различных CU. TU обычно имеют размер в зависимости от размера PU в пределах данной CU, определенной для разделенной LCU, хотя это может не всегда иметь место. TU, как правило, такого же размера или меньше, чем PU. В некоторых примерах остаточные выборки, соответствующие СU, могут быть разделены на более мелкие единицы, используя структуру квадродерева, известную как "остаточное квадродерево" (RQT). Листовые узлы RQT могут упоминаться как единицы преобразования (TU). Пиксельные разностные значения, связанные с TU, могут быть преобразованы для получения коэффициентов преобразования, которые могут быть квантованы.

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

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

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

[0052] В качестве примера HM поддерживает предсказание в различных размерах PU. В предположении, что размер определенной CU равен 2N×2N, HM поддерживает интра-предсказание в PU размеров 2N×2N или N×N и интер-предсказание в симметричных PU размеров 2N×2N, 2N×N, Nx2N или N×N. HM также поддерживает асимметричное разделение для интер-предсказания в PU размеров 2N×nU, 2N×nD, nL×2N и nR×2N. В асимметричном разделении одно направление СU не разделяется, а другое направление разделяется на 25% и 75%. Часть СU, соответствующая 25% разделению, обозначается посредством "n" с последующим указанием "вверх", "вниз", "влево" или "вправо". Так, например, "2N×nU" относится к 2N×2N CU, которая разделена горизонтально с 2N×0,5N PU сверху и 2N×1,5N PU снизу.

[0053] На фиг. 4 показана концептуальная диаграмма, демонстрирующая как квадратные, так и неквадратные типы разделения для интра-предсказания и интер-предсказания. Разделение 102 является разделением 2N×2N и может быть использовано как для интра-предсказания, так и для интер-предсказания. Разделение 104 является разделением N×N и может быть использовано как для интра-предсказания, так и для интер-предсказания. Разделение 106 является разделением 2N×N и в настоящее время используется в HEVC для интер-предсказания. Разделение 108 является разделением N×2N и в настоящее время используется в HEVC для интер-предсказания.

[0054] На фиг. 5 представлена концептуальная диаграмма, показывающая асимметричные типы разделения. Разделение 110 является разделением 2N×nU и в настоящее время используется в HEVC для интер-предсказания. Разделение 112 является разделением 2N×nD и в настоящее время используется в HEVC для интер-предсказания. Разделение 114 является разделением nL×2N и в настоящее время используется в HEVC для интер-предсказания. Разделение 116 является разделением nR×2N и в настоящее время используется в HEVC для интер-предсказания.

[0055] В этом описании «N×N» и «N на N» могут использоваться взаимозаменяемым образом для обозначения размеров в пикселях блока видео по вертикали и горизонтали, например, 16×16 пикселей или 16 на 16 пикселей. В общем, 16×16 блок будет иметь 16 пикселей в вертикальном направлении (y=16) и 16 пикселей в горизонтальном направлении (х=16). Аналогично блок N×N, в общем виде, имеет N пикселей в вертикальном направлении и N пикселей в горизонтальном направлении, где N представляет собой неотрицательное целое число. Пиксели в блоке могут быть упорядочены в строки и столбцы. Кроме того, блоки не обязательно должны иметь одинаковое число пикселей в горизонтальном направлении и в вертикальном направлении. Например, блоки могут содержать N×M пикселей, где М не обязательно равно N.

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

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

[0058] В некот