ГИБКОЕ КВАНТОВАНИЕ
FLEXIBLE QUANTIZATION

Уровень техники изобретения
1. Блочное, основанное на преобразовании, кодирование
Кодирование с преобразованием - это способ сжатия, используемый во многих системах сжатия звука, изображений и видео. Несжатое цифровое изображение и видео типично представляется или захватывается в виде дискретных выборок элементов или цветов картинки на позициях в кадре изображения или видео, скомпонованном в двумерной (2D) сетке. Это указывается ссылкой как представление изображения или видео в пространственной области. Например, типичный формат для изображений состоит из потока 24-битных дискретных выборок элементов цветной картинки, скомпонованных в виде сетки. Каждая дискретная выборка, среди прочего, является числом, представляющим цветовые компоненты на позиции пикселя в сетке в пределах цветового пространства, такого как RGB или YIQ, помимо прочих. Различные системы изображения и видео могут использовать различные цветовые, пространственные и временные разрешения дискретизации. Аналогично, цифровое аудио типично представляется как выбираемый по времени поток звуковых сигналов. Например, типичный звуковой формат состоит из потока 16-битных амплитудных дискретных выборок звукового сигнала, взятых с постоянными временными интервалами.
Несжатые цифровые сигналы звука, изображения и видео могут расходовать значительную запоминающую и пропускную способность. Кодирование с преобразованием уменьшает размер цифрового звука, изображений и видео посредством преобразования представления сигнала в пространственной области в представление в частотной области (или другой аналогичной области преобразования), а затем, уменьшения разрешения определенных, в целом менее воспринимаемых частотных компонентов представления в области преобразования. Это, как правило, производит гораздо менее воспринимаемое ухудшение цифрового сигнала в сравнении с уменьшением цветового или пространственного разрешения изображений или видео в пространственной области, или звука - во временной области.
1
n
Более конкретно, типичный блочный основанный на преобразовании кодек 100, показанный на фиг.1, делит пиксели несжатого цифрового изображения на двумерные блоки фиксированного размера (X,...,X), при этом каждый блок, возможно, перекрывается другими блоками. Линейное преобразование 120-121, которое производит анализ пространственных частот, применяется к каждому блоку, который конвертирует разнесенные дискретные выборки в пределах блока в набор коэффициентов частот (или преобразования), обычно представляющих мощность цифрового сигнала в соответствующих полосах частот по блочному интервалу. Для сжатия коэффициенты преобразования могут быть избирательно квантованы 130 (т.е. уменьшены в разрешении, например, отбрасыванием наименее значимых битов значений коэффициентов или, в ином случае, преобразованием значений в числовом множестве с более высоким разрешением в более низкое разрешение), а также закодированы 130 энтропийно или c переменной длиной в сжатый поток данных. При декодировании коэффициенты преобразования обратно преобразуются 170-171, чтобы приблизительно восстановить исходный выбираемый по цвету/пространству сигнал изображения/видео (восстановленные блоки ,...).
Блочное преобразование 120-121 может быть задано как математическая операция над вектором x размерности N. Более часто операцией является линейное умножение, генерирующее выход y=Mx области преобразования, M является матрицей преобразования. Когда входные данные имеют произвольную длину, они сегментируются на N-мерные векторы, а блочное преобразование применяется к каждому сегменту. В целях сжатия данных выбраны обратимые блочные преобразования. Другими словами, матрица M является обратимой. В многочисленных измерениях (например, для изображения и видео) блочные преобразования типично реализованы как раздельные операции. Матричное умножение применяется раздельно вдоль каждого измерения данных (т.е. как строк, так и столбцов).
Для сжатия коэффициенты преобразования (компоненты вектора y) могут быть выборочно квантованы (т.е. уменьшены по разрешению, например, отбрасыванием наименее значимых битов значений коэффициентов или, в ином случае, отображением значений в числовом множестве с более высоким разрешением в более низкое разрешение), а также закодированы энтропийно или c переменной длиной в сжатый поток данных.
-1
При декодировании в декодере 150, инверсия этих операций (деквантование/энтропийное декодирование 160 и обратное блочное преобразование 170-171) применяется на стороне декодера 150, как показано на фиг.1. При восстановлении данных, обратная матрица M (обратное преобразование 170-171) применяется в качестве множителя к данным области преобразования. При применении к данным области преобразования, обратное преобразование приближенно восстанавливает исходные цифровые мультимедийные данные временной области или пространственной области.
Во многих приложениях кодирования на основе блочного преобразования преобразование желательно обратимое, чтобы поддерживать сжатие, как с потерями, так и без потерь, в зависимости от коэффициента квантования. При отсутствии квантования (обычно представляемого как коэффициент квантования 1), например, кодек, использующий обратимое преобразование, может точно воспроизводить входные данные при декодировании. Тем не менее, требование обратимости в этих приложениях ограничивает выбор преобразований, на основе которых может быть разработан кодек.
Многие системы сжатия изображений и видео, такие как MPEG и Windows Media, помимо прочих, используют преобразования на основе дискретного косинусного преобразования (DCT). DCT, как известно, имеет подходящие свойства энергетического сжатия, что приводит к практически оптимальному сжатию данных. В этих системах сжатия обратное DCT (IDCT) используется в циклах восстановления как в кодере, так и в декодере системы сжатия для восстановления отдельных блоков изображений.
2. Квантование
Согласно одному возможному определению, квантование – это термин, используемый для приближения функции необратимого преобразования, обычно используемой для сжатия с потерями, в котором существует конкретное множество возможных выходящих значений, и каждый член множества возможных выходящих значений имеет ассоциированный набор входящих значений, который приводит к выбору этого конкретного выходящего значения. Разработано множество методик квантования, которые включают в себя скалярное или векторное, однородное или неоднородное, с или без зоны нечувствительности, и адаптивное или неадаптивное квантование.
Операция квантования является главным образом смещенным делением с помощью параметра QP квантования, которое выполняется в кодере. Операция обратного квантования или умножения является умножением на QP, выполняемым в декодере. Эти процессы вместе представляют собой потери данных исходного коэффициента преобразования, который выявляется как ошибки сжатия или искажение декодированного изображения. В упрощенном кодеке, определенное фиксированное значение QP может использоваться для всех коэффициентов преобразования в кадре. Тогда как это может быть приемлемым решением в некоторых случаях, есть несколько недостатков.
Зрительная система человека не является в равной степени чувствительной ко всем частотам, или ко всем пространственным позициям в кадре, или ко всем каналам сигнала яркости и цветности. Использование различных значений QP для различных коэффициентов может предоставить визуально превосходное кодирование даже с тем же или меньшим числом сжатых битов. Аналогично и система показателей других ошибок может быть соответствующим образом оптимизирована.
Управление скоростью или возможность кодера формировать сжатый файл желаемого размера нелегко осуществить с помощью единственного QP по всему кадру.
Следовательно, желательно разрешить кодеру изменять QP по изображению произвольным образом. Однако это означает, что фактическое значение QP, используемое для каждого разбиения данных, должно сигнализироваться в битовом потоке. Это приводит к огромным потерям, чтобы передать сигнальную информацию QP, что делает это на практике неподходящим. То, что желательно, это гибкое и еще экономичное по битам средство сигнализации QP, особенно для общих встречающихся сценариев.
Таким образом, квантование является исходным алгоритмом для большинства кодеков изображения и видео для управления качеством сжатого изображения и коэффициентом сжатия. Способы квантования, поддерживаемые большинством популярных кодеков, предоставляют новые признаки или меньшую гибкость или принимают на себя значительные служебные сигналы дополнительных битов. Часто кадр изображения или видео обычно квантуется равномерно, или с ограниченной возможностью изменять квантование по пространственным позициям. Этот недостаток гибкости причиняет вред качеству сжатия и мешает точному управлению скоростью "на лету". С другой стороны, некоторые кодеки предоставляют почти неограниченную свободу в поддержании способов квантования. Кодирование для использования сигнала различных квантователей принимает дополнительные биты в кодированных мультимедийных данных и может само по себе неблагоприятно влиять на эффективность сжатия. Кроме того, процесс создания совместимого декодера требует большого числа контрольных передач, формируемых с помощью всех возможных комбинаций способов квантователя, что может быть затруднительно.
Сущность изобретения
Последующее подробное описание представляет собой изменения метода гибкого квантования, который предоставляет возможность изменять квантование по различным измерениям кодированных цифровых мультимедийных данных. Например, один представительный вариант осуществления метода гибкого квантования может изменять квантования по трем измерениям: по (i) пространственным позициям, (ii) частотным поддиапазонам и (iii) цветовым каналам. Подробное описание дополнительно представляет способы для эффективной сигнализации гибкого квантования в кодированные цифровые мультимедийные данные. Преимуществом этого подхода к квантованию является то, что служебные сигналы, вытекающие из квантования связанной служебной информации, минимизируются для исходных сценариев использования, наряду с тем, что предоставляется максимальная гибкость, если это необходимо кодеру.
Эта сущность изобретения предусмотрена, чтобы ввести выбор понятий в упрощенной форме, которые дополнительно описаны ниже в подробном описании. Этой сущностью изобретения не подразумевается определять ключевые признаки или необходимые признаки заявленного объекта, ни подразумевается использовать ее как помощь в определении объема заявленного объекта. Дополнительные признаки и преимущества станут более очевидными из последующего подробного описания вариантов осуществления, которое продолжается со ссылками на сопроводительные чертежи.
Краткое описание чертежей
Фиг.1 - структурная схема традиционного основанного на блочном преобразовании кодека в предшествующем уровне техники.
Фиг.2 является блок-схемой характерного кодера, включающего кодирование образца блока.
Фиг.3 является блок-схемой характерного декодера, включающего кодирование образца блока.
Фиг.4 является таблицей, содержащей определение псевдокода для сигнализации квантователю DC согласно способу гибкого квантования.
Фиг.5 является таблицей, содержащей определение псевдокода для сигнализации квантователю нижних частот согласно методу гибкого квантования.
Фиг.6 является таблицей, содержащей определение псевдокода для сигнализации квантователю фильтра верхних частот согласно методу гибкого квантования.
Фиг.7 является таблицей, содержащей определение псевдокода для сигнализации квантователям на уровне кадра согласно методу гибкого квантования.
Фиг.8 является таблицей, содержащей определение псевдокода для сигнализации квантователям на уровне фрагмента изображения в пространственном режиме согласно методу гибкого квантования.
Фиг.9 является таблицей, содержащей определение псевдокода для сигнализации квантователям на уровне поддиапазона на уровне фрагмента изображения в частотном режиме согласно методу гибкого квантования.
Фиг.10 является таблицей, содержащей определение псевдокода для сигнализации квантователям на уровне поддиапазона фильтра нижних частот на уровне фрагмента изображения в частотном режиме согласно методу гибкого квантования.
Фиг.11 является таблицей, содержащей определение псевдокода для сигнализации квантователям на уровне поддиапазона фильтра верхних частот на уровне фрагмента изображения в частотном режиме согласно методу гибкого квантования.
Фиг.12 является таблицей, содержащей определение псевдокода для сигнализации квантователям на уровне макроблока в пространственном режиме согласно методу гибкого квантования.
Фиг.13 является таблицей, содержащей определение псевдокода для сигнализации квантователям фильтра нижних частот на уровне макроблока в частотном режиме согласно методу гибкого квантования.
Фиг.14 является таблицей, содержащей определение псевдокода для сигнализации квантователям фильтра верхних частот на уровне макроблока в частотном режиме согласно методу гибкого квантования.
Фиг.15 является структурной схемой соответствующей вычислительной среды для реализации кодера/декодера мультимедийных данных с гибким квантованием.
Подробное описание
Последующее описание относится к методам кодирования и декодирования, которые предусматривают эффективное гибкое квантование, которое может изменять квантование, используемое с пространственными, частотными и цветовыми измерениями (упоминаемые в данном документе как "гибкое квантование"). Последующее описание описывает примерную реализацию метода в контексте системы или кодека сжатия цифровых мультимедийных данных. Система цифровых мультимедийных данных кодирует цифровые мультимедийные данные в сжатую форму для передачи или хранения и декодирует данные для воспроизведения или другой обработки. Для целей иллюстрации эта примерная система сжатия, включающая это гибкое квантование, является изображением или системой сжатия видео. Альтернативно, метод также может быть включен в системы сжатия или кодеки для других двумерных данных. Метод гибкого квантования не требует, чтобы система сжатия цифрового мультимедиа кодировала сжатые цифровые мультимедийные данные в конкретном формате кодирования.
1. Кодер/декодер
Фиг.2 и 3 являются обобщенной схемой процессов, используемых в представленном кодере 200 и декодере 300 двухмерных (2D) данных. Схемы представляют собой обобщенную или упрощенную иллюстрацию системы сжатия, включающую кодер и декодер двумерных данных, которые реализуют кодирование по образцу блоков. В альтернативных системах сжатия использование кодирования по образцу блоков, дополнительное или меньшее число процессов, чем проиллюстрировано в репрезентативном кодере и декодере, может быть использовано для сжатия двумерных данных. Например, некоторые кодеры/декодеры также могут включать в себя цветовое преобразование, цветовые форматирования, масштабируемое кодирование, кодирование без потерь, режимы макроблока и т.д. Система сжатия (кодер и декодер) может обеспечивать кодирование без потерь и/или с потерями двумерных данных в зависимости от квантования, которое может быть основано на параметре квантования, изменяющемся от «без потерь» до «с потерями».
Кодер 200 двумерных данных вырабатывает сжатый битовый поток 220, который является более компактным представлением (для типичного ввода) 2D-данных 210, представленных в качестве входных данных кодеру. Например, входным сигналом 2D-данных может быть изображение, кадр видеопоследовательности или другие данные, имеющие два измерения. Кодер 2D-данных разделяет кадр входящих данных на блоки (проиллюстрировано в общем на фиг.2 как разбиение 230), которые на проиллюстрированном варианте осуществления являются непересекающимися блоками пикселей 4×4, которые создают обычный образец по плоскости кадра. Эти блоки сгруппированы в кластеры, называемые макроблоки, которые являются пикселями размером 16×16 в этом представительном кодере. В свою очередь, макроблоки сгруппированы в обычные структуры, называемые фрагментами изображений. Эти фрагменты изображений также создают обычный образец по изображению из условия, что фрагменты изображений в горизонтальной строке являются одинаковыми по высоте и выровнены, и фрагменты изображений в вертикальном столбце являются одинаковой ширины и выровнены. В представительном кодере фрагменты изображений могут быть любого произвольного размера, который кратен 16 в горизонтальном и/или вертикальном направлении. Альтернативные варианты осуществления кодера могут разделять изображения на блок, макроблок, фрагменты изображений или другие единицы иного размера и структуры.
К каждой границе между блоками применяется оператор 240 «прямого перекрытия», после которого каждый блок 4×4 преобразуется с использованием блочного преобразования 250. Это блочное преобразование 250 может быть обратимым безразмерным 2D-преобразованием, описанным заявкой на выдачу патента США, под авторством Сринивасана, №11/015,707, «Reversible Transform For Lossy And Lossless 2-D Data Compression» («Обратимое преобразование для сжатия 2-D-данных с потерями и без потерь»), зарегистрированной 17 декабря 2004 г. Оператор 240 перекрытия может быть обратимым оператором перекрытия, описанным заявкой на выдачу патента США №11/015,148, под авторством Ту и других, озаглавленной «Reversible Overlap Operator For Efficient Lossless Data Compression» («Обратимый оператор перекрытия для эффективного сжатия данных без потерь»), зарегистрированной 17 декабря 2004 г.; и заявка на выдачу патента США №11/035,991, под авторством Ту и других, озаглавленной «Reversible 2-Dimensional Pre-/Post-Filtering For Lapped Biorthogonal Transform» («Обратимая двухмерная предварительная/последующая фильтрация для перекрывающегося биортогонального преобразования»), зарегистрированной 14 января 2005 г. В качестве альтернативы, могут быть использованы дискретное косинусное преобразование или другие блочные преобразования и операторы перекрытия. Вслед за преобразованием, DC-коэффициент 260 каждого блока 4×4 преобразования подвергается аналогичной цепочке обработки (разбиению, прямому перекрытию, сопровождаемому блочным преобразованием 4×4). Результирующие DC-коэффициенты преобразования и АС-коэффициенты преобразования квантуются 270, кодируются 280 по энтропии и пакетируются 290.
Декодер выполняет обратную обработку. На стороне декодера биты коэффициентов преобразования извлекаются 310 из их соответственных пакетов, из которых декодируются 320 и деквантуются 330 сами коэффициенты. DC-коэффициенты 340 регенерируются посредством применения обратного преобразования, и плоскость DC-коэффициентов «инверсно перекрывается» с использованием подходящего сглаживающего оператора, применяемого по границам DC-блоков. В дальнейшем все данные регенерируются посредством применения обратного преобразования 350 4×4 к коэффициентам постоянного тока, и коэффициенты 342 переменного тока декодируются из потока битов. В заключение, границы блока в плоскостях результирующего изображения фильтруются 360 с обратным перекрытием. Это вырабатывает выходной сигнал восстановленных 2D-данных.
В примерной реализации кодер 200 (фиг.2) сжимает входное изображение в сжатый поток 220 битов (к примеру, файл), а декодер 300 (фиг.3) восстанавливает исходный ввод или его приближение на основе того, какое кодирование (с потерями или без потерь) используется. Процесс кодирования включает в себя применение прямого перекрывающегося преобразования (LT), описанного ниже, которое реализовано с помощью обратимой двумерной предварительной/пост-фильтрации, также более подробно описанной ниже. Процесс декодирования влечет за собой применение обратного перекрывающегося преобразования (ILT) с использованием обратимой двумерной предварительной/пост-фильтрации.
Проиллюстрированные LT и ILT являются инверсиями друг друга, в точном смысле, и поэтому вместе могут быть указываемы ссылкой как обратимое перекрывающееся преобразование. В качестве обратимого преобразования, пара LT/ILT может быть использована для сжатия изображений без потерь.
Входными данными 210, сжатыми проиллюстрированным кодером 200/декодером 300, могут быть изображения различных форматов цветов (к примеру, форматы цветных изображений RGB/YUV4:4:4 или YUV4:2:0). Типично, входное изображение всегда имеет компонент яркости (Y). Если оно является изображением RGB/YUV4:4:4,YUV4:2:2 или YUV4:2:0, изображение также имеет компоненты цветности, такие как компонент U и компонент V. Отдельные цветовые плоскости или компоненты изображения могут иметь различные пространственные разрешения. В случае входного изображения, например, в формате цвета YUV 4:2:0, компоненты U и V имеют половину ширины и высоты компонента Y.
Как описано выше, кодер 200 разбивает входное изображение или рисунок на макроблоки. В примерной реализации кодер 200 разбивает входное изображение на области 16×16 пикселей (называемые "макроблоки") в канале Y (которыми могут быть области 16×16, 16×8 или 8×8 в каналах U и V, в зависимости от формата цвета). Цветовая плоскость каждого макроблока разбита на зоны пикселей или блоки 4×4. Поэтому макроблок составляется для различных форматов цвета следующим образом для этой примерной реализации кодера:
1. Для изображения в градациях серого каждый макроблок содержит 16 блоков яркости (Y) 4×4.
2. Для изображения формата цвета YUV4:2:0 каждый макроблок содержит 16 блоков Y 4×4 и по 4 блока цветности (U и V) 4×4.
3. Для изображения формата цвета YUV4:2:2 каждый макроблок содержит 16 блоков Y 4×4 и по 8 блоков цветности (U и V) 4×4.
4. Для цветного изображения RGB или YUV4:4:4 каждый макроблок содержит 16 блоков каждого из каналов Y, U и V.
Соответственно, после преобразования макроблок в этом репрезентативном кодере 200/декодере 300 имеет три частотных поддиапазона: DC-поддиапазон (DC-макроблок), поддиапазон фильтра нижних частот (макроблок фильтра нижних частот) и поддиапазон фильтра верхних частот (макроблок фильтра верхних частот). В репрезентативной системе поддиапазоны фильтра нижних и/или верхних частот являются дополнительными в битовом потоке – эти поддиапазоны могут быть полностью исключены.
Кроме того, сжатые данные могут быть упакованы в битовый поток в один или два расположения: в пространственном порядке и частотном порядке. Для пространственного порядка различные поддиапазоны того же самого макроблока в пределах фрагмента изображения сгруппированы вместе и результирующий битовый поток каждого фрагмента изображения записывается в один пакет. Для частотного порядка аналогичный поддиапазон из различных макроблоков в пределах фрагмента изображения, которые группируются вместе и таким образом, битовый поток фрагмента изображения записывается в трех пакетах: DC-пакет, пакет фрагмента изображения фильтра низких частот и пакет фрагмента изображения фильтра верхних частот. Кроме того, могут существовать другие уровни данных.
Таким образом, для репрезентативной системы изображения организуются в следующих "измерениях":
Пространственное измерение:
Кадр→Фрагмент изображения→Макроблок;
Частотное измерение:
DC|фильтр низких частот|фильтр верхних частот; и
Измерение канала:
Яркость|Цветность_0|Цветность_1...(например, как Y|U|V).
Стрелки выше обозначают иерархию, в то время как вертикальные черты обозначают разбиение.
Хотя характерная система организует сжатые цифровые мультимедийные данные, частотные и канальные измерения, гибкий подход к квантованию, описанный в данном документе, может использоваться в альтернативных системах кодера/декодера, которые организуют свои данные с меньшими, дополнительными или другими измерениями. Например, подход гибкого квантования может использоваться для кодирования, используя большее число частотных диапазонов, другой формат цветовых каналов (например, YIQ, RGB и т.д.), дополнительные каналы изображений (например, для зрительного восприятия стерео или других многочисленных совокупностей камер).
2. Обзор гибкого квантования
В характерном кодере/декодере операция квантования является главным образом смещенным делением с помощью параметра QP квантования, который выполняется в кодере. Операция обратного квантования или умножения является умножением на QP, выполняемым в декодере. Однако альтернативные варианты осуществления гибкого квантования, описанного в данном документе, могут использовать другие формы квантования, включая одинаковые или неодинаковые, скалярные или векторные, с или без мертвой зоны и т.д. Эти процессы квантования/обратного квантования вместе представляют собой потери данных исходного коэффициента преобразования, который выявляется как ошибки сжатия или искажение декодированного изображения. В упрощенном кодеке, определенное фиксированное значение QP может использоваться для всех коэффициентов преобразования в кадре. Тогда как это может быть приемлемым решением в некоторых случаях, есть несколько недостатков.
Зрительная система человека не является в равной степени чувствительной ко всем частотам, или ко всем пространственным позициям в кадре, или ко всем каналам сигнала яркости и цветности. Использование различных значений QP для различных коэффициентов может предоставить визуально превосходное кодирование даже с тем же или меньшим числом сжатых битов. Аналогично и система показателей других ошибок может быть также соответствующим образом оптимизирована.
Управление скоростью или возможность кодера формировать сжатый файл желаемого размера нелегко осуществить с помощью единственного QP по всему кадру.
Следовательно, желательно разрешить кодеру изменять QP по изображению произвольным образом. Однако это означает, что фактическое значение QP, используемое для каждого разбиения данных (макроблок/фрагмент изображения/поддиапазон и т.д.), должно сигнализироваться в битовом потоке. Это приводит к огромным потерям, чтобы передать сигнальную информацию QP, что делает это на практике неподходящим. То, что желательно, это гибкое и еще экономичное по битам средство сигнализации QP, особенно для общих встречающихся сценариев.
Метод гибкого квантования, описанный в данном документе, предоставляет возможность изменять квантования с различными разбиениями или измерениями кодированных цифровых мультимедийных данных. Например, один вариант осуществления метода гибкого квантования в характерной системе кодера 200/декодера 300 может изменять квантование по трем измерениям: по (i) пространственным позициям, (ii) частотным поддиапазонам и (iii) цветовым каналам. Однако квантование может изменяться по меньшим, дополнительным или другим измерениям или разбиениям данных в других альтернативных вариантах осуществления метода гибкого квантования. Этот метод также включает в себя способы эффективно сигнализировать гибкое квантование в кодированные мультимедийные данные. Преимуществом этого подхода к квантованию является то, что служебные сигналы, вытекающие из квантования связанной служебной информации, минимизируются для исходных сценариев использования, наряду с тем, что предоставляется максимальная гибкость, если это необходимо кодеру.
Метод гибкого квантования предоставляет тонкое пространственное управление уровнем модульности квантования. В одном конкретном варианте осуществления гибкое квантование допускает управление по квантованию, используемому в кадре, фрагменте изображения или вниз, к макроблоку. Если кадр не квантован одинаково, тогда каждый фрагмент изображения может быть квантован одинаково; если фрагмент изображения не квантован одинаково, тогда каждый макроблок квантуется разным образом.
Гибкое квантование дополнительно допускает управление квантованием вместе с измерением частотного поддиапазона. В одном конкретном варианте осуществления гибкое квантование включает в себя режим поддиапазона для определения отношения квантования среди частотных поддиапазонов. Поддиапазоны могут квантоваться одинаково, или частично одинаково (поддиапазон фильтра нижних частот, используя квантователь DC-поддиапазона, и/или поддиапазон фильтра верхних частот, используя квантователь фильтра нижних частот), или независимо.
Гибкое квантование также допускает управление по квантованию, используемому вместе с измерением канала данных. В одном конкретном варианте осуществления гибкое квантование включает в себя режим канала для определения отношения квантования среди цветовых каналов. Каналы могут квантоваться одинаково, или частично одинаково (каналы сигнала цветности одинаково, но сигнала яркости независимо), или независимо.
Гибкое квантование, описанное в данном документе, также предоставляет методы для эффективной сигнализации в служебную информацию сжатых цифровых мультимедийных данных, комбинации вышеупомянутого управления квантованием по пространству, частотному поддиапазону и каналу, которые являются значимыми для исходных сценариев использования. Кроме того, методы гибкого квантования предусматривают способ для эффективного определения выбора квантователя с помощью индексирования из заданного подмножества возможных квантователей в цифровых мультимедийных данных.
3. Гибкое квантование в пространственном измерении
В пространственном измерении три варианта предоставляются с помощью метода гибкого квантования в характерном кодере/декодере:
- Целый кадр может быть кодирован, используя то же самое правило квантования.
- Кроме того, целый фрагмент изображения может быть кодирован, используя то же самое правило квантования, и различные фрагменты изображения в пределах кадра могут использовать различные правила квантования.
- Кроме того, каждый макроблок в пределах фрагмента изображения может быть кодирован, используя то же самое правило квантования, и различные макроблоки в пределах фрагмента изображения могут использовать различные правила квантования.
Одно средство сигнализации этих возможностей функционирует следующим образом: двоичный сигнал отсылается в битовый поток на уровне кадра, указывающего, является ли первая возможность истинной. Если нет, символ фиксированной длины отсылается в битовый поток в пределах каждого фрагмента изображения, указывая множество правил квантования, используемых для этого фрагмента изображения. Если фрагмент изображения использует более чем одно правило квантования, тогда символ переменной длины отсылается в пределах каждого макроблока в соответствующем фрагменте изображения, который указывает правило квантования, используемое макроблоком. Декодер интерпретирует битовый поток образом, согласующимся с кодером.
Характерный кодер 200/декодер 300 использует вариант вышеуказанной сигнализации. Двоичный сигнал, представленный исходным элементом синтаксиса, в данном документе отмеченный как "XXX_FRAME_UNIFORM", отсылается только на уровне кадра (где XXX является указателем места заполнения, определяющим конкретный частотный поддиапазон или измерение канала управления квантователя). На уровне фрагмента изображения множество отдельных правил квантователя отсылается в элементе синтаксиса уровня фрагмента изображения (XXX_QUANTIZERS) только, где элемент синтаксиса уровня кадра (XXX_FRAME_UNIFORM) является ложным. Если это множество равно единице, это означает, что существует только одно правило и, следовательно, все макроблоки во фрагменте изображения одинаково кодируются с помощью того же самого правила квантования (указывая вариант 2), и если нет, оно указывает вариант третьей возможности.
4. Гибкое квантование по частотным диапазонам
Для гибкого квантования по частотным диапазонам синтаксис битового потока характерного кодера 200/декодера 300 определяет два переключателя:
- Макроблок фильтра нижних частот использует то же самое правило квантования как DC-макроблок в той же самой пространственной позиции. Это соответствует элементу USE_DC__QUANTIZER синтаксиса.
- Макроблок фильтра верхних частот использует то же самое правило квантования как макроблок фильтра нижних частот в той же самой пространственной позиции. Это соответствует элементу USE_LP__QUANTIZER синтаксиса.
Эти переключатели дают возможность на уровне кадра, когда целый кадр использует то же самое правило квантования или, иначе, на уровне фрагмента изображения. Эти переключатели не дают возможность на уровне макроблока. Все макроблоки во фрагменте изображения, следовательно, подчиняются тем же самым правилам по частотным диапазонам. Двоичный символ отсылается для каждого из переключателей на соответствующем уровне (кадра или фрагмента изображения).
5. Гибкое квантование по каналам изображения
Для гибкого квантования по каналам синтаксис битового потока характерного кодера 200/декодера 300 допускает три варианта:
- Все каналы – яркость и цветность имеют то же самое правило квантования. Это указывается исходным элементом XXX_CH_MODE = CH_UNIFORM синтаксиса.
- Яркость следует за одним правилом квантования и все каналы сигнала цветности следуют за другим правилом квантования, указанным с помощью XXX_CH_MODE = CH_MIXED.
- Все каналы являются свободными для выбора различных правил квантования, указанных XXX_CH_MODE = CH_INDEPENDENT.
6. Комбинаторное гибкое квантование
Характерный кодер 200/декодер 300 использует синтаксис битового потока, заданного в таблицах кодов, показанных на фиг.4-14, которые могут эффективно кодировать конкретный выбор из гибких вариантов квантования по измерениям, рассмотренным выше. С помощью нескольких вариантов квантования, доступных по каждому из пространственных измерений, измерений частотных поддиапазонов и измерений канала, множество допущений доступных вариантов квантования является большим. В дополнение к сложности гибкое квантование по трем измерениям является тем обстоятельством, что битовый поток характерного кодера 200/декодера 300 может быть разбит в пространственном или частотном порядке. Тем не менее, это не изменяет доступные варианты квантования и только влияет на последовательное упорядочение сигналов. Синтаксис, определенный на фиг.4-14, предоставляет эффективное кодирование комбинаторных гибких правил квантования.
Некоторые явно выраженные признаки комбинаторных правил квантования как заданы в синтаксисе характерного кодера/декодера следующим образом.
DC квантование не допускает изменения на основе макроблоков. Это допускает различное кодирование квантованных DC-значений без необходимости выполнять операцию обратного масштабирования. Кодирование DC-диапазона фрагмента изображения с относительно небольшим квантователем даже, когда AC-диапазоны (фильтр нижних и верхних частот) кодируются с помощью изменяющегося квантования, значительно не влияет на скорость передачи битов.
С одного края шкалы все коэффициенты преобразования в кадре используют тот же самый параметр квантования. На другом краю шкалы правила квантования фильтра нижних и верхних частот для всех каналов допускаются для независимого изменения для каждого макроблока фрагмента изображения/кадра. Единственным ограничением является то, что каждое множество отдельных правил квантователя фильтра нижних и верхних частот (покрывая все каналы) ограничено до 16. Каждое подобное правило может определять независимые значения параметра квантования для каждого канала.
Между этими экстремальными значениями несколько комбинаций допускаются как задано таблицами синтаксиса, показанными на фиг.4-14.
7. Индексирование параметров квантователя
Конкретный параметр квантования (QP) в характерном кодере/декодере основан на гармонической шкале. 8-битовое значение индекса параметра квантователя (QPI) соответствует значению QP, которое может быть относительно большим. Второй уровень индексирования осуществляется так, чтобы QPI, изменяющиеся по макроблокам, могли быть кодированы эффективным образом.
Более конкретно кодер 200 может определять набор в битовом потоке, содержащийся между 1 и 16 "векторами" QPI. Каждый QPI-вектор состоит из одного или более QPI-значений, на основе которых выбирается XXX_CHANNEL_MODE. Такие наборы определяются для DC, поддиапазонов фильтра нижних и верхних частот, на основе переключателя частотного диапазона. Кроме того, набор DC имеет только один QPI-вектор, так как только один DC-квантователь допустим в канале фрагмента изображения. Кодирование этих наборов задается в таблицах, показанных на фиг.4-6.
Как показано в таблицах фиг.7-11, сигнализация множеств вектора QPI, частотных поддиапазонов фильтра нижних и верхних частот происходит следующим образом. На основе других режимов кодирования, количество элементов каждого множества (т.е. число QPI-векторов во множестве) указано для поддиапазонов фильтра нижних и верхних частот в начале следующего фрагмента изображения или кадра. Количество элементов DC-множества равно 1. В таблицах псевдокодов элемент синтаксиса, обозначающий количество элементов, отмечен как "XXX_QUANTIZERS". (В действительности XXX_QUANTIZERS – 1 отсылается в битовый поток.) Элементы синтаксиса, отмеченные "XXX_QUANTIZER" в таблицах, обозначают кодирование QPI-множвеств, что определяется в таблицах, показанных на фиг.4-6.
На уровне макроблока достаточно отослать только индекс QI желаемого QPI-вектора из QPI-множества. Таблицы на фиг.12-14 определяют синтаксис отправки QI на основе макроблов. Элемент синтаксиса, соответствующий QI, указан "XXX_QUANTIZER__INDEX". Код переменной длины используется для сигнализации QI. Сначала символ из одного бита отсылается, указывая, равно ли QI нулю или нет. Если нет, тогда код фиксированной длины, длины, заданной сотой (log2(XXX_QUANTIZERS - 1)) отсылается, указывая конкретное QI, отличное от нуля. Это разрешает эффективное кодирование правила квантования "по умолчанию" (QI=0) также небольшой длины с одним битом на макроблок. Когда XXX_QUANTIZERS равны 1, XXX_QUANTIZER_INDEX однозначно является нулевым и, следовательно, не нужно сигнализировать QI.
8. Расширения
Вышеуказанное описание гибкого квантования конкретно для его варианта осуществления в характерном кодере и декодере и синтаксисе. Тем не менее, принципы этого метода являются расширяемыми на другие системы мультимедийного цифрового сжатия и также форматов. Например, характерный кодер/декодер имеет только три частотных поддиапазона (DC, фильтр низких частот и фильтр верхних частот). Но в целом альтернативные варианты осуществления гибкого квантования могут быть расширены непосредственным образом на множество частотных поддиапазонов. Аналогично, альтернативные варианты осуществления гибкого квантования могут изменять квантователь на уровне более тонкой пространственной модульности, например, с помощью отправки информации индекса квантования (QI) на уровне подмакроблока (например, как блок). Многие расширения, лежащие в основе принципов метода гибкого квантования, возможны в той же самой структуре.
9. Вычислительная среда
Вышеописанные методы обработки для гибкого квантования могут быть реализованы любой из множества систем цифрового мультимедийного кодирования и/или декодирования, включая среди других примеров компьютеры (из различных конструктивов, включая сервер, настольный компьютер, портативный компьютер, карманное устройство и т.д.); цифровые мультимедийные устройства записи и проигрыватели; устройства захвата изображений и видео (например, камеры, сканеры и т.д.); коммуникационное оборудование (например, телефоны, мобильные телефоны, оборудование для организации и проведения конференций и т.д.); устройство отображения, печатающие или другие устройства для презентаций; и т.д. Методы гибкого квантования могут быть реализованы в аппаратной схеме, во встроенном программном обеспечении, управляющими цифровыми мультимедийными обрабатывающими аппаратными средствами, а также в коммуникационном программном обеспечении, выполняющемся в компьютере или другой вычислительной середе, например, как показано на фиг.15.
Фиг.15 иллюстрирует обобщенный пример пригодной вычислительной среды (1500), в которой описанные варианты осуществления могут быть реализованы. Вычислительная среда (1500) не предназначена, чтобы предлагать какое-либо ограничение на область использования или функциональность изобретения, поскольку настоящее изобретение может быть реализовано в различных вычислительных средах общего или специального назначения.
Со ссылкой на фиг.15, вычислительная среда (1500) включает в себя по меньшей мере один блок (1510) обработки и память (1520). На фиг.15 эта наиболее базовая конфигурация (1530) заключена в пределах пунктирной линии. Блок (1510) обработки исполняет машиноисполняемые инструкции и может быть реальным или виртуальным процессором. В многопроцессорной системе несколько блоков обработки исполняют машиноисполняемые инструкции, чтобы повысить возможности по обработке данных. Памятью (1520) может быть энергозависимая память (например, регистры, кэш, ОЗУ (оперативное запоминающее устройство, RAM), энергонезависимая память (например, ПЗУ (постоянное запоминающее устройство, ROM), ЭСППЗУ (электрически стираемое и программируемое ПЗУ, EEPROM), флэш-память и т.д.) или некоторое сочетание этих двух. Память (1520) сохраняет программное обеспечение (1580), реализующее описанное цифровое мультимедийное кодирование/декодироавание с методами гибкого преобразования.
Вычислительная среда может обладать дополнительными признаками. Например, вычислительная среда (1500) включает в себя хранилище (1540), одно или более устройств (1550) ввода, одно или более устройств (1560) вывода и одно или более соединений (1570) связи. Механизм взаимного соединения (не показан), такой как шина, контроллер или сеть, осуществляет взаимное соединение компонентов вычислительной среды (1500). Типично, программное обеспечение операционной системы (не показано) предоставляет рабочую среду для другого программного обеспечения, исполняемого в вычислительной среде (1500), и координирует деятельность компонентов вычислительной среды (1500).
Хранилище (1540) может быть съемным или несъемным и включает в себя магнитные диски, магнитные ленты или кассеты, CD-ROM (ПЗУ на компакт диске), CD-RW (перезаписываемый компакт диск), DVD (универсальный цифровой диск) или любой другой носитель, который может быть использован, чтобы сохранять информацию, и к которому можно осуществлять доступ в пределах вычислительной среды (1500). Хранилище (1540) сохраняет команды для программного обеспечения (1580), реализующего описанное цифровое мультимедийное кодирование/декодирование с методами гибкого квантования.
Устройством(ами) (1550) ввода может быть устройство сенсорного ввода, такое как клавиатура, мышь, перо или шаровой манипулятор, устройство голосового ввода, устройство сканирования или другое устройство, которое обеспечивает ввод в вычислительную среду (1500). Для звука устройством(ами) (1550) ввода может быть звуковая плата или аналогичное устройство, которое принимает звуковой входной сигнал в аналоговой или цифровой форме от микрофона или совокупности микрофонов, либо считыватель CD-ROM, который поставляет звуковые выборки в вычислительную среду. Устройством(ами) (1560) вывода может быть дисплей, принтер, динамик, устройство для записи CD-RW или другое устройство, которое обеспечивает вывод из вычислительной среды (1500).
Соединение(я) (1570) связи дает возможность связи через среду связи с другой вычислительной сущностью. Среда связи транспортирует информацию, такую как машиноисполняемые команды, сжатую звуковую и видеоинформацию или другие данные в модулированном информационном сигнале. Модулированным информационным сигналом является сигнал, который обладает одной или более характеристиками, установленными или изменяемыми таким образом, чтобы кодировать информацию в сигнале. В качестве примера, а не ограничения, среда связи включает в себя проводные или беспроводные технологии, реализованные с помощью электрической, оптической, радиочастотной (RF), инфракрасной, акустической или другой несущей.
Описанное цифровое мультимедийное кодирование/декодирование с методами гибкого квантования в материалах настоящей заявки могут быть описаны в общем контексте машиночитаемых носителей. Машиночитаемые носители - это любые имеющиеся в распоряжении носители, к которым может быть осуществлен доступ в вычислительной среде. В качестве примера, а не ограничения, касательно вычислительной среды (1500), машиночитаемые носители включают в себя память (1520), хранилище (1540), среду связи и сочетания любого из вышеприведенного.
Описанное цифровое мультимедийное кодирование/декодирование с методами гибкого квантования в материалах настоящей заявки могут быть описаны в общем контексте машиноисполняемых команд, таких как включенные в программные модули, являющиеся исполняемыми в вычислительной среде на целевом реальном или виртуальном процессоре. В целом, программные модули включают в себя подпрограммы, программы, библиотеки, объекты, классы, компоненты, структуры данных и т. д., которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Функциональные возможности программных модулей могут быть скомбинированы или разделены между программными модулями, как требуется в различных вариантах осуществления. Машиноисполняемые команды для программных модулей могут быть приведены в исполнение в локальной или распределенной вычислительной среде.
В целях представления подробное описание использует термины, наподобие «определять», «формировать», «настраивать» и «применять», чтобы описывать машинные операции в вычислительной среде. Эти термины являются высокоуровневыми абстракциями для операций, выполняемых компьютером, и не должны быть спутаны с действиями, выполняемыми человеком. Реальные машинные операции, соответствующие этим терминам, различаются в зависимости от реализации.
Ввиду множества возможных вариантов осуществления, к которым могут быть применены принципы нашего изобретения, мы заявляем в качестве изобретения все такие варианты осуществления, которые могут попадать в пределы объема и сущности последующей формулы изобретения и ее эквивалентов.