УДК 004.627
DOI: 10.17586/0021-3454-2016-59-12-991-996
ПОВЫШЕНИЕ ЭФФЕКТИВНОСТИ СЖАТИЯ ДАННЫХ С ПОМОЩЬЮ ИЕРАРХИЧЕСКОГО ПЕРЕЧИСЛИТЕЛЬНОГО КОДИРОВАНИЯ
Нгуен Ван Чыонг, А. А. Тропченко
Университет ИТМО, 197101, Санкт-Петербург, Россия E-mail: zayka_98rus@mail.ru
Предложен способ повышения эффективности стандартов сжатия мультимедийных данных. Для повышения эффективности энтропийного кодирования в рамках стандарта использовано иерархическое перечислительное кодирование (HEnuC), включающее в себя методы кодирования Линча—Дэвиссона (LD) и перечислительного кодирования ограниченных целых чисел (EBI). Экспериментальное исследование предложенных решений проведено на нескольких изображениях с помощью пакета MatLab. Результаты экспериментов показали большую эффективность сжатия по сравнению с традиционным методом Хафф-мана. Предложенный способ может быть рекомендован для применения в телекоммуникационных системах для задач хранения, передачи и обработки мульти-медиаданных.
Ключевые слова: иерархическое перечислительное кодирование (HEnuC), энтропийное кодирование, степень сжатия, лексикографический индекс, сжатие мультимедийных данных
Сжатие мультимедийных данных играет важную роль в современных коммуникационных системах. Алгоритмы сжатия предназначены для компактного представления на исходных данных с помощью операций отображения, преобразования, квантования или их комбинации [1, 2]. Недавние исследования, посвященные сжатию, больше фокусируются на стадии преобразования данных, и в последние годы разработано большое число новых методов, касающихся этой стадии. Обычные алгоритмы, которые используются в энтропийном кодировании, относительно редко обновляются. Однако обычные методы энтропийного кодирования неэффективны при обращении к данным, имеющим нестационарный характер. Следовательно, эффективность сжатия данных может быть существенно повышена за счет использования энтропийного кодера, регулирующего нестационарность. Как известно, на сегодняшний день в энтропийном кодере используются кодирование Хаффмана [3, 4], арифметическое кодирование [5, 6] и некоторые другие виды кодирования [7, 8].
Целью настоящей работы является сравнительный анализ методов сжатия нестационарных потоков данных с помощью иерархического перечислительного кодирования и возможности их применения в стандартных алгоритмах сжатия мультимедиаданных.
Один из широко используемых методов кодирования (LD) был предложен Линчем в работе [9] и дополнен Дэвиссоном в статье [10] (также см. [11, 12]). Алгоритм кодирования описывается следующим образом. Пусть n — вектор двоичных чисел и x = (х^,x2,...,xn) —
элементы этого вектора, S — множество {0,1}n векторов. Определим ns — число элементов в S, ns(xbx2,...,xk) — число элементов в S, для которого были определены первые k эле-
n
ментов. Предложим, что вектор имеет w единичных элементов или ^ xj = w .
j=1
Процесс кодирования заключается в вычислении лексикографического индекса вектора х е £ по следующей формуле [13]:
п
*Б (х) = X Х}П$ (Х1' Х2ху—1,0) , (1)
У =1
где
(п - к Л
^ п( ч, к))
к-1
п(ч,к) = ч— Xху •
у=1
Таким образом, имеем:
п (п — к Л
18 (х) = Х Ху к • (2)
у=1 Чn(w, к))
Для построения выходного кода требуется 1о§2 СЧ битов.
В общем случае лексикографический индекс вектора хе £ ^ |о,1,2,...,М]п определяется по следующей формуле:
п ху—1
к (х) = ХХ хуп£ (хl, х2,•••, ху—1, т). (3)
у=1 т=0
Процесс декодирования осуществляется по следующему алгоритму: для к = 1,..., п, если ¡3(х) > п3(х1, х2,..., хк—1,0), необходимо установить хк = 1 и ¡3(х) = ¡3(х) — п3(х1, х2,..., хк—1,0); в противном случае — хк = 0.
Для сжатия нестационарных потоков также используется метод перечислительного кодирования ограниченных целых чисел (ЕВ1). Рассмотрим вектор х размерности п, каждый элемент которого х1 удовлетворяет условию
0 < х1 < М,
где М — постоянное положительное целое число. Обозначим сумму всех элементов вектора ч. Пусть /м (р, ч) — число векторов, имеющих сумму элементов р и размерность 4:
(1,0 < р < М,
/м(Р,1) = 10
[0, иначе;
р
/м ^ Ч) = X /м <Л Ч —1).
1=р—М
Выразим п£ через /м (р, Ч). Рассмотрим вектор размерности п, имеющий сумму элементов ч и первые к элементов (х1,х2,...,хк). Остальные п — к элементов должны удовлетворять двум ограничениям:
— каждый элемент принадлежит отрезку [0; М];
к
— их сумма равна ч — X х, •
I=1
Таким образом, п5 (х1, х2,..., хк ) может вычисляться так:
ff
nS (xh x2'---' xk) - fM
w
-I-
Л
W
n - k
Из (3) и (4) получим:
n-1 xj-1 ff
i—1
k Л
Л i .
J
Л
n - J
(4)
(5)
(х) = ЕЕ ум w-m
] =1 т=0 V V г =1 )
По уравнению (5) строится лексикографический индекс вектора х . При М = 1 кодиро вание выполняется по методу ЬБ.
Процесс декодирования по методу ЕВ1 осуществляется согласно алгоритму, представ ленному на рис. 1.
Xn=W
I
Конец
3
Рис. 1
На основе подходов LD и EBI был разработан метод иерархического перечислительного кодирования (HEnuC) [14, 15]. Рассмотрим входной вектор двоичных чисел x размерностью N. Разделим x на меньшие последовательности размером П1. Пусть W1 i обозначает вес
(т.е. сумму элементов, равных 1) i-й последовательности, 0 < wXi < П1. Продолжим разделять множество последовательностей на векторы размерности n2 . Тогда сумма элементов каждого вектора 1-го уровня находится в отрезке [0; nn ]. Используя иерархический метод, построим дерево сумм (рис. 2) „снизу вверх" в соответствии с процедурой:
i«1
w1,i - I XJ,
J-(i -1)«!+1
w ■ — p,l
I wp-1, J, p >1, J—(i -1) np +1
где x,- — j-й элемент последовательности x, np
j j t
размерность векторар-го уровня.
Кодирование по алгоритму НЕпиС выполняется „сверху вниз". Для кодирования ^
применяется код фиксированной длины.
Кодирование методом НЕпиС включает следующие этапы.
1. Построить дерево сумм.
2. Кодировать 1 с использованием [1о§2( N +1) ] бит.
3. Выполнить цикл дляр от ртах -1 до 1 с единичным шагом:
" N
— выполнить цикл для г от 1 до
п р, >ъ
— кодировать вектор {wр(iwpin } методом EBI.
4. Выполнить цикл для i от 1 до
N
n
— кодировать |^р(г-1)и +1,...,~Мргп } методом ЬБ, чтобы получить выходную последовательность.
Процесс декодирования методом НЕпиС производится в таком же порядке, как процесс кодирования.
Несмотря на то что НЕпиС является одним из лучших энтропийных кодеров по коэффициенту сжатия, он достаточно сложен, так как включает сложности методов ЬБ и ЕВ1. При кодировании число требуемых операций достигает (2 + 4/ щ ^, а число обращений к памяти —
(1 + 4/щ)N. При декодировании это значение меньше 3N.
Рис. 2
Рассмотренный выше метод HEnuC обычно используется для сжатия нестационарных потоков данных при моделировании сложных статистических процессов. В настоящей работе возможность их использования для сжатия мультимедийных данных проанализирована с помощью моделирования в среде MatLab. Тесты выполнены на нескольких изображениях, в том числе Ping pong и Landscape (400x320 пикселов); Baby и Tiger (320x240); Football и Tennis (240x160); Animated и Ronaldinho (160x160). Размеры выходных кодов при простом энтро-
пийном кодировании (код Хаффмана [3, 4]) и с использованием метода HEnuC сравниваются в таблице.
Изображение Выходной код энтропийного кодера, бит Повышение коэффициента сжатия, %
метод Хаффмана HEnuC
Ping pong 20235 18676 7,7
Landscape 17936 14903 16,9
Baby 12272 10204 16,8
Tiger 6540 5741 12,2
Football 7648 6394 16,4
Tennis 6131 5550 9,5
Animated 4539 3986 12,2
Ronaldinho 6463 5841 9,6
Таким образом, можно утверждать, что метод HEnuC обеспечивает больший коэффициент сжатия.
В работе предложено применять метод HEnuC для повышения эффективности сжатия мультимедийного изображения. Экспериментальные результаты показали, что метод дает большую степень сжатия по сравнению с простым энтропийным кодированием по методу Хаффмана, но при этом увеличивается время всей процедуры сжатия.
список литературы
1. Ричардсон Я. Видеокодирование. H.264 и MPEG-4 — стандарты нового поколения. М.: Техносфера, 2005. 368 с.
2. Ватолин Д., Ратушняк А., Смирнов М., Юкин В. Методы сжатия данных. Устройство архиваторов, сжатие изображений и видео. М.: ДИАЛОГ-МИФИ, 2003. 384 с.
3. Huffman D. A. A Method for the construction of minimum redundancy codes // Proc. IRE. 1952. Vol. 40, N 9. P. 1098—1101. DOI: 10.1109/JRPR0C.1952.273898.
4. Sharma M. Compression using Huffman coding // Intern J. of Computer Science and Network Security. 2010. Vol. 10, N 5. P. 133—141.
5. Rissanen J. J., Langdon G. G. Arithmetic Coding // IBM J. of Research and Development. 1979. Vol. 23, N 2. P. 149—162.
6. Howard P. G., Vitter J. C. Arithmetic Coding for Data Compression // Proc. of the IEEE. 1994. Vol. 82, N 6. P. 857—865. DOI: 10.1109/5.286189.
7. Welch T. A. A technique for high-performance data compression // IEEE Computer Society. 1984. Vol. 17, N 6. P. 8—19. DOI: 10.1109/MC.1984.1659158.
8. Ziv J., Lempel A. A universal algorithm for sequential data compression // IEEE Trans. Information Theory. 1977. Vol. 23, N 3. P. 337—343. DOI: 10.1109/TIT.1977.1055714.
9. Lynch T. J. Sequence time coding for data compression // Proceedings of the IEEE. 1966. Vol. 54, N 10. P. 1490—1491. DOI: 10.1109/PROC.1966.5167.
10. Davisson L. D. Comments on 'Sequence time coding for data compression' // Proc. of the IEEE. 1966. Vol. 54, N 12. P. 2010.
11. Schalkwijk J. P. M. An algorithm for source coding // IEEE Transact. on Information Theory. 1972. Vol. 18, N 3. P. 395—399. DOI: 10.1109/TIT.1972.1054832.
12. Cover T. M. Enumerative source encoding // IEEE Transact. on Information Theory. 1973. Vol. 19, N 1. P. 73—77. DOI: 10.1109/TIT.1973.1054929.
13. Lehmer D. H. Teaching combinatorial tricks to a computer // Proc. of Symposia in Applied Mathematics. American Mathematical Society, Providence, R.I. 1960. Vol. 10. P. 179—193.
14. Oktem L. A novel hierarchical coding scheme based on polar mass distribution // IEEE Electrotechnical Conf. 1994. Vol. 1. P. 329—331. DOI: 10.1109/MELCON.1994.381087.
15. Oktem L., Astola J. Hierarchical enumerative coding of locally stationary binary data // IEEE Electronics Letters. 1999. Vol. 35, N 17. P. 1428—1429. DOI: 10.1049/el:19990969.
Чыонг Нгуен Ван
Андрей Александрович Тропченко
Рекомендована кафедрой вычислительной техники
Сведения об авторах аспирант; Университет ИТМО; кафедра вычислительной техники; E-mail: thientruong.mars@gmail.com
канд. техн. наук, доцент; Университет ИТМО; кафедра вычислительной техники; E-mail: zayka_98rus@mail.ru
Поступила в редакцию 22.04.16 г.
Ссылка для цитирования: Нгуен Ван Чыонг, Тропченко А. А. Повышение эффективности сжатия данных с помощью иерархического перечислительного кодирования // Изв. вузов. Приборостроение. 2016. Т. 59, № 12. С. 991—996.
IMPROVING THE EFFICIENCY OF DATA COMPRESSION USING A HIERARCHICALLY
ENUMERATIVE CODING
Nguyen Van Truong, A. A. Tropchenko
ITMO University, 197101, St. Petersburg, Russia E-mail: zayka_98rus@mail.ru
A method is proposed for improving the efficiency of multimedia data compression standards. To improve the efficiency of entropy coding within the standard, the hierarchical enumerative coding (HEnuC) is used, including the coding method of Lynch-Davisson (LD) and enumerative coding of bounded integers (EBI). Experimental study of the proposed solutions is performed using MatLab package for several images. The presented results demonstrate better compression than achieved with the simple entropy coding (Huffman method). The developed approach is recommended for the use in telecommunication systems for storage, transmission, and processing of multimedia data.
Keywords: hierarchical enumerative coding (HEnuC), entropy coding, compression rate, lexicographic index, multimedia data compression
Data on authors
Truong Nguyen Van — Post-Graduate Student; ITMO University, Department of Computation
Technologies; E-mail: thientruong.mars@gmail.com Andrew A. Tropchenko — PhD, Associate Professor; ITMO University, Department of Computation Technologies; E-mail: zayka_98rus@mail.ru
For citation: Nguyen Van Truong, Tropchenko A. A. Improving the efficiency of data compression using a hierarchically enumerative coding // Izv. vuzov. Priborostroenie. 2016. Vol. 59, N 12. P. 991—996 (in Russian).
DOI: 10.17586/0021-3454-2016-59-12-991-996