Выбор кодовой таблицы переменной длины на основе статистики типа блоков для кодирования коэффициентов уточнения
Иллюстрации
Показать всеИзобретение относится к цифровому кодированию видео и, в частности, к кодированию с переменной длиной (VLC) коэффициентов преобразования в расширенных уровнях схемы масштабируемого кодирования видео (SVC). Техническим результатом является повышение эффективности кодирования видео. Указанный технический результат достигается тем, что определяют первое соотношение, связанное с первым типом видеоблока; определяют второе соотношение, связанное со вторым типом видеоблока, причем первое и второе соотношения основаны на символах, указывающих, изменились ли знаки коэффициентов уточнения или остались теми же относительно соответствующих коэффициентов предыдущего уровня в схеме SVC. Выбирают первую таблицу VLC из множества таблиц VLC для использования в кодировании видеоблока первого типа на основе первого соотношения и вторую таблицу VLC из множества таблиц VLC для использования в кодировании видеоблока второго типа на основе второго соотношения и кодируют видеоблоки первого типа на основе первой таблицы VLC, а видеоблоки второго типа на основе второй таблицы VLC. 4 н. и 19 з.п. ф-лы, 7 ил., 2 табл.
Реферат
Эта заявка заявляет преимущество следующей предварительной заявки США, все содержимое которой включено в нее по ссылке:
U.S. Provisional Application No. 60883741, filed January 5, 2007.
Область техники, к которой относится изобретение
Это раскрытие относится к цифровому кодированию видео и, особенно, к кодированию с переменной длиной (VLC) коэффициентов преобразования в расширенных уровнях схемы масштабируемого кодирования видео (SVC).
Уровень техники
Возможности цифрового видео могут быть включены в широкий спектр устройств, включая системы цифрового телевидения, цифровые системы прямого вещания, беспроводные устройства связи, беспроводные системы вещания, персональные электронные помощники (PDA), ноутбуки или настольные компьютеры, цифровые камеры, цифровые записывающие устройства, игровые видеоустройства, игровые видеоконсоли, сотовые или спутниковые радиотелефоны и т.п. Цифровые видеоустройства реализуют такие технологии сжатия видео, как MPEG-2, MPEG-4 или H.264/MPEG-4, Часть 10, Усовершенствованное кодирование видео (AVC), чтобы передавать и принимать цифровое видео более эффективно. Технологии сжатия видео выполняют пространственное и временное предсказание, чтобы уменьшить или удалить избыточность, присущую видеофрагментам.
В кодировании видео сжатие видео часто включает пространственное предсказание, оценку движения и компенсацию движения. Внутреннее кодирование основывается на пространственном предсказании, чтобы уменьшить или удалить пространственную избыточность между видеоблоками в рамках данного кадра. Интеркодирование основывается на временном предсказании, чтобы уменьшить или удалить временную избыточность между видеоблоками последовательных видеокадров видеофрагмента. Для интеркодирования видеокодер выполняет оценку движения, чтобы отслеживать движение соответствия видеоблоков между двумя или более смежными кадрами. Оценка движения генерирует векторы движения, которые указывают на перемещения видеоблоков относительно соответствующих видеоблоков предсказания в одном или более опорных кадрах. Компенсация движения использует упомянутые векторы движения, чтобы сгенерировать видеоблоки предсказания из опорного кадра. После компенсации движения, остаточный видеоблок формируется вычитанием видеоблока предсказания из исходного видеоблока, подлежащего кодированию.
Видеокодер обычно применяет процессы преобразования, квантования и кодирования коэффициентов преобразования для дальнейшего уменьшения скорости передачи битов, ассоциированной с коммуникацией остаточного блока. Кодирование коэффициентов преобразования остаточных блоков может привести к применению кодов с переменной длиной для дальнейшего сжатия коэффициентов, полученных путем операций преобразования и квантования. Например, таблица кодирования с переменной длиной (VLC) может использоваться для нахождения соответствия различных наборов коэффициентов кодовым словам переменной длины таким образом, что способствует эффективности кодирования. Разные таблицы VLC могут использоваться для разного видеоконтента. Видеодекодер выполняет обратные VLC операции, чтобы реконструировать коэффициенты, и затем выполнить обратное преобразование этих коэффициентов, чтобы реконструировать видеоинформацию. Видеодекодер может декодировать видеоинформацию на основе информации движения и остаточной информации, связанной с видеоблоками.
Некоторое видеокодирование использует технологии масштабирования. Например, масштабируемое видеокодирование (SVC) относится к видеокодированию, в котором используются базовый уровень и один или более масштабируемых расширенных уровней. Для SVC базовый уровень обычно переносит видеоданные с базовым уровнем качества. Один или более расширенных уровней переносят дополнительные видеоданные для поддержки высших пространственных, временных и/или SNR уровней. Базовый уровень может передаваться таким образом, что является более надежным, чем передача расширенных уровней. Расширенные уровни могут добавлять пространственное разрешение в кадры базового уровня, или могут добавлять дополнительные кадры, чтобы увеличить общую скорость передачи кадров. В одном примере наиболее надежные участки модулированного сигнала могут использоваться для передачи базового уровня, в то время как менее надежные участки модулированного сигнала могут использоваться для передачи расширенных уровней. Расширенные уровни могут определять разные типы коэффициентов, рассматриваемые как коэффициенты значимости и коэффициенты уточнения.
Сущность изобретения
В целом, это раскрытие описывает технологии для кодирования расширенного уровня в схеме масштабируемого кодирования видео (SVC). Упомянутые технологии предусматривают выбор таблиц кодирования с переменной длиной (VLC) во время процессов кодирования и декодирования. Упомянутые технологии могут использоваться в кодировании блоков коэффициентов преобразования и могут быть особенно полезны в кодировании VLC коэффициентов уточнения блоков расширенного уровня схемы SVC. Коэффициенты уточнения относятся к коэффициентам расширенного уровня, для которого соответствующие коэффициенты предыдущего уровня в схеме SVC имели ненулевые значения. Кодирование VLC коэффициентов уточнения может выполняться отдельно от кодирования VLC коэффициентов значимости, которые относятся к коэффициентам расширенного уровня, для которого соответствующие коэффициенты предыдущего уровня в схеме SVC имеют нулевые значения.
Согласно технологии этого раскрытия таблицы VLC выбираются для разных типов видеоблоков, например внутренних блоков и интерблоков. Таблицы могут выбираться один раз для каждого кадра видеоинформации или могут быть выбраны один раз для других типов кодированных блоков (как один раз на часть видеоинформации или один раз на уровень FGS кадра). Таблицы VLC для разных типов видеоблоков могут выбираться на основе статистики, связанной с ранее кодированными блоками. Например, таблица VLC для внутренних блоков может выбираться на основе статистики, связанной с ранее кодированными внутренними блоками. Подобным образом, таблица VLC для интерблоков может выбираться на основе статистики, связанной с ранее кодированными интерблоками. В одном примере упомянутая статистика для каждого типа видеоблока может содержать соотношение числа коэффициентов уточнения в ранее кодированных блоках, которые имеют то же значение знака относительно числа коэффициентов уточнения в ранее кодированных блоках, которые имеют обратное значение знака. На основе этого соотношения таблицы VLC могут выбираться для кодирования коэффициентов уточнения, связанных с блоками данного кадра, и когда встречается следующий кадр, это соотношение может быть вычислено снова, чтобы способствовать выборам таблицы VLC для этого кадра.
В одном примере это раскрытие предусматривает способ кодирования расширенного уровня схемы SVC, содержащий этапы, на которых определяют первую статистику, связанную с первым типом видеоблока, определяют вторую статистику, связанную со вторым типом видеоблока, выбирают таблицу VLC из множества таблиц VLC для использования в кодировании первого типа видеоблока на основе первой статистики, выбирают вторую таблицу VLC из множества таблиц VLC для использования в кодировании второго типа видеоблока на основе второй статистики, кодируют видеоблоки первого типа на основе первой таблицы VLC и кодируют видеоблоки второго типа на основе второй таблицы VLC.
В другом примере это раскрытие предусматривает устройство, которое кодирует расширенный уровень схемы SVC, причем упомянутое устройство содержит блок статистики, который определяет первую статистику, связанную с первым типом видеоблока, и определяет вторую статистику, связанную со вторым типом видеоблока, блок выбора таблицы, который выбирает первую таблицу VLC из множества таблиц VLC для использования в кодировании первого типа видеоблока на основе первой статистики и выбирает вторую таблицу VLC из множества таблиц VLC для использования в кодировании второго типа видеоблока на основе второй статистики, и блок кодирования, который кодирует видеоблоки первого типа на основе первой таблицы VLC и кодирует видеоблоки второго типа на основе второй таблицы VLC.
В другом примере это раскрытие предусматривает устройство, которое кодирует расширенный уровень схемы SVC, причем упомянутое устройство содержит средство для определения статистики, которое определяет первую статистику, связанную с первым типом видеоблока, и определяет вторую статистику, связанную со вторым типом видеоблока, средство для выбора, которое выбирает первую таблицу VLC из множества таблиц VLC для использования в кодировании первого типа видеоблока на основе первой статистики и выбирает вторую таблицу VLC из множества таблиц VLC для использования в кодировании второго типа видеоблока на основе второй статистики, и средство для кодирования, которое кодирует видеоблоки первого типа на основе первой таблицы VLC и кодирует видеоблоки второго типа на основе второй таблицы VLC.
Технологии, рассматриваемые в этом раскрытии, могут реализовываться в оборудовании, программном обеспечении, встроенном программном обеспечении или любой их комбинации. При реализации в программном обеспечении это программное обеспечение может выполняться в одном или более процессорах, таких как микропроцессор, специализированная интегральная схема (ASIC), программируемая вентильная матрица (FPGA) или цифровой сигнальный процессор (DSP). Программное обеспечение, которое выполняет упомянутые технологии, может первоначально храниться на машиночитаемом носителе и загружаться, и выполняться в процессоре.
Соответственно это раскрытие также предусматривает машиночитаемый носитель, содержащий инструкции, которые после выполнения в устройстве видеокодирования предписывают упомянутому устройству кодировать расширенный уровень схемы SVC, причем упомянутые инструкции предписывают упомянутому устройству определять первую статистику, связанную с первым типом видеоблока, определять вторую статистику, связанную со вторым типом видеоблока, выбирать первую таблицу VLC из множества таблиц VLC для использования в кодировании первого типа видеоблока на основе первой статистики, выбирать вторую таблицу VLC из множества таблиц VLC для использования в кодировании второго типа видеоблока на основе второй статистики, кодировать видеоблоки первого типа на основе первой таблицы VLC и кодировать видеоблоки второго типа на основе второй таблицы VLC.
В некоторых случаях упомянутый машиночитаемый носитель может стать частью компьютерного программного продукта, который может продаваться производителям и/или использоваться в устройстве видеокодирования. Этот компьютерный программный продукт может включать машиночитаемый носитель, и в некоторых случаях может также включать упаковочные материалы.
В других случаях эти раскрытия могут быть направлены на схему, такую как интегральная схема, набор микросхем, специализированная интегральная схема (ASIC), программируемая вентильная матрица (FPGA), логика или различные их комбинации, сконфигурированные для выполнения одной или более технологий, описанных здесь.
Подробности одного или более аспектов этого раскрытия излагаются в сопроводительных чертежах и описании ниже. Другие признаки, задачи и преимущества технологий, описанных в этом раскрытии, будут очевидны из описания и чертежей и из формулы изобретения.
Краткое описание чертежей
ФИГ.1 - иллюстративная блок-схема, иллюстрирующая систему кодирования и декодирования видео.
ФИГ.2 - концептуальная схема, иллюстрирующая видеокадры базового уровня и расширенный уровень масштабируемого потока битов видео.
ФИГ.3 - блок-схема, иллюстрирующая пример видеокодера в соответствии с этим раскрытием.
ФИГ.4 - блок-схема, иллюстрирующая пример видеодекодера в соответствии с этим раскрытием.
ФИГ.5 - иллюстративная блок-схема блока кодирования с переменной длиной (VLC).
ФИГ.6 - иллюстративная блок-схема блока декодирования VLC.
ФИГ.7 - схема последовательности операций, иллюстрирующая технологию VLC для кодирования с переменной длиной в соответствии с этим раскрытием.
Подробное описание
Это раскрытие описывает технологию для кодирования расширенного уровня в схеме масштабируемого кодирования видео (SVC). Эта технология предусматривает выбор таблиц кодирования с переменной длиной (VLC) в кодере и в декодере. А именно технологии выбора таблицы VLC аналогичны в том, что выбор таблицы VLC выполняется в кодере, чтобы кодировать информацию, и в декодере, чтобы декодировать информацию. Технологии могут использоваться в кодировании коэффициентов преобразования, и особенно полезны в кодировании с переменной длиной коэффициентов уточнения расширенного уровня схемы SVC. Коэффициенты уточнения относятся к коэффициентам расширенного уровня, для которых соответствующие коэффициенты предыдущего уровня в схеме SVC имели ненулевые значения. В отличие от них коэффициенты значимости относятся к коэффициентам расширенного уровня, для которых соответствующие коэффициенты предыдущего уровня в схеме SVC имеют нулевые значения. Кодирование с переменной длиной коэффициентов уточнения может выполняться отдельно от кодирования с переменной длиной коэффициентов значимости.
Согласно технологиям этого раскрытия таблицы VLC выбираются для разных типов видеоблоков, например внутренних блоков и интерблоков. Таблицы могут выбираться один раз на кодированный блок, например, один раз на кадр, один раз на часть видеоинформации, один раз на уровень FGS кадра. Таблицы VLC для разных типов видеоблоков могут выбираться на основе статистики, связанной с ранее кодированными блоками. Например, таблица VLC для внутренних блоков может выбираться на основе статистики, связанной с ранее кодированными внутренними блоками, и таблица VLC для интерблоков может выбираться на основе статистики, связанной с ранее кодированными интерблоками.
В одном примере упомянутая статистика для каждого типа видеоблока может содержать соотношение числа коэффициентов уточнения в ранее кодированных блоках того типа блоков, которые имеют то же значение знака относительно числа коэффициентов уточнения в ранее кодированных блоках того типа блоков, которые имеют обратное значение знака. На основе соотношения для каждого типа блоков (внутренних и интер) первая таблица VLC может выбираться для кодирования коэффициентов уточнения, связанных с внутренними блоками данного кадра, и вторая таблица VLC может выбираться для кодирования коэффициентов уточнения, связанных с интерблоками данного кадра. Когда встречается следующий кадр, эти соотношения могут быть вычислены снова, чтобы способствовать выборам таблицы VLC для этого кадра.
ФИГ.1 - блок-схема, иллюстрирующая систему 10 кодирования и декодирования видео. Как показано на ФИГ.1, система 10 включает устройство источника 2, которое передает кодированное видео на приемное устройство 6 по каналу 15 связи. Устройство источника 2 может включать видеоисточник 11, видеокодер 12 и модулятор/передатчик 14. Приемное устройство 6 может включать приемник/демодулятор 16, видеодекодер 18 и устройство 20 дисплея. Система 10 может конфигурироваться для применения технологий для кодирования VLC видеоинформации, связанной с расширенным уровнем в схеме SVC.
Кодирование SVC относится к видеокодированию, в котором используется базовый уровень и один или более масштабируемых расширенных уровней. Для SVC базовый уровень обычно передает видеоданные с базовым уровнем качества. Один или более расширенных уровней передают дополнительные видеоданные для поддержки высших пространственного, временного и/или сигнал/шум (SNR) уровней. Расширенные уровни могут быть определены относительно ранее кодированного уровня. Расширенные уровни определяют по меньшей мере два разных типа коэффициентов, называемых как коэффициенты значимости и коэффициенты уточнения. Коэффициенты уточнения могут определять значения относительно соответствующих значений ранее кодированного уровня. Кадры расширенных уровней иногда только включают часть от общего числа видеоблоков на базовом уровне или предыдущем расширенном уровне, например, только тех блоков, для которых расширение выполняется.
Коэффициенты значимости относятся к коэффициентам, для которых соответствующие коэффициенты на предыдущем уровне имеют нулевые значения. Коэффициенты уточнения относятся к коэффициентам, для которых соответствующие коэффициенты на предыдущем уровне имели ненулевые значения на предыдущем уровне. Кодирование с переменной длиной расширенных уровней обычно включает подход с двумя проходами. Первый проход выполняется, чтобы кодировать с переменной длиной коэффициенты значимости, и другой проход выполняется, чтобы кодировать с переменной длиной коэффициенты уточнения. Технологии этого раскрытия особенно полезны для кодирования с переменной длиной коэффициентов уточнения, хотя это раскрытие необязательно ограничено в этом отношении.
Согласно технологии этого раскрытия разные таблицы VLC выбираются для разных типов видеоблоков. Например, первая таблица VLC может выбираться для кодирования коэффициентов уточнения внутренних блоков, и вторая таблица VLC может выбираться для кодирования коэффициентов уточнения интерблоков. Внутренние блоки относятся к блокам, которые кодируются на основе блоков внутри того данного кодированного блока. Интерблоки относятся к блокам, которые кодируются на основе блоков другого кодированного блока.
Выборы таблицы VLC могут быть на основе статистики, связанной с ранее кодированными блоками. Например, таблица VLC для внутренних блоков может выбираться на основе статистики, связанной с ранее кодированными внутренними блоками, и таблица VLC для интерблоков может выбираться на основе статистики, связанной с ранее кодированными интерблоками. Таблицы VLC могут выбираться один раз на кодированный блок так, как один раз на кадр видеоинформации, один раз на часть видеоинформации или один раз на уровень FGS. FGS означает мелкоячеистую масштабируемость сигнал/шум и объясняется более подробно ниже.
Упомянутая статистика для каждого типа видеоблока может содержать соотношение числа коэффициентов уточнения в ранее кодированных блоках, которые имеют то же значение знака относительно числа коэффициентов уточнения в ранее кодированных блоках, которые имеют обратное значение знака. На основе соотношения для каждого типа блока, т.е. этого соотношения для внутренних блоков и этого соотношения для интерблоков, первая и вторая таблицы VLC могут выбираться для кодирования коэффициентов уточнения, связанных с внутренними блоками и интерблоками данного кадра (или другого кодированного блока) соответственно. Когда следующий кадр (или другой кодированный блок) встречается, эти соотношения могут быть вычислены снова, чтобы способствовать обновленному выбору таблицы VLC.
В примере на ФИГ.1, канал 15 связи может содержать любую беспроводную или проводную среду связи, такую как радиочастотный (RF) спектр, или одну или более физических линий передачи или любое объединение беспроводной и проводной среды. Канал 15 связи может формировать часть сети на основе пакетов, такой как локальная сеть, широкомасштабная сеть или такая глобальная сеть, как Интернет. Канал 15 связи в целом представляет любую подходящую среду связи или набор разных сред связи для передачи видеоданных от устройства источника 2 на приемное устройство 6.
Устройство источника 2 генерирует кодированные видеоданные для передачи на приемное устройство 6. В некоторых случаях, однако, устройства 2, 6 могут работать в основном симметричным образом. Например, каждое из устройств 2, 6 может включать компоненты видеокодирования и декодирования. Таким образом, система 10 может поддерживать одностороннюю или двухстороннюю передачу видео между видеоустройствами 2, 6, например, для потокового видео, видеовещания или видеотелефонии.
Видеоисточник 11 устройства источника 2 может включать устройство захвата видео, такое как видеокамера, видеоархив, содержащий ранее захваченное видео, или видеоканал от видеоконтента провайдера. В качестве еще одной альтернативы, видеоисточник 11 может генерировать данные на основе компьютерной графики как источник видео или объединение реального видео и видео, сгенерированного на компьютере. В некоторых случаях, если видеоисточник 11 - видеокамера, устройство источника 2 и приемное устройство 6 могут формировать так называемые телефоны с камерой или видеотелефоны. В каждом случае, захваченное, заранее захваченное или сгенерированное на компьютере видео может быть кодировано видеокодером 12 для передачи от устройства 2 источника видео на видеодекодер 18 приемного устройства 6 видео через модулятор/передатчик 14, канал 15 связи и приемник/демодулятор 16. Процессы кодирования и декодирования видео могут реализовывать описанные здесь технологии выбора таблицы VLC для улучшения упомянутых процессов. Устройство 20 дисплея отображает декодированные видеоданные пользователю и может содержать любые различные виды устройства дисплея, такие как электронно-лучевая трубка, жидкокристаллический дисплей (LCD), плазменный дисплей, дисплей на органических светодиодах (OLED) или другой тип устройства дисплея.
Видеокодер 12 и видеодекодер 18 могут конфигурироваться для поддержки SVC для пространственного, временного и/или отношения сигнал/шум (SNR) масштабирования. В некоторых аспектах видеокодер 12 и видеодекодер 18 могут конфигурироваться для поддержки мелкоячеистой масштабируемости (FGS) кодирования для SVC. Кодер 12 и декодер 18 могут поддерживать различные степени масштабируемости поддержкой кодирования, передачи и декодирования базового уровня и один или более масштабируемых расширенных уровней. Снова, для масштабируемого видеокодирования, базовый уровень передает видеоданные с базовым уровнем качества. Один или более расширенных уровней переносят дополнительные данные для поддержки высших пространственного, временного и/или SNR уровней. Базовый уровень может передаваться таким образом, который является более надежным для передачи расширенных уровней. Например, наиболее надежные участки модулированного сигнала могут использоваться, чтобы передавать базовый уровень, в то время как менее надежные участки модулированного сигнала могут использоваться, чтобы передавать расширенные уровни.
Для того чтобы поддерживать SVC видеокодер 12 может включать кодер 22 базового уровня и один или более кодеров 24 расширенного уровня для выполнения кодирования базового уровня и одного или более расширенных уровней соответственно. Технологии этого раскрытия, которые включают выбор таблицы VLC, применимы к кодированию видеоблоков расширенных уровней в SVC. Более конкретно, технологии этого раскрытия применимы к кодированию VLC коэффициентов уточнения видеоблоков расширенных уровней, хотя это раскрытие необязательно ограничено в этом отношении.
Видеодекодер 18 может включать объединенный базовый/расширенный декодер, который декодирует видеоблоки, связанные как с базовым, так и с расширенным уровнями. Декодер 18 видео может декодировать видеоблоки, связанные как с базовым, так и с расширенным уровнями, и объединять декодированное видео, чтобы реконструировать кадры видеофрагмента. Устройство 20 дисплея принимает декодированную видеопоследовательность и представляет эту видеопоследовательность пользователю.
Видеокодер 12 и видеодекодер 18 могут работать в соответствии со стандартами сжатия видео, такими как MPEG-2, MPEG-4, ITU-T H.263 или ITU-T H.264/MPEG-4, Часть 10, Усовершенствованное кодирование видео (AVC). Хотя это не показано на ФИГ.1, в некоторых аспектах видеокодер 12 и видеодекодер 18 могут, каждый, быть интегрированы с аудиокодером и декодером и могут включать соответствующие блоки мультиплексирования-демультиплексирования (MUX-DEMUX) или другое оборудование и программное обеспечение, чтобы управлять кодированием как аудио, так и видео в общем потоке данных или отдельных потоках данных. Если применимо, блоки MUX-DEMUX могут соответствовать протоколу ITU H.223 мультиплексирования, или другим протоколам, таким как протокол передачи дейтаграмм пользователя (UDP).
Стандарт 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) продолжает работать над расширением SVC к H.264/MPEG-4 AVC. Спецификация усовершенствуемого расширения SVC - в форме Совместного проекта (JD). Совместная модель масштабируемого видео (JSVM), созданная JVT, реализует инструменты для использования в масштабируемом видео, которые могут использоваться внутри системы 10 для различных задач кодирования, описанных в этом раскрытии. Подробная информация, касающаяся мелкоячеистой масштабируемости SNR (FGS) кодирования может быть найдена в документах Совместного проекта и в особенности в Совместном проекте 6 (SVC JD6), Thomas Wiegand, Gary Sullivan, Julien Reichel, Heiko Schwarz, и Mathias Wien, "Joint Draft 6: Scalable Video Coding," JVT-S 201, апрель 2006, Geneva, и в Совместном проекте 9 (SVC JD9), Thomas Wiegand, Gary Sullivan, Julien Reichel, Heiko Schwarz, и Mathias Wien, "Joint Draft 9 of SVC Amendment," JVT-V 201, январь 2007, Marrakech, Morocco.
В некоторых аспектах, для видео вещания, технологии, описанные в этом раскрытии, могут применяться к расширенному видеокодированию H.264 для доставки видеоуслуг в реальном времени в наземных мобильных мультимедийных многоадресных (TM3) системах с использованием Спецификации радиоинтерфейса только по прямому каналу (FLO), "Forward Link Only Air Interface Specification for Terrestrial Mobile Multimedia Multicast," будет опубликован в качестве Технического стандарта TIA-1099 ("FLO Specification"). А именно канал 15 связи может содержать беспроводной информационный канал, используемый для трансляции беспроводной видеоинформации согласно Спецификации FLO или т.п. Спецификация FLO включает примеры, определяющие синтаксис и семантику потока битов и процессы декодирования, подходящие для Радио интерфейса FLO. Альтернативно видео может транслироваться в соответствии с другими стандартами, такими как DVB-H (цифровое видеовещание - передвижное), ISDB-T (цифровое вещание интегрированных служб - наземное) или DMB (цифровое медиавещание). Таким образом, устройство источника 2 может быть мобильным беспроводным терминалом, потоковым сервером видео или сервером вещания видео. Однако технологии, описанные в этом раскрытии, не ограничены каким-либо конкретным типом вещания, широковещания или системой точка-точка. В случае вещания устройство источника 2 может транслировать несколько каналов видеоданных многим приемным устройствам, каждое из которых может быть схоже с приемным устройством 6 на ФИГ.1.
Видеокодер 12 и видеодекодер 18, каждый, могут реализовываться как один или более микропроцессоров, цифровых сигнальных процессоров (DSP), специализированных интегральных схем (ASIC), программируемых вентильных матриц (FPGA), дискретная логика, программное обеспечение, оборудование, встроенное программное обеспечение или в любой их комбинации. Каждый из видеокодер 12 и видеодекодер 18 может быть включен в один или более кодеров или декодеров, любой из которых может быть интегрирован как часть объединенного кодера/декодера (CODEC) в соответствующем мобильном устройстве, абонентском устройстве, вещательном устройстве, сервере или т.п. В дополнение устройство источника 2 и приемное устройство 6, каждое, может включать соответствующие компоненты модуляции, демодуляции, преобразования частоты, фильтрации и усиления для передачи и приема кодированного видео, как применимо, включая радиочастотные (RF) беспроводные компоненты и антенны, достаточные для поддержки беспроводной связи. Для простоты иллюстрации, однако, такие компоненты резюмируются как модулятор/передатчик 14 устройства источника 2 и приемник/демодулятор 16 приемного устройства 6 на ФИГ.1.
Видеопоследовательность включает серии видеокадров. Видеокодер 12 обрабатывает блоки пикселов (или блоки трансформированных коэффициентов) в рамках отдельных видеокадров для того, чтобы кодировать видеоданные. Видеоблоки могут иметь фиксированные или переменные размеры и могут отличаться в размере в соответствии с конкретным стандартом кодирования. В некоторых случаях каждый видеокадр - кодированный блок, в то время как в других случаях, каждый видеокадр может быть разбит, включает серии частей, которые формируют кодированные блоки. Каждая часть может включать серии макроблоков, которые могут быть организованы в субблоки. В качестве примера, стандарт ITU-T H.264 поддерживает внутреннее предсказание в различных размерах блоков, таких как 16 на 16, 8 на 8 или 4 на 4 для компонентов яркости и 8×8 для компонентов цветности, а также интерпредсказание в различных размерах блоков, таких как 16 на 16, 16 на 8, 8 на 16, 8 на 8, 8 на 4, 4 на 8 и 4 на 4 для компонентов яркости и соответствующие масштабируемые размеры для компонентов цветности.
Меньшие видеоблоки могут обеспечить лучшее разрешение и могут использоваться для мест видеокадра, которые включают высшие уровни детализации. В целом, макроблоки (MB) и различные субблоки могут рассматриваться как видеоблоки. В дополнение, части могут рассматриваться как серии видеоблоков, как блоки MB и/или субблоки. Как отмечено, каждая часть может быть независимо декодируемым блоком видеокадра.
Следующие технологии - внутреннее или интеркодирование с предсказанием, дополнительное кодирование - могут применяться к передаваемому потоку битов. Эти дополнительные технологии кодирования могут включать технологии преобразования (такие как целочисленное преобразование 4×4 или 8×8, используемое в стандарте H.264/AVC, или дискретное косинус-преобразование DCT) и кодирование с переменной длиной. Блоки коэффициентов преобразования могут упоминаться как видеоблоки. Другими словами, термин "видеоблок" относится к блоку видеоданных независимо от домена информации. Таким образом, видеоблоки могут быть в домене пикселей или домене преобразованных коэффициентов. Применение выбора таблицы VLC и кодирования VLC будет в целом рассмотрено в этом раскрытии по отношению к блокам коэффициентов преобразования.
Это раскрытие предусматривает технологии для кодирования с переменной длиной коэффициентов уточнения. Кроме того, коэффициенты уточнения относятся к коэффициентам, которые имели ненулевые значения на предыдущем уровне, тогда как коэффициенты значимости относятся к коэффициентам, которые имеют нулевые значения на предыдущем уровне. В соответствии с этим раскрытием кодер 12 и декодер 18 выбирают разные таблицы VLC для разных типов видеоблоков. Например, кодер 12 и декодер 18 могут выбрать первую таблицу VLC для кодирования коэффициентов уточнения внутренних блоков и могут выбрать вторую таблицу VLC для кодирования коэффициентов уточнения интерблоков. Выбор таблиц VLC кодером 12 и декодером 18 может осуществляться на основе статистики, связанной с ранее кодированными блоками. Например, таблица VLC для внутренних блоков может выбираться на основе статистики, связанной с ранее кодированными внутренними блоками, и таблица VLC для интерблоков может выбираться на основе статистики, связанной с ранее кодированными интерблоками. Таким образом, кодер 12 и декодер 18 могут выполнять взаимные способы, которые кодируют расширенный уровень в схеме SVC. Как используется здесь, термин кодирования в целом относится к по меньшей мере части процессов либо кодирования, либо декодирования. Видеокодер 12 кодирует данные, в то время как видеодекодер 18 декодирует данные.
Таблицы VLC сами могут назначать кодовые слова различным наборам коэффициентов преобразования. Наборы коэффициентов с нулевыми значениями могут быть представлены длинами серий нулей, и таблицы могут назначать более вероятные длины серий более коротким кадрам VLC. Подобным образом, таблицы VLC могут назначать менее вероятные длины серий более длинным кодам VLC. Таким образом, выбор кодов из таблицы VLC может улучшить эффективность кодирования. Альтернативно разные образцы коэффициентов, таких как образцы кодированных блоков, могут назначаться разным кодовым словам переменной длины, с более вероятными образцами, назначаемыми более коротким кодовым словам, и менее вероятными образцами, назначаемыми более длинным кодовым словам.
Формирование таблицы VLC само могло бы также быть основано на статистике предыдущего кодирования, но в большинстве случаев используются статистические таблицы VLC. В случае статической таблицы VLC, кодер 12 и декодер 18 просто выбирают соответствующую таблицу VLC из набора возможных таблиц для кодирования коэффициентов уточнения внутренних блоков и выбирают другую соответствующую таблицу VLC из набора возможных таблиц для кодирования коэффициентов уточнения интерблоков. Независимо от того, являются ли таблицы VLC статическими или сформированными динамически, обновления таблиц VLC могут осуществляться при желании.
ФИГ.2 - схема, иллюстрирующая видеокадры в рамках базового уровня 17 и расширенного уровня 18 масштабируемого видеопотока битов. Как отмечено выше, упомянутые технологии этого раскрытия применимы к кодированию данных расширенных уровней. Базовый уровень 17 может содержать поток битов, содержащий кодированные видеоданные, которые представляют первый уровень пространственной, временной или SNR масштабируемости.
Расширенный уровень 18 может содержать поток битов, содержащий кодированные видеоданные, которые представляют второй уровень пространственной, временной или SNR масштабируемости. Хотя показан единственный расширенный уровень, несколько расширенных уровней может использоваться в некоторых случаях. Поток битов расширенного уровня может быть декодируемым только в сочетании с базовым уровнем (или предыдущим расширенным уровнем, если существует много расширенных уровней). Расширенный уровень 18 содержит ссылки на декодированные видеоданные в базовом уровне 17. Такие ссылки могут использоваться либо в домене преобразования, либо в домене пикселей, чтобы сгенерировать конечные декодированные видеоданные.
Базовый уровень 17 и расширенный уровень 18 могут содержать внутренние (I), интер (P) и двухнаправленные (B) кадры. Внутренние кадры могут включать все внутреннекодированные видеоблоки. Кадры I и P могут включать по меньшей мере некоторые интеркодированные видеоблоки (интерблоки), но могут также включать некоторые внутреннекодированные блоки (внутренние блоки). Разные кадры расширенного уровня 17 не требуют включения всех видеоблоков на базовом уровне 17. Кадры P в расширенном уровне 18 полагаются на ссылки на кадры P на базовом уровне 17. Благодаря декодированию кадров на расширенном уровне 18 и базовом уровне 17 видеодекодер способен увеличить видеокачество декодированного видео. Например, базовый уровень 17 может включать видео, кодированное при минимальной частоте смены кадров, например 15 кадров в секунду, тогда как расширенный уровень 18 может включать видео, кодированное при высшей частоте смены кадров, например 30 кадров в секунду. Для поддержки кодирования с разными уровнями качества базовый уровень 17 и расширенный уровень 18 могут быть кодированы с высшим параметром квантования (QP) и низшим QP соответственно. Кроме того, базовый уровень 17 может передаваться таким образом, что более надежно, чем передача расширенного уровня 18. В качестве примера, наиболее надежные участки модулированного сигнала могут использоваться, чтобы передавать базовый уровень 17, в то время как менее надежные участки модулированного сигнала могут использоваться, чтобы передавать расширенный уровень 18. Иллюстрация на ФИГ.2 является просто иллюстративной, поскольку базовый и расш