Способ и устройство для сжатия цифровых данных
METHOD AND DEVICE FOR DIGITAL DATA COMPRESSION

Область изобретения
[0001] Настоящее изобретение относится к способу сжатия набора вводных данных, содержащего последовательность коэффициентов, в набор сжатых данных и к способу декомпрессии указанного набора сжатых данных. Настоящее изобретение также относится к набору сжатых данных, к устройству для выполнения этого способа сжатия и к устройству для выполнения указанного способа декомпрессии.
Описание известного уровня техники
[0002] Сжатие данных требуется, когда необходимо передать или сохранить данные, для которых требуется большая скорость передачи данных или размер, чем у доступной ширины полосы канала связи или у емкости носителя для хранения. Это возможно, когда данные содержат значительное количество избыточности и некоторое количество деталей, которые могут быть удалены без ущерба для цели передачи. Считается, что сжатие происходит без потерь, когда данные не изменяются в результате цикла сжатия-декомпрессии, и, следовательно, являются идентичными на излучателе и приемном устройстве. Однако обычно невозможно гарантировать сжатие без потерь, поскольку оно зависит от внутренних характеристик данных, в которых избыточность и возможность удалить ее с помощью одного только умного кодирования не всегда могут привести к достаточному снижению скорости передачи данных или стоимости данных. В таком случае требуется схема сжатия с потерями, и кодер сокращает информацию, хранимую в данных, посредством квантования, чтобы гарантировать требуемый размер набора сжатых данных за счет качества.
В документе SMPTE Registered Disclosure Document SMPTE RDD 35:2016, 24 марта 2016 г., стр. 1-53, ХР 055366991, описан поток битов схемы сжатия видео TICO, процесс декодирования и условия для сопоставления потоков битов в IP-сети. В этом процессе остатки получают и кодируют с использованием унарного кодирования.
В документе WO 03/092286 описан адаптивный способ и система для сопоставления значений параметров с индексами кодового слова. Этот способ требует этапа сортировки различий или параметров по меньшей мере на первую группу и вторую группу. Это требует дополнительной буферизации и обработки в кодере и в декодере. Это также добавляет задержку к процессу.
2
[0003] В документе ЕР 2773122 А1, также относящемся к схеме сжатия видео TICO, описывается способ и устройство для сжатия данных без потерь, в которых осуществляется группирование указанных данных на группы из n слов по m битов; определяется для каждой группы значение наибольшего индекса кодовой строки (GCLI), причем GCLI представляет собой индекс ненулевого бита с наибольшим весом среди битов слов в группе; создается для каждой группы набор выводимых данных, содержащий биты GCLI с наименьшим весом слов группы и метаданные, содержащие значение GCLI. Этот способ очень прост в реализации и очень эффективен, особенно в случае, когда многие данные имеют небольшие значения. Значения GCLI находятся в диапазоне от нуля, когда все слова группы равны нулю, до m, когда по меньшей мере одно слово в группе имеет бит с весом m, равным 1. Следовательно, для двоичного кодирования GCLI требуется [Log(m)] битов, где [х] представляет собой наименьшее целое число, превышающее х. В этом документе также предлагается усовершенствование, в котором заменяют GCLI в наборе выводимых данных разностью между значением GCLI и прогнозируемым значением GCLI. Таким образом, значения, которые должны быть закодированы, меньше, и унарное кодирование может потребовать меньше места, чем двоичное кодирование GCLI. Однако оказалось, что даже при использовании указанного улучшения, кодирование GCLI может представлять значительный объем в наборе сжатых данных, особенно когда многие коэффициенты становятся равными нулю. Кроме того, в этом документе не рассматривается необходимость квантования, когда размер набора сжатых данных превышает содержимое данных и необходимо выполнить сжатие с потерями. Следовательно, существует потребность в способе сжатия набора вводных данных, который прост в реализации, требует меньше места для кодирования метаданных, содержащих GCLI, и решает проблему квантования.
Сущность изобретения
[0004] Целью настоящего изобретение является решение вышеупомянутых задач. В частности, цель настоящего изобретения состоит в том, чтобы предоставить способ и устройство для сжатия и декомпрессии, имеющие низкую сложность, в которых содержимое данных, требуемое для метаданных, уменьшено.
[0005] Настоящее изобретение определено в независимых пунктах формулы изобретения. Зависимые пункты формулы изобретения определяют предпочтительные варианты осуществления.
m
[0006] Согласно первому аспекту настоящего изобретения предложен способ сжатия в соответствии с параметрами сжатия одного или нескольких наборов вводных данных, причем указанный или каждый из наборов вводных данных содержит последовательность М коэффициентов, причем каждый коэффициент имеет m битов, кодирующих величину в диапазоне от 0 до 2 -1 в один или несколько соответствующих наборов сжатых данных, каждый из которых содержит набор сжатых по величине данных, и набор сжатых метаданных, при этом указанные параметры сжатия могут включать М, m, n, t, тип квантования, режим сопоставления, представляющий собой либо «сначала отрицательное», либо «сначала положительное»; количество строк и столбцов отображаемого изображения, если набор вводных данных представляет отображаемое изображение; количество строк поддиапазона, если последовательность пикселей представляет собой декорреляционное преобразование отображаемого изображения; режим прогнозирования, который может представлять горизонтальное или вертикальное прогнозирование; способ определения начальных значений предикторов; режим энтропийного кодирования; значение параметра k кодирования Райса, если энтропийное кодирование представляет собой кодирование Райса, и режим ограничения, включающий для указанного или каждого набора вводных данных этапы:
A. группирования коэффициентов в одну или несколько последовательных групп из n коэффициентов, причем фактор группировки n больше или равен 2, при этом каждая группа коэффициентов имеет m битовых плоскостей величины для различных весов коэффициентов;
B. для каждой группы i коэффициентов
а) определения значения наибольшего индекса кодовой строки (GCLI), причем GCLI; представляет собой индекс ненулевого бита с наибольшим весом среди битов величины коэффициентов в указанной группе i, при этом индекс отсчитывают от 1 для наименее значимого бита до m для наиболее значимого бита, причем GCLI равен нулю для группы, в которой все коэффициенты равны нулю;
(m-t)
b) выполнения квантования таким образом, чтобы квантованные коэффициенты находились в диапазоне от 0 до 2-1, предоставляя n квантованных коэффициентов, где t является уровнем квантования;
i
i
c) копирования, для каждой битовой плоскости указанной группы, битовых плоскостей, имеющих вес от 1 до GCLI-t квантованных коэффициентов, в набор сжатых по величине данных, если GCLI ≥ t+1;
i
d) отсутствия действий, если GCLI ≤ t,
i
i
i
e) вычисления предиктора pred GCLI в функции GCLI одной или нескольких групп предшествующих коэффициентов в указанной последовательности коэффициентов, причем предиктор pred равен pred_init, для первой группы коэффициентов указанной последовательности коэффициентов;
i
f) вычисления остатка r
i
i
i
r=max(GCLI-t, 0) - max(pred-t, 0);
i
g) сопоставления остатка r с кодом, причем указанное сопоставление можно получить путем выполнения этапов
min
(1) вычисления r, представляющего наименьшее значение остатков для всех возможных значений GCLIi, равного
min
i
r=-max(pred-t, 0);
max
(2) вычисления r, представляющего наибольшее значение остатков для всех возможных значений GCLIi, равного
max
i
r = max(m-max(pred,t), 0);
first
(3) вычисления C=-1, если режим сопоставления представляет собой «сначала отрицательное», и +1, если режим сопоставления представляет собой «сначала положительное»;
(4) вычисления
min
- trigger = |r|, если режим ограничения представляет собой «ограничен минимумом»;
min
max
- trigger = MIN(|r|, r), если режим ограничения представляет собой «ограничен минимумом/максимумом»;
max
- trigger = r, если режим ограничения представляет собой «ограничен максимумом»;
- trigger = m, если режим ограничения представляет собой «неограничен»;
(5) IF |r| <= trigger THEN
first
IF r*C >0 THEN
C=2*|r| - 1
ELSE C=2*|r|
ELSE С=trigger+|r|,
h) обеспечения энтропийного кодирования кода С и копирования указанного кодирования в набор сжатых метаданных.
[0007] Предпочтительно указанное энтропийное кодирование представляет собой кодирование Райса, где k=0, 1 или 2. Более предпочтительно k=0.
[0008] Предпочтительно n меньше или равно 8 или равно 4.
[0009] Указанное квантование может преимущественно выполняться путем удаления t наименьших битовых плоскостей групп коэффициентов.
[0010] Указанный набор вводных данных может быть получен путем выполнения декорреляционного преобразования для недекоррелированного набора вводных данных.
[0011] Указанная последовательность М коэффициентов может соответствовать последовательности пикселей одной или нескольких строк отображаемого изображения, содержащего строки и столбцы пикселей, или одной или нескольких строк поддиапазона декорреляционного преобразования отображаемого изображения, содержащего строки и столбцы пикселей.
i
i
[0012] Согласно варианту осуществления настоящего изобретения с горизонтальным прогнозированием на этапе В.е) указанный предиктор pred GCLIпредставляет собой GCLI предыдущих групп коэффициентов в последовательности коэффициентов, являясь pred_init для первой группы коэффициентов в последовательности коэффициентов.
i
i
[0013] Согласно варианту осуществления настоящего изобретения с вертикальным прогнозированием, на этапе В.е) указанный предиктор pred GCLI представляет собой GCLI группы пикселей в том же столбце предыдущей строки пикселей, если указанный GCLI больше чем t, и равен нулю, если указанный GCLI меньше или равен t, являясь pred_init для групп пикселей первой строки пикселей.
1
2
[0014] В предпочтительном варианте осуществления способа сжатия согласно настоящему изобретению с вертикальным прогнозированием указанные один или несколько наборов вводных данных содержат по меньшей мере два набора вводных данных, причем первый набор вводных данных имеет уровень квантования t, второй набор вводных данных имеет уровень квантования t, при этом последняя строка пикселей первого набора вводных данных расположена над первой строкой пикселей второго набора вводных данных, в отображаемом изображении, при этом предиктор для группы пикселей первой строки пикселей второго набора вводных данных равен GCLI группы пикселей на последней строке пикселей в том же столбце первого набора вводных данных, если указанный GCLI > t1, и равен нулю, если указанный GCLI ≤ t1.
[0015] Согласно второму аспекту настоящего изобретения предоставлен способ декомпрессии в соответствии с параметрами сжатия одного или нескольких наборов сжатых данных, каждый из которых содержит набор сжатых метаданных, содержащий последовательность энтропийно кодированных кодов с;, и набор сжатых по величине данных, содержащий битовые плоскости коэффициентов, которые можно получить посредством способа по первому аспекту настоящего изобретения с теми же параметрами сжатия, в один или несколько соответствующих наборов декомпрессированных данных, каждый из которых содержит последовательность коэффициентов, причем каждый коэффициент имеет m битов, кодирующих величину, включающий этапы:
i
a) инициализации предиктора pred’ до pred_init;
если режим прогнозирования является вертикальным, то инициализации строки GCLI prev; до pred_init;
i
b) извлечения кода c из указанного набора сжатых метаданных;
i
i
c) если режим прогнозирования вертикальный, то вычисления pred’=prev;
i
i
d) получения остатка r, соответствующего указанному коду c, причем соответствие можно получить посредством выполнения этапов
min
max
(1) выполнения этапов B.g) первого аспекта настоящего изобретения для всех значений r в диапазоне от r до r, предоставляя таблицу;
i
i
(2) получения остатка r, соответствующего указанному коду ci, из указанной таблицы;
bp
e) вычисления количества битовых плоскостей n, хранимых для группы, соответствующей указанному коду, причем указанное количество битовых плоскостей равно
bP
i
i
n=r+pred’;
bp
f) предоставления последовательности n m-битовых слов, имеющих все битовые плоскости от t+1 до m в нуле в наборе декомпрессированных данных, если указанное количество битовых плоскостей n равно нулю;
bp
bp
g) предоставления последовательности n m-битовых слов, имеющих битовые плоскости от t+1 до t+n, извлеченные из последующих n-битовых битовых плоскостей из набора сжатых по величине данных, и имеющих битовые плоскости от t+1+nbp до m, равные нулю, если указанное количество битовых плоскостей n отличается от нуля;
i
bp
i
bp;
h) замены pred’ на n, если режим прогнозирования горизонтальный; замены prev=n, если режим прогнозирования вертикальный;
i) повторения этапов b)-g) для последовательных кодов и битовых плоскостей, пока не будут использованы все коды в наборе сжатых метаданных.
i
На этапе d) остаток r может быть выполнен посредством фактического выполнения этапов d(1) и d(2) или посредством других эквивалентных способов, таких как алгоритм или формула поиска.
i
i
[0016] Когда сжатие было выполнено в соответствии с указанным предпочтительным вариантом осуществления настоящего изобретения с вертикальным прогнозированием, в способе декомпрессии этих двух или более наборов вводных данных для первой строки второго набора данных можно преимущественно принять в качестве предиктора pred’ соответствующее значение prev, полученное для последней строки первого набора данных.
[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 с квантованием.
min
max
[0025] На фиг. 5 и 6 изображены графики, представляющие сопоставление между остатками и кодом, начиная с сопоставления сначала отрицательного значения и сначала положительного значения соответственно, в случае, когда |r| меньше чем r.
min
max
[0026] На фиг. 7 и 8 изображены графики, представляющие сопоставление между остатками и кодом, начиная с сопоставления сначала отрицательного значения и сначала положительного значения соответственно, в случае, когда |r| больше чем r.
[0027] На фиг. 9 изображены результаты, полученные для разных изображений и разных вариантов осуществления настоящего изобретения.
[0028] Графические материалы фигур выполнены не в масштабе и без соблюдения пропорций.
Подробное описание вариантов осуществления изобретения
[0029] На фиг. 1 изображено схематическое изображение потока данных между устройством для сжатия и устройством для декомпрессии согласно настоящему изобретению. Набор вводных данных может содержать последовательность М коэффициентов, каждый из которых имеет m битов, кодирующих величину. Набор вводных данных может представлять отображаемое изображение, имеющее несколько строк и столбцов, или преобразование отображаемого изображения, такое как поддиапазоны вейвлет-преобразования изображения. Устройство для сжатия обрабатывает набор вводных данных и выдает набор сжатых данных. Набор сжатых данных может содержать набор сжатых по величине данных и набор сжатых метаданных. Кроме того, устройство для сжатия может выдавать набор параметров сжатия. Эти параметры сжатия могут включать:
- М - количество коэффициентов в наборе вводных данных;
- m - количество битов в величине коэффициентов в наборе вводных данных;
- n - фактор группировки;
- t - уровень квантования;
- тип квантования;
- режим сопоставления, представляющий собой либо «сначала отрицательное», либо «сначала положительное»;
- количество строк и столбцов отображаемого изображения, если набор вводных данных представляет отображаемое изображение;
- количество строк и поддиапазон, если последовательность пикселей представляет собой декорреляционное преобразование отображаемого изображения;
- режим прогнозирования, которое может представлять собой горизонтальное или вертикальное прогнозирование;
- начальный предиктор pred_init, используемый, когда нет предшествующего GCLI, доступного для определения предиктора;
- способ определения начальных значений предикторов;
- режим энтропийного кодирования;
- значение параметра k кодирования Райса, если энтропийное кодирование является кодированием Райса; и
- режим ограничения, являющийся одним из
- ограниченного минимумом;
- ограниченного минимумом/максимумом;
- ограниченного максимумом;
- неограниченного.
Эти параметры сжатия используются устройством для сжатия и устройством для декомпрессии. Некоторые из этих параметров могут быть переданы из устройства сжатия в устройство декомпрессии или могут быть зафиксированы и предварительно согласованы между устройством сжатия и устройством декомпрессии. Устройство для декомпрессии выдает набор декомпрессированных данных, схожий с наборов вводных данных, но с некоторой потерей качества из-за квантования.
[0030] В приведенной ниже таблице 1 приведен пример последовательности М=12 коэффициентов, причем каждый коэффициент имеет m=15 битов величины, сгруппированных в три группы из n=4 коэффициентов. Для каждой группы представлен GCLI, причем GCLI представляет собой индекс наибольшей кодовой строки, т.е. индекс ненулевого бита с наибольшим весом среди битов величины коэффициентов в указанной группе. Представлено простое квантование, где t=4 наименьших битовых плоскостей коэффициентов усекаются, то есть уровень квантования t равен 4.
GCLI трех последовательных групп равны 8, 7 и 3. Если использовать метод прогнозирования и заменить GCLI остатком, заданным уравнением 1
i
то будут получены меньшие значения, подлежащие кодированию. Кроме того, когда выполняется квантование, остаток r, необходимый устройству декомпрессии для декодирования данных, может быть вычислен как
i
i
Остаток r в соответствии с уравнением 2 предоставляет необходимую информацию декодеру, сохраняя кодируемые значения как можно меньшими. Предполагая, что предиктор выбран в качестве предыдущего GCLI в последовательности (горизонтальное прогнозирование) и что GCLI группы, предшествующей первому из примера, равен 7, остатки r имеют следующий вид:
i
bp
Как видно из этого примера, остатки r имеют меньшие значения. Количество битовых плоскостей, которые должны быть переданы, n, т.е. количество битовых плоскостей над пунктирной линией в таблице I, равно GCLI-t, когда GCLI > t, и равно нулю, если GCLI < t.
i-1
i
bp
[0031] Таблица III представляет собой пример, показывающий обработку последовательности коэффициентов, сгруппированных в семь групп, дающих семь GCLI. Уровень квантования t равен 6. В кодере начальный предиктор для первой группы принимается как pred_init=0. Последующие предикторы принимаются как GCLI предыдущей группы в последовательности GCLI. Этот режим прогнозирования применяется в общем случае и в случае, когда набор вводных данных представляет изображение и используется режим горизонтального прогнозирования. Остатки rвычисляются в соответствии с уравнением 2. n битовых плоскостей копируется из квантованных коэффициентов в набор сжатых по величине данных. Последовательность остатков и битовых плоскостей передается в декодер.
bp
В декодере исходный предиктор для первой группы принимается так же, как и в кодере (в примере predi_init=0). Количество битовых плоскостей n вычисляется с использованием уравнения 3.
bp
bp
Предиктор для последующей группы принимается как n текущей группы, что соответствует GCLI квантованных коэффициентов. GCLI’ коэффициентов набора декомпрессированных данных может быть получен путем добавления t к значениям n, когда они не равны нулю, и сохранения нулевого значения, когда они равны нулю. Как можно видеть, эти GCLI’ равны GCLI набора вводных данных, если GCLI набора вводных данных больше чем t, и равны нулю, если GCLI ≤ t, поскольку в этом случае все битовые плоскости коэффициентов были удалены, предоставляя нулевые коэффициенты в декодере.
Таблица III
[0032] Когда набор вводных данных соответствует последовательности пикселей одной или нескольких строк отображаемого изображения, содержащего строки и столбцы пикселей, или одной или нескольких строк поддиапазона декорреляционного преобразования отображаемого изображения, содержащего строки и столбцы пикселей, возможно вертикальное прогнозирование. Было отмечено, что вертикальное прогнозирование дает хорошие результаты.
Таблица IV показывает пример, аналогичный примеру таблицы III, но с применением вертикального прогнозирования. Строка 1 GCLI обрабатывается с учетом предыдущей строки 1-1. Предиктор pred; определяется следующим образом:
i
i
i
i
IF GCLI(l-1) < t THEN pred = 0 ELSE pred = GCLI(l-1)
Остатки вычисляются в соответствии с уравнением 2.
i
В декодере набор GCLI, соответствующих квантованным коэффициентам предыдущей строки (строки 1-1), хранится в буфере для использования при обработке строки 1. Предиктор pred’ вычисляется в соответствии с
bp,i
а количество битовых плоскостей вычисляется в соответствии с уравнением 3. GCLI для текущей строки равны количеству битовых плоскостей n и сохранены для использования последующей строкой. Для первой строки набора данных используется строка, инициализированная до значений pred_init.
1
2
1
1
2
1
1
2
[0033] Когда вводные данные представляют изображения и содержат два или более наборов вводных данных, и когда последняя строка первого набора данных находится непосредственно над первой строкой второго набора данных, эти два набора данных могут обрабатываться независимо с инициализацией предикторов первых строк, как обсуждалось в предыдущем абзаце. Однако в предпочтительном варианте осуществления настоящего изобретения последняя строка первого набора данных может использоваться в качестве предиктора для первой строки второго набора данных. Особая ситуация возникает, когда уровень квантования t первого набора данных отличается от уровня квантования t второго набора данных. На фиг 2 представлена ситуация, когда первый набор данных квантуется с уровнем квантования t. Последняя строка первого набора данных (строка l-1) содержит группу 11, имеющую GCLI g. Второй набор 20 данных содержит первую строку (строку 1), имеющую GCLI g, непосредственно ниже группы g. Таблица V представляет собой пример, в котором первый набор данных имеет уровень квантования t=10, второй набор данных имеет уровень квантования t=6. Различия относительно случая, представленного на таблице IV, заключаются в том, что в кодере предиктор определяется следующим образом:
1
i
где t используется вместо t. В декодере предиктор берется из элемента prev последней строки первого набора данных.
[0034] На фиг. 3 изображен график, представляющий остаток в функции GCLI, заданный уравнением 1, без квантования, для двух значений предиктора pred=2 и pred=8. Количество возможных значений остатка равно количеству значений GCLI. Если предиктор является надлежащим предиктором, то остаток близок или равен нулю.
min
min
max
max
min
max
[0035] На фиг. 4 представлен график, представляющий остаток в функции возможных значений GCLI между 0 и 15 (или, в более общем случае, m) с квантованием, при этом уровень квантования t равен 4, как задано уравнением 2. Для pred=8 остаток имеет нижнюю границу r, равную -4. Для pred=2 остаток имеет нижнюю границу r, равную 0. Верхние границы r такие же, как и на фиг.3, r=13. Также представлен график для случая t=l, pred=8. Нижняя граница r равна нулю, а верхняя граница rравна 5.
min
max
Общие выражения нижних границ r и верхних границ r остатков задаются уравнениями
и
Диапазон значений остатков после квантования уменьшается относительно диапазона значений без квантования.
min
max
max
min
[0036] Согласно изобретению значения остатков могут быть сопоставлены с неотрицательными целыми числами С. Это проиллюстрировано на фиг.5, 6, 7 и 8. Остатки между r и r могут быть сопоставлены с диапазоном неотрицательных целых чисел путем сопоставления значения 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. Значение r больше абсолютного значения r. Возможные значения GCLI находятся в диапазоне от 0 до 15. Таким образом, наиболее вероятные значения r, т.е. значения r около нуля, сопоставляются с наименьшими значениями С. С может затем эффективно кодироваться, как будет обсуждаться ниже. На фиг. 7 и 8 изображены графики, представляющие ситуацию, когда m=15, pred=12, и t=2.
max
min
min
max
min
max
[0037] Согласно предпочтительному варианту осуществления настоящего изобретения сопоставление остатков с неотрицательным целым числом С может быть улучшено с учетом того, что, когда r больше, чем |r|, диапазон значений С может быть уменьшен посредством сопоставления остатков выше r с последовательными значениями С (а не с шагом, равным 2). Это называется способом «ограниченного С» и представлено на фиг. 5 и фиг. 6 круглыми отметками. Значение С достигает максимума, равного 11, вместо максимума, равного 14, для случая «сначала отрицательное» (фиг. 5) и вместо максимума, равного 13, для случая «сначала положительное» (фиг. 6). Аналогичные результаты могут быть получены, когда r меньше, чем |r|, как проиллюстрировано круглыми отметками на фиг. 7 и 8. Значение С достигает максимума, равного 13, вместо максимума, равного 19, для случая «сначала отрицательное» (фиг. 7) и вместо максимума, равного 20, для случая «сначала положительное» (фиг. 8). Следовательно, максимальное значение С ограничено по отношению к значению С без использования способа «ограниченного С». 8 опции «ограничен минимумом» значения кодов С для остатков, заключенных между триггером и r, если они есть, меньше, чем без способа «ограниченного С».
min
min
max
В опции «ограничен максимумом» значения кодов С для остатков, заключенных между -триггером и r, если они есть, меньше, чем без способа «ограниченного С». В опции «ограничен минимумом/максимумом» значения кодов С для остатков, заключенных между -триггером и r, если они есть, и остатков, заключенных между триггером и r, если они есть, меньше, чем без способа «ограниченного С».
[0038] Коды С, соответствующие диапазону остатков, в соответствии с режимом сопоставления «сначала отрицательное» или «сначала положительное», могут быть получены посредством выполнения следующих этапов алгоритма сопоставления: Сначала определяются два следующих параметра:
first
C=-1 при режиме «сначала отрицательное», +1 при режиме «сначала положительное».
При использовании улучшения «ограниченный С» согласно настоящему изобретению выбирается режим ограничения, являющийся одним из
ограниченного минимумом;
ограниченного минимумом/максимумом;
ограниченного максимумом;
неограниченного. Триггер определяется следующим образом:
min
trigger = |r|, если ограничен минимумом,
min
max
trigger = MIN(|r|, r), если ограничен минимумом/максимумом,
max
trigger = r, если ограничен максимумом,
trigger = m, если неограничен.
Затем код С может быть вычислен посредством выполнения следующих этапов:
IF |r| <= trigger THEN
first
IF r*C >0 THEN
C=2*|r| - 1
ELSE C=2*|r|
ELSE С = trigger+|r|
Вариант «сначала отрицательное» вызывает больший интерес, поскольку он обеспечивает более короткие коды для всех значений ниже предиктора, что включает все значения, удаленные при квантовании. Это показано на фиг. 9, на которой относительное преимущество способов «сначала отрицательное» явно превосходит способы «сначала положительное».
max
Режим ограничения «ограничен минимумом/максимумом» не дает существенного преимущества по сравнению со способом ограничения, принадлежащим режиму ограничения «ограничен минимумом», и, таким образом, способ можно безопасно упростить посредством игнорирования r, если реализация этого предложит увеличение. Кроме того, сопоставление может быть получено из предварительно определенных таблиц поиска.
Обратное сопоставление является биективным, и, следовательно, его обратное сопоставление может быть выполнено в декодере.
i
min
max
i
В таблице VI ниже приведен пример восьми последовательных GCLI от 1 до 8 для групп коэффициентов, закодированных в m=15 битах. Уровень квантования равен t=4. Первоначальный предиктор для i=1 был выбран в виде int(m/2), т.е. 7. Для каждого последующего GCLI предиктор был определен в качестве предыдущего GCLI. Для каждого последующего GCLI остатки r были вычислены согласно уравнению 2, a r и r, были определены согласно уравнениям 6 и 7 соответственно. Значения триггеров, в соответствии с различными опциями, были вычислены для каждого GCLI. В последней линии код С находился в варианте «ограничен минимумом» и являлся «сначала отрицательным». Каждый GCLI обрабатывается независимо от других GCLI в наборе вводных данных в зависимости от предиктора pred текущего GCLI.
В таблице VII приведено количество битов, необходимых для кодирования 8 кодов С в соответствии с различными режимами ограничения и режимами сопоставления.
Значение, выделенное жирным шрифтом, соответствует примеру, показанному в таблице VI. Можно увидеть, что вариант «сначала отрицательное» дает лучшие результаты. Режим ограничения «ограничен минимумом/максимумом» предоставляет лучшие результаты, но результаты режима «ограничен минимумом» также приемлемы.
bp
min
max
min
max
min
max
[0039] Информация, которая подготавливается в кодере, т.е. битовые плоскости и коды С, кодирующие остатки, является таковой, что декодер может из принятых кодов С и восстановленного предиктора определить число битовых плоскостей n, подлежащих извлечению из набора сжатых по величине данных, для восстановления исходного набора квантованных данных. Триггер, используемый в кодере для кодирования остатка, не требуется в декодере и не передается в наборе сжатых метаданных. Декодер принимает значение С и имеет значение pred из предыдущего этапа или из pred_init. Из этих двух значений декодер может вычислять r и r в соответствии с уравнениями 6 и 7 соответственно. Зная о режиме сопоставления и режиме ограничения, декодер вычисляет триггер. Затем декодер может вычислить код С, соответствующий всем значениям r между r и r в соответствии с вышеописанными этапами алгоритма сопоставления. Это создает таблицу, предоставляющую соответствие между значениями r, которые находятся в диапазоне от r до r, и соответствующими значениями С. Затем декодер получает значение r как значение, соответствующее С в этой таблице.
min
max
min
max
В примере таблицы VIII был принят код С=5 с предиктором, равным 7, и уровнем квантования t=4. Можно вычислить значения r и r и составить таблицу для всех возможных остатков между r и r. Код С для каждого из этих 11 значений r вычисляется и вставляется в таблицу. Значение принятого кода С=5 затем ищется в таблице для поиска соответствующего значения r, r=-3. Другими эквивалентными способами для выполнения декодирования кодов С являются такие способы, как (двоичный) поиск в таблице или формула.
[0040] Коды С, полученные для остатков в способе согласно настоящему изобретению, представляют собой неотрицательные целые числа. Если предиктор является точным предиктором, остатки будут представлять собой небольшие значения. Энтропийное кодирование используется для кодирования С в метаданных. Предпочтительным видом энтропийного кодирования для С является кодирование Райса. Кодирование Райса неотрицательного целого числа N в зависимости от параметра k выглядит следующим образом:
k
- делят N на 2, и полученное частное является унарно закодированным;
- остаток деления двоично кодируется в k битах.
Примерные значения для N находятся в диапазоне от 0 до 10, и k=0, 1 и 2 представлены в таблице ниже:
Если k=0, то длина кода для N=0 составляет один бит. Следовательно, значение k=0 является предпочтительным значением для способа согласно настоящему изобретению, когда прогнозирование является точным, а значение 0 является частым среди остатков, которые подлежат кодированию. Однако, если точность прогнозирования не идеальна, могут возникнуть большие значения N, и может быть оптимальным большее значение k, такое как k=1 или 2, где для больших значений N требуется меньше битов. Кодирование Райса представляет собой код префикса. Следовательно, ни один код в наборе возможных кодов не является префиксом другого кода в наборе возможных кодов. Никаких специальных отметок между кодами не требуется, и декодер может четко извлечь последовательные коды из набора сжатых метаданных.
m
m
m-t
(m-t)
[0041] Этап квантования применяет набор значений 2 величин коэффициентов от 0 до 2-1 к набору значений 2 от 0 до 2-1. Простой способ выполнить это квантование состоит в удалении t битов с наименьшим весом неквантованных коэффициентов. Однако другие способы квантования могут быть использованы в настоящем изобретении.
[0042] На фиг. 9 изображены результаты, полученные для разных изображений и разных вариантов осуществления настоящего изобретения. Для каждого из 16 тестовых изображений гистограммы показывают PSNR (пиковое отношение сигнала к шуму) в отношении способа, в котором кодирование согласно настоящему изобретению не используется, но в котором остатки кодируются с использованием унарного кодирования, такого как в документе SMPTE RDD 35:2016. Гистограммы представляют последовательно
min
• случай, когда используется только граница |r| с режимом сопоставления «сначала отрицательное» (min_neglst);
min
• случай, когда используется только граница |r| с режимом сопоставления «сначала положительное» (min_poslst);
min
max
• случай, когда используются обе границы |r| и r с режимом сопоставления «сначала отрицательное» (minmax_neglst);
min
max
• случай, когда используются обе границы |r| и r с режимом сопоставления «сначала положительное» (minmax_poslst);
min
max
• случай, когда не используется ни одна из границ |r| или r, с режимом сопоставления «сначала отрицательное» (no_minmax).
min
max
min
Эти результаты показывают, что использование обеих границ |r| и r обеспечивает очень небольшое улучшение по сравнению с использованием только границы |r|. В обоих случаях использование режима сопоставления «сначала отрицательное» значительно лучше, чем использование режима сопоставления «сначала положительное».
[0043] В настоящем описании рассматривается обработка величин коэффициентов. Способы применяются к коэффициентам без знака. Также применяются способы, в которых вводные данные содержат коэффициенты со знаками. Эти коэффициенты со знаками могут быть закодированы как знак+величина или преобразованы в формат знак+величина. Биты со знаками коэффициентов группы группируются в качестве битовой плоскости со знаком, и битовая плоскость со знаком обрабатывается вместе с битовыми плоскостями величины. Настоящее изобретение относится к способу сжатия набора вводных данных, в котором коэффициенты в наборе вводных данных группируют в группы коэффициентов, определяют количество битовых плоскостей, GCLI, необходимое для представления каждой группы, применяют квантование, сохраняют ограниченное количество битовых плоскостей, применяют механизм прогнозирования к GCLI для получения остатков, и выполняют энтропийное кодирование остатков. Энтропийно кодированные остатки и сохраненные битовые плоскости позволяют декодеру восстанавливать квантованные данные с минимальными затратами в метаданных.