Способ и устройство для сжатия цифровых данных

Изобретение относится к области обработки изображения, в частности к интегральной схеме, выполненной с возможностью оценивать карту глубины из изображения с использованием объединенного билатерального фильтра. Техническим результатом является предоставление способа и устройства для сжатия и декомпрессии, имеющих низкую сложность, в которых содержимое данных, требуемое для метаданных, уменьшено. Предложен способ сжатия набора вводных данных, в котором коэффициенты в наборе вводных данных группируют в группы коэффициентов, определяют количество битовых плоскостей, GCLI, необходимое для представления каждой группы, применяют квантование, сохраняют ограниченное количество битовых плоскостей, применяют механизм прогнозирования к GCLI для получения остатков и выполняют энтропийное кодирование остатков. Энтропийно кодированные остатки и сохраненные битовые плоскости позволяют декодеру восстанавливать квантованные данные с минимальными затратами в метаданных. 5 н. и 10 з.п. ф-лы, 9 ил., 9 табл.

 

Область изобретения

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

Описание известного уровня техники

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

В документе SMPTE Registered Disclosure Document SMPTE RDD 35:2016, 24 марта 2016 г., стр. 1-53, ХР 055366991, описан поток битов схемы сжатия видео TICO, процесс декодирования и условия для сопоставления потоков битов в IP-сети. В этом процессе остатки получают и кодируют с использованием унарного кодирования.

В документе WO 03/092286 описан адаптивный способ и система для сопоставления значений параметров с индексами кодового слова. Этот способ требует этапа сортировки различий или параметров по меньшей мере на первую группу и вторую группу. Это требует дополнительной буферизации и обработки в кодере и в декодере. Это также добавляет задержку к процессу.

[0003] В документе ЕР 2773122 А1, также относящемся к схеме сжатия видео TICO, описывается способ и устройство для сжатия данных без потерь, в которых осуществляется группирование указанных данных на группы из n слов по m битов; определяется для каждой группы значение наибольшего индекса кодовой строки (GCLI), причем GCLI представляет собой индекс ненулевого бита с наибольшим весом среди битов слов в группе; создается для каждой группы набор выводимых данных, содержащий биты GCLI с наименьшим весом слов группы и метаданные, содержащие значение GCLI. Этот способ очень прост в реализации и очень эффективен, особенно в случае, когда многие данные имеют небольшие значения. Значения GCLI находятся в диапазоне от нуля, когда все слова группы равны нулю, до m, когда по меньшей мере одно слово в группе имеет бит с весом m, равным 1. Следовательно, для двоичного кодирования GCLI требуется [Log2(m)] битов, где [х] представляет собой наименьшее целое число, превышающее х. В этом документе также предлагается усовершенствование, в котором заменяют GCLI в наборе выводимых данных разностью между значением GCLI и прогнозируемым значением GCLI. Таким образом, значения, которые должны быть закодированы, меньше, и унарное кодирование может потребовать меньше места, чем двоичное кодирование GCLI. Однако оказалось, что даже при использовании указанного улучшения, кодирование GCLI может представлять значительный объем в наборе сжатых данных, особенно когда многие коэффициенты становятся равными нулю. Кроме того, в этом документе не рассматривается необходимость квантования, когда размер набора сжатых данных превышает содержимое данных и необходимо выполнить сжатие с потерями. Следовательно, существует потребность в способе сжатия набора вводных данных, который прост в реализации, требует меньше места для кодирования метаданных, содержащих GCLI, и решает проблему квантования.

Сущность изобретения

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

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

[0006] Согласно первому аспекту настоящего изобретения предложен способ сжатия в соответствии с параметрами сжатия одного или нескольких наборов вводных данных, причем указанный или каждый из наборов вводных данных содержит последовательность М коэффициентов, причем каждый коэффициент имеет m битов, кодирующих величину в диапазоне от 0 до 2m -1 в один или несколько соответствующих наборов сжатых данных, каждый из которых содержит набор сжатых по величине данных, и набор сжатых метаданных, при этом указанные параметры сжатия могут включать М, m, n, t, тип квантования, режим сопоставления, представляющий собой либо «сначала отрицательное», либо «сначала положительное»; количество строк и столбцов отображаемого изображения, если набор вводных данных представляет отображаемое изображение; количество строк поддиапазона, если последовательность пикселей представляет собой декорреляционное преобразование отображаемого изображения; режим прогнозирования, который может представлять горизонтальное или вертикальное прогнозирование; способ определения начальных значений предикторов; режим энтропийного кодирования; значение параметра к кодирования Райса, если энтропийное кодирование представляет собой кодирование Райса, и режим ограничения, включающий для указанного или каждого набора вводных данных этапы:

A. группирования коэффициентов в одну или несколько последовательных групп из n коэффициентов, причем фактор группировки n больше или равен 2, при этом каждая группа коэффициентов имеет m битовых плоскостей величины для различных весов коэффициентов;

B. для каждой группы i коэффициентов

а) определения значения наибольшего индекса кодовой строки (GCLI), причем GCLI; представляет собой индекс ненулевого бита с наибольшим весом среди битов величины коэффициентов в указанной группе i, при этом индекс отсчитывают от 1 для наименее значимого бита до m для наиболее значимого бита, причем GCLI равен нулю для группы, в которой все коэффициенты равны нулю;

b) выполнения квантования таким образом, чтобы квантованные коэффициенты находились в диапазоне от 0 до 2(m-t) -1, предоставляя n квантованных коэффициентов, где t является уровнем квантования;

c) копирования, для каждой битовой плоскости указанной группы, битовых плоскостей, имеющих вес от 1 до GCLIi-t квантованных коэффициентов, в набор сжатых по величине данных, если GCLIi ≥ t+1;

d) отсутствия действий, если GCLIi ≤ t,

e) вычисления предиктора predi GCLIi в функции GCLI одной или нескольких групп предшествующих коэффициентов в указанной последовательности коэффициентов, причем предиктор predi равен pred_init, для первой группы коэффициентов указанной последовательности коэффициентов;

f) вычисления остатка ri

ri=max(GCLIi-t, 0) - max(predi-t, 0);

g) сопоставления остатка ri с кодом, причем указанное сопоставление можно получить путем выполнения этапов

(1) вычисления rmin, представляющего наименьшее значение остатков для всех возможных значений GCLIi, равного

rmin=-max(predi-t, 0);

(2) вычисления rmax, представляющего наибольшее значение остатков для всех возможных значений GCLIi, равного

rmax = max(m-max(predi,t), 0);

(3) вычисления Cfirst=-1, если режим сопоставления представляет собой «сначала отрицательное», и +1, если режим сопоставления представляет собой «сначала положительное»;

(4) вычисления

- trigger = |rmin|, если режим ограничения представляет собой «ограничен минимумом»;

- trigger = MIN(|rmin|, rmax), если режим ограничения представляет собой «ограничен минимумом/максимумом»;

- trigger = rmax, если режим ограничения представляет собой «ограничен максимумом»;

- trigger = m, если режим ограничения представляет собой «неограничен»;

(5) IF |r| <= trigger THEN

IF r*Cfirst >0 THEN

C=2*|r| - 1

ELSE C=2*|r|

ELSE С=trigger+|r|,

h) обеспечения энтропийного кодирования кода С и копирования указанного кодирования в набор сжатых метаданных.

[0007] Предпочтительно указанное энтропийное кодирование представляет собой кодирование Райса, где k=0, 1 или 2. Более предпочтительно k=0.

[0008] Предпочтительно п меньше или равно 8 или равно 4.

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

[0010] Указанный набор вводных данных может быть получен путем выполнения декорреляционного преобразования для недекоррелированного набора вводных данных.

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

[0012] Согласно варианту осуществления настоящего изобретения с горизонтальным прогнозированием на этапе В.е) указанный предиктор predi GCLIi представляет собой GCLI предыдущих групп коэффициентов в последовательности коэффициентов, являясь predinit для первой группы коэффициентов в последовательности коэффициентов.

[0013] Согласно варианту осуществления настоящего изобретения с вертикальным прогнозированием, на этапе В.е) указанный предиктор predi GCLIi представляет собой GCLI группы пикселей в том же столбце предыдущей строки пикселей, если указанный GCLI больше чем t, и равен нулю, если указанный GCLI меньше или равен t, являясь pred_init для групп пикселей первой строки пикселей.

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

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

a) инициализации предиктора predi’ до pred_init;

если режим прогнозирования является вертикальным, то инициализации строки GCLI prev; до pred_init;

b) извлечения кода ci из указанного набора сжатых метаданных;

c) если режим прогнозирования вертикальный, то вычисления predi’=previ;

d) получения остатка ri, соответствующего указанному коду ci, причем соответствие можно получить посредством выполнения этапов

(1) выполнения этапов B.g) первого аспекта настоящего изобретения для всех значений r в диапазоне от rmin до rmax, предоставляя таблицу;

(2) получения остатка ri, соответствующего указанному коду cii, из указанной таблицы;

e) вычисления количества битовых плоскостей nbp, хранимых для группы, соответствующей указанному коду, причем указанное количество битовых плоскостей равно

nbP=ri+predi’;

f) предоставления последовательности n m-битовых слов, имеющих все битовые плоскости от t+1 до m в нуле в наборе декомпрессированных данных, если указанное количество битовых плоскостей nbp равно нулю;

g) предоставления последовательности n m-битовых слов, имеющих битовые плоскости от t+1 до t+nbp, извлеченные из последующих n-битовых битовых плоскостей из набора сжатых по величине данных, и имеющих битовые плоскости от t+1+nbp до m, равные нулю, если указанное количество битовых плоскостей nbp отличается от нуля;

h) замены predi’ на nbp, если режим прогнозирования горизонтальный; замены previ=nbp;, если режим прогнозирования вертикальный;

i) повторения этапов b)-g) для последовательных кодов и битовых плоскостей, пока не будут использованы все коды в наборе сжатых метаданных.

На этапе d) остаток ri может быть выполнен посредством фактического выполнения этапов d(1) и d(2) или посредством других эквивалентных способов, таких как алгоритм или формула поиска.

[0016] Когда сжатие было выполнено в соответствии с указанным предпочтительным вариантом осуществления настоящего изобретения с вертикальным прогнозированием, в способе декомпрессии этих двух или более наборов вводных данных для первой строки второго набора данных можно преимущественно принять в качестве предиктора predi’ соответствующее значение previ, полученное для последней строки первого набора данных.

[0017] В способе сжатия и в способе декомпрессии согласно настоящему изобретению pred_init может быть равен нулю или равен int(m/2).

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

• набор сжатых метаданных, содержащий последовательность энтропийно кодированных кодов, и

• набор сжатых по величине данных, содержащий битовые плоскости коэффициентов.

[0019] Согласно четвертому аспекту настоящего изобретения предусмотрено устройство для сжатия набора вводных данных, содержащего последовательность М коэффициентов, причем каждый коэффициент имеет m битов, кодирующих величину, в набор сжатых данных, содержащий набор сжатых по величине данных, и набор сжатых метаданных, содержащее по меньшей мере одно из логической схемы, ASIC, FPGA, GPU и CPU, выполненных с возможностью выполнения этапов способа сжатия согласно настоящему изобретению.

[0020] Согласно пятому аспекту настоящего изобретения предусмотрено устройство для декомпрессии набора сжатых данных, содержащего данные, представляющие параметры сжатия, причем указанные параметры сжатия содержат значения М, m, n, t, тип квантования, режим сопоставления, представляющий собой либо «сначала отрицательное», либо «сначала положительное», тип энтропийного кодирования и режим прогнозирования, и содержащего набор сжатых метаданных, содержащий последовательность подвергнутых кодированию Райса кодов, и набор сжатых по величине данных, содержащий битовые плоскости коэффициентов, в набор декомпрессированных данных, содержащий последовательность коэффициентов, причем каждый коэффициент имеет m битов, кодирующих величину, причем указанный набор сжатых данных можно получить посредством способа сжатия согласно настоящему изобретению, в набор декомпрессированных данных, причем указанный набор декомпрессированных данных содержит последовательность М коэффициентов, причем каждый коэффициент имеет m битов, кодирующих величину, и содержащее по меньшей мере одно из логической схемы, ASIC, FPGA, GPU и CPU, выполненных с возможностью выполнения этапов способа декомпрессии согласно настоящему изобретению.

Краткое описание графических материалов

[0021] На фиг. 1 изображено схематическое изображение потока данных между устройством для сжатия и устройством для декомпрессии согласно настоящему изобретению;

[0022] на фиг. 2 схематически изображены два набора вводных данных и то, каким образом выполняется вертикальное прогнозирование на границе двух наборов данных, а также остаток в функции GCLI, без квантования.

[0023] На фиг. 3 изображен график, представляющий остаток в функции GCLI без квантования.

[0024] На фиг. 4 изображен график, представляющий остаток в функции GCLI с квантованием.

[0025] На фиг. 5 и 6 изображены графики, представляющие сопоставление между остатками и кодом, начиная с сопоставления сначала отрицательного значения и сначала положительного значения соответственно, в случае, когда |rmin| меньше чем rmax.

[0026] На фиг. 7 и 8 изображены графики, представляющие сопоставление между остатками и кодом, начиная с сопоставления сначала отрицательного значения и сначала положительного значения соответственно, в случае, когда |rmin| больше чем rmax.

[0027] На фиг. 9 изображены результаты, полученные для разных изображений и разных вариантов осуществления настоящего изобретения.

[0028] Графические материалы фигур выполнены не в масштабе и без соблюдения пропорций.

Подробное описание вариантов осуществления изобретения

[0029] На фиг. 1 изображено схематическое изображение потока данных между устройством для сжатия и устройством для декомпрессии согласно настоящему изобретению. Набор вводных данных может содержать последовательность М коэффициентов, каждый из которых имеет m битов, кодирующих величину. Набор вводных данных может представлять отображаемое изображение, имеющее несколько строк и столбцов, или преобразование отображаемого изображения, такое как поддиапазоны вейвлет-преобразования изображения. Устройство для сжатия обрабатывает набор вводных данных и выдает набор сжатых данных. Набор сжатых данных может содержать набор сжатых по величине данных и набор сжатых метаданных. Кроме того, устройство для сжатия может выдавать набор параметров сжатия. Эти параметры сжатия могут включать:

- М - количество коэффициентов в наборе вводных данных;

- m - количество битов в величине коэффициентов в наборе вводных данных;

- n - фактор группировки;

- t - уровень квантования;

- тип квантования;

- режим сопоставления, представляющий собой либо «сначала отрицательное», либо «сначала положительное»;

- количество строк и столбцов отображаемого изображения, если набор вводных данных представляет отображаемое изображение;

- количество строк и поддиапазон, если последовательность пикселей представляет собой декорреляционное преобразование отображаемого изображения;

- режим прогнозирования, которое может представлять собой горизонтальное или вертикальное прогнозирование;

- начальный предиктор pred_init, используемый, когда нет предшествующего GCLI, доступного для определения предиктора;

- способ определения начальных значений предикторов;

- режим энтропийного кодирования;

- значение параметра к кодирования Райса, если энтропийное кодирование является кодированием Райса; и

- режим ограничения, являющийся одним из

- ограниченного минимумом;

- ограниченного минимумом/максимумом;

- ограниченного максимумом;

- неограниченного.

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

[0030] В приведенной ниже таблице 1 приведен пример последовательности М=12 коэффициентов, причем каждый коэффициент имеет m=15 битов величины, сгруппированных в три группы из n=4 коэффициентов. Для каждой группы представлен GCLI, причем GCLI представляет собой индекс наибольшей кодовой строки, т.е. индекс ненулевого бита с наибольшим весом среди битов величины коэффициентов в указанной группе. Представлено простое квантование, где t=4 наименьших битовых плоскостей коэффициентов усекаются, то есть уровень квантования t равен 4.

GCLI трех последовательных групп равны 8, 7 и 3. Если использовать метод прогнозирования и заменить GCLI остатком, заданным уравнением 1

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

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

Как видно из этого примера, остатки ri имеют меньшие значения. Количество битовых плоскостей, которые должны быть переданы, nbp, т.е. количество битовых плоскостей над пунктирной линией в таблице I, равно GCLI-t, когда GCLI > t, и равно нулю, если GCLI < t.

[0031] Таблица III представляет собой пример, показывающий обработку последовательности коэффициентов, сгруппированных в семь групп, дающих семь GCLI. Уровень квантования t равен 6. В кодере начальный предиктор для первой группы принимается как pred_init=0. Последующие предикторы принимаются как GCLI предыдущей группы в последовательности GCLIi-1. Этот режим прогнозирования применяется в общем случае и в случае, когда набор вводных данных представляет изображение и используется режим горизонтального прогнозирования. Остатки ri вычисляются в соответствии с уравнением 2. nbp битовых плоскостей копируется из квантованных коэффициентов в набор сжатых по величине данных. Последовательность остатков и битовых плоскостей передается в декодер.

В декодере исходный предиктор для первой группы принимается так же, как и в кодере (в примере predi_init=0). Количество битовых плоскостей nbp вычисляется с использованием уравнения 3.

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

Таблица III

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

Таблица IV показывает пример, аналогичный примеру таблицы III, но с применением вертикального прогнозирования. Строка 1 GCLI обрабатывается с учетом предыдущей строки 1-1. Предиктор pred; определяется следующим образом:

IF GCLIi(l-1) < t THEN predi = 0 ELSE predi = GCLIi(l-1)

Остатки вычисляются в соответствии с уравнением 2.

В декодере набор GCLI, соответствующих квантованным коэффициентам предыдущей строки (строки 1-1), хранится в буфере для использования при обработке строки 1. Предиктор pred’i вычисляется в соответствии с

а количество битовых плоскостей вычисляется в соответствии с уравнением 3. GCLI для текущей строки равны количеству битовых плоскостей nbp,i и сохранены для использования последующей строкой. Для первой строки набора данных используется строка, инициализированная до значений pred_init.

[0033] Когда вводные данные представляют изображения и содержат два или более наборов вводных данных, и когда последняя строка первого набора данных находится непосредственно над первой строкой второго набора данных, эти два набора данных могут обрабатываться независимо с инициализацией предикторов первых строк, как обсуждалось в предыдущем абзаце. Однако в предпочтительном варианте осуществления настоящего изобретения последняя строка первого набора данных может использоваться в качестве предиктора для первой строки второго набора данных. Особая ситуация возникает, когда уровень квантования t1 первого набора данных отличается от уровня квантования t2 второго набора данных. На фиг 2 представлена ситуация, когда первый набор данных квантуется с уровнем квантования t1. Последняя строка первого набора данных (строка l-1) содержит группу 11, имеющую GCLI g1. Второй набор 20 данных содержит первую строку (строку 1), имеющую GCLI g2, непосредственно ниже группы g1. Таблица V представляет собой пример, в котором первый набор данных имеет уровень квантования t1=10, второй набор данных имеет уровень квантования t2=6. Различия относительно случая, представленного на таблице IV, заключаются в том, что в кодере предиктор определяется следующим образом:

где t1 используется вместо t. В декодере предиктор берется из элемента previ последней строки первого набора данных.

[0034] На фиг. 3 изображен график, представляющий остаток в функции GCLI, заданный уравнением 1, без квантования, для двух значений предиктора pred=2 и pred=8. Количество возможных значений остатка равно количеству значений GCLI. Если предиктор является надлежащим предиктором, то остаток близок или равен нулю.

[0035] На фиг. 4 представлен график, представляющий остаток в функции возможных значений GCLI между 0 и 15 (или, в более общем случае, m) с квантованием, при этом уровень квантования t равен 4, как задано уравнением 2. Для pred=8 остаток имеет нижнюю границу rmin, равную -4. Для pred=2 остаток имеет нижнюю границу rmin, равную 0. Верхние границы rmax такие же, как и на фиг.3, rmax=13. Также представлен график для случая t=l, pred=8. Нижняя граница rmin равна нулю, а верхняя граница rmax равна 5.

Общие выражения нижних границ rmin и верхних границ rmax остатков задаются уравнениями

и

Диапазон значений остатков после квантования уменьшается относительно диапазона значений без квантования.

[0036] Согласно изобретению значения остатков могут быть сопоставлены с неотрицательными целыми числами С.Это проиллюстрировано на фиг.5, 6, 7 и 8. Остатки между rmin и rmax могут быть сопоставлены с диапазоном неотрицательных целых чисел путем сопоставления значения r=0 с С=0, а затем сопоставления r=-1 с С=1, r=1 с С=2, r=-2 с С=3 и т.д. Это представлено квадратными отметками на фиг. 5-8. На фиг. 5 и 7 отрицательное значение r=-1 сперва сопоставляется с С=1 (сопоставление «сначала отрицательное»). На фиг. 6 и 8 положительное значение r=1 сперва сопоставляется с С=1 (сопоставление «сначала положительное»). На фиг. 5 и 6 изображены графики, представляющие ситуацию, когда m=15, pred=8, и t=4. Значение rmax больше абсолютного значения rmin. Возможные значения GCLI находятся в диапазоне от 0 до 15. Таким образом, наиболее вероятные значения r, т.е. значения r около нуля, сопоставляются с наименьшими значениями С. С может затем эффективно кодироваться, как будет обсуждаться ниже. На фиг. 7 и 8 изображены графики, представляющие ситуацию, когда m=15, pred=12, и t=2.

[0037] Согласно предпочтительному варианту осуществления настоящего изобретения сопоставление остатков с неотрицательным целым числом С может быть улучшено с учетом того, что, когда rmax больше, чем |rmin|, диапазон значений С может быть уменьшен посредством сопоставления остатков выше rmin с последовательными значениями С (а не с шагом, равным 2). Это называется способом «ограниченного С» и представлено на фиг. 5 и фиг. 6 круглыми отметками. Значение С достигает максимума, равного 11, вместо максимума, равного 14, для случая «сначала отрицательное» (фиг. 5) и вместо максимума, равного 13, для случая «сначала положительное» (фиг. 6). Аналогичные результаты могут быть получены, когда rmax меньше, чем |rmin|, как проиллюстрировано круглыми отметками на фиг. 7 и 8. Значение С достигает максимума, равного 13, вместо максимума, равного 19, для случая «сначала отрицательное» (фиг. 7) и вместо максимума, равного 20, для случая «сначала положительное» (фиг. 8). Следовательно, максимальное значение С ограничено по отношению к значению С без использования способа «ограниченного С». 8 опции «ограничен минимумом» значения кодов С для остатков, заключенных между триггером и rmax, если они есть, меньше, чем без способа «ограниченного С».

В опции «ограничен максимумом» значения кодов С для остатков, заключенных между -триггером и rmin, если они есть, меньше, чем без способа «ограниченного С». В опции «ограничен минимумом/максимумом» значения кодов С для остатков, заключенных между -триггером и rmin, если они есть, и остатков, заключенных между триггером и rmax, если они есть, меньше, чем без способа «ограниченного С».

[0038] Коды С, соответствующие диапазону остатков, в соответствии с режимом сопоставления «сначала отрицательное» или «сначала положительное», могут быть получены посредством выполнения следующих этапов алгоритма сопоставления: Сначала определяются два следующих параметра:

Cfirst=-1 при режиме «сначала отрицательное», +1 при режиме «сначала положительное».

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

ограниченного минимумом;

ограниченного минимумом/максимумом;

ограниченного максимумом;

неограниченного. Триггер определяется следующим образом:

trigger = |rmin|, если ограничен минимумом,

trigger = MIN(|rmin|, rmax), если ограничен минимумом/максимумом,

trigger = rmax, если ограничен максимумом,

trigger = m, если неограничен.

Затем код С может быть вычислен посредством выполнения следующих этапов:

IF |r| <= trigger THEN

IF r*Cfirst >0 THEN

C=2*|r| - 1

ELSE C=2*|r|

ELSE С = trigger+|r|

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

Режим ограничения «ограничен минимумом/максимумом» не дает существенного преимущества по сравнению со способом ограничения, принадлежащим режиму ограничения «ограничен минимумом», и, таким образом, способ можно безопасно упростить посредством игнорирования rmax, если реализация этого предложит увеличение. Кроме того, сопоставление может быть получено из предварительно определенных таблиц поиска.

Обратное сопоставление является биективным, и, следовательно, его обратное сопоставление может быть выполнено в декодере.

В таблице VI ниже приведен пример восьми последовательных GCLI от 1 до 8 для групп коэффициентов, закодированных в m=15 битах. Уровень квантования равен t=4. Первоначальный предиктор для i=1 был выбран в виде int(m/2), т.е. 7. Для каждого последующего GCLI предиктор был определен в качестве предыдущего GCLI. Для каждого последующего GCLI остатки ri были вычислены согласно уравнению 2, a rmin и rmax, были определены согласно уравнениям 6 и 7 соответственно. Значения триггеров, в соответствии с различными опциями, были вычислены для каждого GCLI. В последней линии код С находился в варианте «ограничен минимумом» и являлся «сначала отрицательным». Каждый GCLI обрабатывается независимо от других GCLI в наборе вводных данных в зависимости от предиктора predi текущего GCLI.

В таблице VII приведено количество битов, необходимых для кодирования 8 кодов С в соответствии с различными режимами ограничения и режимами сопоставления.

Значение, выделенное жирным шрифтом, соответствует примеру, показанному в таблице VI. Можно увидеть, что вариант «сначала отрицательное» дает лучшие результаты. Режим ограничения «ограничен минимумом/максимумом» предоставляет лучшие результаты, но результаты режима «ограничен минимумом» также приемлемы.

[0039] Информация, которая подготавливается в кодере, т.е. битовые плоскости и коды С, кодирующие остатки, является таковой, что декодер может из принятых кодов С и восстановленного предиктора определить число битовых плоскостей nbp, подлежащих извлечению из набора сжатых по величине данных, для восстановления исходного набора квантованных данных. Триггер, используемый в кодере для кодирования остатка, не требуется в декодере и не передается в наборе сжатых метаданных. Декодер принимает значение С и имеет значение pred из предыдущего этапа или из pred_init. Из этих двух значений декодер может вычислять rmin и rmax в соответствии с уравнениями 6 и 7 соответственно. Зная о режиме сопоставления и режиме ограничения, декодер вычисляет триггер. Затем декодер может вычислить код С, соответствующий всем значениям r между rmin и rmax в соответствии с вышеописанными этапами алгоритма сопоставления. Это создает таблицу, предоставляющую соответствие между значениями r, которые находятся в диапазоне от rmin до rmax, и соответствующими значениями С. Затем декодер получает значение r как значение, соответствующее С в этой таблице.

В примере таблицы VIII был принят код С=5 с предиктором, равным 7, и уровнем квантования t=4. Можно вычислить значения rmin и rmax и составить таблицу для всех возможных остатков между rmin и rmax. Код С для каждого из этих 11 значений r вычисляется и вставляется в таблицу. Значение принятого кода С=5 затем ищется в таблице для поиска соответствующего значения r, r=-3. Другими эквивалентными способами для выполнения декодирования кодов С являются такие способы, как (двоичный) поиск в таблице или формула.

[0040] Коды С, полученные для остатков в способе согласно настоящему изобретению, представляют собой неотрицательные целые числа. Если предиктор является точным предиктором, остатки будут представлять собой небольшие значения. Энтропийное кодирование используется для кодирования С в метаданных. Предпочтительным видом энтропийного кодирования для С является кодирование Райса. Кодирование Райса неотрицательного целого числа N в зависимости от параметра к выглядит следующим образом:

- делят N на 2k, и полученное частное является унарно закодированным;

- остаток деления двоично кодируется в к битах.

Примерные значения для N находятся в диапазоне от 0 до 10, и k=0, 1 и 2 представлены в таблице ниже:

Если k=0, то длина кода для N=0 составляет один бит.Следовательно, значение k=0 является предпочтительным значением для способа согласно настоящему изобретению, когда прогнозирование является точным, а значение 0 является частым среди остатков, которые подлежат кодированию. Однако, если точность прогнозирования не идеальна, могут возникнуть большие значения N, и может быть оптимальным большее значение k, такое как k=1 или 2, где для больших значений N требуется меньше битов. Кодирование Райса представляет собой код префикса. Следовательно, ни один код в наборе возможных кодов не является префиксом другого кода в наборе возможных кодов. Никаких специальных отметок между кодами не требуется, и декодер может четко извлечь последовательные коды из набора сжатых метаданных.

[0041] Этап квантования применяет набор значений 2m величин коэффициентов от 0 до 2m-1 к набору значений 2m-t от 0 до 2(m-t)-1. Простой способ выполнить это квантование состоит в удалении t битов с наименьшим весом неквантованных коэффициентов. Однако другие способы квантования могут быть использованы в настоящем изобретении.

[0042] На фиг. 9 изображены результаты, полученные для разных изображений и разных вариантов осуществления настоящего изобретения. Для каждого из 16 тестовых изображений гистограммы показывают PSNR (пиковое отношение сигнала к шуму) в отношении способа, в котором кодирование согласно настоящему изобретению не используется, но в котором остатки кодируются с использованием унарного кодирования, такого как в документе SMPTE RDD 35:2016. Гистограммы представляют последовательно

• случай, когда используется только граница |rmin| с режимом сопоставления «сначала отрицательное» (min_neglst);

• случай, когда используется только граница |rmin| с режимом сопоставления «сначала положительное» (min_poslst);

• случай, когда используются обе границы |rmin| и rmax с режимом сопоставления «сначала отрицательное» (minmax_neglst);

• случай, когда используются обе границы |rmin| и rmax с режимом сопоставления «сначала положительное» (minmax_poslst);

• случай, когда не используется ни одна из границ |rmin| или rmax, с режимом сопоставления «сначала отрицательное» (no_minmax).

Эти результаты показывают, что использование обеих границ |rmin| и rmax обеспечивает очень небольшое улучшение по сравнению с использованием только границы |rmin|. В обоих случаях использование режима сопоставления «сначала отрицательное» значительно лучше, чем использование режима сопоставления «сначала положительное».

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

1. Способ сжатия, в соответствии с параметрами сжатия, одного или более набора входных данных, причем указанный один или более набор входных данных содержит последовательность из М коэффициентов, где каждый коэффициент имеет m битов, кодирующих величину, находящуюся в диапазоне от 0 до 2m-1, с получением одного или более соответствующих наборов сжатых данных, каждый из которых содержит набор сжатых данных величины и набор сжатых метаданных, при этом указанные параметры сжатия содержат М, m, n, t, режим сопоставления, представляющий собой либо «сначала отрицательное», либо «сначала положительное»; режим прогнозирования, который может быть горизонтальным или вертикальным прогнозированием; способ определения начальных значений предикторов pred_init; режим энтропийного кодирования; значение параметра к кодирования Райса, если энтропийное кодирование представляет собой кодирование Райса, и режим ограничения, представляющий собой один из следующих режимов: «ограничен минимумом», «ограничен минимумом/максимумом», «ограничен максимумом» и «неограничен», включающий для указанного одного или более набора входных данных:

A) группирование коэффициентов в одну или более последовательных групп из n коэффициентов, где фактор n группировки больше или равен 2, при этом каждая группа коэффициентов имеет m битовых плоскостей величины для различных весов коэффициентов;

B) для каждой группы i коэффициентов

a) определение значения наибольшего индекса кодовой строки (Greatest Coded Line Index, GCLI), причем GCLIi представляет собой индекс ненулевого бита с наибольшим весом среди битов величины для коэффициентов в указанной группе i, при этом индекс отсчитывают от 1 для наименее значимого бита до m для наиболее значимого бита, причем GCLI равен нулю для группы, в которой все коэффициенты равны нулю;

b) выполнение квантования таким образом, чтобы квантованные коэффициенты находились в диапазоне от 0 до 2(m-t)-1, предоставляя n квантованных коэффициентов, где t является уровнем квантования;

c) если GCLIi≥t+1,

для каждой битовой плоскости указанной группы

копирование битовых плоскостей, имеющих вес квантованных коэффициентов от 1 до GCLIi-t, в набор сжатых данных величины;

d) отсутствие действий, если GCLIi≤t,

e) вычисление предиктора predi значения GCLIi как функции значений GCLI одной или более групп предшествующих коэффициентов в указанной последовательности коэффициентов, при этом предиктор predi равен pred_init для первой группы коэффициентов указанной последовательности коэффициентов;

f) вычисление остатка ri как

ri=max(GCLIi-t, 0) - max(predi-t, 0);

g) сопоставление остатка ri коду, выполняемое путем

(1) вычисления rmin, представляющего собой наименьшее значение остатков для всех возможных значений GCLIi, как

rmin=-max(predi-t, 0);

(2) вычисления rmax, представляющего собой наибольшее значение остатков для всех возможных значений GCLIi, как

rmax=max(m-max(predi, t), 0);

(3) вычисления

Cfirst=-1, если режим сопоставления представляет собой «сначала отрицательное»,

Cfirst=+1, если режим сопоставления представляет собой «сначала положительное»;

(4) вычисления

trigger=|rmin|, если режим ограничения представляет собой «ограничен минимумом»;

trigger=MIN(|rmin|, rmax), если режим ограничения представляет собой «ограничен минимумом/максимумом»;

trigger=rmax, если режим ограничения представляет собой «ограничен максимумом»;

trigger=m, если режим ограничения представляет собой «неограничен»;

(5) IF |ri|<=trigger THEN

IF ri*Cfirst>0 THEN,

C=2*|ri|-1,

ELSE С=2*|ri|,

ELSE С=trigger+|ri|,

h) обеспечение энтропийного кодирования кода С согласно режиму энтропийного кодирования и копирование указанного кодирования в набор сжатых метаданных.

2. Способ по п. 1, в котором указанное энтропийное кодирование представляет собой кодирование Райса, где k=0, 1 или 2.

3. Способ по п. 1, в котором указанное энтропийное кодирование представляет собой кодирование Райса, где k=0.

4. Способ по любому из предыдущих пунктов, в котором n больше 2 и меньше 8, или равно 8, или равно 4.

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

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

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

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

9. Способ по п. 7, в котором на этапе В(е), указанный предиктор predi значения GCLIi представляет собой GCLI группы пикселей в том же столбце предыдущей строки пикселей, если указанный GCLI больше t, и равен нулю, если указанный GCLI меньше или равен t, являясь pred_init для групп пикселей первой строки пикселей, причем режим прогнозирования представляет собой режим вертикального прогнозирования.

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

при этом предиктор для группы пикселей первой строки пикселей второго набора входных данных равен GCLI группы пикселей последней строки пикселей в том же столбце первого набора входных данных, если указанный GCLI>t1, и равен нулю, если указанный GCLI≤t1.

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

a) инициализация предиктора predi' значением pred_init; а если режим прогнозирования является вертикальным, то инициализация previ строки значений GCLI значением pred_init;

b) извлечение кода ci из указанного набора сжатых метаданных;

c) если режим прогнозирования вертикальный, то вычисление predi'=previ;

d) получение остатка ri, соответствующего указанному коду ci, причем соответствие получают посредством

(1) выполнения этапов B(g) способа по п. 1 для всех значений r в диапазоне от rmin до rmax с получением таблицы и

(2) получения остатка ri, соответствующего указанному коду cii, из указанной таблицы;

e) вычисление количества битовых плоскостей nbp, хранимых для группы, соответствующей указанному коду, как nbp=ri+predi';

f) если указанное количество битовых плоскостей nbp равно нулю, предоставление последовательности из n m-битовых слов, имеющих все битовые плоскости от t+1 до m, равные нулю, в наборе декомпрессированных данных;

g) если указанное количество битовых плоскостей nbp отличается от нуля, предоставление последовательности из n m-битовых слов, имеющих битовые плоскости от t+1 до t+nbp, извлеченные из последующих n-битовых битовых плоскостей из набора сжатых данных величины, и имеющих битовые плоскости от t+1+nbp до m, равные нулю;

h) замена predi' на nbp, если режим прогнозирования горизонтальный; замена previ=nbp, если режим прогнозирования вертикальный;

i) повторение этапов (b)-(g) для последовательных кодов и битовых плоскостей, пока не будут использованы все коды в наборе сжатых метаданных.

12. Способ по п. 11 для декомпрессии двух или более наборов входных данных, полученных согласно способу по п. 10, при этом для первой строки второго набора данных в качестве предиктора predi' принимают соответствующее значение previ, полученное для последней строки первого набора данных.

13. Способ по любому из пп. 1-12, в котором pred_init равен нулю или равен int(m/2).

14. Устройство для сжатия набора входных данных, содержащего последовательность из М коэффициентов, где каждый коэффициент имеет m битов, кодирующих величину, с получением набора сжатых данных, содержащего набор сжатых данных величины и набор сжатых метаданных, содержащее по меньшей мере одно из логической схемы, интегральной схемы специального назначения (Application-Specific Integrated Circuit, ASIC), программируемой пользователем вентильной матрицы (Field-Programmable Gate Array, FPGA), графического процессора (Graphics Processing Unit, GPU) и центрального процессора (Central Processing Unit, CPU), выполненных с возможностью выполнения этапов способов по любому из пп. 1-10.

15. Устройство для декомпрессии набора сжатых данных, содержащего набор сжатых метаданных, содержащий последовательность подвергнутых кодированию Райса кодов, и набор сжатых данных величины, содержащий битовые плоскости коэффициентов, причем указанный набор сжатых данных может быть получен посредством способа по любому из пп. 1-10, с получением набора декомпрессированных данных, который содержит последовательность из М коэффициентов, где каждый коэффициент имеет m битов, кодирующих величину, содержащее по меньшей мере одно из логической схемы, ASIC, FPGA, GPU и CPU, выполненных с возможностью выполнения этапов способа по любому из пп. 11-13.



 

Похожие патенты:

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

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

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

Изобретение относится к области вычислительной техники для обработки изображений. Технический результат заключается в повышении эффективности предсказания видеоданных.

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

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

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

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

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

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

Изобретение относится к кодированию изображений. Технический результат - снижение сложности и повышение эффективности кодирования.
Наверх