NMR Center >> | Dmitry Dmitriev >> | Spectra compression III |
Spectra compression III
(зачем хранить шум?)
Все, о чем говорилось в предыдущем обсуждении (см часть 1 часть 2), касалось т. н. "сжатия без потерь" - то есть такого, при котором данные после разархивации совпадают с исходными с точностью до байта. В последнее время при обработке изображений, звука и количественных данных очень часто используются методы "сжатия с потерями" или "сжатия с максимальным качеством", при котором высокая степень упаковки достигается за счет выделения из данных и сохранения в архиве только значимой информации. При измерении физических параметров (частота, амплитуда...) неточности неизбежны, поэтому "округление" вполне допустимо. Одной из главных задач при использовании этих методов является нахождение в каждом конкретном случае баланса между высокой степенью сжатия и сохранением необходимого качества восстановления данных.
SPC-файлы
Рис. 3.1
На рисунке 3.1 представлен спектр, соответсвующий диаграмме 2.2 из части 2. Мы установили, что при его упаковке более 2/3 пространства спектрального архива расходуется на хранение шума, который не содержит полезной информации. При архивации рутинных протонных спектров (которые , как правило, составляют большую часть в любой ЯМР-лаборатории) логично было бы отказаться от сохранения в архиве заполненных шумом младших битов, дополняя при разархивации недостающие разряды нулями.
Максимальное число разрядов, которые допустимо обнулить при упаковке спектра, в общем случае определяется двумя условиями:
удаляемые разряды не должны содержать спектральной информации
снижение динамического диапазона данных (количества значащих разрядов) не должно приводить к видимому ухудшению качества спектра при его дальнейшей обработке и печати
Первое условие легко обеспечить, обнуляя не более log2(sigma) бит. где sigma - упоминавщаеся в части 2 среднеквадратичное отклонение точек шума в спектре. Такое преобразование сохраняет спектральные данные "с запасом" в 2-3 бита, так как наиболее вероятный диапазон шумов составляет +/- 2*sigma. Для рассматриваемого спектра это правило позволяет отбросить 8 бит и оставить лишь 16 значащих разрядов интенсивности для каждой точки спектра. Осталось рассчитать, сохраняется ли после такого преобразования необходимый для печати динамический диапазон. Наши спектры, как правило, печатаются в форматах HPGL (DISNMR) или WMF (WINNMR), которые представляют изображение с разрешением 100 точек на см(минимальный шаг 0.1мм). При печати на бумаге формата А4 максимальный размер картинки по вертикали составит 20см или 2000 пиксельных единиц, что определяет необходимый динамический диапазон данных в 11 бит. Таким образом, имея 16 значащих разрядов, мы сможем напечатать преобразованный спектр с не худшим, по сравнению с исходными данными, качеством с вертикальным усилением до 32 раз (2**5). Это соответсвует значению MAXY более 6м, что вполне достаточно для подавляющего большинства обзорных спектров.
На рисунке 3.2 - сравнение формы линий спектра до и после преобразования. Верхний, черный спектр соответсвует исходным данным размерностью 24 бит, красный - спектру, в котором 8 младших бит каждого значения заменены нулями. Разницы не видно не только на общем плане спектра, но и при рассматривании примесных сигналов на базовой линии (см врезку). Тем не менее, красный спектр при сжатии даже стандартным Zip занимает на диске ровно вдвое меньше места, чем черный!
Рис. 3.2
Более того, отличия между спектрами почти незаметны даже при сравнении их в программе WINNMR с высоким разрешением в режиме двойного дисплея. (Вы можете скачать архив spcfiles.zip, содержащий исходный спектр 3.1 и редактированные спектры с различным числом удаленных бит).
Разные спектры имеют разный уровень шума - как при поточной обработке определить допустимое число обнуляемых бит? Самый надежный способ - вычисляя среднеквадратичное отклонение точек базовой линии каждого конкретного спектра. Эта операция не требует мощных вычислительных ресурсов и может выполняться очень быстро. Однако, можно поступить проще - определив допустимый уровень обнуления на данных с высоким отношением сигнал/шум, использовать в дальнейшем этот параметр для всех спектров, пренебрегая некоторым ухудшением степени сжатия "шумных" файлов в угоду простоте алгоритма. В некоторых случаях этот параметр можно оценить и теоретически. На спектрометрах с компьютером ASPECT 2000/3000 аналогово-цифровой преобразователь имеет разрядность 12 бит. Даже в идеальном случае отношение сигнал/шум в данных после одного накопления не может превысить на таком приборе 2**11. После N накоплений это отношение вырастет в корень из N раз, достигая, таким образом, 2**16 только после 1024 сканов. Поскольку при выполнении Фурье-преобразования эти данные будут отнормированы на весь 24-х битный диапазон - фактически, сдвинуты в сторону старших разрядов - это означает, что даже после тысячи накоплений значимые данные в этом спектре будут занимать лишь 16 старших бит, а остальные 8 - шум. В реальных спектрах с меньшим количеством накоплений шумов будет еще больше. Так как ранее мы установили, что удаление 8 младших бит не сказывается и на качестве печати, это позволяет сделать вывод о допустимости обнуления 8 нижних разрядов практически в любом стандартном протонном спектре.
Удаляя из данных 8 практически несжимаемых разрядов, мы выигрываем в размере сжатого файла примерно 16кб, что на типичном SPC дает дополнительное сжатие по сравнению с лучшими данными части 1 (метод BS+Zip) еще примерно вдвое. Общая же степень сжатия по сравнению со стандартным ZIP улучшается примерно в три раза, достигая 75% размера исходного файла. На примере рассмотренного выше спектра можно заключить, что этот выигрыш достигается практически без потери качества спекральных данных. Зависимость размера архива при другом числе обнуляемых разрядов приведена в таблице ниже:
Метод | Размер, байт | Степень упак, сравн. с Zip | Комментарий |
Zip | 40394 | 1 | |
BS + Zip | 28823 | 1.40 | сжатие без потерь |
BS + Zip, уд. 4 бит | 20757 | 1.95 | |
BS + Zip, уд. 8 бит | 12415 | 3.25 | искажений нет |
BS + Zip, уд. 9 бит | 10280 | 3.93 | искажений почти нет |
BS + Zip, уд. 10 бит | 8109 | 4.90 | |
BS + Zip, уд. 11 бит | 6106 | 6.62 | появляются заметные искажения |
FID-файлы
В случае спектров до Фурье-преобразования (FID-ов), оценка уровня шумов в данных не может быть выполнена так же просто, как в SPC-файлах. Сравнивая диаграммы 2.1 и 2.2 из части 2, можно лишь заключить, что избыточность данных в FID-ах меньше, чем в спектрах (из-за отсутсвия шумов, обусловленных нормировкой при FT). Исходя из идентичности информации логично предположить, что размер упакованных FID и SPC файлов после удаления статистически обоснованной части шумов должен примерно совпасть, что дает оценку уровня шума в соответствующем FIDe примерно 3-4 бита. В этом случае степень упаковки DISNMR FID-файлов также достигнет 75% исходного размера, что позволит сократить примерно вдвое занимаемое архивами дисковое пространство. Следует учитывать однако, что если предполагается применение к FID-ам window-функций, точность сохраняемых данных должна быть выше. В этом случае использование обнуления разрядов в FID-ах, вероятно, неоправданно.
Общие выводы для частей 1-3
Обработка спектральных файлов методом битовых срезов (BS - преобразование) позволяет повысить степень сжатия FID (включая 2D ser-файлы). SPC и WMF спектральных файлов архиватором ZIP в 1.3 - 1.4 раза, достигая результатов, характерных для программы bzip2. При этом скорость упаковки остается на уровне "быстрого" ZIP, превосходя скорость bzip2 в 3-4 раза.
Графический анализ степени сжатия FID и SPC-файлов показал, что основной обьем в сжатых методом BS+Zip спектрах приходится на случайные данные - шум. Дальнейшее сжатие этих файлов методами архивации "без потерь", по всей вероятности, не даст существенного уменьшения размера архивов, но приведет к усложнению и замедлению программы.
Отказавшись от полного сохранения шумов в архиве, можно дополнительно повысить степень упаковки SPC-файлов в 3 и более раза при сохранении качества спектра. Изменяя количество обнуляемых разрядов, мы можем выбирать между еще более высокой степени упаковки информации или максимальным качеством спектра. Обнуление младших разрядов может применятся и отдельно от BS-преобразования - в этом случае выигрыш в степени упаковки оказывается меньше, однако при этом спектры могут быть распакованы стандартным архиватором.
Приложения
spcfiles.zip - набор SPC файлов спектра 3.1 при различном числе обнуленных бит, формат DISNMR.
swapbb-0.3.tar.gz - программа SWAPBB для прямой и обратной перестановки бит (BS - преобразование) и обнуление части разрядов в спектральных файлах. (исх. код GNU C для Линукс 2.2).
Copyright © by Dmitry E. Dmitriev Last change 10/01/03