Способы и системы для кодирования значимых коэффициентов при видеосжатии

Иллюстрации

Показать все

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

Реферат

Родственные заявки

По данной заявке испрашивается приоритет по дате подачи находящейся одновременно на рассмотрении Предварительной заявки на патент США серийный номер 60/786798, зарегистрированной 27 марта 2006 года, озаглавленной "Significance Coefficient Coding for Fine Granularity Scalability", которая содержится в данном документе по ссылке.

Область техники, к которой относится изобретение

Настоящие системы и способы, в общем, относятся к обработке видео. Более конкретно, настоящие системы и способы относятся к кодированию и декодированию информации, относящейся к методикам видеосжатия.

Уровень техники

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

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

Методики видеосжатия могут предоставлять выгоды для потребителей различных форм мультимедиа. Например, в области техники широковещания цифровое телевидение может быть сделано практичным за счет видеосжатия. Телевизионные (TV) станции могут передавать в широковещательном режиме телевидение высокой четкости (HDTV) и несколько виртуальных каналов по одному физическому каналу. Цифровое видеовещание может использовать стандарт Экспертной группы по киноизображению (MPEG), такой формат видеосжатия по стандарту MPEG-2. Тем не менее, H.264/MPEG-4 и VC-1 начинают появляться в качестве новых стандартов видеосжатия.

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

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

Фиг.1 - это блок-схема, иллюстрирующая одну конфигурацию потока битов масштабированного видеокодирования;

Фиг.2 - это блок-схема, иллюстрирующая одну конфигурацию базового слоя и множества улучшающих слоев, отправляемых из кодера по сети в декодер;

Фиг.3 - это блок-схема последовательности операций, иллюстрирующая одну конфигурацию способа кодирования информации;

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

Фиг.5 иллюстрирует одну конфигурацию кадра изображения, поделенного на множество макроблоков;

Фиг.6 иллюстрирует одну конфигурацию классификации значимых и уточняющих коэффициентов;

Фиг.7 иллюстрирует одну конфигурацию таблицы кодовых слов и длин кода;

Фиг.8 иллюстрирует псевдокод для кодирования и декодирования кодовой книги 0 (унарного кода);

Фиг.9 иллюстрирует псевдокод для кодирования и декодирования кодовой книги 1;

Фиг.10 иллюстрирует псевдокод для кодирования и декодирования кодовой книги 2;

Фиг.11 иллюстрирует одну конфигурацию таблицы кодирования с переменной длиной (VLC), используемой для того, чтобы кодировать записи таблицы выбора кодовой книги;

Фиг.12 - это одна конфигурация прямоугольной таблицы выбора кодовой книги;

Фиг.13 - это одна конфигурация треугольной таблицы выбора кодовой книги;

Фиг.14 иллюстрирует псевдокод для кодирования отсеченной таблицы выбора кодовой книги;

Фиг.15 - это блок-схема, иллюстрирующая основные аппаратные компоненты, типично используемые для того, чтобы обрабатывать цифровые изображения и/или цифровое видео.

Подробное описание изобретения

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

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

Описан способ декодирования значимых коэффициентов в видеопоследовательности. Поток битов кодированного видео принимается. Информация таблицы кодовых книг извлекается из потока битов. Значимые символы декодируются с помощью извлеченной информации таблицы кодовых книг. Значимые коэффициенты декодируются с помощью значимых символов. Множество коэффициентов преобразования деквантуется. Обратное преобразование применяется к остаточному сигналу. Видеопоследовательность составляется.

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

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

Таблица выбора кодовой книги может быть динамически определена из статистической оценки. В одной конфигурации таблица выбора кодовой книги может быть динамически определена из соседней корреляции. Кодовая книга может быть смещенной версией другой кодовой книги.

Таблица выбора кодовой книги может быть отсечена с тем, чтобы предоставить отсеченную таблицу выбора кодовой книги. Отсеченная таблица выбора кодовой книги может быть кодирована с помощью серии последовательных макроблоков видео.

Также раскрыто электронное устройство. Электронное устройство включает в себя процессор и запоминающее устройство, поддерживающее электронную связь с процессором. Инструкции сохраняются в запоминающем устройстве. Поток битов кодированного видео принимается. Информация таблицы кодовых книг извлекается из потока битов. Значимые символы декодируются с помощью извлеченной информации таблицы кодовых книг. Значимые коэффициенты декодируются с помощью значимых символов. Множество коэффициентов преобразования деквантуется. Обратное преобразование применяется к остаточному сигналу. Видеопоследовательность составляется.

В одной конфигурации информация таблицы кодовых книг может быть декодирована из серии последовательных макроблоков. Информация таблицы кодовых книг может включать в себя таблицу выбора кодовой книги. Таблица выбора кодовой книги может включать в себя номер цикла преобразования таблицы выбора кодовой книги и позицию LEBL (последний кодированный коэффициент в базовом слое). Информация таблицы кодовых книг может включать в себя номер цикла преобразования таблицы выбора кодовой книги.

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

Таблица выбора кодовой книги может быть динамически определена из статистической оценки. Таблица выбора кодовой книги может быть динамически определена из соседней корреляции.

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

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

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

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

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

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

Фраза "основан на" не означает "основан только на", если иное не указано явно. Иными словами, фраза "основан на" описывает как "основан только на", так и "основан, по меньшей мере, на".

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

В настоящее время Joint Video Team (JVT), которая состоит из экспертов по кодированию видео из ISO/IEC MPEG и ITU-T VCEG, работает над дополнением масштабированного кодирования видео (SVC) к стандарту H.264/Улучшенное видеокодирование (AVC). Стандартное программное обеспечение, называемое Joint Scalable Video Model (JSVM), используется участниками. JSVM может поддерживать различные признаки масштабирования. Поток битов SVC может иметь масштабируемость с точной модульностью, пространственную масштабируемость, временную масштабируемость или любую комбинацию вышеозначенного.

Масштабируемость с точной модульностью, далее упоминаемая как FGS, является важным и очень желательным признаком видеокодирования. Этот признак дает возможность сжатому потоку битов быть практически произвольно отсекаемому, в то же время предоставляя конечному пользователю постепенное ухудшение качества декодированного видео. В масштабируемости с точной модульностью поток битов улучшающего слоя может произвольно отсекаться. По мере того как видеодекодер принимает и декодирует больше битов в этом слое, он формирует более оптимальное качество видео. Более того, FGS в JSVM спроектирована таким образом, что улучшение качества видео равномерно распределено по всему видеокадру в отличие от концентрации только в рамках определенной пространственной области кадра, поскольку последнее должно быть визуально нежелательно для конечного зрителя.

FGS достигает постепенного улучшения качества видео с помощью кодирования в битовой плоскости. Если видеокадр базового или предыдущего слоя кодирован с помощью параметра квантования QP, то видео текущего улучшающего слоя может быть квантовано с помощью параметра квантования, типично примерно QP-6, который эффективно отрезает размер шага квантования наполовину. Как результат меньшего размера шага квантования, больше коэффициентов квантования становятся ненулевыми на улучшающем слое. Ненулевые коэффициенты в улучшающем слое могут быть классифицированы на три типа: незначимые коэффициенты, значимые коэффициенты и уточняющие коэффициенты. Незначимые коэффициенты означают те коэффициенты, которые равны нулю в базовом или предыдущем слое и остаются нулем в текущем улучшающем слое. Значимые коэффициенты означают те коэффициенты, которые равны нулю в базовом или предыдущем слое, но становятся ненулевыми коэффициентами в текущем улучшающем слое. Уточняющие коэффициенты означают те коэффициенты, которые уже являются ненулевыми (т.е. значимыми) в базовом или предыдущем слое. Их значения уточняются в текущем улучшающем слое.

Поскольку уточняющие коэффициенты имеют статистику, отличную от других коэффициентов, они кодируются отдельно в FGS-слое. Аналогично H.264/AVC может быть два режима кодирования по энтропии в SVC: режим контекстного адаптивного двоичного арифметического кодирования (CABAC) и режим контекстного адаптивного кодирования переменной длины (CAVLC). Предоставляются подробности усовершенствованной системы кодирования значимых коэффициентов в режиме CAVLC, которые позволяют предоставлять более высокую производительность кодирования.

Фиг.1 - это блок-схема, иллюстрирующая одну конфигурацию структуры потока битов кодирования масштабированного видео, в общем, упоминаемую как масштабируемость с точной модульностью (FGS). В FGS видеопоследовательность сжимается в один видеопоток, по меньшей мере, с двумя слоями: базовым слоем 106 и улучшающим слоем 104. Как проиллюстрировано, FGS может дополнительно включать в себя N-1 улучшающих слоев 102.

В одной конфигурации базовый слой 106 является немасштабируемым кодированием видеопоследовательности и типично имеет наихудшее качество видеопоследовательности. Улучшающий слой 104 и N-1 улучшающих слоев 102 имеют варьирующиеся уровни качества, выше качества базового слоя 106. Декодирование каждого дополнительного улучшающего слоя, кодированного после базового слоя 106, приводит к повышению качества видеопоследовательности. Помимо этого поток битов FGS имеет одно существенное преимущество в том, что в ходе или после кодирования биты, относящиеся к улучшающему слою 104 и N-1 улучшающих слоев 102, могут быть отсечены (уменьшая скорость передачи битов и тем самым качество декодированного изображения) в реальном времени. Это предоставляет гибкое управление скоростью передачи битов и предоставляет возможность регулирования улучшающего слоя 104 и N-1 улучшающих слоев 102 так, чтобы соответствовать дополнительной скорости передачи битов.

Фиг.2 - это блок-схема 200 сети, иллюстрирующая базовый слой 202 и N улучшающих слоев 204, отправляемых из кодера 208 по сети 210 в декодер 212. Декодер 212 может декодировать и использовать базовый слой 202 и все или части одного или более улучшающих слоев 204. Декодер 212 составляет оптимальную аппроксимацию 214 исходной видеопоследовательности 206. В одной конфигурации оптимальная аппроксимация 214 отображается на дисплее 216, таком как монитор компьютера, телевизор, персональное цифровое устройство (PDA), проектор и т.д. Видеопоследовательность 206 кодируется как базовый слой 202 и один или более улучшающих слоев 204. Базовый слой 202 худшего качества представляет минимальный стандарт качества, а каждый из улучшающих слоев 204 является улучшением качества изображения базового слоя 202.

В одной конфигурации видеопоследовательность 206 кодируется с помощью стандарта видеокодирования FGS, поясненного на фиг.1. Стандарт кодирования FGS особенно полезен для приложений потоковой и широковещательной передачи видео, где доступная полоса пропускания передачи может быть неизвестна заранее. В ходе или после кодирования улучшающие слои 204 могут отсекаться произвольно, чтобы соответствовать доступной скорости передачи битов. По мере того как доступная скорость передачи битов изменяется, улучшающие слои 204 могут отсекаться надлежащим образом в реальном времени, чтобы предоставить декодированную видеопоследовательность оптимального качества относительной текущей полосы пропускания. Например, сеть 200 может отсекать улучающие слои 204 и затем отправлять потоки битов с различной скоростью передачи битов в различные пункты назначения.

Фиг.3 - это блок-схема последовательности операций, иллюстрирующая способ 300 кодирования информации. В одной конфигурации информация, которая должна быть кодирована, содержит видеопоследовательность. Способ 300 может выполняться в видеокодере, а обратная последовательность способа 300 может приводиться в исполнение в видеодекодере. Кодер - это устройство, используемое для того, чтобы изменять сигнал или данные в код. Затем декодер может формировать исходный сигнал или аппроксимацию исходного сигнала из кода. Кодер и декодер совместно могут упоминаться как видеоКОДЕК, который кодирует исходное изображение или видеопоследовательность в сжатую форму и декодирует ее, чтобы сформировать копию или аппроксимацию исходной последовательности.

Способ 300 начинается 302 с приема 304 кодером видеопоследовательности. В одной конфигурации видеопоследовательность - это несжатый видеосигнал. Кодер начинает сжимать видеопоследовательность посредством использования подобий между соседними видеокадрами и составляет 306 прогноз текущего/исходного видеосигнала. Прогноз формируется из одного или более предыдущих или будущих кадров и улучшается посредством компенсации различий между кадрами. Остаточный сигнал затем формируется 308 посредством вычитания прогнозного кадра из фактического текущего/исходного кадра. Кодер использует подобия между соседними выборками прогнозного остатка, чтобы уменьшать пространственную избыточность.

Способ 300 продолжается посредством применения 310 преобразования к остаточному сигналу, чтобы уменьшить избыточность остаточного сигнала. Преобразование преобразует прогнозные остаточные сигналы в другую область, в которой они представляются посредством коэффициентов преобразования. Коэффициенты квантуются 312 с тем, чтобы удалить незначимые значения, оставляя небольшое число значимых коэффициентов, которые предоставляют более компактное представление остаточных выборок. В одной конфигурации прогнозный остаток, кодируемый с помощью способа 300, может быть в улучшающем слое. Если предыдущий слой видеокадра или базовый слой видеокадра квантован 312 с помощью параметра квантования QP, то текущий улучшающий слой квантуется 312 с помощью параметра квантования типично порядка QP-6, где QP - это параметр квантования, используемый в базовом слое. Это фактически уменьшает размер шага квантования наполовину. Как результат уменьшенного размера шага квантования, большее количество коэффициентов квантования становится ненулевым в текущем кадре.

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

Как описывается в данном документе, кодовая книга VLC (кодирование переменной длины) выбирается так, чтобы кодировать, по меньшей мере, одну значимую серию и EOB (конец блока). Таким образом, до того как значимая серия и EOB могут быть кодированы, кодовая книга выбирается 314. В одной конфигурации кодовая книга выбирается 314 с помощью таблицы выбора кодовой книги, как поясняется ниже. В одной конфигурации информация таблицы кодовых книг может быть кодирована 316 как часть серии последовательных макроблоков видео. В другой конфигурации информация таблицы кодовых книг может быть сохранена в кодере и декодере как внутренние состояния. Информация таблицы кодовых книг может включать в себя таблицу выбора кодовой книги, а также размерность и форму таблицы. Далее значимая серия и EOB кодируются 318 с помощью выбранной кодовой книги.

Фиг.4 - это блок-схема последовательности операций, иллюстрирующая одну конфигурацию способа 400, чтобы декодировать кодированную видеопоследовательность. Способ 400 декодирования может быть инверсией способа 300 кодирования по фиг.3. Способ 400 декодирования начинается 402 посредством приема 404 декодером кодированной видеопоследовательности. Кодированная видеопоследовательность также может упоминаться как поток битов. Декодер декодирует 406 информацию таблицы кодовых книг. В одной конфигурации информация таблицы кодовых книг может включать в себя таблицу выбора кодовой книги, которая является частью серии последовательных макроблоков. Декодер декодирует 407 значимые символы с помощью выбранной кодовой книги.

Способ 400 продолжается, и декодер декодирует 408 значимые коэффициенты с помощью последних декодированных значимых символов. Далее декодер продолжает деквантовать 410 декодированные значимые коэффициенты. Способ продолжается посредством применения 412 обратного преобразования к деквантованным коэффициентам. В одной конфигурации обратное преобразование может включать в себя обратное дискретное косинусное преобразование. После того как декодер применяет 412 обратное преобразование к коэффициентам, декодер восстанавливает 414 аппроксимацию исходной видеопоследовательности, которая существовала до способа 300 кодирования по фиг.3.

Фиг.5 иллюстрирует одну конфигурацию видеокадра 500, поделенного на множество макроблоков. Макроблоки - это базовые единицы данных в процессе декодирования. Как проиллюстрировано, видеокадр 500 может быть секционирован на множество макроблоков фиксированного размера, каждый из которых включает в себя выборку видеокадра 500. В одной конфигурации каждый макроблок включает в себя выборку 16x16 пикселов. В дополнительном аспекте каждый макроблок включает в себя компонент сигнала яркости (яркость) и два компонента сигнала цветности (цветность). Компонент сигнала яркости относится к яркости конкретной выборки, тогда как компонент сигнала цветности относится к цветовой характеристике выборки. В одной конфигурации видеокадр 500 дополнительно секционируется на множество серий последовательных макроблоков, серию макроблоков A 502, серию макроблоков B 504 и серию макроблоков C 506. Серия последовательных макроблоков - это последовательность макроблоков, которая обрабатывается последовательно в конкретном порядке кодирования. Например, серия последовательных макроблоков A 502 и макроблоки, содержащиеся в серии последовательных макроблоков A 502, могут кодироваться и отправляться в декодер до серии последовательных макроблоков B 504 и серии последовательных макроблоков C 506. В качестве дополнительного признака порядок кодирования различных серий последовательных макроблоков 502, 504 и 506 и отправки их в декодер может быть произвольным. Например, серия последовательных макроблоков B 504 может быть кодирована и отправлена в декодер перед другими сериями последовательных макроблоков. Аналогично, серия последовательных макроблоков C 506 может быть кодирована и отправлена в декодер перед двумя другими сериями последовательных макроблоков. Каждый макроблок в N-ном улучшающем слое соответствует макроблоку в каждом из N-1 улучшающих слоев и базовом слое.

Фиг.6 иллюстрирует пример того, как классифицировать коэффициенты. Предоставляются блок 602 коэффициентов базового слоя и блок 604 коэффициентов улучшающего слоя. Пропуски в базовом слое 602 и улучшающем слое 604 представляют коэффициент в значении нуль. Эти коэффициенты упоминаются как незначимые коэффициенты. Оставшиеся пропуски 606, 608, 608a и 608b представляют коэффициент, который может иметь ненулевое значение. В одной конфигурации блок 602 коэффициентов базового слоя находится в предыдущем улучшающем слое при использовании формата видеокодирования FGS. Как пояснено выше, в ходе способа 300 кодирования по фиг.3 коэффициенты преобразования квантуются. После квантования ненулевые коэффициенты в блоке 604 коэффициентов улучшающего слоя с соответствующими коэффициентами в блоке 602 коэффициентов базового слоя, равными нулю, упоминаются как значимые коэффициенты 606. Коэффициенты, чьи соответствующие коэффициенты в базовом слое являются ненулевыми, упоминаются как уточняющие коэффициенты 608. Поскольку значимые коэффициенты 606 и уточняющие коэффициенты 608 имеют различную статистику, они кодируются отдельно в улучшающем слое 604 согласно формату кодирования FGS.

В одной конфигурации значимые коэффициенты 606c, 606d - это те коэффициенты, соответствующие коэффициенты 606a и 606b которых (коэффициент, представляющий ту же подполосу) в базовом или предыдущем слое равны нулю. Уточняющие коэффициенты 608 - это те коэффициенты, соответствующие коэффициенты 608a и 608b которых в базовом или предыдущем слое равны нулю.

В слое SVC FGS значимые коэффициенты кодируются как значения серии. Кодер проходит через блок 604 коэффициентов улучшающего слоя в зигзагообразном сканировании до тех пор, пока не найдет значимый коэффициент. Затем кодер кодирует значение серии. Уточняющие коэффициенты, обнаруженные в ходе сканирования, не вносят влияния для значимой серии. Например, первый значимый коэффициент 606c на фиг.6 кодируется с run=1 вместо run=3, без подсчета двух уточняющих коэффициентов 608. В CAVLC-режиме по SVC JD5 значимая серия кодируется с помощью кода пуск-шаг-стоп, или S3. См. Thomas Wiegand, Gary Sullivan, Julien Raichel, Heiko Schwarz, and Mathias Wien, "Joint Draft 5: Scalable Video Coding", JVT-R 201, январь 2006 года, Bangkok, Thailand. Затем знак этого коэффициента кодируется как 1-битовый флаг с 0, указывающим положительное значение, и 1, указывающей отрицательное значение. После того кодер перемещается к следующему блоку до тех пор, пока не охвачены все блоки в серии последовательных макроблоков. Это завершает первый цикл значимого кодирования.

Когда следующий цикл значимого кодирования начинается, кодер возвращается к первому блоку и кодирует следующий значимый коэффициент в блоке. В примере по фиг.6, run=3 отправляется во второй значимый коэффициент 606d. Далее бит 0 отправляется, чтобы указать то, что это положительное значение. После того кодер перемещается к следующему блоку до тех пор, пока не отправлены все блоки во втором цикле.

В третьем цикле символ EOB (конец блока) отправляется для блока, показанного на фиг.6, чтобы указать то, что ранее кодированный значимый коэффициент является последним в блоке; дополнительная информация не отправляется по этому блоку в последующих циклах кодирования. В CAVLC-режиме символ EOB комбинируется со всеми другими значениями серии, чтобы сформировать набор символов. Индекс EOB в этом наборе символов назначается "IEOB". Индекс значения серии "R" - это "IR". "IR" может быть извлечен из "R" и "IEOB" как IR = R, если R < IEOB, иначе IR = R +1. Индекс каждого символа в этом наборе символов может быть кодирован с помощью кода S3. Число битов, отправляемых при кодировании меньшего индекса, меньше или равно числу битов, отправляемых при кодировании большего индекса. Поскольку вероятность EOB-символа имеет определенную корреляцию с номером цикла кодирования (EOB становится более вероятным в последующих циклах), массив, задающий смещения EOB-символов в каждом цикле, кодируется как часть серии последовательных макроблоков, чтобы предоставить возможность индексу EOB в каждом наборе символов, "IEOB", изменяться с одного цикла кодирования на другой цикл кодирования. Этот массив ограничивается как монотонно невозрастающий как функция от номера цикла. Например, массив {4 1 0 0....} указывает то, что индекс EOB кодируется как 4 в первом цикле, как 1 во втором цикле и как 0 (наиболее вероятный символ) во всех последующих циклах.

Код S3, используемый в значимом кодировании, имеет параметр: порог отсечения m. Если символ s<=m, то s кодируется с помощью унарного кода. Если символ s>m, то он кодируется с префиксом единиц (1) и суффиксом 00, 01 или 10. Например, таблица, показанная на фиг.7, предоставляет кодовые слова и длину кода S3, соответствующие m=0. Контекстная таблица, содержащая 256 порогов отсечения m для каждого номера цикла (0, 1,..., 15) и каждого местоположения последнего кодированного коэффициента в базовом слое (LEBL) (0, 1,..., 15), отправляется как часть серии последовательных макроблоков.

Код S3 может лучше всего подходить для того, чтобы кодировать символы, распределение вероятностей которых смещено для небольших символов и становится более плоским для больших символов. Тем не менее фактические распределения вероятностей значимых серий зачастую несогласованны с этим допущением. Следовательно, использование других VLC-кодов может повысить эффективность кодирования.

В системах и способах в данном документе один из пяти типов кодовых книг VLC выбирается для того, чтобы кодировать значимую серию и EOB. Пять кодовых книг упоминаются в данном документе как кодовая книга 0, кодовая книга 1, кодовая книга 2, кодовая книга 3 и кодовая книга 4. Каждая из пяти этих кодовых книг поясняется. Меньше пяти кодовых книг может быть использовано в некоторых конфигурациях. Дополнительно, более пяти кодовых книг может быть использовано в других конфигурациях. Использование пяти кодовых книг в данном документе является просто иллюстративным и не предназначено для того, чтобы быть ограничивающим.

Фиг.8 иллюстрирует псевдокод для кодовой книги 0. Кодовая книга 0 использует унарный код. Унарный код кодирует символ s с помощью (s-1) единиц и затем одного нуля. Эта кодовая книга имеет длину кода {1, 2, 3,...}. Она подходит для входных символов с сильно смещенным распределением вероятностей. Псевдокод на фиг.8 иллюстрирует кодирование 802 и декодирование 804 с помощью унарного кода.

Фиг.9 иллюстрирует псевдокод для кодовой книги 1. Кодовая книга 1 кодирует входной символ s с префиксом из s/2 единиц и затем суффиксом в 2 бита, чтобы кодировать остаток mod(s, 2), где mod() означает операцию взятия модуля. Эта кодовая книга имеет длину кода {2, 2, 3, 3, 4, 4,...}. Она подходит для входных символов с более равномерным распределением в сравнении с унарным кодом. Псевдокод на фиг.9 иллюстрирует кодирование 902 и декодирование 904 с помощью кодовой книги 1.

Фиг.10 иллюстрирует псевдокод для кодовой книги 2. Кодовая книга 2 кодирует входной символ s с префиксом из (s/3)*2 единиц и затем суффиксом в 2 бита, чтобы представлять остаток mod(s, 3). Эта кодовая книга имеет длину кода {2, 2, 2, 4, 4, 4, 6, 6, 6,...}, которая подходит для более равномерно распределенных входных символов в сравнении с кодовой книгой 1. Псевдокод на фиг.10 иллюстрирует кодирование 1002 и декодирование 1004 с помощью кодовой книги.

Кодовая книга 3 использует код S3 с m=0 (фиг.7), с длиной кода {1, 3, 3, 3, 5, 5, 5,...}. Следует отметить, что эта кодовая книга является смещенной версией кодовой книги 2. Она кодирует входной символ s=0 с битом 0. Для всех остальных символов s она использует кодовую книгу 2 с входным символом (s+1).

Кодовая книга 4 - это смещенная версия кодовой книги 1 (показанной на фиг.9). Она кодирует входной символ s=0 с битом 0. Для всех остальных символов s она использует кодовую книгу 1 с входным символом, равным (s+1).

Кодовые книги 0-4 все являются структурированными кодовыми книгами. Для определенной реализации может быть необязательным сохранять таблицу поиска в кодере и декодере, как обычно требуется посредством кодов Хаффмана.

Снова ничего не значит, что хотя показано и пояснено в данном документе всего пять кодовых книг, кодовые книги 3 и 4 являются просто смещенной версией кодовых книг 2 и 1 соответственно. Это важный признак, который может быть использован для того, чтобы значительно упростить реализацию декодера.

Оптимальная кодовая книга "c" зависит от распределения вероятностей набора символов, сформированного с помощью значимых серий и EOB-символа, который варьируется не только между последовательностями, но также между кадрами в рамках данной последовательности.

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