Комбинированное кодирование длин серий коэффициентов уточнения и значимых коэффициентов на уровнях расширения масштабируемого кодирования видео
Иллюстрации
Показать всеИзобретение относится к кодированию цифрового видео и, более конкретно, к кодированию длин серий коэффициентов преобразования на уровнях расширения в схеме масштабируемого кодирования (SVC) видео. Техническим результатом является эффективное кодирование длин серий значимых коэффициентов и коэффициентов уточнения уровня расширения, которые устраняют необходимость посылки информации знака для некоторых из коэффициентов уточнения. Указанный технический результат достигается тем, что не выполняют два различных прохода длин серий, чтобы отдельно кодировать значимые коэффициенты и коэффициенты уточнения. Выполняют кодирование длин серий значимых коэффициентов и коэффициентов уточнения вместе. Следовательно, значения серий кодирования длин серий кодируют значимые коэффициенты с коэффициентами уточнения. Информация знака для некоторых из коэффициентов уточнения может быть выводимой в декодере на основе значений знака соответствующих коэффициентов ранее кодированных уровней схемы SVC, которая может дополнительно повышать эффективность сжатия. 8 н. и 24 з.п. ф-лы, 9 ил., 1 табл.
Реферат
По данной заявке испрашивается приоритет нижеследующей предварительной заявки на патент США, полное содержание которой включено в настоящий документ путем ссылки:
предварительная заявка на патент США с порядковым номером № 60/893586, поданная 7 марта 2007 г.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Данное раскрытие относится к кодированию цифрового видео и, более конкретно, к кодированию длин серий коэффициентов преобразования на уровнях расширения в схеме масштабируемого кодирования (SVC) видео.
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
Технические возможности цифрового видео могут встраиваться в широкий диапазон устройств, включая цифровое телевидение, системы цифрового прямого вещания, устройства беспроводной связи, беспроводные широковещательные системы, персональные цифровые ассистенты (ПЦА, PDA), портативные или настольные компьютеры, цифровые камеры, цифровые записывающие устройства, видеоигровые устройства, видеоигровые пульты, сотовые или спутниковые радиотелефоны и т.п. Устройства цифрового видео осуществляют способы сжатия видео, такие как стандарты (кодеки) Экспертной группы по вопросам движущегося изображения MPEG-2, MPEG-4 или H.264/MPEG-4, Часть 10, Advanced Video Coding (усовершенствованное кодирование видео, AVC), чтобы передавать и принимать цифровое видео более эффективно. Способы сжатия видеоизображения выполняют пространственное и временное предсказание, чтобы уменьшать или удалять избыточность, присущую в видеопоследовательностях.
В кодировании видео сжатие видео обычно включает в себя пространственное предсказание, оценку движения и компенсацию движения. Интракодирование основывается на пространственном предсказании, чтобы уменьшать или удалять пространственную избыточность между видеоблоками внутри данного видеокадра. Интеркодирование основывается на временном предсказании, чтобы уменьшать или удалять временную избыточность между видеоблоками последовательных видеокадров из видеопоследовательности. Для интеркодирования видеокодер выполняет оценку движения, чтобы отслеживать перемещение совпадающих видеоблоков между двумя или более смежными кадрами. Оценка движения формирует векторы движения, которые указывают смещение видеоблоков относительно соответствующих видеоблоков предсказания в одном или более опорных кадрах. Компенсация движения использует вектор движения, чтобы формировать видеоблок предсказания из опорного кадра. После компенсации движения формируется остаточный видеоблок путем вычитания видеоблока предсказания из исходного видеоблока, подлежащего кодированию.
Видеокодер может применять процессы преобразования, квантования и кодирования длин серий, чтобы дополнительно уменьшить битовую скорость передачи, связанную с передачей остаточного блока. В кодировании длин серий последовательность коэффициентов может быть кодирована с использованием значения серии, значения уровня и значения знака. Алгоритмы кодирования длин серий могут сканировать через коэффициенты преобразования видеоблока, например, зигзагообразно, для того чтобы обозначить последовательности нулей, которые могут быть кодированы вместе. Значение серии обозначает последовательность нулей, и значение уровня обозначает значение коэффициента, следующего за последовательностью нулей. Может полагаться, что в некоторых случаях значением уровня будет 1, например, когда величина любого коэффициента ограничена значениями в -1, 0 или 1. Значение знака обозначает знак, связанный со значением уровня.
В некоторых случаях может использоваться таблица кодирования с переменной длиной (VLC), чтобы кодировать различные значения серий способом, который способствует эффективности кодирования, и могут использоваться различные таблицы VLC для различного видеоконтента. Видеодекодер выполняет обратные операции, чтобы восстановить коэффициенты, и затем обратные преобразования коэффициентов. Видеодекодер затем декодирует видеоинформацию на основе информации движения и остаточной информации, связанной с видеоблоками.
Некоторое кодирование видео использует масштабируемые способы. Например, масштабируемое кодирование видео (SVC) относится к кодированию видео, в котором используются базовый уровень и один или более масштабируемых уровней расширения. В отношении SVC базовый уровень обычно несет видеоданные с базовым уровнем качества. Один или более уровней расширения несут дополнительные видеоданные, чтобы поддерживать более высокие уровни: пространственные, временные и/или отношения сигнал/шум (SNR). Базовый уровень может передаваться способом, который является более надежным, чем передача уровней расширения. Например, могут использоваться наиболее надежные порции модулируемого сигнала, чтобы передавать базовый уровень, тогда как менее надежные порции модулированного сигнала могут использоваться, чтобы передавать уровни расширения. Уровни расширения могут задавать различные типы коэффициентов, именуемые как значимые коэффициенты и коэффициенты уточнения.
КРАТКОЕ ОПИСАНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
В целом в данном раскрытии описаны способы для кодирования уровня расширения в схеме масштабируемого кодирования видео (SVC). Способы касаются кодирования длин серий значимых коэффициентов и коэффициентов уточнения уровня расширения. Предпочтительнее выполнению двух различных проходов длин серий, чтобы отдельно кодировать значимые коэффициенты и коэффициенты уточнения, способы по данному раскрытию выполняют комбинированное кодирование длин серий значимых коэффициентов и коэффициентов уточнения. Другими словами, кодирование длин серий значимых коэффициентов и коэффициентов уточнения выполняется вместе в одном проходе кодирования. Следовательно, значения серий кодирования длин серий кодируют значимые коэффициенты с коэффициентами уточнения. Также описаны дополнительные способы, которые могут устранять необходимость посылки информации знака для некоторых из коэффициентов уточнения. Вместо этого эта информация знака для некоторых из коэффициентов уточнения может быть выводимой в декодере на основе значений знаков соответствующих коэффициентов ранее закодированных уровней по схеме SVC, каковое может дополнительно повышать эффективность сжатия.
В одном примере данное раскрытие представляет способ кодирования уровня расширения в схеме SVC, содержащий кодирование по длинам серий значимых коэффициентов и коэффициентов уточнения уровня расширения вместе, так что значения серий кодирования длин серий кодируют значимые коэффициенты с коэффициентами обработки.
В другом примере данное раскрытие представляет устройство, содержащее блок кодирования длин серий, сконфигурированный для кодирования уровня расширения в схеме SVC, причем блок кодирования длин серий кодирует по длинам серий значимые коэффициенты и коэффициенты уточнения уровня расширения вместе, так что значения серий кодирования длин серий кодируют значимые коэффициенты с коэффициентами уточнения.
В другом примере данное раскрытие представляет устройство, содержащее средство для кодирования уровня расширения в схеме SVC, причем средство для кодирования выполняет кодирование длин серий относительно значимых коэффициентов и коэффициентов уточнения уровня расширения вместе, так что значения серий кодирования длин серий кодируют значимые коэффициенты с коэффициентами уточнения.
Описанные в этом раскрытии способы могут быть реализованы в аппаратных средствах, программном обеспечении, микропрограммном обеспечении или любой комбинации таковых. В случае реализации в программном обеспечении программное обеспечение может исполняться в одном или более процессорах, таких как микропроцессор, проблемно-ориентированная интегральная микросхема (ASIC), программируемая вентильная матрица (БМК, FPGA) или цифровой процессор сигналов (ЦПС, DSP). Программное обеспечение, которое исполняет способы, может быть первоначально хранимым в машиночитаемом носителе и загружаемым и исполняемым в процессоре.
Соответственно, это раскрытие также рассматривает машиночитаемый носитель, содержащий команды, которые при исполнении в устройстве кодирования видео предписывают устройству кодировать уровень расширения в схеме SVC, причем команды предписывают устройству кодировать по длинам серий значимые коэффициенты и коэффициенты уточнения уровня расширения вместе, так что значения серий кодирования длин серий кодируют значимые коэффициенты с коэффициентами уточнения. В некоторых случаях машиночитаемый носитель может составлять часть компьютерного программного продукта, который может поставляться на производства и/или использоваться в устройствах кодирования видео. Компьютерный программный продукт может включать в себя машиночитаемый носитель и в некоторых случаях может также включать в себя упаковку.
В других случаях это раскрытие может быть направлено на схему, такую как интегральная схема, микропроцессорный комплект, проблемно-ориентированная интегральная микросхема (ASIC), программируемая вентильная матрица (FPGA), логическая схема или различные комбинации таковых, сконфигурированные для выполнения одного или более способов, описанных в документе.
Подробности одного или более аспектов раскрытия изложены в сопроводительных чертежах и описании ниже. Другие признаки, задачи и преимущества способов, описанных в этом раскрытии, будут очевидными из описания и чертежей, и из пунктов формулы изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг.1 - примерная блок-схема, иллюстрирующая систему кодировки и декодирования видео.
Фиг.2 - концептуальная схема, иллюстрирующая видеокадры базового уровня и уровня расширения масштабируемого битового видеопотока.
Фиг.3 - блок-схема, иллюстрирующая пример видеокодера, согласующегося с данным раскрытием.
Фиг.4 - блок-схема, иллюстрирующая пример видеодекодера, согласующегося с данным раскрытием.
Фиг.5 - примерная блок-схема блока кодирования длин серий, который может использоваться для кодировки.
Фиг.6 - примерная блок-схема блока кодирования длин серий, который может использоваться для декодирования.
Фиг.7 - график, показывающий иллюстративный пример, согласующийся с данным раскрытием.
Фиг.8 - схема последовательности операций, иллюстрирующая методику кодировки длин серий, согласующуюся с данным раскрытием.
Фиг.9 - схема последовательности операций, иллюстрирующая методику декодирования длин серий, согласующуюся с данным раскрытием.
ПОДРОБНОЕ ОПИСАНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
На фиг.1 показана блок-схема, иллюстрирующая систему 10 кодировки и декодирования видео. Как показано на фиг.1, система 10 включает в себя устройство 12 источника, которое передает кодированное видео на приемное устройство 16 через канал 15 связи. Устройство 12 источника может включать в себя источник 20 видео, видеокодер 22 и модулятор/передатчик 24. Приемное устройство 16 может включать в себя приемник/демодулятор 26, видеодекодер 28 и устройство 30 отображения. Система 10 может быть сконфигурирована для применения способов для кодирования длин серий видеоинформации, связанной с уровнем расширения в схеме масштабируемого кодирования видео (SVC). Передатчик устройства 12 источника и приемник приемного устройства 16 оба являются примерами средств для обмена информацией.
SVC относится к кодированию видео, в котором используются базовый уровень и один или более масштабируемых уровней расширения. Для SVC базовый уровень обычно несет видеоданные с базовым уровнем качества. Один или более уровней расширения несут дополнительные видеоданные, чтобы поддерживать более высокие уровни - пространственные, временные и/или отношения сигнал/шум (SNR). Уровни расширения могут задаваться относительно ранее закодированного уровня. Уровни расширения задают, по меньшей мере, два различных типа коэффициентов, именуемых как значимые коэффициенты и коэффициенты уточнения. Коэффициенты уточнения могут задавать значения относительно соответствующих значений ранее закодированного уровня.
Коэффициенты уточнения относятся к коэффициентам уровня расширения, для которого соответствующие коэффициенты предыдущего уровня в схеме SVC имели ненулевые значения. Напротив, значимые коэффициенты относятся к коэффициентам уровня расширения, для которых соответствующие коэффициенты предыдущего уровня в схеме SVC имели нулевые значения. Традиционно, кодирование длин серий уровней расширения предполагает двухпроходный подход. Первый проход выполняется, чтобы кодировать по длинам серий значимые коэффициенты, и еще один проход выполняется, чтобы кодировать коэффициенты уточнения.
В соответствии с данным раскрытием, однако, устройства 12 и 16 выполняют кодирование длин серий значимых коэффициентов и коэффициентов уточнения вместе. Следовательно, значения серий кодирования длин серий кодируют значимые коэффициенты с коэффициентами уточнения. Кроме того, устройства 12 и 16 могут выполнять дополнительные способы, которые могут устранять необходимость устройства 12 источника для посылки информации знака для некоторых из коэффициентов уточнения. Вместо этого эта информация знака для некоторых из коэффициентов уточнения может быть выведена в приемном устройстве 16, которое может дополнительно повысить эффективность сжатия.
В примере по фиг.1 канал 15 связи может содержать любую среду беспроводной или проводной связи, такую как спектр радиочастот (РЧ, RF), или одну или более физических линий передачи, или любую комбинацию беспроводных и проводных сред. Канал 15 связи может составлять часть сети на основе передачи пакетов, такой как локальная (вычислительная) сеть, широкомасштабная сеть или глобальная сеть, такая как Internet. Канал 15 связи обычно представляет любую подходящую среду связи или совокупность различных сред связи, для передачи видеоданных от устройства 12 источника на приемное устройство 16.
Устройство 12 источника формирует кодированные видеоданные для передачи на приемное устройство 16. В некоторых случаях, однако, устройства 12, 16 могут работать, по существу, симметричным образом. Например, каждое из устройств 12, 16 может включать в себя компоненты кодировки и декодирования видео. Следовательно, система 10 может поддерживать одностороннюю или двухстороннюю передачу видео между видеоустройствами 12, 16, например, для потокового видео, видеовещания или видеотелефонии.
Источник 20 видеоустройства 12 источника может включать в себя устройство видеозахвата, такое как видеокамера, видеоархив, содержащий предварительно захваченное видео, или внешний видеосигнал от поставщика видеоконтента. В качестве дополнительной альтернативы, источник 20 видео может формировать данные на основе компьютерной графики в качестве источника видео или комбинацию реального видео и машинно-генерируемого видео. В некоторых случаях, если источником 20 видео является видеокамера, устройство 12 источника и приемное устройство 16 могут составлять так называемые телефоны с камерой или видеотелефоны. В каждом случае захваченное, предварительно захваченное или машинно-генерируемое видео может кодироваться посредством видеокодера 22 для передачи от устройства 12 источника видео на видеодекодер 28 устройства 16 приема видео через модулятор/передатчик 22, канал 15 связи и приемник/демодулятор 26. Процессы кодировки и декодирования видео могут осуществлять описанные в документе способы кодирования длин серий, чтобы улучшать процессы. Устройство 30 отображения отображает декодированные видеоданные пользователю и может содержать любое из различных устройств отображения, такое как электронно-лучевая трубка, жидкокристаллический индикатор (ЖКИ, LCD), плазменный дисплей, дисплей на органических светодиодах (OLED) или другой тип устройства отображения.
Видеокодер 22 и видеодекодер 28 могут быть сконфигурированы для поддержки SVC для масштабируемости пространственной, временной и/или отношения сигнал-шум (SNR). В некоторых аспектах видеокодер 22 и видеодекодер 28 могут быть сконфигурированы для поддержки кодирования с мелкозернистой SNR масшабируемостью (FGS) для SVC. Кодер 22 и декодер 28 могут поддерживать различные степени масштабируемости путем поддержки кодировки, передачи и декодирования базового уровня и одного или более масштабируемых уровней расширения. Вновь для масштабируемого кодирования видео базовый уровень несет видеоданные с базовым уровнем качества. Один или более уровней расширения несут дополнительные данные, чтобы поддерживать более высокие уровни пространственные, временные и/или SNR. Базовый уровень может передаваться способом, который является более надежным, чем передача уровней расширения. Например, могут использоваться наиболее надежные порции модулированного сигнала, чтобы передавать базовый уровень, тогда как менее надежные порции модулированного сигнала могут использоваться, чтобы передавать уровни расширения.
Чтобы поддерживать SVC, видеокодер 22 может включать в себя кодер 32 базового уровня и один или более кодеров 34 уровня расширения, чтобы выполнять кодировку базового уровня и одного или более уровней расширения соответственно. Способы по данному раскрытию, которые касаются кодирования длин серий значимых коэффициентов с коэффициентами расширения, являются применимыми к кодированию видеоблоков уровней расширения в SVC.
Видеодекодер 28 может включать в себя комбинированный декодер базового уровня/уровня расширения, который декодирует видеоблоки, связанные и с базовыми уровнями, и с уровнями расширения. Видеодекодер 28 может декодировать видеоблоки, связанные и с базовыми уровнями, и с уровнями расширения, и комбинировать декодированное видео, чтобы восстанавливать кадры видеопоследовательности. Устройство 30 отображения принимает декодированные видеопоследовательности и представляет видеопоследовательность пользователю.
Видеокодер 22 и видеодекодер 28 могут работать в соответствии со стандартом сжатия видео, таким как MPEG-2, MPEG-4, разработанным Международным союзом электросвязи, сектором телекоммуникаций (ITU-T) стандартом H.263 или разработанным ITU-T стандартом H.264/MPEG-4, Часть 10, Усовершенствованное Кодирование Видео (AVC). Хотя на фиг.1 не показано, в некоторых аспектах видеокодер 22 и видеодекодер 28 могут каждый быть интегрированными с кодером и декодером аудио и могут включать в себя надлежащие блоки MUX-DEMUX (мультиплексор/демультиплексор) или иные аппаратные средства и программное обеспечение, чтобы вести кодировку и аудио, и видео в общем потоке данных или в отдельных потоках данных. Если применимо, блоки MUX-DEMUX могут соответствовать протоколу H.223 ITU для мультиплексора или другим протоколам, таким как протокол (UDP) дейтаграмм пользователя.
Стандарт H.264/MPEG-4 (AVC) был разработан Экспертной группой (ЭГКВ, VCEG) по кодированию видео из ITU-T вместе с Экспертной группой (MPEG) по вопросам движущегося изображения из Международной организации по стандартизации/Международной электротехнической комиссии (МОС/МЭК, ISO/IEC), в качестве продукта совместного партнерства, известного как Joint Video Team (JVT) (Совместная группа по видео, СГВ). В некоторых аспектах описанные в данном раскрытии способы могут применяться для устройств, которые обычно соответствуют стандарту H.264. Стандарт H.264, который описан Исследовательской группой ITU-T в Рекомендациях ITU-T по H.264, Усовершенствованное Кодирование Видео (AVC) для общих аудиовизуальных услуг, и датирован мартом 2005 г., в документе может именоваться стандартом или техническим описанием H.264, или стандартом или техническим описанием H.264/AVC.
Совместная группа (JVT) по видео продолжает работу над расширением SVC к H.264/MPEG-4 AVC. Техническое описание эволюции расширения SVC представлено в форме Совместного проекта (JD). Созданная группой JVT модель Joint Scalable Video Model (JSVM) (Объединенная модель масштабируемого видео, ОММВ) реализует инструментальные средства для использования в масштабируемом видео, которые могут использоваться в рамках системы 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 г., Женева, и в Совместном проекте 9 (SVC JD9), авторов Thomas Wiegand, Gary Sullivan, Julien Reichel, Heiko Schwarz и Mathias Wien "Joint Draft 9 of SVC Amendment" (Поправки к SVC по Совместному проекту 9), JVT-V 201, январь 2007 г., Марракеш, Марокко.
В некоторых аспектах относительно (широко)вещания видео описанные в данном раскрытии способы могут применяться к расширенному стандарту H.264 кодирования видео для доставки услуг видео реального времени в системах наземной мобильной мультимедийной многоадресной передачи (НМ3, 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 (цифровое мультимедийное вещание, ЦМВ). Следовательно, устройство 12 источника может быть мобильным беспроводным терминалом, сервером потокового видео или сервером вещания видео. Однако описанные в данном раскрытии способы не ограничиваются каким-либо конкретным типом системы широковещательной, многоадресной или двухточечной передачи. В случае широковещания устройство 12 источника может осуществлять вещание нескольких каналов видеоданных на множество приемных устройств, каждое из которых может быть подобным приемному устройству 16 по фиг.1.
Видеокодер 22 и видеодекодер 28 каждый может быть реализован в виде одного или более микропроцессоров, цифровых процессоров сигналов (DSP), проблемно-ориентированных интегральных микросхем (ASIC), программируемых вентильных матриц (FPGA), дискретной логики, программного обеспечения, аппаратных средств, микропрограммного обеспечения или любых таковых комбинаций. Каждый из видеокодера 22 и видеодекодера 28 может быть включен в один или более кодеров или декодеров, и тот, и другой могут быть встроенными в виде части комбинированного кодера/декодера (кодека, CODEC) в соответствующем мобильном устройстве, абонентском устройстве, устройстве вещания, сервере или подобном. Кроме того, устройство 12 источника и приемное устройство 16 каждое может включать в себя, в качестве применимых, надлежащие компоненты модуляции, демодуляции, преобразования частоты, фильтрации и усилителя, предназначенные для передачи и приема кодированного видео, включая радиочастотные (РЧ, RF) беспроводные компоненты и антенны, достаточные для поддержания беспроводной связи. Для простоты иллюстрации, однако, такие компоненты складываются в виде модулятора/передатчика 24 устройства 12 источника и приемника/демодулятора 26 приемного устройства 16 на фиг.1.
Видеопоследовательность включает в себя ряд видеокадров. Видеокодер 22 оперирует с видеоблоками внутри отдельных видеокадров, для того чтобы закодировать видеоданные. Видеоблоки могут иметь фиксированные или переменные размеры, и могут отличаться по размеру в соответствии с указанным стандартом кодирования. Каждый видеокадр включает в себя ряд слоев. Каждый слой может включать в себя ряд макроблоков, которые могут быть организованы в подблоки. В качестве примера стандарт H.264 ITU-T поддерживает интрапредсказание с блоками различных размеров, таких как 16 на 16, 8 на 8, или 4 на 4 для яркостных составляющих, и 8 на 8 для составляющих цветности, а также интерпредсказание с блоками различных размеров, таких как 16 на 16, 16 на 8, 8 на 16, 8 на 8, 8 на 4, 4 на 8 и 4 на 4 для яркостных составляющих и соответствующих масштабированных размеров для составляющих цветности. Видеоблоки могут содержать блоки пиксельных данных или блоки коэффициентов преобразования, например, следуя процессу преобразования, такому как дискретное косинусное преобразование. Способы кодирования длин серий по данному раскрытию применяются к видеоблокам коэффициентов преобразования.
Более мелкие видеоблоки могут обеспечивать лучшую разрешающую способность и могут использоваться для положений видеокадра, которые включают в себя более высокие степени детализации. В целом, может рассматриваться, что видеоблоками будут макроблоки (MB) и различные подблоки. Кроме того, может рассматриваться, что слой будет последовательностью видеоблоков, таких как макроблоки и/или подблоки. Каждый слой может быть независимо декодируемой единицей видеокадра. После предсказания может выполняться преобразование над остаточным блоком 8×8 или остаточным блоком 4×4 и может применяться дополнительное преобразование к коэффициентам DC (дискретного косинусного преобразования) блоков 4×4 для составляющих цветности или яркостных составляющих, если используется интрапредсказание 16×16. Вновь после преобразования данные все еще могут рассматриваться являющимися видеоблоками, то есть блоками коэффициентов преобразования.
Следуя кодированию на основе интра- или интерпредсказания и способам преобразования (таким как целочисленное преобразование 4×4 или 8×8, используемое в H.264/AVC, или дискретное косинусное преобразование (ДКП, DCT)), может выполняться кодирование длин серий. Данное раскрытие представляет способы для комбинированного кодирования длин серий коэффициентов уточнения и значимых коэффициентов уровня расширения, которое может выполняться в кодере 22, чтобы кодировать данные, и в декодере 26, чтобы декодировать данные. Вновь значимые коэффициенты относятся к коэффициентам, которые имели нулевые значения на предыдущем уровне, и коэффициенты уточнения относятся к коэффициентам, которые имели ненулевые значения на предыдущем уровне. Традиционно кодирование длин серий уровней расширения предполагает двухпроходной подход, один проход для кодирования по длинам серий значимых коэффициентов и другой проход для кодирования по длинам серий коэффициентов уточнения.
Согласно способам по данному раскрытию кодирование длин серий уровней расширения предполагает однопроходный подход, который кодирует значимые коэффициенты с коэффициентами обработки. В схеме кодирования длин серий могут использоваться таблицы кодирования (VLC) с переменной длиной. Например, таблицы VLC могут использоваться для кодирования длин серий, и в некоторых случаях могут выбираться различные таблицы на основе контента, который может быть представлен посредством различной статистики, такой как подсчет длин серий, подсчет позиций «конец-блока» или подобного. Информация длины серии может задавать индекс таблицы и может задавать последовательность закодированных нулей видеоинформации, которая может быть значимыми коэффициентами и коэффициентами уточнения, имеющими такие значения нулей. Информация длины серии может использоваться, чтобы выбирать надлежащее кодовое слово из выбранной таблицы VLC для передачи на устройство декодирования.
Кодер 22 и декодер 28 могут выполнять взаимно обратные способы, которые кодируют уровень расширения в схеме SVC путем кодирования по длинам серий значимых коэффициентов и коэффициентов уточнения уровня расширения вместе, так что значения серий кодирования длин серий кодируют значимые коэффициенты с коэффициентами уточнения. Термин «кодирование» обычно относится к процессам либо кодировки, либо декодирования. Видеокодер 22 кодирует данные, тогда как видеодекодер 28 декодирует данные.
На фиг.2 показана схема, иллюстрирующая видеокадры внутри базового уровня 17 и уровня 18 расширения битового потока масштабируемого видео. Как отмечено выше, способы по данному раскрытию являются применимыми к кодированию данных уровней расширения. Базовый уровень 17 может содержать битовый поток, содержащий кодированные видеоданные, который представляет первый уровень масшабируемости пространственной, временной или SNR. Уровень 18 расширения может содержать битовый поток, содержащий кодированные видеоданные, который представляет второй уровень масшабируемости пространственной, временной и/или SNR. Хотя показан один уровень расширения, в некоторых случаях могут использоваться несколько уровней расширения. Битовый поток уровня расширения может быть декодируемым только вместе с базовым уровнем (или предыдущим уровнем расширения, если существует многочисленный уровень расширения). Уровень 18 расширения содержит ссылки на декодированные видеоданные в базовом уровне 17. Такие ссылки могут использоваться или в области преобразования, или в пиксельной области, чтобы сформировать окончательные декодированные видеоданные.
Базовый уровень 17 и уровень 18 расширения могут содержать ключевые (I), промежуточные (P) и двунаправленные (B) кадры. P Кадры на уровне 18 расширения основываются на ссылках на P кадры в базовом уровне 17. Посредством декодирования кадров на уровне 18 расширения и базовом уровне 17, видеодекодер способен повышать качество видео декодированного видео. Например, базовый уровень 17 может включать в себя видео, кодированное с минимальной скоростью передачи кадров, например 15 кадров в секунду, тогда как уровень 18 расширения может включать в себя видео, кодированное с более высокой скоростью передачи кадров, например 30 кадров в секунду. Чтобы поддерживать кодировку с различными уровнями качества, базовый уровень 17 и уровень 18 расширения могут кодироваться, соответственно, с более высоким параметром квантования (QP) и более низким QP. Кроме того, базовый уровень 17 может передаваться способом, который является более надежным, чем передача уровня 18 расширения. В качестве примера могут использоваться наиболее надежные порции модулированного сигнала, чтобы передавать базовый уровень 17, тогда как менее надежные порции модулированного сигнала могут использоваться, чтобы передавать уровень 18 расширения. В некоторых случаях скорость передачи кадров базового уровня 17 может быть меньше таковой для уровня 18 расширения. Иллюстрация на фиг.2 является просто примерной, поскольку базовый уровень и уровни расширения могут задаваться многими различными способами.
Фиг.3 является блок-схемой, иллюстрирующей пример видеокодера 50, который включает в себя блок 47 кодирования длин серий, чтобы кодировать данные в соответствии с данным раскрытием. Видеокодер 50 по фиг.3 может соответствовать кодеру 24 уровня расширения устройства 2 источника на фиг.1. То есть компоненты кодировки базового уровня не иллюстрируются на фиг.3 для простоты. Следовательно, видеокодер 50 может считаться кодером уровня расширения. В качестве альтернативы, проиллюстрированные компоненты видеокодера 50 также могут быть реализованы в комбинации с модулями или блоками кодировки базового уровня, например, в схемы пирамидального кодера, которая поддерживает масштабируемое кодирование видео базового уровня и уровня расширения.
Видеокодер 50 может выполнять интра- и интеркодирование блоков внутри видеокадров. Интракодирование основывается на пространственном предсказании, чтобы уменьшать или удалять пространственную избыточность в видео внутри данного видеокадра. Интеркодирование основывается на временном предсказании, чтобы уменьшать или удалять пространственную избыточность в видео внутри смежных кадров видеопоследовательности. Для интеркодирования видеокодер 50 выполняет оценку движения, чтобы отслеживать перемещение совпадающих видеоблоков между двумя или более смежным кадрами. Для интракодирования пространственное предсказание используется, чтобы идентифицировать другие блоки внутри кадра, которые близко соответствует кодируемому блоку. Интракодирование, компоненты пространственного предсказания не иллюстрируются на фиг.3.
Как показано на фиг.3, видеокодер 50 принимает текущий видеоблок 31 (например, видеоблок уровня расширения) внутри видеокадра, подлежащего кодированию. В примере фиг.3 видеокодер 50 включает в себя блок 33 оценки движения, хранилище 35 опорных кадров, блок 37 компенсации движения, модуль 39 преобразования блока, блок 41 квантования, блок 42 обратного квантования, блок 44 обратного преобразования и блок 46 VLC. Может быть включен деблокирующий фильтр (не показан), чтобы фильтровать границы блока для удаления артефактов блочности. Видеокодер 50 также включает в себя сумматор 48 и сумматор 51. На фиг.3 иллюстрируются компоненты временного предсказания видеокодера 50 для интеркодирования видеоблоков. Хотя для простоты иллюстрации на фиг.3 не показано, видеокодер 50 также может включать в себя компоненты пространственного предсказания для интракодирования некоторых видеоблоков. Компоненты пространственного предсказания, однако, обычно используются только для кодирования базового уровня.
Блок 33 оценки движения сравнивает видеоблок 31 с блоками в одном или более смежных видеокадрах, чтобы сформировать один или более векторов движения. Смежный кадр или кадры могут быть извлечены из хранилища 35 опорных кадров, которое может содержать любой тип запоминающего устройства или устройства хранения данных, чтобы хранить видеоблоки, восстановленные из ранее закодированных блоков. Оценка движения может выполняться для блоков переменных размеров, например, 16×16, 16×8, 8×16, 8×8 или блоков меньших размеров. Блок 33 оценки движения идентифицирует блок в смежном кадре, который наиболее близко соответствует текущему видеоблоку 31, например, на основе модели случайного искажения, и определяет смещение между блоками. На этой основе блок 33 оценки движения выдает вектор движения (MV) (или множество MV в случае двунаправленного предсказания), который указывает величину и траекторию смещения между текущим видеоблоком 31 и прогнозным блоком, используемым для кодирования текущего видеоблока 31.
Векторы движения могут иметь полу- или четверть-пиксельную точность или даже более тонкую точность, давая возможность видеокодеру 50 отслеживать движение с точностью более высокой, чем целочисленные положения пикселов и получать более подходящий блок предсказания. При использовании векторов движения с дробными значениями пикселов операции интерполяции выполняются в блоке 37 компенсации движения. Блок 33 оценки движения может идентифицировать наилучший вектор движения для видеоблока, используя модель случайного искажения. Используя результирующий вектор движения, блок 37 компенсации движения формирует видеоблок предсказания посредством компенсации движения.
Видеокодер 50 формирует остаточный видеоблок путем вычитания в сумматоре 48 видеоблока предсказания, созданного блоком 37 компенсации движения, из исходного, текущего видеоблока 31. Модуль 39 преобразования блока применяет к остаточному блоку преобразование, такое как дискретное косинусное преобразование (DCT), создающее остаточные коэффициенты блока преобразования. Блок 41 квантования квантует остаточные коэффициенты блока преобразования, чтобы дополнительно уменьшить битовую скорость передачи. Сумматор 49A принимает информации коэффициентов базового уровня, например, от кодера базового уровня (не показано) и установлен между модулем 39 преобразования блока и блоком 41 квантования, чтобы подавать эту информацию коэффициентов базового уровня на кодирование уровня расширения. В частности, сумматор 49A вычитает информацию коэффициентов базового уровня из выходной информации модуля 39 преобразования блока. Подобным образом сумматор 49B, который установлен между блоком 44 обратного преобразования и блоком 42 обратного квантования, также принимает информацию коэффициентов базового уровня от кодера базового уровня (не показано). Сумматор 49B суммирует информацию коэффициентов базового уровня с выходной информацией блока 42 обратного квантования.
Кодирование с пространственным предсказан