Доклады БГУИР
2009 № 6 (44)
УДК 004.383
СТРУКТУРНЫЕ РЕШЕНИЯ ПРОЦЕССОРОВ ДИСКРЕТНОГО КОСИНУСНОГО ПРЕОБРАЗОВАНИЯ ДЛЯ ВСТРАИВАЕМЫХ СИСТЕМ МУЛЬТИМЕДИА РЕАЛЬНОГО ВРЕМЕНИ
ВВ. КЛЮЧЕНЯ
Белорусский государственный университет информатики и радиоэлектроники П. Бровки, 6, Минск, 220013, Беларусь
Поступила в редакцию 21 мая 2009
Приведены структурные решения алгоритмов быстрого дискретного косинусного преобразования (ДКП) для матриц 8x8, которые используются при кодировании изображения в мобильных мультимедийных системах с минимальными затратами аппаратных ресурсов и потребляемой мощностью. Также предложен метод оптимизации критериев качества вычисления ДКП при реализации на FPGA.
Ключевые слова: ДКП, CORDIC, схема Лоффлера.
Введение
Современный мир невозможно представить без мобильных систем мультимедиа. В основе данных систем лежат кодеры/декодеры стандартов MPEG, JPEG и H.264, ядром которых является дискретное косинусное преобразование (ДКП). Дискретное косинусное преобразование — одно из ортогональных преобразований. Вариант косинусного преобразования для вектора действительных чисел применяется в алгоритмах сжатия информации с потерями. Это преобразование тесно связано с дискретным преобразованием Фурье и является гомоморфизмом его векторного пространства. Косинусное преобразование вектор сигнала размером N в вектор частотных коэффициентов соответствующего размера (N=8). Формула дискретного косинусного преобразования:
2 N ~ 1 х = —с к У у cos
( 2j + \ кж л
2N
с(к) =
1
(1)
к = О,
V2
\,к >0,
где к = — 1, у. — исходный сигнал, хк — частотные коэффициенты исходного
сигнала. Формула обратного дискретного косинусного преобразования (О ДКП):
27 + 1 кл
' (2)
2 N ~1 у = — ^ с к х cos
J Nk = o
2 N
с к =
1
,к = О,
>/2'
\,к >0,
где ] = ОД,...,N-1.
ДКП вектора из 8 отсчетов сигнала часто называют ДКП8. Наиболее распространен двумерный вариант преобразования для матриц 8x8, состоящий из последовательности ДКП8 сначала для каждой строки, а затем для каждого столбца матрицы. Обычно для реализации блоков ДКП размерностью 8x8 используется 64 умножения. Каждое умножение потребляет определенный ток, что влияет на продолжительность работы системы. Поэтому актуальной задачей является поиск алгоритмов с минимальной вычислительной сложностью, аппаратная реализация которых дает минимальное потребление энергии.
Анализ и методы построения быстрых алгоритмов ДКП
Быстрые алгоритмы ДКП на основе схемы Лоффлера. Одним из самых популярных путей реализации быстрых ДКП является алгоритм потокового графа для ПЛИС [1-4]. Лоффлер предложил простой ДКП/ОДКП алгоритм на основе алгоритма потокового графа [5].
Рис. 1. Схема Лоффлера 8-точечного ДКП [6]
Рассмотрим матрицу оборота Гивенса, которая имеет место в структуре Лоффлера и в большинстве других ДКП структур:
К
К
соз(а) зт(а) —5т(а) соз(а)
Матрица оборота Гивенса может быть представлена в следующем виде:
соз(а) зш(а) —зт(а) соз(а)
1 р 1 0
0 1 и 1
1 Р
О 1
(3)
(4)
где ^=(сos(а)-1)/sm(а) и и=эт(а). Это преобразование называется оборотом Гивенса с лестничной структурой (в англоязычной литературе известно как binDCT [7]). Обратный оборот Гивенса со ступенчатой структурой:
К1 =
соз(а) зт(а) —зт(а) соз(а)
1 -р О 1
1
—и
1 -р О 1
(5)
-1
Схема Лоффлера может быть преобразована в схему с лестничной структурой, которая использует только 10 умножений и 28 сложений.
Существует множество алгоритмов вычисления 8-точечного ДКП с лестничной структурой на основе алгоритма потокового графа. Одними из самых распространенных являются алгоритмы Чена [4], Джонга [8] и др.
соз(а)
Рис. 2. Графическое представление оборота Гивенса с решетчатой структурой (а); оборот Гивенса с лестничной структурой (б)
Рис. 3. Схема Лоффлера 8-точечного ДКП с лестничной структурой
Если сравнить вычислительные сложности алгоритмов с лестничной структурой при реализации ДКП на ПЛИС, то умножение требует большей вычислительной сложности и аппаратных ресурсов, чем суммирование, из чего следует, что наилучшим является алгоритм с наименьшим количеством умножений (для целочисленных вычислений).
В табл. 1 показана вычислительная сложность, необходимая для различных алгоритмов. Как видно из таблицы, наименьшее количество умножений используется в структуре Лоффлера. Следовательно, структура Лоффлера имеет самую низкую вычислительную сложность и будет использоваться в качестве базовой при реализации ДКП8 или ДКП 8x8.
Таблица 1. Количество арифметических операций в различных алгоритмах
Алгоритм Чена [4] Лоффлера [6] Джонга [8]
Количество умножений 16 10 12
Количество сложений 26 28 28
Общее количество операций 42 38 40
ДКП на основе CORDIC алгоритма. Структура ДКП Лоффлера достигла хорошего качества преобразования результатов, но, с другой стороны, она нуждается в умножениях, которые требуют большой вычислительной сложности. Обратим внимание на один популярный путь реализации быстрого с уменьшением множителей аппроксимирующего ДКП — это использование CORDIC алгоритма в преобразовании [1, 3]. Алгоритм CORDIC (COordinate Rotation DIgital Computer — цифровой компьютер для вращения координат) предназначен для поворота двумерного вектора на заданный угол. CORDIC имеет "правильную" структуру для исполнения на ПЛИС. Структура ДКП, основанная на CORDIC, использует 6 CORDIC процессоров, требующих 104 суммирующих и 84 сдвиговых операций. Для того чтобы реализовать вектор вращения CORDIC алгоритма, который поворачивает вектор (х, у) на угол Э, круговой угол вращения опишем как
е = £ст. tan_1(2"!);o- =1,-1.
(6)
Затем вектор вращения может использовать итеративные уравнения, описанные в [3, 9]:
х. = х.-а.у.21
I + 1 I Г I
у. = у.-о.х. 21
(7)
В уравнении (7) только операции сдвига и суммирования требуют цифрового аппаратного обеспечения. Результаты вращающихся итераций нуждаются в компенсации компенсирующего коэффициента 5. Это также используется в итерационном методе.
Xr + l=Xr^rFr^
yi+i=yfi+xiFil
П 1+ =S,
i
у= 0,1-1 , F =2'.
(8)
Структура ДКП Лоффлера на основе CORDIC алгоритма. Применим CORDIC алгоритм для оригинального ДКП на основе схемы Лоффлера, так как оно имеет минимальное количество умножений. Чтобы получить данную структуру, сначала рассмотрим обороты Гивенса в схеме Лоффлера как показано на рис. 4. В этом случае обороты Гивенса могут быть выражены как:
h
(9)
Первая матрица может затем быть разложена:
1
Т2 1
~Т2
1
Т2 1
Т2.
(10)
которая равна CORDIC вращению входных значений на угол л/4 (рис. 4,а). Вычисление оборотов с вычислением коэффициентов Зл/8, л/16 и Зл/16 могут быть заменены CORDIC вращением, используя 9=Зл/8, л/16 и Зл/16 в указанном порядке. Отсюда мы можем заменить все обороты (Гивенса) в структуре ДКП Лоффлера и получить чистое ДКП Лоффлера на основе CORDIC алгоритма.
1
■0 ■4 •2 ■6
•1 ■5 ■3 •7
б
Рис. 4. СОКШС вращение вектора на угол п/4 (а); схема 8-точечной архитектуры ДКП Лоффлера
на основе СОКШС алгоритма (б)
В большинстве случаев использование кодеров/декодеров на основе ДКП для обработки сигналов обычно ведет к квантователю. В этом отношении мы можем пропустить несколько СОЯВГС итераций без потерь визуального качества, и сдвиг скомпенсировать шагами в таблице квантования без использования дополнительного аппаратного обеспечения. Мы постараемся игнорировать некоторые незаметные итерации и шаги сдвиговой компенсации каждого угла в квантователе, получая оптимизированное ДКП Лоффлера на основе СОЯЛГС (рис. 4,б). Ее реализация требует только 38 операций суммирования и 16 операций сдвига.
Кроме того, рассмотренный ДКП алгоритм не только уменьшает вычислительную сложность значительно, но сохраняет качество преобразования также хорошо, как и оригинальный алгоритм ДКП Лоффлера. Подведем итоги количества операций каждой ДКП архитектуры. Из табл. 2 видно, что ДКП Лоффлера на основе СОЯВГС алгоритма значительно уменьшает вычислительную сложность по сравнению с оригинальным алгоритмом ДКП Лоффлера и ДКП на основе СОЯВГС.
Таблица 2. Сложность различных ДКП архитектур
Вид ДКП архитектуры Умножение Суммирование Сдвиг
ДКП Лоффлера 11 29 0
ДКП на основе СопИс алгоритма 0 104 82
ДКП Лоффлера на основе СопИс алгоритма 0 38 16
БтБСТ 0 36 17
Если проанализировать потребляемую энергию ДКП, то структура ДКП Лоффлера на основе СОКШС алгоритма использует около 10% энергии ДКП Лоффлера и 16% ДКП на основе СОЯЛГС алгоритма соответственно. А также ослабляет потребляемую энергию на 59% при сравнении с binDCT (рис. 5).
Мощность
л
[мВ]
4
3,5 3 2,5 2 1,5 1
0,5 0
Ьое£йег СоМю БСТ
СоМю Ьое£йег
ЬшБСТ
>
Тип архитектруы
Рис. 5. Диаграмма потребляемой энергии для различных ДКП архитектур [11]
Оптимизация критериев качества вычисления ДКП множителями Лагранжа.
Рассмотрим критерии, которые влияют на качество вычисления ДКП аппроксимации при реализации на FPGA: а) эффективность кодирования; б) значение среднеквадратической ошибки (MSE); в) стоимость аппаратных ресурсов; г) шум-квантования; д) потребляемая мощность. Используя данные критерии, сформулировать задачу можно следующим образом: найти набор значений коэффициентов и разрядность слова обработки данных h, которые выдают ДКП приближение с высокой эффективностью кодирования такой, что среднеквадратическая ошибка (MSE), шум-квантования, аппаратные затраты и требуемая мощность удовлетворяли требованиям спецификации. Эта задача может быть сформулирована как дискретная ограниченная задача оптимизации: минимизируем -Cg (coding gain) при условии, что
gj (h) - MSE(/z) - MSEmax < 0, (11)
g2(h) = SlicesRequires(/z) -MaxSlices < 0, (12)
g3(h) - EstimationPower(/?) -MaxPower <0, (13)
g4 (h) = Ntot. - MaxNoise, < 0, i = 0,... ,7 (14)
где константы MSEmax, MaxPower, и MaxSlices — наибольшая допустимая среднеквадратическая ошибка (MSE), потребляемая мощность, и значения стоимости аппаратных затрат соответственно. Функции SlicesRequired(h) возвращают стоимость аппаратных затрат, а EstimatedPower(h) оценивают потребляемую мощность. Константа MaxNoise, — наибольшее допустимое значение шума-квантования в i-й субполосе. Одномерная ДКП аппроксимация с 8 субполосами (которая используются в JPEG и MPEG стандартах [12]), требует 8 ограничений (i=0..., 7), чтобы управлять шумом-квантования в каждом выходе субполосы. Небольшое значение какого-нибудь шума-квантования может загрязнять низкочастотные субполосы в приложениях сжатия, потому что эти субполосы содержат наибольшее количество сигнальной энергии. Высокочастотные субполосы могут допустить больше шума-квантования, так как немного энергии сигнала присутствует в этих субполосах. Поэтому выгодно установить отличающиеся ограничения шума-квантования для каждой индивидуальной субполосы. Вышеупомянутую проблему трудно решить аналитически или в цифровой форме, потому что аналитические производные целевой функции и ограничений не могут быть определены. Вместо этого могут использоваться дискретные множители Лагранжа [13]. Ограничения ( 11)—( 14) могут быть объединены, чтобы сформировать дискретную лагранжеву функцию с введением положительно-оцененного вычисления, константы £weight и дискретных множителей Лагранжа ("/.]. и /.4():
7
Ld=~ZM,eightCg + max(0, gj(h)) + X2 max(0, g2(h)) + À,3 max(0, g3 (h)) + £ X4j max(0, g4j (h)) (15)
Заключение
Итак, структура ДКП Лоффлера на основе CORDIC алгоритма имеет минимальную потребляемую мощность. Экспериментальные результаты (на примере Xvid CODEC) показаны в табл. 3, из которой следует, что, во-первых, структура Лоффлера на основе CORDIC алгоритма расходует только 19% объема памяти (количества вентилей) и около 16% мощности от оригинальной структуры ДКП Лоеффлера. Во-вторых, описанная ДКП архитектура занимает примерно одинаковый объем памяти, как и binDCT, и также уменьшает на 59% мощность и на половину время задержки по сравнению с binDCT.
Дискретный локальный метод поиска Лагранжа для ДКП аппроксимации на основе FPGA можно использовать для управления эффективностью кодирования,
среднеквадратическим отклонением, шумом-квантованием, аппаратными затратами и потребляемой мощностью, оптимизируя значения коэффициентов и длину слова передачи данных. Этот метод позволяет находить компромиссные решение между перечисленными выше критериями и применять их для приложений, использующие ДКП аппроксимации.
Таблица 3. Мощность (мВт), объем памяти (количество вентилей), задержка (нс)
Структура Лоффлера Cordic [3] Структуры Лоффлера на основе Cordic алгоритма [11] binDCT [7]
Мощность (мВт) 3.557 1.954 0.5616 0.9604
Объем памяти (количество вентилей) 15.06K 6.66K 2.81K 2.83K
Задержка (нс) 13.49 15.08 8.37 12.17
DCT PROCESSORS STRUCTURAL DECISIONS AND THEIR IMPLEMENTATION FOR EMBEDDED REAL-TIME MULTIMEDIA SYSTEM
V.V. KLUCHENYA Abstract
Structural decisions algorithms of fast discrete cosine transform (DCT) for matrixes 8x8, which allow to reduce consumed power and to increase the quality of image coding in mobile multimedia systems with minimum hardware cost and power consumption, are presented. And also the method of optimization performance measures of computation DCT at implementation on FPGA is proposed.
Литература
1. Hsiao S., Hu Y., Juang T., Lee C. Efficient VLSI Implementations of Fast Multiplierless Approxi-mated DCT Using Parameterized Hardware Modules for Silicon Intellectual Property Design. 2005. Vol. 52. P. 1568-1579,
2. August N.J., Ha D.S. // IEEE Transactions on Multimedia. 2004.Vol. 6, P. 414-422,
3. Jeong H., Kim J., Cho W.K. Low-Power Multiplierless DCT Architecture Using Image Correlation. 2004. Vol. 50, P. 262-267.
4. Chen W.H., Smith C., Fralick S. A Fast Computational Algorithm for the Discrete Cosine Transform. 1977. Vol. 25. P. 1004-1009.
5. Loeffler C., Lightenberg A., Moschytz G.S. // Proc. ICASSP. 1989. Glasgow, UK. Vol. 2. P. 988-991.
6. Fox T.W., Turner L.E. // IEEE Journal on Applied Signal Processing. 2003. № 6. P.543-554.
7. Liang J., Tran T.D. // IEEE Trans-actions on signal processing. 2001. Vol. 49, № 12. P. 3032-3044.
8. Jeong Y., Lee I., Kim H.S., ParkK.T. // Electronic Letters. 1998. Vol. 34, № 8. P. 723-724.
9. Mariatos E., Metafas D., Hallas J., Goutis C. // IEEE Int. Symposium on Circuits and Systems. 1994.Vol. 4, P. 271-274.
10. Duhamel P., H'Mida H. // IEEE Int. Conf. on ICASSP. 1987. Vol. 12, P. 1805-1808,
11. Heyne B., Götze J. // Adv. Radio Sci. 2007. Vol. 5, P. 305-311.
12. Sayood K. Introduction to Data Compression, MorganKaufmann Publishers, San Francisco, CA, USA, 2000.
13. Wah B.W., Wu Z. // Proc. Principles and Practice of Constraint Programming. Springer-Verlag, Alexandria, VA, USA, October 1999. P. 28-42