Кодирование сигнала в масштабируемый поток битов и декодирование такого потока битов

Иллюстрации

Показать все

Изобретение относится к способу кодирования битовой плоскости сигналов, например сигнала изображения или видеосигнала в области преобразования DCT. Технический результат - повышение производительности масштабируемого способа сжатия содержимого сигнала. Битовые плоскости у блоков DCT передаются плоскость за плоскостью в порядке значимости. Поскольку каждая плоскость содержит больше энергии сигнала, чем менее значимые слои вместе, результирующий поток битов является масштабируемым в том смысле, что он может быть усечен в любой позиции. Чем позже отсекается поток битов, тем меньше остаточная ошибка, когда восстанавливается изображение. Для каждой битовой плоскости создается зона или разделение битовой плоскости, которое включает в себя все ненулевые биты коэффициентов DCT в той битовой плоскости. Разделение создается в соответствии со стратегией, которая выбирается из некоторого количества вариантов в зависимости от содержимого всего сигнала и/или фактической битовой плоскости. Для естественных изображений может использоваться иная стратегия зонирования, чем для графического содержимого, и стратегия может меняться от битовой плоскости к битовой плоскости. Форма, а также другие свойства, например размер каждого разделения, следовательно, могут оптимально приспосабливаться к содержимому. Двумерные прямоугольные зоны и одномерные зигзагообразные зоны развертки могут смешиваться в пределах изображения или даже в пределах блока DCT. Выбранная стратегия создания зоны встраивается в поток битов вместе с битами коэффициента DCT в фактическом разделении. 4 н. и 9 з.п. ф-лы, 5 ил.

Реферат

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

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

УРОВЕНЬ ТЕХНИКИ ИЗОБРЕТЕНИЯ

Способ масштабируемого сжатия изображений на основе DCT из известного уровня техники раскрывается в международной заявке на патент WO2005/112467. Способ предусмотрен для использования в беспроводной передаче телевизионных сигналов высокой четкости, также называемой WirelessHD, в частности, с целью незаметного подключения настенного плоского экранного монитора HDTV к внешнему источнику сигнала HDTV.

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

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

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

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

С помощью изобретения достигается то, что оптимальная стратегия разделения может выбираться для каждой отдельной битовой плоскости. Примерами разделений являются

- прямоугольное разделение, заданное наибольшим номером строки и наибольшим номером столбца,

- прямоугольное разделение, заданное наименьшим номером строки и наименьшим номером столбца,

- одномерная развертка, заданная наибольшим порядковым номером,

- одномерная развертка, заданная наименьшим порядковым номером,

- шаблон позиций, для которых биты уже отправлены в предыдущих битовых плоскостях.

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

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

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

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

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

Фиг.1 показывает многослойную структуру битов у блока значений.

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

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

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

ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ

Фиг.1 иллюстрирует многослойную структуру битов у блока значений, например коэффициентов DCT у блока изображения. Многослойная структура битов содержит знаковую плоскость BPSIGN и одиннадцать битовых плоскостей от самой старшей битовой плоскости BPMSB до самой младшей битовой плоскости BPLSB. В этом примере коэффициенты DCT могут варьироваться в диапазоне от -2047 до 2047. Каждая битовая плоскость содержит биты с определенной значимостью. Единичный (или ненулевой) бит в битовой плоскости в дальнейшем называется "установленным" битом. Понятно, что значение единицы и нуля можно изменить на противоположное.

Заданный слой на фиг.1 содержит больше энергии, чем все слои с меньшей значимостью вместе. Чтобы извлечь самую важную информацию первой, блок информации обрабатывает плоскость за плоскостью, начиная с самой важной битовой плоскости BPMSB. Исключением из этого правила может быть то, что коэффициент DC, который обычно является самым важным, полностью отправляется первым. Этот результирующий поток битов является масштабируемым в том смысле, что он может отсекаться в любой позиции. Чем позже отсекается поток битов, тем меньше остаточная ошибка, когда восстанавливается изображение.

В каждой битовой плоскости выбирается область битовой плоскости, которая вмещает все установленные биты битовой плоскости. В способе предшествующего уровня техники упомянутая область (дополнительно называемая зоной или разделением) выбирается в соответствии с заранее установленной схемой разделения. Фиг.2 и 3 показывают примеры схем разделения, взятых из WO 2005/112467.

Фиг.2 иллюстрирует двумерную прямоугольную зону, которая вмещает все установленные биты битовой плоскости. Разделение задается наибольшим номером строки RMAX и наибольшим номером столбца CMAX. Показанное на фиг.2 разделение соответственно задается посредством RMAX=3, CMAX=4 и содержит 20 битов, шесть из которых установлены (заданы).

Фиг.3 иллюстрирует одномерное разделение. Это разделение придерживается заранее установленной зигзагообразной траектории на битовой плоскости. В этом случае разделение задается наибольшим порядковым номером SMAX, содержащим установленный бит. На фиг.3, на которой позиции установленных битов обведены кружком (ср. с фиг.2), разделение задается с помощью SMAX=18. Зона содержит 19 позиций, шесть из которых установлены. Следует отметить, что проиллюстрированный порядок позиций, хотя и предпочтителен, является лишь примером. Допустимы другие порядки позиций.

Разделения, показанные на фиг.2 и 3, составляют смежную область битовой плоскости. Также возможно использовать прерывистое разделение.

В способе предшествующего уровня техники отправляются параметры заранее установленного разделения (параметры RMAX, CMAX для двумерной прямоугольной зоны, параметр SMAX для одномерного разделения) и значения битов для всех коэффициентов в разделении. Дополнительно отправляются знаковые биты "новых" коэффициентов, если имеются. Новые коэффициенты являются теми коэффициентами в разделении, которыми еще не занимались в предыдущей битовой плоскости, то есть они находятся в позициях вне ранее переданных разделений битовой плоскости. Понятно, что все коэффициенты в разделении BPMSB являются новыми. После этого способ переходит к следующей битовой плоскости, пока не обработаны все битовые плоскости.

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

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

Общий алгоритм сжатия в соответствии с изобретением иллюстрируется на фиг.4. Для каждой битовой плоскости (этапы 101, 102) в блоке коэффициента DCT отправляются следующие данные:

- на этапе 1 идентификатор, чтобы идентифицировать, какой шаблон разделения и/или способ кодирования выбран для разделения. Отметим, что шаблон/способ кодирования может отличаться для разных битовых плоскостей одного и того же блока DCT.

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

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

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

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

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

В преимущественном варианте осуществления проверяется, содержит ли текущая битовая плоскость новые коэффициенты. Если нет новых значимых коэффициентов, то только бит уточнения отправляется для ранее значимых коэффициентов. В этом варианте осуществления выбранное разделение фактически является шаблоном позиций ранее значимых коэффициентов, то есть коэффициентов, для которых знаковые биты отправлены в предыдущих битовых плоскостях. Это по существу устанавливается на этапе 1. Не нужно передавать никаких дополнительных данных в отношении формы разделения или его параметров. Понятно, что это требует от кодера, а также от декодера отслеживать позиции значимых коэффициентов. Если имеются новые значимые коэффициенты в текущей битовой плоскости, то наименьшая зона, содержащая все ненулевые биты (например, шаблон зоны RMAX,CMAX), обнаруживается и передается, как описано раньше, с последующим битом величины каждого коэффициента внутри той зоны (возможно, за исключением коэффициента DC, как объяснялось выше).

В отношении этапа 1 альтернативными или дополнительными зонами/шаблонами сжатия для уже упомянутого прямоугольного шаблона (RMAX, CMAX) и одномерного шаблона SMAX являются:

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

2. Такой же, как и в п.1, но ограниченный теперь некоторым направлением. Например, рассматриваются только "соседи" в вертикальном направлении (или только в горизонтальном или диагональном направлении).

3. Такой же, как и в пп.1 и 2, но исключающий некоторые коэффициенты. В частности, содержащий, например, соседей только на "четных" расстояниях (0, 2, 4, …), поэтому исключающий соседей на нечетных расстояниях (1, 3, …).

4. Зона SMAX, использующая чередующийся порядок развертки.

5. Шаблон зоны RMIN, CMIN (или SMIN), начинающийся с наивысшей частоты (вместо начала от DC).

6. Альтернативный известный подход кодирования битовой плоскости, например способ (RUN, EOP), описанный в международной заявке на патент WO2003/045067, или стандарте MPEG4-FGS, или в открытой литературе.

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

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

На этапе 23 принимается идентификатор, идентифицирующий выбранный шаблон разделения и/или режим кодирования, а также параметры для такой зоны (например, RMAX, CMAX, RMIN, CMIN для прямоугольных зон, SMAX, SMIN для одномерных зон), если имеются.

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

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

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

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

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

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

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

3. Способ по п. 1 или 2, в котором упомянутое множество способов создания разделения включает в себя создание прямоугольного разделения, заданного наибольшим номером строки (RMAX) и наибольшим номером столбца (CMAX).

4. Способ по п. 1 или 2, в котором упомянутое множество способов создания разделения включает в себя создание прямоугольного разделения, заданного наименьшим номером строки (RMIN) и наименьшим номером столбца (CMIN).

5. Способ по п. 1 или 2, в котором упомянутое множество способов создания разделения включает в себя создание разделения, соответствующего одномерной развертке битовой плоскости и заданного наибольшим порядковым номером (SMAX) позиции, содержащей установленный бит.

6. Способ по п. 1 или 2, в котором упомянутое множество способов создания разделения включает в себя создание разделения, соответствующего одномерной развертке битовой плоскости и заданного наименьшим порядковым номером (SMIN) позиции, содержащей установленный бит.

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

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

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

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

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

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

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