Сканирование коэффициентов при кодировании видео

Иллюстрации

Показать все

Изобретение относится к вычислительной технике. Технический результат заключается в повышении эффективности кодирования. Предложен способ декодирования коэффициентов преобразования в процессе декодирования видео, в котором получают из кодированного потока битов одномерную матрицу коэффициентов преобразования, ассоциированную с блоком коэффициентов преобразования; определяют множество субблоков коэффициентов преобразования для блока коэффициентов преобразования, причем каждый субблок из множества субблоков имеет равный размер; определяют унифицированное диагональное сканирование для сканирования информации значимости коэффициентов преобразования соответствующих субблоков, информации уровней коэффициентов для коэффициентов преобразования соответствующих субблоков и множества субблоков; сканируют одномерную матрицу коэффициентов преобразования согласно унифицированному диагональному сканированию; и декодируют блок коэффициентов преобразования. 8 н. и 44 з.п. ф-лы, 30 ил., 1 табл.

Реферат

[0001] Данная заявка притязает на приоритет по предварительной заявке на патент США № 61/509,522, поданной 19 июля 2011 года, предварительной заявке на патент США № 61/509,926, поданной 20 июля 2011 года, предварительной заявке на патент США № 61/550,829, поданной 24 октября 2011 года, и предварительной заявке на патент США № 61/554,292, поданной 01 ноября 2011 года, содержимое каждой из которых полностью содержится в данном документе по ссылке.

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[0034] Фиг. 9A и 9B иллюстрируют примерный диагональный порядок сканирования коэффициентов для коэффициентов преобразования субблоков и диагональный порядок сканирования субблоков для субблоков.

[0035] Фиг. 10A и 10B иллюстрируют примерный обратный диагональный порядок сканирования коэффициентов для коэффициентов преобразования субблоков и обратный диагональный порядок сканирования субблоков для субблоков относительно сканирований, показанных на фиг. 9A и 9B.

[0036] Фиг. 11A и 11B иллюстрируют примерный обратный вертикальный порядок сканирования коэффициентов для коэффициентов преобразования субблоков и обратный вертикальный порядок сканирования субблоков для субблоков.

[0037] Фиг. 12A и 12B иллюстрируют примерный обратный горизонтальный порядок сканирования коэффициентов для коэффициентов преобразования субблоков и обратный горизонтальный порядок сканирования субблоков для субблоков.

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

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

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

[0041] Фиг. 16 является блок-схемой последовательности операций, иллюстрирующей примерный процесс декодирования видео согласно методикам этого раскрытия сущности.

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

ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ

[0043] Устройство кодирования видео может сжимать видеоданные посредством использования преимущества пространственной и временной избыточности. Например, видеокодер может использовать преимущество пространственной избыточности посредством кодирования блока видеоданных относительно соседних ранее кодированных блоков. Аналогично, видеокодер может использовать преимущество временной избыточности посредством кодирования блока видеоданных относительно видеоданных ранее кодированных изображений, также называемых "изображениями". В частности, видеокодер может прогнозировать текущий блок из данных пространственного соседнего узла или из данных ранее кодированного изображения. Видеокодер затем может вычислять остаток для блока в качестве разности между фактическими пиксельными значениями для блока и прогнозными пиксельными значениями для блока. Иными словами, остаток для блока может включать в себя попиксельные значения разностей в пиксельной (или пространственной) области.

[0044] Соответственно, для того чтобы кодировать блок (например, единицу прогнозирования видеоданных), сначала извлекается предиктор для блока. Предиктор, также называемый "прогнозным блоком", может извлекаться через внутреннее (I-) прогнозирование (т.е. пространственное прогнозирование) либо взаимное (P- или B-) прогнозирование (т.е. временное прогнозирование). Следовательно, некоторые единицы прогнозирования могут быть внутренне кодированы (I-) с использованием пространственного прогнозирования относительно опорных выборок в соседних опорных блоках в идентичном изображении (или вырезке), а другие единицы прогнозирования могут быть однонаправленно взаимно кодированы (P-) или двунаправленно взаимно кодированы (B-) относительно опорных блоков опорных выборок в других ранее кодированных изображениях (или вырезках). Опорные выборки могут включать в себя фактические пикселы в опорных блоках и/или синтезированные опорные выборки, сформированные, например, посредством интерполяции. В каждом случае, опорные выборки могут быть использованы для того, чтобы формировать прогнозный блок для блока, который должен быть кодирован.

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

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

[0047] Энтропийный кодер затем применяет энтропийное кодирование, к примеру, контекстно-адаптивное кодирование переменной длины (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC), энтропийное кодирование с сегментированием на интервалы вероятности (PIPE) и т.п., к квантованным коэффициентам преобразования. Для того, чтобы энтропийно кодировать блок квантованных коэффициентов преобразования, процесс сканирования обычно выполняется таким образом, что двумерная матрица квантованных коэффициентов преобразования в блоке перекомпонуется, согласно конкретному порядку сканирования, в упорядоченную, одномерную матрицу, т.е. в вектор, коэффициентов преобразования. Энтропийное кодирование применяется к вектору коэффициентов преобразования. Сканирование квантованных коэффициентов преобразования преобразует в последовательную форму двумерную матрицу коэффициентов преобразования для энтропийного кодера.

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

[0049] Например, карта значимости для блока видеоданных может включать в себя двумерную матрицу единиц и нулей, при этом единицы указывают позиции значимых коэффициентов преобразования в блоке, а нули указывают позиции незначимых (с нулевым значением) коэффициентов преобразования в блоке. Единицы и нули могут упоминаться в качестве "флагов значимых коэффициентов". Дополнительно, в некоторых примерах, карта значимости может включать в себя другую двумерную матрицу единиц и нулей, при этом единицы указывают позицию последнего значимого коэффициента в блоке согласно порядку сканирования, ассоциированному с блоком, а нули указывают позиции всех других коэффициентов в блоке. В этом случае, единицы и нули упоминаются в качестве "флагов последних значимых коэффициентов". В других примерах, такие флаги последних значимых коэффициентов не используются. Наоборот, последний значимый коэффициент в блоке может быть кодирован первым перед отправкой остальной части карты значимости. В любом случае, кодирование на основе карты значимости для блока видеоданных может использовать значительный процент скорости передачи видеобитов, используемой для того, чтобы кодировать блок.

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

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

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

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

[0054] Диагональный (или волновой) порядок сканирования приспосабливается для использования в сканировании квантованных коэффициентов преобразования в предложенном HEVC-стандарте. Через преобразование и квантование, как упомянуто выше, ненулевые коэффициенты преобразования могут быть расположены в низкочастотной области к верхней левой области блока для примера, в котором преобразование представляет собой DCT. Как результат, после процесса диагонального сканирования, который может проходить сначала по верхней левой области, ненулевые коэффициенты преобразования могут с большей вероятностью располагаться в передней части одномерной матрицы. Для процесса диагонального сканирования, который проходит сначала от нижней правой области, ненулевые коэффициенты преобразования обычно с большей вероятностью располагаются в задней части одномерной матрицы.

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

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

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

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

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

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

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

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

[0063] Методики этого раскрытия сущности, в общем, относятся к сканированию и кодированию субблоков коэффициентов преобразования. Например, как описано в данном документе, порядок сканирования коэффициентов может описывать порядок, в котором коэффициенты преобразования сканируются и кодируются в субблоках. Порядок сканирования субблоков может описывать порядок, в котором сканируются и кодируются сами субблоки. Согласно аспектам этого раскрытия сущности, порядок сканирования коэффициентов может иметь идентичную ориентацию с порядком сканирования субблоков. Например, как описано в данном документе, ориентация сканирования может, в общем, означать направление, шаблон сканирования или общий порядок сканирования. Иными словами, зигзагообразный шаблон (например, как показано и описано относительно фиг. 5A) может упоминаться как имеющий зигзагообразную ориентацию. Помимо этого, сканирование, которое имеет диагональное направление (например, как показано и описано относительно фиг. 5D-5F), может упоминаться как имеющее диагональную ориентацию. Согласно аспектам этого раскрытия сущности, ориентация порядка сканирования субблоков может совпадать с ориентацией порядка сканирования коэффициентов.

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