УДК 519.613:681.326
И.В. ХАХАНОВА, И.А. ПОБЕЖЕНКО, В.И. ХАХАНОВ
МОДЕЛИ И АРХИТЕКТУРА ВЕЙВЛЕТ-ПРЕОБРАЗОВАНИЙ ДЛЯ СТАНДАРТА JPEG 2000
Предлагается технология создания архитектуры и моделей конвейерного вычислительного устройства системного уровня описания лифтинговой схемы 9/7, которая существенно уменьшает цикл проектирования изделий цифровой обработки сигналов. Приводится практическая реализация фильтра, подтверждающая эффективность разработанного маршрута проектирования системного уровня на основе использования программы Simulink среды Matlab.
1. Введение
До настоящего времени работы, посвященные DWT-преобразовнию, представляли собой теоретические разработки по алгоритмам кодирования, сжатия, преобразования информации, оценки потери качества изображения. При этом не учитывались особенности аппаратной реализации этих алгоритмов. В лучшем случае рассматривалась только программная реализация преобразователей. Исследовалось использование операции свертки или лифтинговой архитектуры для реализации DWT. Работы Добеши и Свелденса (Daubechies and W. Sweldens) [1,2] по применению факторизации в целях выполнения вейвлет-преобра-зований и предложенные в ней лифтинговые схемы интересны тем, что они позволяют значительно упростить аппаратную реализацию DWT.
В исследованиях, посвященых аппаратной реализации DWT-преобразований, различают архитектуры, базирующиеся на операции свертки или лифтинговых схемах. Модели, использующие свертку для выполнения DWT-преобразования, разделяются на последовательные и параллельные архитектуры. В других работах выполнена классификация устройств по способу использования внешней и внутренней памяти для хранения исходных данных, промежуточных и окончательных результатов. По способу взаимодействия с внешней памятью архитектуры, реализующие вейвлет-преобразования, делятся на три группы [3] level-by-level, block-based, line-based. Имеются предложения по модификации архитектур для упрощения вычислений за счет уменьшения количества иррациональных коэффициентов (flipping-архитектуры) [4]. При этом чаще всего используется десятичная арифметика. Некоторые из предлагаемых моделей архитектур ориентированы на реализацию только одного вида лифтинг-структуры, а другие позволяют выполнять DWT-преобразования с двухступенчатыми и четырехступенчатыми схемами лифтинга [5, 6-9].
Однако в существующих источниках не представлены: 1) Анализ архитектур с точки зрения возможности реализации на программируемой логике (FPGA). 2) Анализ реализации памяти на программируемой логике. 3) Выполнимость системных моделей архитектур в Simulink, в других подобных редакторах системного уровня.
Цель исследования состоит в разработке системной архитектуры реализации фильтра 9/7 на программируемой логике.
Для достижения поставленной цели решаются задачи: 1) Разработка архитектурной модели вейвлет-проеобразования системного уровня. 2) Реализация и верификация системной модели с помощью пакета Simulink вычислительной среды Matlab.
2. Модель блока DWT-преобразования 9/7
Предложенная архитектура (рис. 1) относится к классу line-based. Она спроектирована для использования ее в качестве подкомпонента в устройстве JPEG2000 [9]. Предполагается, что данные в устройство подаются последовательно, по одному m-разрядному слову. Для реализации нескольких уровней преобразований используется внутренняя буферная память, хранящая LL-поддиапазон предыдущего уровня преобразования. Входные и выходные порты блока, реализующего DWT-преобразование, представлены в табл. 1, где m -разрядность входных данных, а n - разрядность полученных результатов. Оба параметра (m и n) определяют точность вычисления результатов DWT-преобразования.
Имя
Таблица 1. Порты блока одноуровнего преобразования
| ~ Описание ' ~ | Размер
Порты входа
Data Вход данных из входного буфера m
LL-in LL-коэффициенты предыдущего уровня преобразования n
Enable Блокирует и разблокирует работу устройства 1
Rst Сброс 1
Clk Синхронизация 1
Порты выхода
LL Коэффициенты LL-поддиапазона n
LH Коэффициенты LH-поддиапазона n
HL Коэффициенты HL-поддиапазона n
HH Коэффициенты HH-поддиапазона n
Done Сигнализирует о готовности данных на выходах поддиапазонов 4
Read data Готовность устройства к приему входных данных 1
Read LL Готовность устройства к приему данных из LL поддиапазона 1
Size tile Размер tile (64, 128, 256, 512, 1024) 3
Level Текущий уровень преобразования 3
FIFO Buffer for LL subband
Read LL
LL_in LL
Data LH
HL
DWT
HH
Enable
Rst Done
Clk Read data
Size_tile
Level
Рис. 1. Интерфейс блока одноуровневого преобразования DWT с буфером памяти ЬЬ поддиапазона
Длина буфера памяти для ЬЬ поддиапазона определяется выражением Рьь = ^шеш_ПЕО х П где п - размер коэффициентов поддиапазонов, а §тет_р!ро - вычисляется по формуле:
S
mem FIFO
Tile2 4
-LenghtDWTpipeiine,
где Tile - размерность обрабатываемого блока, а параметр LenghtDWTpipeline - представляет собой длину конвейера DTW-преобразования.
В микросхемах программируемой логики буфер поддиапазона LL может быть реализован на выделенных блоках памяти силиконового кристалла.
На рис. 2 представлена структурная модель конвейерной схемы двумерного DWT-преобразования для банка фильтров 9/7 с четырехступенчатой лифтинговой схемой. Она позволяет оценить длину конвейера для каждого поддиапазона частот:
HH: 2 + 8 + 4*Tile + 8 + 1 = 4*Tile + 19;
HL, LH: 2 + 8 + 4*Tile + 11 + 1 = 4*Tile + 22;
LL: 2 + 11 + 2*Tile + 11 + 1 = 4*Tile + 25.
H -8 тактов
2 такта L - 11 тактов
И--'-
Raw buffer
H -8 тактов T¡le*4 l - 11 тактов
--—-И«
Tile/2
DWT
H
1 такт
H
DWT Raw buffer
1
■HH HL LH LL
Рис. 2. Конвейерная схема обработки данных для DWT
Зависимость длины конвейера LL- поддиапазона DWT-преобразования для банка фильтров 9/7 представлена в табл. 2. Размерность буфера памяти определяется параметром Tile и может быть уменьшена на длину конвейера DWT-преобразования (табл. 3).
L
Таблица 2. Зависимость длины конвейера Таблица 3. Зависимость размера буфера памяти от Tile DWT-преобразования для банка фильтров 9/7 от размера Tile
Tile Length DWT pipeline
64 281
128 537
256 1049
512 2073
1024 4121
Tile Tile2/4, слова Size_LL_FIFO, слова
64 1024 743
128 4096 3559
256 16384 15335
512 65536 63463
1024 262144 258023
3. Simulink модель DWT блока
В результате выполненных исследований была создана системная модель вычислительного устройства, ориентированного на вейвлет-преобразование с помощью Simulink-редактора среды Matlab. Simulink предоставляет пользователю графические средства для создания динамически функционирующих моделей, что позволяет проверить не только функцию, но и взаимодействие отдельных блоков устройства во времени. Общий вид модели представлен на рис. 3 . Блок DWT реализует DWT-преобразования, FIFO memory for LL, идентифицирует блок памяти для хранения LL-поддиапазона.
Архитектура модуля преобразователя DWT блока представлена на рис. 4. Здесь блок Mux2 обозначает мультиплексор, который выбирает входные данные для последующей обработки. На первом уровне DWT-преобразования используется информация со входа data, на всех последующих уровнях - из LL_in.
Входной буфер Raw_biffer представляет собой последовательно-параллельный преобразователь, который формирует входные данные для арифметического блока Arithmetic Block for Raw. Вычислительное устройство принимает данные последовательно, с одновременной выдачей трех значений сигналов [7].
To Workspace5
Signal From Workspace
L
data
H
Done
LL in
Select
DWT block
a
Рис. 3. Схема 2D-DWT-блока с FIFO памятью для коэффициентов LL-поддиапазона 4. Управляющий блок преобразователя
Схема управляющего блока (Subsystem, рис. 4) для 2D-DWT-преобразования представлена на рис. 5. Поскольку для реализации преобразования использовалась конвейерная архитектура, то для управления работой устройства нецелесообразно использовать классический автомат Мили или Мура. Управляющий блок построен на двух счетчиках, хранящих горизонтальную и вертикальную координаты обрабатываемого элемента изображения. На основе значений этих счетчиков формируются все управляющие сигналы устройства, которые разбиты на группы: C_ALU_raw и C_ALU_column - для арифметических блоков, выполняющих одномерное преобразование по строкам и по столбцам соответственно; Enable_L и Enable_H - разрешение записи информации во временный буфер памяти между обработкой сигналов по строкам и столбцам; pop_L и pop_H - чтение информации из временного буфера памяти; data_select -выбор входных данных для обработки; done - сигнал готовности данных в каждом поддиапазоне. Для такого типа управляющего блока уже технологично и просто может быть построен генератор HDL-кода [8] для последующей реализации в аппаратуру на кристалле.
C0_L
C1_L L
C2_L
d0_L H
s_L
d1_L
C0_H d0 -ut
C1_H
C2_H
d0 H s _out
Contrtl
s_H d1 _out
d1_H
Рис. 4. Схема одноуровневого 2D-DWT 9/7 устройства
л
I n 10ut1
C1 tile C2 Sel
|—KZD
data select
Embedded MATLAB Function
Embedded C-ALU-raw MATLAB Function3
Embedded MATLAB Function6
sel
c2 fcn first
—►CD
C ALU column
Embedded MATLAB Function1
Embedded MATLAB Function2
enable_L_C0 enable_L_C1 fcn enable_L_d0 enable_L_s enable_L_d1
c1 enable_H_C0
enable_H_C 1
c2 fcennable_H_d0
enable_H_s
enable_H_d1
>CD
Unit Delay2 Unit Delay3
-KZD
Unit Delay4 "> -
doneHL doneHH
Embedded MATLAB Function4
KZD
comp res
En
c2
Enable_L
done LH
Enable_H
Рис. 5. Управляющий блок для 2D-DWT-преобразования
5. Арифметические блоки обработки строк и столбцов
Рис. 6 представляет собой модель арифметического блока для выполнения DWT Добе-ши преобразования по строкам, которая содержит управляющие сигналы для вычисления коэффициентов крайних элементов. Сигнал first используется в начале вычисления последовательности, а last - при завершении.
Рис. 6. Блок обработки данных по строкам для 4-ступенчатой лифтинговой схемы Реализация математического дискретного вейвлет-преобразования DWT основывается на лифтинговой схеме (рис. 7), которая базируется на четырех основных операциях: разбиение (S), предсказание (P), обновление (U) и масштабирование (K).
Рис. 7. Лифтинговая схема вейвлет-анализа: разбиение, предсказание и обновление
Значения элементов на каждом этапе преобразования вычисляется по формулам:
= а(п-1) РПЫП-1),п е [1,2,...,М]
5[п) = s[n-1) ипам(п),пе [1,2,...,М] .]
Для банка фильтров Добеши 9/7 N=2 используется четыре этапа построения вейвлет-преобразования. Выход последнего этапа предсказания умножается на масштабирующий коэффициент К1, а последнего этапа обновления - на величину К0.
Значения коэффициентов для преобразования Добеши имеют следующий вид:
Р1 = -1.586134342_059924(1+2); и1 = - 0.052980118572961(1+Е-1);
Р2 = 0.882911075530934(1+2); и2 = 0.443506852043971(1+2-1).
При этом масштабирующие коэффициенты определяются в следующем виде:
1 К
К0 = —, К1 = —, где К = 1,230174104914001.
К 2
Для вычисления коэффициентов граничных элементов, при условии четного числа входных элементов, используется зеркальное отображение входных значений данных, как это изображено на рис. 8, где представлено формирование результатов DWT-преобразования для первых элементов входной последовательности, и на рис. 9, где проиллюстрировано формирование результатов DWT-преобразования последних элементов входной последовательности данных.
Рис. 8. Формирование результатов DWT-преобразования для первых элементов входной последовательности
Рис. 9. Формирование результатов DWT-преобразования последних элементов входной последовательности
В табл. 4 и 5 представлены примеры для иллюстрации вычисления коэффициентов DWT-преобразования для граничных элементов.
Для хранения результатов одномерного DWT-преобразования изображения по строкам перед выполнением преобразования по столбцам используется специальная буферная память, построенная на пяти блоках памяти FIFO (рис. 10). Два блока памяти (С0 и С1) предназначены для хранения результатов DWT-преобразования двух строк, два других (d0 и s) - для хранения коэффициентов предсказания и обновления нулевого уровня, пятый (d1) - для хранения коэффициентов предсказания первого уровня.
Таблица 4. Порядок обработки данных низкочастотных коэффициентов для первых элементов
входной последовательности в Excel
s 0 L= 31,66835
38,9575
H= 0,62507 d 0 d 0 H= 0,62507
1,01623 1,01623
s<0> s 0 s<0> s 1 s<0> s 2
49,2069 38,0560 49,2069
d(0)i d<0> d 0 d<0> d 0 d<°>,
-97,7517 -76,0291 -76,0291 -97,7517
x4 x3 x2 x1 x0 x1 x2 x3 x4
50 45 40 35 30 35 40 45 50
Таблица 5. Порядок обработки данных низкочастотных коэффициентов для последних элементов
входной последовательности в Excel
s 3 L= 32,35174
39,7981
H= 0,16871 d<1>2 d<'>3 H= 3,41277
0,27429 5,54845
s<0> s 2 s<0> s 3 s<0> s 3
49,2069 37,2157 37,2157
d<°>, d<0>2 d<0>3 d<0>2
-97,7517 -76,0291 -60,1678 -76,0291
x2 x3 x4 x5 x6 x7 x6 x5 x4
50 45 40 35 30 35 30 35 40
Выполнение DWT-преобразования по столбцам начинается после завершения DWT-преобразования первых двух строк. Результаты преобразования этих двух строк заносятся в банки памяти (С0 и С1). В момент DWT-преобразования третьей строки параллельно считывается информация из блоков СО и С1 и поступает на арифметический блок DWT-преобразования по столбцам. Результат преобразования третьей строки сохраняется в банке СО, а вычисленные коэффициенты предсказания и обновления нулевого уровня - в банках памяти d и 8, далее они будут участвовать в вычислении коэффициентов предсказания и обновления первого уровня. При выполнении преобразования четвертой строки, информация сохраняется в банке С1. На этом этапе преобразования по столбцам не происходит. Табл. 6 представляет порядок формирования данных в памяти.
Таблица 6. Порядок обработки данных по столбцам для № 16 (N/2=8)
Строка Память Этапы лифтинга
С0 С1 d0 s d1 d<°> s(0) d(1) s(1)
0 СО
1 С1
2 C3 d(0)o s(0)0 d(0)0=C1 -P1 (C0+C2) s(0)0=C0-U1(d(0)0+d(0)0)
3 С4
4 C5 d(0)i s(0)1 d(1)o d(0)1 =C3-P1 (C2+C4) s(0)1=C2-U1 (d(0)0+d(0)1) d<1»0=d<0»0-P2(s(0)0+s<0»1) s<1»0=s(0»0-U2(d(1»0+d<1»0)
5 С6
6 C7 d(0)2 S(0)2 d(1)1 d(0)2=C5-P1 (C4+C6) s(0)2=C4-U1(d(0)1+d(0>2) d(1)1=d(0)1-P2(s(0)1+s(0)2) s(1)1=s(0)1-U2(d(1)0+d(1)1)
7 С8
8 C9 d(0)3 s(0)3 d(1»2 d(0)3=C7-P1 (C6+C8) s(0)3=C6-U1(d(0)2+d(0)3) d(1)2=d<0»2-P2(s(0)2+s<0»3) s<1)2=s<0»2-U2(d<1»1+d<1»2)
9 С10
10
Запись
Чтение и запись
Поскольку вычисление результатов происходит через строку, то один и тот же арифметический блок может быть задействован поочередно для обработки низкочастотных и высокочастотных результатов одномерного DWT-преобразования. Архитектура обработки данных по столбцам преставлена на рис. 11. Блок 1при1_8е1ес1; используется для переключения режимов вычислительных процессов в целях получения низкочастотных и высокочастотных результатов одномерного DWT-преобразования, которые являются в данном блоке входными значениями.
; KU)
dl L
Unit Delay4
Рис. 10. Схема буфера памяти строк (L-mem)
L-► Sel
CD—► CO L C0_L d1
CD-+ C1 L C1_L
CD-* C2 L C2_L
CD-* dO L d0_L
CD—► s_L d0
dl L d1_L
CD—► CO H C0_H C0
CD-+ C1 H C1_H
CD-* C2_H C2_H C1
GD-> dO H d0_H
СЭ-+ s H s_H C2
dl H d1_H
Input_ selec
Unit Delay4
Integer Delay2
Integer Delay4
"►iz
Integer Delay Delay3
Unit Delay6
-►CD
Unit Delay3
Unit Delay/
►CD
►^[^CD
-►CD
s_out
Integer Del ay5
Рис. 11. Арифметический блок для обработки данных по столбцам (Arithmetic Block)
z
sei Integer Delay1
nteger Del ay6
Delayl
s0 1
d0
C2
d0 out
6. Заключение
Научная новизна - предложена системная модель вейвлет-преобразования 9/7 цифровой обработки данных, реализованная в Simulink. Модель позволяет однозначно трактовать работу устройства. Спроектирован специализированный вичислитель, работающий по принципу конвейера, и управляющий блок устройства. Выполнено моделирование и верификация режимов работы памяти.
Технология, заключающаяся в предварительной системной разработке структуры DWT-вычислителя, существенно упрощает последующий процесс проектирования RTL-модели устройства на VHDL и Verilog.
Практическая значимость - существенное уменьшение <на 30-50%> цикла проектирования конвейерного устройства цифровой обработки сигналов за счет предварительной разработки и верификации архитектурной модели системного уровня по заданной спецификации.
Преимущества предложенной технологии создания иерархических системных моделей проектирования:
1> Наглядность описания модели устройства в виде системной архитектуры, возможность моделирования и верификации функциональности изделия до создания RTL-модели на языках HDL.
2> Технологичность и инвариантность предложенных системных архитектурных моделей относительно написания VHDL -кода, наглядность процедур тестирования, диагностирования и коррекции ошибок передачи данных или формирования управляющих сигналов, что значительно упрощает весь процесс проектирования и на 30% сокращает время разработки конвейерных вычислительных устройств.
3> Дальнейшие исследования связаны с анализом и определением зависимости качества изображения от разрядности коэффициентов лифтинга, аппаратурной сложности, промежуточных и конечных результатов. Интересным является направление, связанное с получением оптимального решения в отношениях «качество изображения - размер аппаратуры» для реализации устройства. Также актуальными на сегодня следует считать аппаратную реализацию в кристалле программируемой логики, полную верификацию HDL-модели, автоматическое генерирование управляющего блока конвейерных архитектур.
Список литературы: l.Daubechies I. andSweldens W. Factoring wavelet transforms into lifting steps. Bell Laboratories, Lucent Technologies. 1996. 368p. 2. Daubechies I. and Sweldens W. Factoring wavelet transforms into lifting schemesp. J. Fourier Anal. Appl. Vol. 4. 1998. P. 247-269. 3. Kotteri K.A., Barua S., Bell A.E., and Carletta J.E. A comparision of hardware Implementations of the biorthogonal 9/7 DWT: Convolution Versus Lifting - IEEE Transactions on circuits and systems. II: Express Briefs, Vol. 52, No. 5, May 2005. P. 256260. 4. Liao H., MandalM.K., and Cockburn B.F. Novel Architectures for Lifting-based Discrete Wavelet Transform. Electronics Letters. Vol. 38. 2002. Issue 18. P. 1010-1012. 5. Dimitroulakos G., Zervas N.D., Sklavos N., Goutis C.E. An efficient VLSI implementation for forward and inverse wavelet transform for JPEG2000. Proc. of 14th IEEE International Conference on Digital Signal Processing <DSP'02>. Greece. 2002. P. 233-236. 6. Abdullah AlMuhit, Md. Shabiul Islam, Masuri Othman. VLSI Implementation of Discrete Wavelet Transform <DWT> for Image Compression. 2nd International Conference on Autonomous Robots and Agents. 2004. New Zealand. P. 391-395. 7. Irina Hahanova, Irina Pobegenko, Wade Ghribi, Hassan Kteiman. Lifting structure implementation of discrete wavelet transform for filter bank 5/3. TCSET'06. 2006. P. 293 -296. 8. Hahanova I., Miroshnychenko Y., Pobegenko I., Savvutin O. Design Models of Pipelined Units for Digital Signal Progressing. Proceedings of the IX International Conference The Experience of Designing and CAD Systems in Microelectronics CADSM'07. Ukraine. 2007. P. 87-91. 9. Tinku Acharya, Ping-Sing Tsai JPEG2000 Standard for Image Compression. Concepts, Algorithms and VLSI Architectures. J.Wiley & Sons. New Jersey. 2005. 292 p.
Поступила в редколлегию 19.06.2007 Хаханова Ирина Витальевна, докторантка кафедры АПВТ ХНУРЭ. Научные интересы: проектирование цифровых систем на кристаллах. Увлечения: английский язык, музыка. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. 70-21-326. E-mail: [email protected]
Побеженко Ирина Александровна, аспирантка кафедры АПВТ ХНУРЭ. Научные интересы: проектирование цифровых систем на кристаллах. Увлечения: английский язык, музыка. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. 70-21-326. E-mail: [email protected]
Хаханов Владимир Иванович, декан факультета КИУ, д-р техн. наук, профессор кафедры АПВТ ХНУРЭ. Научные интересы: проектирование и тестирование цифровых систем. Увлечения: футбол, горные лыжи, путешествия. Адрес: Украина, 61166, Харьков, пр. Ленина, 14, тел. 70-21-326. E-mail: [email protected]