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

m
1. Способ сжатия в соответствии с параметрами сжатия одного или нескольких наборов вводных данных, причем указанный или каждый из наборов вводных данных содержит последовательность М коэффициентов, причем каждый коэффициент имеет m битов, кодирующих величину в диапазоне от 0 до 2-1 в один или несколько соответствующих наборов сжатых данных, каждый из которых содержит набор сжатых по величине данных, и набор сжатых метаданных, при этом указанные параметры сжатия могут включать М, m, n, t, тип квантования, режим сопоставления, представляющий собой либо «сначала отрицательное», либо «сначала положительное»; количество строк и столбцов отображаемого изображения, если набор вводных данных представляет отображаемое изображение; количество строк поддиапазона, если последовательность пикселей представляет собой декорреляционное преобразование отображаемого изображения; режим прогнозирования, который может представлять горизонтальное или вертикальное прогнозирование; способ определения начальных значений предикторов; режим энтропийного кодирования; значение параметра k кодирования Райса, если энтропийное кодирование представляет собой кодирование Райса, и режим ограничения, представляющий собой один из «ограниченного минимумом», «ограниченного минимумом/максимумом», «ограниченного максимумом», «неограниченного»,
включающий для указанного или каждого набора вводных данных этапы:
A. группирования коэффициентов в одну или несколько последовательных групп из n коэффициентов, причем фактор группировки n больше или равен 2, при этом каждая группа коэффициентов имеет m битовых плоскостей величины для различных весов коэффициентов;
B. для каждой группы i коэффициентов
i
а) определения значения наибольшего индекса кодовой строки (GCLI), причем GCLI представляет собой индекс ненулевого бита с наибольшим весом среди битов величины коэффициентов в указанной группе t, при этом индекс отсчитывают от 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);
(3) вычисления
first
- C = -1, если режим сопоставления представляет собой «сначала отрицательное»,
first
- C = +1, если режим сопоставления представляет собой «сначала положительное»;
(4) вычисления
min
- trigger = |r|, если режим ограничения представляет собой «ограничен минимумом»;
min
max
- trigger = MIN(|r|, r), если режим ограничения представляет собой «ограничен минимумом/максимумом»;
max
- trigger = r, если режим ограничения представляет собой «ограничен максимумом»;
- trigger = m, если режим ограничения представляет собой «неограничен»;
(5) IF |r| <= trigger THEN
IF r*Cfirst > 0 THEN
C = 2*|r| - 1
ELSE C = 2*|r|
ELSE С = trigger+|r|,
h) обеспечения энтропийного кодирования кода С и копирования указанного кодирования в набор сжатых метаданных.
2. Способ по п. 1, отличающийся тем, что указанное энтропийное кодирование представляет собой кодирование Райса, где k=0, 1 или 2.
3. Способ по п. 2, отличающийся тем, что k=0.
4. Способ по любому из предыдущих пунктов, отличающийся тем, что n меньше или равно 8 или же равно 4.
5. Способ по любому из предыдущих пунктов, отличающийся тем, что указанное квантование выполняют путем удаления t наименьших битовых плоскостей групп коэффициентов.
6. Способ по любому из предыдущих пунктов, отличающийся тем, что указанный набор вводных данных может быть получен путем выполнения декорреляционного преобразования для недекоррелированного набора вводных данных.
7. Способ по любому из предыдущих пунктов, отличающийся тем, что указанная последовательность М коэффициентов соответствует последовательности пикселей одной или нескольких строк отображаемого изображения, содержащего строки и столбцы пикселей, или одной или нескольких строк поддиапазона декорреляционного преобразования отображаемого изображения, содержащего строки и столбцы пикселей.
8. Способ по любому из предыдущих пунктов, отличающийся тем, что на этапе В.е) указанный предиктор predi GCLIi представляет собой GCLI предыдущих групп коэффициентов в последовательности коэффициентов, являясь pred_init для первой группы коэффициентов в последовательности коэффициентов, причем режим прогнозирования представляет собой режим горизонтального прогнозирования.
i
i
9. Способ по п. 7, отличающийся тем, что на этапе В.е), указанный предиктор pred GCLIпредставляет собой GCLI группы пикселей в том же столбце предыдущей строки пикселей, если указанный GCLI больше чем t, и равен нулю, если указанный GCLI меньше или равен t, являясь pred_init для групп пикселей первой строки пикселей, причем режим прогнозирования представляет собой режим вертикального прогнозирования.
1
2
10. Способ по п. 9, в котором указанные один или несколько наборов вводных данных содержат по меньшей мере два набора вводных данных, причем первый набор вводных данных имеет уровень квантования t, второй набор вводных данных имеет уровень квантования t, при этом последняя строка пикселей первого набора вводных данных расположена над первой строкой пикселей второго набора вводных данных, в отображаемом изображении,
отличающийся тем, что
предиктор для группы пикселей первой строки пикселей второго набора вводных данных равен GCLI группы пикселей на последней строке пикселей в том же столбце первого набора вводных данных, если указанный GCLI > t1, и равен нулю, если указанный GCLI ≤ t1.
11. Способ декомпрессии в соответствии с параметрами сжатия одного или нескольких наборов сжатых данных, каждый из которых содержит набор сжатых метаданных, содержащий последовательность энтропийно кодированных кодов ci, и набор сжатых по величине данных, содержащий битовые плоскости коэффициентов, которые можно получить посредством способа по любому из пп. 1-10 с теми же параметрами сжатия, в один или несколько соответствующих наборов декомпрессированных данных, каждый из которых содержит последовательность коэффициентов, причем каждый коэффициент имеет m битов, кодирующих величину, включающий этапы:
i
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) по п. 1 для всех значений r в диапазоне от r до f, предоставляя таблицу;
i
i
(2) получения остатка r, соответствующего указанному коду ci, из указанной таблицы;
bp
bp
i
i
e) вычисления количества битовых плоскостей n, хранимых для группы, соответствующей указанному коду, причем указанное количество битовых плоскостей равно 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
h) замены pred' на n, если режим прогнозирования горизонтальный;
i
bp
замены prev=n, если режим прогнозирования вертикальный;
i) повторения этапов b)-g) для последовательных кодов и битовых плоскостей, пока не будут использованы все коды в наборе сжатых метаданных.
1
2
12. Способ по п. 11, отличающийся тем, что количество указанных наборов вводных данных равно двум или более, причем первый набор вводных данных имеет уровень квантования t, второй набор вводных данных имеет уровень квантования t, при этом последняя строка пикселей первого набора вводных данных расположена над первой строкой пикселей второго набора вводных данных, в отображаемом изображении, и предиктор для группы пикселей первой строки пикселей второго набора вводных данных равен GCLI группы пикселей на последней строке пикселей в том же столбце первого набора вводных данных, если указанный GCLI > t1, и равен нулю, если указанный GCLI ≤ t1, причем для декомпрессии указанных наборов вводных данных для первой строки второго набора данных принимают в качестве предиктора predi' соответствующее значение previ, полученное для последней строки первого набора данных.
13. Способ по любому из пп. 1-12, отличающийся тем, что pred_init равен нулю или равен int(m/2).
14. Набор сжатых данных, соответствующий набору несжатых данных, причем указанный набор несжатых данных содержит последовательность М коэффициентов, причем каждый коэффициент имеет m битов, кодирующих величину, причем указанный набор сжатых данных, который можно получить из указанного набора несжатых данных посредством способа по любому из пп. 1-10, содержит
• набор сжатых метаданных, содержащий последовательность энтропийно кодированных кодов, и
• набор сжатых по величине данных, содержащий битовые плоскости коэффициентов.
15. Устройство для сжатия набора вводных данных, содержащего последовательность М коэффициентов, причем каждый коэффициент имеет m битов, кодирующих величину, в набор сжатых данных, содержащий набор сжатых по величине данных, и набор сжатых метаданных, содержащее по меньшей мере одно из логической схемы, ASIC, FPGA, GPU и CPU, выполненных с возможностью выполнения этапов способов по любому из пп. 1-10.
16. Устройство для декомпрессии сжатых данных, содержащих набор сжатых метаданных, содержащий последовательность подвергнутых кодированию Райса кодов, и набор сжатых по величине данных, содержащий битовые плоскости коэффициентов, в набор декомпрессированных данных, содержащий последовательность коэффициентов, причем каждый коэффициент имеет m битов, кодирующих величину, причем указанный набор сжатых данных можно получить посредством способа по любому из пп. 1-10, в набор декомпрессированных данных, причем указанный набор декомпрессированных данных содержит последовательность М коэффициентов, причем каждый коэффициент имеет m битов, кодирующих величину, содержащее по меньшей мере одно из логической схемы, ASIC, FPGA, GPU и CPU, выполненных с возможностью выполнения этапов способа по любому из пп. 11-13.