Истинное сжатие изображений с помощью вейвлетов
wcompress('c',X,SAV_FILENAME,COMP_METHOD)
wcompress(...,'ParName1',ParVal1,'ParName2',ParVal2,...)
[COMPRAT,BPP] = wcompress('c',...)
XC = wcompress('u',SAV_FILENAME)
XC = wcompress('u',SAV_FILENAME,'plot')
XC = wcompress('u',SAV_FILENAME,'step')
Команда wcompress
выполняет или сжатие или несжатие изображений полутонового или истинного цвета.
Больше теоретической информации об истинном сжатии находится в Сжатии Вейвлета для Изображений Руководства пользователя Wavelet Toolbox™.
wcompress('c',X,SAV_FILENAME,COMP_METHOD)
сжимает изображение X
с помощью метода сжатия COMP_METHOD
.
Сжатое изображение сохранено в файле SAV_FILENAME
. У вас должно быть разрешение записи в текущей рабочей директории, или MATLAB® изменит директорию на tempdir
и запишет файл .wtc
в той директории. X
может быть или 2D массивом, содержащим индексируемое изображение или трехмерным массивом uint8
, содержащего изображение истинного цвета. Оба размер строки и столбца изображения должны быть степенями двойки.
wcompress('c',FILENAME,...)
загружает изображение X
из файла FILENAME
, который является файлом Поддерживаемого формата MATLAB (MSF): MAT-файл или другие файлы изображений (см. imread
).
wcompress('c',I,...)
преобразовывает индексируемое изображение, X = I{1}
к истинному цвету отображает Y
с помощью палитры map = I{2}
, и затем сжимает Y
.
Данные, записанные в файлы .wtc
, используют точность uint64
. В релизах до R2016b данные были записаны с помощью uint32
. Если на ваш код плохо влияет это изменение, используйте опцию legacy
, чтобы сжать и распаковать ваши данные с помощью предыдущего поведения.
wcompress('c',X,SAV_FILENAME,COMP_METHOD,'legacy')
Допустимые методы сжатия разделены на три категории.
Прогрессивные содействующие методы значения (PCSM):
Имя MATLAB | Имя метода сжатия |
---|---|
'ezw' | Встроенный вейвлет Zerotree |
'spiht' | Установите разделение в иерархических деревьях |
'stw' | Вейвлет дерева ориентации в пространстве |
'wdr' | Сокращение различия в вейвлете |
'aswdr' | Адаптивно отсканированное сокращение различия в вейвлете |
'spiht_3d' | Установите Разделение В Иерархических Деревьях, 3D для изображений истинного цвета |
Для получения дополнительной информации на этих методах, смотрите ссылки и особенно Уокера и также Саида и Перлмена.
Содействующие методы задания порога (CTM-1):
Имя MATLAB | Имя метода сжатия |
---|---|
'lvl_mmc' | Пороговая обработка поддиапазона коэффициентов и Кодирование методом Хаффмана |
Для получения дополнительной информации на этом методе, смотрите ссылку Странга и Нгуена.
Содействующие методы задания порога (CTM-2):
Имя MATLAB | Имя метода сжатия |
---|---|
'gbl_mmc_f' | Глобальная пороговая обработка коэффициентов и зафиксированное кодирование |
'gbl_mmc_h' | Глобальная пороговая обработка коэффициентов и Кодирование методом Хаффмана |
Дискретное Преобразование Вейвлета использует periodized дополнительный режим.
Все методы сжатия используют параметры, которые имеют значения по умолчанию. Можно изменить эти значения с помощью следующего синтаксиса:
wcompress(...,'ParName1',ParVal1,'ParName2',ParVal2,...)
Некоторые параметры связаны с отображением или с функциональностями преобразования данных. Другие соединяются с самим процессом сжатия.
'ParName'
= 'wname'
или 'WNAME'
определяет имя вейвлета.
ParVal
является вектором символов или скаляром строки (см. waveletfamilies
). Значением по умолчанию для является bior4.4
'ParName'
= 'level'
или 'LEVEL'
устанавливает уровень разложения.
ParVal
является целым числом, таким образом что: ≤ level ≤
levmax
1
, который является максимальным возможным уровнем (см. wmaxlev
).
Уровень по умолчанию зависит от метода:
- для методов PCSM level
равен levmax
.
- для CTM уровень методов равен fix(levmax/2)
ParName'
= 'it'
или 'IT'
устанавливает Преобразование Типа изображения.
ParVal
должен быть одним из следующего:
N:
никакое преобразование (значение по умолчанию), тип изображения (истинный цвет или шкала полутонов) автоматически обнаруживается.
G:
полутоновый тип преобразования.
C:
тип преобразования цвета (RGB uint8
).
'ParName'
= 'cc'
или 'CC'
устанавливают параметр Преобразования цветов, если X
является изображением истинного цвета.
ParVal
должен быть одним из следующего:
'rgb'
или 'none'
: Никакое преобразование (значение по умолчанию).
'yuv'
: цветовое пространство YUV преобразовывает.
'klt'
: Karhunen-Loeve преобразовывают.
'yiq'
: цветовое пространство YIQ преобразовывает.
x, y, z :
цветовое пространство CIEXYZ преобразовывает.
'ParName'
= 'maxloop'
или 'MAXLOOP'
определяет максимальный номер шагов для алгоритма сжатия.
ParVal
должен быть положительным целым числом, или Inf
(значение по умолчанию равняется 10).
Любой из следующих параметров может использоваться:
'ParName'
= 'bpp'
или 'BPP'
устанавливает отношение бита на пиксель.
ParVal
должен быть таков что 0
≤ ParVal ≤
8
(шкала полутонов) или 24
(истинный цвет).
'ParName'
= 'comprat'
или 'COMPRAT'
устанавливает коэффициент сжатия.
ParVal
должен быть таков что 0
≤ ParVal ≤
100
.
Могут использоваться два параметра. Первое связано с порогом, и вторым является количество классов для квантования.
Первый может быть выбран среди пяти после параметров:
'ParName'
= 'threshold'
или 'THRESHOLD'
устанавливает пороговое значение для сжатия.
ParVal
должен быть положительным (или нуль) вещественное число.
'ParName'
= 'nbcfs'
или 'NBCFS'
определяет номер сохраненных коэффициентов в разложении вейвлета.
ParVal
должен быть целым числом, таким образом что: 0
≤ ParVal
≤ общее количество коэффициентов разложения вейвлета.
'ParName'
= 'percfs'
или 'PERCFS'
устанавливает процент сохраненных коэффициентов в разложении вейвлета.
ParVal
должен быть вещественным числом, таким образом что: 0
≤ ParVal ≤
100
.
'ParName'
= 'bpp'
или 'BPP'
устанавливает отношение бита на пиксель.
ParVal
должен быть таков что: 0
≤ ParVal ≤
8
(шкала полутонов) или 24
(истинный цвет)
'ParName'
= 'comprat'
или 'COMPRAT'
устанавливает коэффициент сжатия.
ParVal
должен быть таков что: 0
≤ ParVal ≤
100
.
Второй параметр определяет номер классов для квантования:
'ParName'
= 'nbclas'
или 'NBCLAS'
определяет номер классов.
ParVal
должен быть вещественным числом, таким образом что: 2
≤ ParVal ≤
200
.
'ParName'
= 'plotpar'
или 'PLOTPAR'
устанавливает параметр графика.
ParVal
должен быть одним из следующего:
'plot'
or 0
: графики только сжатое изображение.
'step'
or 1
: отображения каждый шаг процесса кодирования (только для методов PCSM).
[COMPRAT,BPP] = wcompress('c',...)
возвращает коэффициент сжатия COMPRAT
и bit_per_pixel отношение BPP
.
XC = wcompress('u',SAV_FILENAME)
распаковывает файл SAV_FILENAME
, который содержит сжатое изображение и возвращает изображение XC
. В зависимости от начальной буквы сжатое изображение XC
может быть 2D массивом, содержащим или индексируемое изображение или трехмерный массив uint8
, содержащего изображение истинного цвета.
XC = wcompress('u',SAV_FILENAME,'plot')
строит несжатое изображение.
XC = wcompress('u',SAV_FILENAME,'step')
показывает постепенное несжатие, только для методов PCSM.
Кристоф, E., К. Мэйлхес, П. Дюамель (2006), “Адаптация zerotrees использование представлений двоичной цифры со знаком для кодирования трехмерного изображения”, Журнал EURASIP на Обработке изображений и Обработке видеоданных, 2007, чтобы появиться в специальном выпуске на Вейвлетах в Исходном Кодировании, Коммуникациях, и Сетях, бумаге ID 54679.
Мизити, M., И. Мизити, Г. Оппенхейм, J.-M. Poggi (2007), Вейвлеты и их приложения, Ряд DSP ISTE.
Саид А., В.А. Перлмен (1996), “Новое, быстро, и эффективный кодек изображений на основе разделения набора в иерархических деревьях”, Сделка IEEE на Схемах и Системах для Видео Технологии, Издания 6, № 3, стр 243–250.
Шапиро Дж.М. (1993), “Кодирование встроенного изображения с помощью zerotrees коэффициентов вейвлета”, Сигнал Сделки IEEE P Proc., Издание 41, № 12, стр 3445–3462.
Странг, Г.; Т. Нгуен (1996), вейвлеты и наборы фильтров, Wellesley-Кембриджское нажатие.
Уокер Дж.С. (1999), “Основанное на вейвлете Сжатие изображения”, Висконсинский университет, О-Клэр, Висконсин, США, Подраздел книги Нажатия CRC: Преобразуйте и Сжатие данных. Краткая информация о Вейвлетах и Их Научные Приложения.