Кодирование коэффициентов преобразования для видеокодирования

Иллюстрации

Показать все

Изобретение относится к средствам кодирования видео. Техническим результатом является повышение эффективности кодирования связанных с остаточными данными коэффициентов преобразования. Способ содержит кодирование информации значимости для набора коэффициентов преобразования, связанных с остаточными видеоданными, в соответствии с порядком сканирования за один или более первых проходов, кодирование первого набора из бинов информации для набора коэффициентов преобразования в соответствии с порядком сканирования за один или более вторых проходов, кодирование второго набора из бинов информации для набора коэффициентов преобразования в соответствии с порядком сканирования за один или более третьих проходов. В способе информация значимости упомянутых первых проходов и кодированный первый набор бинов для информации вторых проходов группируются вместе. 4 н. и 56 з.п. ф-лы, 5 табл., 33 ил.

Реферат

Настоящая заявка испрашивает приоритет предварительной заявки США № 61/515,711, поданной 5 августа 2011 года, и является частичным продолжением заявки США № 13/413,497, поданной 6 марта 2012 года, содержание которых включено в настоящий документ посредством ссылки во всей своей полноте.

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

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

УРОВЕНЬ ТЕХНИКИ

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

Способы сжатия видео включают в себя пространственное прогнозирование и/или временное прогнозирование для сокращения или устранения избыточности, свойственной для последовательности видео. Для видеокодирования на основе блоков, видеокадр или слайс могут быть разделены на блоки. Каждый блок может быть дополнительно разделен. Блоки в кадре или слайсе с внутренним кодированием (I) кодируются с помощью пространственного прогнозирования с учетом опорных элементов дискретизации в соседних блоках в том же кадре или слайсе. Блоки в кадре или слайсе с внешним кодированием (P или B) могут использовать пространственное прогнозирование относительно опорных элементов дискретизации в соседних блоках в том же кадре или слайсе или временное прогнозирование относительно опорных элементов дискретизации в других опорных кадрах. Пространственное или временное прогнозирование имеет своим результатом прогнозный блок для блока, который должен быть кодирован. Остаточные данные представляют собой разности пикселов между исходным блоком, который должен быть кодирован, и прогнозным блоком.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Фиг. 4 является структурной схемой, изображающей пример системы видеокодирования.

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

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

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

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

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

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

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

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

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

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

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

Фиг. 16 является концептуальной схемой, изображающей другой пример областей контекста для CABAC с помощью обратного порядка сканирования.

Фиг. 17 является концептуальной схемой, изображающей другой пример областей контекста для CABAC с помощью обратного порядка сканирования.

Фиг. 18 является концептуальной схемой, изображающей другой пример областей контекста для CABAC с помощью обратного порядка сканирования.

Фиг. 19 является структурной схемой, изображающей пример элемента энтропийного кодирования.

Фиг. 20 является структурной схемой, изображающей пример видеодекодера.

Фиг. 21 является структурной схемой, изображающей пример элемента энтропийного декодирования.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Для видеокодирования в соответствии со стандартом высокоэффективного видеокодирования (HEVC), в настоящее время находящемся в разработке Объединенной команды (JCT-VC) по видеокодированию, в качестве примера, видеокадр может быть разделен на единицы кодирования. Последняя рабочая версия (WD) HEVC, здесь и далее именуемая как HEVC WD7, доступна на http://phenix.int-evry.fr/jct/doc_end_user/documents/9_Geneva/wg11/JCTVC-11003-v5.zip, а самая последняя версия доступна на http://phenix.int-evry.fr/jct/doc_end_user/documents/9_Geneva/wg11/JCTVC-11003-v6.zip, обе версии включены в настоящий документ посредством ссылки во всей полноте.

В соответствии с HEVC, единица кодирования, в общем, относится к области изображения, служащей базовой единицей, к которой применяются различные инструменты кодирования для сжатия видео. Единица кодирования, как правило, является квадратной (хотя это необязательно), и ее можно рассматривать в качестве подобной так называемому макроблоку, например, в других стандартах видеокодирования типа ITU-T H.264. Кодирование в соответствии с некоторыми из предложенных аспектов развивающегося стандарта HEVC будет описано в настоящей заявке с целью иллюстрации. Однако, способы, описанные в данном осуществлении, могут быть применены и в других процессах видеокодирования, как, например, процессах, определенных в стандарте H.264 или другом стандарте, или в частных процессах видеокодирования.

Чтобы достигнуть желаемого уровня эффективности кодирования, единица кодирования (CU) может быть различных размеров, в зависимости от видеоконтента. Дополнительно, единица кодирования может быть разделена на более мелкие блоки для прогнозирования или преобразования. Более конкретно, каждая единица кодирования может быть дополнительно разделена на единицы прогнозирования (PU) и единицы преобразования (TU). Единицы прогнозирования можно рассматривать как подобные так называемым разделам по другим стандартам видеокодирования, как, например, стандарт H.264. Единица преобразования (TU), в общем, относится к блоку остаточных данных, к которому применяется преобразование для получения коэффициентов преобразования.

Единица кодирования обычно имеет составляющую яркости, обозначенную Y, и две составляющие цветности, обозначенные U и V. В зависимости от формата дискретизации (выборки) видео, размер составляющих U и V для некоторого числа элементов дискретизации может быть таким же или отличным от размера составляющей Y.

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

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

Остаточные данные в блоке преобразования, таком как TU, могут быть размещены в двумерной (2D) матрице значений разности пикселов, находящейся в пространственной, пиксельной области. Преобразование переводит остаточные значения пикселов в двумерную матрицу коэффициентов преобразования в области преобразования, такую как область частот. Для дополнительного сжатия, коэффициенты преобразования квантуют до энтропийного кодирования. Устройство энтропийного кодирования далее применяет к квантованным коэффициентам преобразования энтропийное кодирование, такое как Контекстно-зависимое адаптивное кодирование (CAVLC) с переменной длиной кодового слова, Контекстно-адаптивное двоичное арифметическое кодирование (CABAC), Энтропийное кодирование (PIPE) с разбиением интервалов вероятности, и тому подобное.

Для энтропийного кодирования блока квантованных коэффициентов преобразования, обычно выполняют процесс сканирования, чтобы происходила обработка двумерной (2D) матрицы квантованных коэффициентов преобразования в блоке, в соответствии с конкретным порядком сканирования, в упорядоченной одномерной (1D) матрице, то есть, векторе коэффициентов преобразования. Энтропийное кодирование применяется в 1-D порядке коэффициентов преобразования. Сканирование квантованных коэффициентов преобразования в единице преобразования сериализирует 2D матрицу коэффициентов преобразования для энтропийного кодера. Карта значимости может быть сгенерирована для указания положений значимых (то есть ненулевых) коэффициентов. Сканирование можно применять для сканирования уровней значимых (то есть ненулевых) коэффициентов, и/или кодирования знаков значимых коэффициентов.

Для DCT, в качестве примера, часто вероятность ненулевых коэффициентов, выше в направлении верхнего левого угла (то есть, области с низкими частотами) 2D единицы преобразования. Может быть желательно, чтобы сканирование коэффициентов происходило так, чтобы увеличивалась вероятность группирования ненулевых коэффициентов, на одном конце сериализованной серии коэффициентов, а коэффициенты с нулевым значением, группировались вместе на другом конце сериализованного вектора и были более эффективно кодированы как серии нулей. По этой причине, порядок сканирования важен для эффективного энтропийного кодирования.

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

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

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

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

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

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

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

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

В одном примере, для стандарта Н.264 и HEVC, который в настоящее время находится в разработке, когда используется устройство энтропийного кодирования CABAC, положения значимых коэффициентов (то есть, ненулевых коэффициентов преобразования), в блоке преобразования (то есть, единице преобразования в HEVC) кодируются до уровней коэффициентов. Процесс кодирования местоположений коэффициентов значимости называется кодированием карты значимости. Значимость коэффициента одинакова с бином ноль уровня коэффициента. Как изображено на Фиг. 1, кодирование карты значимости квантованных коэффициентов 11 преобразования производит карту 13 значимости. Карта 13 значимости является картой единиц и нулей, где единицы указывают местоположения значимых коэффициентов. Карта значимости обычно требует высокой доли частоты следования битов видео. Способы настоящего изобретения также можно применить для использования в других устройствах энтропийного кодирования (например, PIPE).

Пример процесса кодирования карты значимости описан в статье Д. Марпа, Х. Шварца и Т. Вейганда, «Контекстно-адаптивное двоичное арифметическое кодирование в стандартах Н.264/AVC сжатия видео», IEEE Trans. Схемы и системы для видеотехнологии, изд. 13, №7, июль 2003. В этом процессе, карта значимости кодируется, если есть по меньшей мере один значимый коэффициент в блоке, как указано флагом (CBF) кодируемого блока, который определяется так.

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

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

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

При заданном шаблоне сканирования, карта значимости сканируется следующим образом.

Карта значимости: Если coded_block_flag указывает, что блок имеет значимые коэффициенты, то осуществляется кодирование карты значимости с двоичными значениями. Для каждого коэффициента преобразования в порядке сканирования, передается однобитный символ significant_coeff_flag. Если символ significant_coeff_flag равен единице, то есть, если в этом положении сканирования есть коэффициент, не равный нулю, то отправляется дополнительный однобитный символ last_significant_coeff_flag. Этот символ указывает, если текущий значимый коэффициент является последним внутри блока или если за ним следуют дополнительные значимые к