Адаптивное сканирование коэффициентов при кодировании видео
Иллюстрации
Показать всеИзобретение относится к кодированию цифрового видео, а более конкретно, к энтропийному кодированию коэффициентов видеоблоков, таких как коэффициенты преобразования преобразованных видеоблоков. Техническим результатом является повышение эффективности энтропийного кодирования. Указанный технический результат достигается тем, что вместо использования традиционного зигзагообразного сканирования предложенное изобретение адаптирует порядок сканирования на основе статистики, ассоциированной с ранее кодированными блоками, которые кодированы в этом же режиме прогнозирования. Для каждого режима прогнозирования сохраняется статистика коэффициентов, к примеру, указывая вероятности того, что данные коэффициенты являются нулевыми или ненулевыми. Осуществляется периодическое регулирование порядка сканирования для того, чтобы в большей степени обеспечивать, что ненулевые коэффициенты группируются, и коэффициенты с нулевым значением группируются, при этом используются пороговые значения и регулирования порогового значения, которые могут уменьшать частоту, при которой осуществляется регулирование порядка сканирования. 6 н.п. и 50 з.п. ф-лы. 9 ил.
Реферат
Данная заявка притязает на приоритет следующих предварительных заявок на патент (США): предварительная заявка на патент (США) номер 61/030443, поданная 21 февраля 2008 года, предварительная заявка на патент (США) номер 60/944470, поданная 15 июня 2007 года, и предварительная заявка на патент (США) номер 60/979762, поданная 12 октября 2007 года.
Содержимое каждой из этих заявок полностью содержится в данном документе по ссылке.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Данное раскрытие сущности относится к кодированию цифрового видео, а более конкретно, к энтропийному кодированию коэффициентов видеоблоков, таких как коэффициенты преобразования преобразованных видеоблоков.
Уровень техники
Возможности цифрового видео могут быть встроены в широкий диапазон устройств, включая цифровые телевизоры, системы цифрового прямого вещания, устройства беспроводной связи, такие как переносные радиотелефоны, беспроводные широковещательные системы, персональные цифровые устройства (PDA), портативные или настольные компьютеры, цифровые камеры, цифровые записывающие устройства, устройства видеоигр, консоли видеоигр и т.п. Цифровые видеоустройства реализуют такие технологии сжатия видеоизображения, как MPEG-2, MPEG-4 или H.264/MPEG-4, часть 10, усовершенствованное кодирование видео (AVC), чтобы более эффективно передавать и принимать цифровое видео. Технологии сжатия видеоизображений выполняют пространственное и временное прогнозирование для того, чтобы уменьшать или удалять избыточность, присутствующую в видеопоследовательностях.
Сжатие видео, в общем, включает в себя пространственное прогнозирование и/или временное прогнозирование. В частности, внутреннее (внутрикадровое) кодирование базируется на пространственном прогнозировании, чтобы уменьшать или удалять пространственную избыточность между видеоблоками в данной кодированной единице, которая может содержать видеокадр, серию последовательных макроблоков видеокадра и т.п. В отличие от этого взаимное (межкадровое) кодирование базируется на временном прогнозировании, чтобы уменьшать или удалять временную избыточность между видеоблоками последовательных кодированных единиц видеопоследовательности. Для внутреннего кодирования видеокодер выполняет пространственное прогнозирование, чтобы сжимать данные на основе других данных в той же кодированной единице. Для взаимного кодирования видеокодер выполняет оценку движения для того, чтобы отслеживать перемещение совпадающих видеоблоков между двумя или более смежными кадрами.
Кодированный видеоблок может представляться посредством информации прогнозирования, которая содержит режим прогнозирования и размер прогнозного блока, а также остаточный блок данных, указывающий различия между кодируемым блоком и прогнозным блоком. В случае взаимного кодирования один или более векторов движения используются для того, чтобы идентифицировать прогнозный блок данных, тогда как в случае внутреннего кодирования режим прогнозирования может использоваться для того, чтобы формировать прогнозный блок. Как внутреннее кодирование, так и взаимное кодирование могут задавать несколько различных режимов прогнозирования, которые могут задавать различные размеры блоков и/или технологии прогнозирования, используемые при кодировании.
Видеокодер может применять процессы преобразования, квантования и кодирования по энтропии для того, чтобы дополнительно уменьшать скорость передачи битов, ассоциированную с передачей остаточного блока. Технологии преобразования могут содержать дискретные косинусные преобразования или концептуально аналогичные процессы, такие как вейвлет-преобразования, целочисленные преобразования или другие типы преобразований. В процессе дискретного косинусного преобразования (DCT) в качестве примера процесс преобразования преобразует набор пиксельных значений в коэффициенты преобразования, которые представляют энергию пиксельных значений в частотной области. Квантование применяется к коэффициентам преобразования и, в общем, заключает в себе процесс, который ограничивает число битов, ассоциированных с любым данным коэффициентом преобразования. Энтропийное кодирование содержит один или более процессов, которые совместно сжимают последовательность квантованных коэффициентов преобразования.
Перед процессом энтропийного кодирования преобразованный видеоблок коэффициентов преобразования может быть преобразован в последовательную форму посредством сканирования коэффициентов преобразования из двумерного блока в одномерный вектор. Как правило, сканирование выполняется зигзагообразным способом так, что коэффициенты преобразования в верхней левой части видеоблока появляются раньше в одномерном векторе, а коэффициенты преобразования в правой нижней части видеоблока появляются позже. Коэффициенты преобразования с высоким уровнем энергии типично постоянно размещаются около верхнего левого угла после преобразования, и, таким образом, зигзагообразное сканирование является эффективным для того, чтобы группировать ненулевые коэффициенты преобразования около начала одномерного вектора. Порядок сканирования может значительно влиять на уровень сжатия, который может достигаться при энтропийном кодировании.
Примеры процессов энтропийного кодирования включают в себя контекстно-адаптивное кодирование переменной длины (CAVLC) и контекстно-адаптивное двоичное арифметическое кодирование (CABAC). CAVLC - это один тип технологии энтропийного кодирования, поддерживаемой посредством стандарта ITU H.264/MPEG4, часть 10, AVC. CAVLC использует таблицы кодирования переменной длины (VLC) способом, который эффективно сжимает преобразованные в последовательную форму "серии" квантованных коэффициентов преобразования. CABAC - это другой тип технологии энтропийного кодирования, поддерживаемой посредством стандарта ITU H.264/MPEG4, часть 10, AVC. CABAC может заключать в себе несколько стадий, в том числе преобразование в двоичную форму, выбор контекстной модели и двоичное арифметическое кодирование. Множество других типов технологий энтропийного кодирования также существуют, и новые технологии энтропийного кодирования, вероятно, появятся в будущем.
Видеодекодер может выполнять операции обратного энтропийного кодирования, которые соответствуют типу энтропийного кодирования, используемого в процессе кодирования, для того чтобы восстанавливать одномерные векторы коэффициентов преобразования. Обратное сканирование также может выполняться в декодере, чтобы формировать двумерные блоки из принимаемых одномерных векторов коэффициентов преобразования. Видеодекодер затем обратно квантует и обратно преобразует коэффициенты преобразования в блоке, чтобы восстанавливать остаточные пиксельные данные. Видеодекодер может использовать декодированную информацию прогнозирования, содержащую режим прогнозирования, размер прогнозирования и, в случае взаимного кодирования, информацию движения, для того чтобы получать прогнозный видеоблок. Видеодекодер затем может комбинировать прогнозный блок с соответствующим восстановленным остаточным блоком, чтобы формировать декодированную последовательность видео.
Сущность изобретения
В общем, это раскрытие сущности описывает технологии для сканирования коэффициентов видеоблоков, к примеру, квантованных коэффициентов преобразования. На стороне кодирования сканирование создает одномерные векторы коэффициентов из двумерного блока коэффициентов, а на стороне декодирования обратное сканирование создает двумерные блоки коэффициентов из одномерных векторов. Вместо использования традиционного зигзагообразного сканирования технологии сканирования, описываемые в этом раскрытии сущности, адаптируют порядок сканирования коэффициентов в блоке на основе статистики, ассоциированной с ранее кодированными блоками коэффициентов, которые кодированы в этом же режиме прогнозирования. Для каждого режима прогнозирования статистика коэффициентов сохраняется, к примеру, указывая вероятности того, что данные коэффициенты имеют нулевые или ненулевые значения. Периодически могут выполняться регулирования порядка сканирования, чтобы в большей степени обеспечивать то, что ненулевые коэффициенты группируются к началу одномерного вектора, а коэффициенты с нулевым значением группируются к концу одномерного вектора, что позволяет повышать эффективность энтропийного кодирования.
Регулирование порядка сканирования может требовать большого объема вычислений. Следовательно, технологии этого раскрытия сущности могут накладывать пороговые значения и регулирования пороговых значений, которые могут уменьшать частоту, при которой осуществляется регулирование порядка сканирования, и при этом достигают требуемых усовершенствований сжатия вследствие регулирований порядка сканирования. Технологии могут выполняться взаимно-обратным способом посредством кодера и декодера. Таким образом, кодер может использовать технологии адаптивного сканирования до энтропийного кодирования, чтобы сканировать коэффициенты видеоблоков из двумерного формата в формат одномерного вектора. Декодер может сканировать принимаемые одномерные векторы коэффициентов видеоблоков, чтобы формировать двумерные блоки коэффициентов. Таким образом, коэффициенты видеоблоков могут представляться в формате двумерного блока или в формате одномерного вектора. Технологии сканирования этого раскрытия сущности, в общем, задают то, как коэффициенты видеоблоков преобразуются из формата двумерного блока в формат одномерного вектора и наоборот. Хотя это раскрытие сущности главным образом фокусируется на сканировании квантованных коэффициентов преобразования, аналогичные технологии могут использоваться для того, чтобы сканировать другие типы коэффициентов, такие как неквантованные коэффициенты или пиксельные значения непреобразованных видеоблоков, к примеру, если реализовано сканирование пикселных значений.
В одном примере это раскрытие сущности предоставляет способ кодирования коэффициентов видеоблоков, при этом способ содержит сохранение статистики, ассоциированной со значениями коэффициентов видеоблоков, для каждого из множества режимов прогнозирования, подсчет видеоблоков, ассоциированных с каждым из режимов прогнозирования, сканирование значений коэффициентов видеоблоков на основе порядков сканирования, заданных для каждого из режимов прогнозирования, оценку данного порядка сканирования, ассоциированного с данным одним из режимов прогнозирования, на основе статистики данного одного из режимов прогнозирования, когда значение счетчика, ассоциированное с данным одним из режимов прогнозирования, удовлетворяет пороговому значению данного одного из режимов прогнозирования, и энтропийное кодирование значений коэффициентов.
В другом примере это раскрытие сущности предоставляет устройство, которое кодирует коэффициенты видеоблоков, при этом устройство содержит модуль сканирования и модуль энтропийного кодирования. Модуль сканирования сохраняет статистику, ассоциированную со значениями коэффициентов видеоблоков, для каждого из множества режимов прогнозирования, подсчитывает видеоблоки, ассоциированные с каждым из режимов прогнозирования, сканирует значения коэффициентов видеоблоков на основе порядков сканирования, заданных для каждого из режимов прогнозирования, и оценивает данный порядок сканирования, ассоциированный с данным одним из режимов прогнозирования, на основе статистики данного одного из режимов прогнозирования, когда значение счетчика, ассоциированное с данным одним из режимов прогнозирования, удовлетворяет пороговому значению данного одного из режимов прогнозирования. Модуль энтропийного кодирования энтропийно кодирует значения коэффициентов.
В другом примере, это раскрытие сущности предоставляет устройство, которое кодирует коэффициенты видеоблоков, при этом устройство содержит средство для сохранения статистики, ассоциированной со значениями коэффициентов видеоблоков, для каждого из множества режимов прогнозирования, средство для подсчета видеоблоков, ассоциированных с каждым из режимов прогнозирования, средство для сканирования значений коэффициентов видеоблоков на основе порядков сканирования, заданных для каждого из режимов прогнозирования, средство для оценки данного порядка сканирования, ассоциированного с данным одним из режимов прогнозирования, на основе статистики данного одного из режимов прогнозирования, когда значение счетчика, ассоциированное с данным одним из режимов прогнозирования, удовлетворяет пороговому значению данного одного из режимов прогнозирования, и средство для энтропийного кодирования значений коэффициентов.
В другом примере, это раскрытие сущности предоставляет устройство, содержащее модуль сканирования, который сохраняет статистику, ассоциированную со значениями коэффициентов видеоблоков, для каждого из множества режимов прогнозирования, подсчитывает видеоблоки, ассоциированные с каждым из режимов прогнозирования, сканирует значения коэффициентов видеоблоков из двумерных блоков в одномерные векторы на основе порядков сканирования, заданных для каждого из режимов прогнозирования, и оценивает данный порядок сканирования, ассоциированный с данным одним из режимов прогнозирования, на основе статистики данного одного из режимов прогнозирования, когда значение счетчика, ассоциированное с данным одним из режимов прогнозирования, удовлетворяет пороговому значению данного одного из режимов прогнозирования. Устройство также включает в себя модуль энтропийного кодирования, который энтропийно кодирует значения коэффициентов одномерных векторов, и беспроводное передающее устройство, которое отправляет поток битов, содержащий энтропийно кодированные значения коэффициентов.
В другом примере это раскрытие сущности предоставляет устройство, содержащее беспроводное приемное устройство, которое принимает поток битов, содержащий энтропийно кодированные значения коэффициентов видеоблоков в одномерных векторах, модуль энтропийного кодирования, который энтропийно декодирует значения коэффициентов видеоблоков, и модуль сканирования. В этом случае модуль сканирования сохраняет статистику, ассоциированную со значениями коэффициентов видеоблоков, для каждого из множества режимов прогнозирования, подсчитывает видеоблоки, ассоциированные с каждым из режимов прогнозирования, сканирует значения коэффициентов видеоблоков из одномерных векторов в двумерные блоки на основе порядков сканирования, заданных для каждого из режимов прогнозирования, и оценивает данный порядок сканирования, ассоциированный с данным одним из режимов прогнозирования, на основе статистики данного одного из режимов прогнозирования, когда значение счетчика, ассоциированное с данным одним из режимов прогнозирования, удовлетворяет пороговому значению данного одного из режимов прогнозирования.
Технологии, описанные в данном раскрытии сущности, могут быть реализованы в аппаратных средствах, программном обеспечении, микропрограммном обеспечении или в любой комбинации вышеозначенного. Если реализовано в аппаратных средствах, устройство может быть осуществлено как интегральная схема, процессор, дискретная логика или любая комбинация вышеозначенного. Если реализовано в программном обеспечении, программное обеспечение может приводиться в исполнение в одном или более процессоров, таких как микропроцессор, специализированная интегральная схема (ASIC), программируемая пользователем вентильная матрица (FPGA) или процессор цифровых сигналов (DSP). Программное обеспечение, которое выполняет технологии, может быть первоначально сохранено на машиночитаемом носителе и загружено и приведено в исполнение в процессоре.
Соответственно, это раскрытие сущности также предполагает машиночитаемый носитель, содержащий инструкции, которые при выполнении в устройстве кодирования видео инструктируют устройству кодировать коэффициенты видеоблоков, при этом инструкции инструктируют устройству сохранять статистику, ассоциированную со значениями коэффициентов видеоблоков, для каждого из множества режимов прогнозирования, рассчитывать видеоблоки, ассоциированные с каждым из режимов прогнозирования, чтобы сканировать значения коэффициентов видеоблоков на основе порядков сканирования, заданных для каждого из режимов прогнозирования, оценивать данный порядок сканирования, ассоциированный с данным одним из режимов прогнозирования, на основе статистики данного одного из режимов прогнозирования, когда значение счетчика, ассоциированное с данным одним из режимов прогнозирования, удовлетворяет пороговому значению данного одного из режимов прогнозирования, и энтропийно кодировать значения коэффициентов.
Подробности одного или более вариантов осуществления данного раскрытия сущности изложены на прилагаемых чертежах и в нижеприведенном описании. Другие признаки, цели и преимущества технологий, описанных в данном раскрытии сущности, должны стать очевидными из описания и чертежей, а также из формулы изобретения.
Краткое описание чертежей
Фиг.1 является примерной блок-схемой, иллюстрирующей систему кодирования и декодирования видео.
Фиг.2 является блок-схемой, иллюстрирующей пример видеокодера в соответствии с этим раскрытием сущности.
Фиг.3 является блок-схемой, иллюстрирующей пример видеодекодера в соответствии с этим раскрытием сущности.
Фиг.4 является концептуальной схемой, иллюстрирующей зигзагообразное сканирование видеоблока 4x4.
Фиг.5 является концептуальной схемой, иллюстрирующей зигзагообразное сканирование видеоблока 8x8.
Фиг.6 является концептуальной схемой, иллюстрирующей статистику, ассоциированную с блоками конкретного режима и алгоритма согласно технологиям этого раскрытия сущности.
Фиг.7 является концептуальной схемой, иллюстрирующей гипотетический пример в соответствии с этим раскрытием сущности.
Фиг.8 и 9 являются блок-схемами последовательности операций способа, иллюстрирующими технологии в соответствии с этим раскрытием сущности.
Подробное описание изобретения
Это раскрытие сущности описывает технологии для сканирования коэффициентов видеоблоков, к примеру квантованных коэффициентов преобразования. В этом раскрытии сущности термин "блок коэффициентов", в общем, упоминается как набор коэффициентов преобразования, ассоциированных с видеоблоком. Блоки коэффициентов могут представляться в формате двумерного блока или в формате одномерного вектора. Технологии сканирования этого раскрытия сущности задают то, как блоки коэффициентов преобразуются из формата двумерного блока в формат одномерного вектора посредством кодера и как блоки коэффициентов преобразуются из формата одномерного вектора в формат двумерного блока посредством декодера. Хотя это раскрытие сущности главным образом описывает технологии сканирования как применяемые к преобразованным и квантованным видеоблокам, технологии сканирования, описанные в данном документе, также могут применяться для того, чтобы преобразовывать другие типы видеоданных (к примеру, видеоблок в пиксельной области) из формата двумерного блока в формат одномерного вектора.
Традиционно сканирование блоков коэффициентов из формата двумерного блока в формат одномерного вектора следует зигзагообразному порядку сканирования. В этом случае коэффициенты в левом верхнем углу блока коэффициентов появляются раньше в одномерном векторе, а коэффициенты в правом нижнем углу блока коэффициентов появляются позже. Коэффициенты преобразования с высоким уровнем энергии типично постоянно размещаются около левого верхнего угла после преобразования. Следовательно, зигзагообразное сканирование - это эффективный способ группировать ненулевые коэффициенты около начала одномерного вектора. Модуль энтропийного кодирования затем типично энтропийно кодирует одномерный вектор в форме серий и уровней, где серии - это число коэффициентов преобразования с нулевым значением между двумя ненулевыми коэффициентами преобразования, а уровни представляют значения ненулевых коэффициентов преобразования. Кроме того, после того как последний ненулевой коэффициент преобразования отправлен для данного блока коэффициентов (к примеру, в формате одномерного вектора), энтропийный кодер типично отправляет символ конца блока (EOB) или флаг последнего коэффициента, чтобы указывать, что это последний ненулевой коэффициент преобразования в блоке. Посредством группировки ненулевых коэффициентов преобразования к началу одномерных векторов более высокая степень сжатия может достигаться, поскольку могут кодироваться меньшие значения серий, а также поскольку EOB-символ или флаг последнего коэффициента могут отправляться быстрее. К сожалению, зигзагообразное сканирование не всегда достигает наиболее эффективной группировки коэффициентов.
Вместо использования традиционного зигзагообразного сканирования технологии этого раскрытия сущности адаптируют порядок сканирования на основе статистики, ассоциированной с ранее кодированными блоками, которые кодированы в этом же режиме прогнозирования. Для каждого режима прогнозирования статистика коэффициентов преобразования сохраняется, к примеру, посредством указания вероятностей того, что коэффициенты преобразования в данных позициях являются нулевыми или ненулевыми. Периодически могут выполняться регулирования порядка сканирования, чтобы в большей степени обеспечивать то, что ненулевые коэффициенты преобразования группируются к началу одномерного вектора, а коэффициенты с нулевым значением группируются к концу одномерного вектора, что позволяет повышать эффективность энтропийного кодирования. Технологии адаптивного сканирования могут осуществляться для каждой отдельной кодированной единицы, к примеру, каждого кадра, серии последовательных макроблоков или другого типа кодированной единицы. Блоки коэффициентов кодированной единицы могут первоначально сканироваться фиксированным способом (к примеру, с зигзагообразным порядком сканирования или другим фиксированным порядком сканирования), но могут быстро адаптироваться к другому порядку сканирования, если статистика блоков коэффициентов для данного режима прогнозирования указывает, что другой порядок сканирования является более эффективным для того, чтобы группировать коэффициенты с ненулевым и нулевым значением.
Тем не менее, регулирование порядка сканирования может требовать большого объема вычислений. Следовательно, технологии этого раскрытия сущности накладывают пороговые значения и регулирования пороговых значений, которые могут уменьшать частоту, при которой осуществляется регулирование порядка сканирования, при этом достигают требуемых усовершенствований сжатия вследствие таких регулирований порядка сканирования. Технологии могут выполняться взаимно обратным способом посредством кодера и декодера. Таким образом, кодер может использовать технологии адаптивного сканирования до энтропийного кодирования, чтобы сканировать коэффициенты видеоблоков из двумерного формата в одномерные векторы. Декодер может обратно сканировать принимаемые одномерные векторы коэффициентов видеоблоков после процесса энтропийного декодирования, чтобы воссоздавать блоки коэффициентов в двумерном формате. С другой стороны, фраза "блок коэффициентов", в общем, упоминается как набор преобразованных коэффициентов, представляемых либо в формате двумерного блока, либо в формате одномерного вектора.
Фиг.1 является блок-схемой, иллюстрирующей примерную систему 10 кодирования и декодирования видео, которая может реализовывать технологии этого раскрытия сущности. Как показано на фиг.1, система 10 включает в себя исходное устройство 12, которое передает кодированное видео в целевое устройство 16 через канал 15 связи. Исходное устройство 12 и целевое устройство 16 могут содержать любое из широкого диапазона устройств. В некоторых случаях исходное устройство 12 и целевое устройство 16 содержит переносные телефонные аппараты для беспроводной связи, такие как так называемые сотовые или спутниковые радиотелефоны. Тем не менее, технологии этого раскрытия сущности, которые применяют, в общем, адаптивное сканирование коэффициентов, не обязательно ограничены беспроводными приложениями или настройками.
В примере по фиг.1 исходное устройство 12 может включать в себя видеоисточник 20, видеокодер 22, модулятор/демодулятор (модем) 23 и передающее устройство 24. Целевое устройство 16 может включать в себя приемное устройство 26, модем 27, видеодекодер 28 и устройство 30 отображения. В соответствии с этим раскрытием сущности видеокодер 22 исходного устройства 12 может быть выполнен с возможностью осуществлять адаптивное сканирование коэффициентов до энтропийного кодирования, чтобы формировать одномерный набор данных. Аналогично видеодекодер 28 целевого устройства 16 может быть выполнен с возможностью осуществлять адаптивное сканирование коэффициентов после энтропийного декодирования, чтобы формировать двумерный набор данных. Видеодекодер 28 не принимает какой-либо индикатор относительно порядка сканирования, применяемого посредством видеокодера 22; наоборот, порядок сканирования может извлекаться по существу идентичным способом и в видеокодере 22, и в видеодекодере 28.
Проиллюстрированная система 10 по фиг.1 является просто примерной. Технологии сканирования этого раскрытия сущности могут выполняться посредством любого устройства кодирования или декодирования, которое поддерживает любую из широкого спектра технологий энтропийного кодирования, таких как контекстно-адаптивное кодирование переменной длины (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC) или другие технологии энтропийного кодирования. Исходное устройство 12 и целевое устройство 16 являются просто примерами таких устройств кодирования.
В соответствии с этим раскрытием сущности видеокодер 22 и видеодекодер 28 могут сохранять статистику, ассоциированную со значениями коэффициентов видеоблоков, для каждого из множества режимов прогнозирования и могут подсчитывать видеоблоки, ассоциированные с каждым из режимов прогнозирования. Видеокодер 22 и видеодекодер 28 сканируют значения коэффициентов видеоблоков на основе порядков сканирования, заданных для каждого из режимов прогнозирования, оценивают данный порядок сканирования, ассоциированный с данным одним из режимов прогнозирования, на основе статистики данного одного из режимов прогнозирования, когда значение счетчика, ассоциированное с данным одним из режимов прогнозирования, удовлетворяет пороговому значению данного одного из режимов прогнозирования, и энтропийно кодируют значения коэффициентов. Повторимся, на стороне кодирования сканирование предшествует энтропийному кодированию, тогда как на стороне декодирования сканирование следует после энтропийного декодирования.
В общем, исходное устройство 12 формирует видео для передачи в целевое устройство 16. В некоторых случаях, тем не менее, устройства 12, 16 могут работать практически симметричным способом. Например, каждое из устройств 12, 16 может включать в себя компоненты кодирования и декодирования видео. Следовательно, система 10 может поддерживать одностороннюю и двухстороннюю передачу видео между видеоустройствами 12, 16, к примеру, для потоковой передачи видео, воспроизведения видео, широковещательной передачи видео или видеотелефонии.
Видеоисточник 20 исходного устройства 12 может включать в себя устройство видеозахвата, такое как видеокамера, видеоархив, содержащий ранее захваченное видео, или видеопередачу от поставщика видеосодержимого. В качестве дополнительной альтернативы видеоисточник 20 может формировать основанные на компьютерной графике данные в качестве исходного видео или комбинацию живого видео, архивного видео и сформированного компьютером видео. В некоторых случаях, если видеоисточником 20 является видеокамера, исходное устройство 12 и целевое устройство 16 могут формировать так называемые камерофоны или видеофоны. В каждом случае захваченное, предварительно захваченное или сформированное компьютером видео может быть кодировано посредством видеокодера 22. Кодированная видеоинформация затем может модулироваться посредством модема 23 согласно стандарту связи, к примеру, такому как множественный доступ с кодовым разделением каналов (CDMA) или другой стандарт или технология связи, и передаваться в целевое устройство 16 через передающее устройство 24.
Приемное устройство 26 целевого устройства 16 принимает информацию по каналу 15, и модем 27 демодулирует информацию. Процесс декодирования видео, выполняемый посредством видеодекодера 28, может выполнять энтропийное декодирование и адаптивное сканирование как часть восстановления видеопоследовательности. Процесс декодирования, аналогично процессу кодирования, использует технологии этого раскрытия сущности для того, чтобы поддерживать улучшенные уровни сжатия данных. Устройство 28 отображения отображает декодированные видеоданные пользователю и может содержать любое из множества устройств отображения, таких как электронно-лучевая трубка (CRT), жидкокристаллический дисплей (LCD), плазменный дисплей, дисплей на органических светодиодах (OLED) или другой тип устройства отображения.
В примере по фиг.1 канал 15 связи может содержать любую беспроводную и проводную среду связи, такую как радиочастотный (RF) спектр или одна или более физических линий передачи, либо любую комбинацию беспроводных и проводных сред. Канал 15 связи может формировать часть сети с коммутацией пакетов, такой как локальная вычислительная сеть, глобальная вычислительная сеть либо глобальная сеть, такая как Интернет. Канал 15 связи, в общем, представляет любую надлежащую среду связи или набор различных сред связи для передачи видеоданных из исходного устройства 12 в целевое устройство 16.
Видеокодер 22 и видеодекодер 28 может работать согласно стандарту сжатия видео, который поддерживает CAVLC, CABAC или другую технологию энтропийного кодирования, такому как стандарт ITU-T H.264, альтернативно называемый MPEG-4, часть 10, усовершенствованное кодирование видео (AVC). Тем не менее, технологии описываются со ссылкой на этот стандарт просто в целях иллюстрации. Эти технологии могут быть легко применены к любому из множества других стандартов кодирования видео, например, заданные Экспертной группой по киноизображению (MPEG) в стандарте MPEG-1, MPEG-2 и MPEG-4, ITU-T H.263, стандарт видеокодека Общества инженеров кино и телевидения (SMPTE) 421M (обычно называемый "VC-1"), стандарт, заданный посредством Рабочей группы по стандартам кодирования аудио-видео (Китай) (обычно называемый "AVS"), а также любой другой стандарт кодирования видео, заданный посредством органа стандартизации или разработанный посредством организации как собственный стандарт.
Хотя не показано на фиг.1, в некоторых аспектах видеокодер 22 и видеодекодер 28 могут быть интегрированы с аудиокодером и декодером соответственно и могут включать в себя соответствующие модули MUX-DEMUX либо другие аппаратные средства и программное обеспечение, чтобы обрабатывать кодирование как аудио, так и видео в общем потоке данных или в отдельных потоках данных. Если применимо, модули MUX-DEMUX могут соответствовать протоколу мультиплексора ITU H.223 или другим протоколам, таким как протокол пользовательских дейтаграмм (UDP).
Стандарт ITU H.264/MPEG-4, часть 10, AVC сформулирован Экспертной группой в области кодирования видео (VCEG) ITU-T совместно с Экспертной группой по киноизображению (MPEG) ISO/IEC как продукт совместного партнерского проекта, известного как Объединенная группа по видеостандартам (JVT). В некоторых аспектах технологии, описанные в этом раскрытии сущности, могут быть применены к устройствам, которые, в общем, соответствуют стандарту H.264. Стандарт H.264 описан в ITU-T Recommendation H.264 "Advanced Video Coding for Generic Audiovisual Services" от Исследовательской группы ITU-T и датирован мартом 2005 года, который может упоминаться в данном документе как стандарт H.264 или спецификация H.264 либо стандарт или спецификация H.264/AVC. Объединенная группа по видеостандартам (JVT) продолжает работать над дополнениями к H.264/AVC.
Видеокодер 22 и видеодекодер 28 могут быть реализованы как один или более микропроцессоров, процессоров цифровых сигналов (DSP), специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA), дискретная логика, программное обеспечение, аппаратные средства, микропрограммное обеспечение или любые комбинации вышеозначенного. Каждый из видеокодера 22 и видеодекодера 28 может быть включен в один или более кодеров или декодеров, любой из которых может быть интегрирован как часть комбинированного кодера/декодера (кодека) в соответствующем мобильном устройстве, абонентском устройстве, широковещательном устройстве, сервере и т.п.
Видеопоследовательность включает в себя серии видеокадров. В некоторых случаях, видеопоследовательность может компоноваться как группа изображений (GOP). Видеокодер 22 оперирует с видеоблоками в рамках отдельных видеокадров, чтобы кодировать видеоданные. Видеоблоки могут иметь фиксированный или изменяющийся размер и могут отличаться по размеру согласно заданному стандарту кодирования. Каждый видеокадр может включать в себя серии последовательных макроблоков. Каждая серия последовательных макроблоков может включать в себя серии макроблоков, которые могут быть скомпонованы в еще меньшие блоки. Макроблоки типично упоминаются как блоки данных 16×16. Стандарт ITU-T H.264 поддерживает внутреннее прогнозирование для различных размеров блоков, таких как 16×16, 8×8, 4×4 для компонентов сигнала яркости и 8x8 для компонентов сигнала цветности, а также взаимное прогнозирование для различных размеров блоков, таких как 16×16, 16×8, 8×16, 8×8, 8×4, 4×8 и 4x4 для компонентов сигнала яркости и соответствующие масштабированные размеры для компонентов сигнала цветности. В этом раскрытии сущности термин "видеоблоки" может упоминаться как блоки коэффициентов, к примеру, коэффициенты преобразования, после процесса преобразования, такого как дискретное косинусное преобразование или концептуально аналогичный процесс преобразования, в котором набор пиксельных значений преобразуется в частотную область. Коэффициенты преобразования могут квантоваться. Технологии сканирования этого раскрытия сущности типично применяются относительно квантованных коэффициентов преобразования, но могут быть применимыми к неквантованным коэффициентам преобразования в некоторых реализациях. Кроме того, технологии сканирования этого раскрытия сущности также могут быть применимы к блокам пиксельных значений (т.е. без процесса преобразования), которые могут быть или не быть квантованными блоками пикселных значений. Термин "коэффициент" широко используется в данном документе для того, чтобы представлять значения видеоблоков, включающие в себя не только коэффициенты преобразования блоков коэффициентов, но также и пикселные значения непреобразованных видеоблоков.
Большие видеоблоки, такие как макроблоки, могут быть разделены на видеоблоки меньшего размера. Меньшие видеоблоки могут предоставлять лучшее разрешение и могут быть использованы для местоположений видеокадра, которые включают в себя высокие уровни детальности. В общем, макроблоки (MB) и различные меньшие блоки могут считаться видеоблоками. Видеокадры могут содержать декодируемые единицы или могут быть разделены на меньшие декодируемые единицы, такие как "серии последовательных макроблоков". Таким образом, серия последовательных макроблоков может рассматриваться как последовательность видеоблоков, таких как MB и/или блоки меньшего размера, и каждая серия последовательных макроблоков может быть независимо декодируемой единицей видеокадра.
После прогнозирования преобразование может быть выполнено для остаточного блока пикселов 8x8 или остаточного блока пикселов 4x4, и дополнительное преобраз