ВЕСТНИК ТОМСКОГО ГОСУДАРСТВЕННОГО УНИВЕРСИТЕТА
2011 Управление, вычислительная техника и информатика № 3(16)
УДК 004.627: 004.932.2
Д.В. Дружинин
КОМБИНИРОВАННЫЙ АЛГОРИТМ СЖАТИЯ КЛЮЧЕВЫХ КАДРОВ
ЭКРАННОГО ВИДЕО
Представлен комбинированный алгоритм сжатия, разработанный для изображений, являющихся кадрами экранного видео. Приведены результаты практического сравнения с алгоритмами семейства LZO (Lempel - Ziv -Oberhumer).
Ключевые слова: экранное видео, сжатие изображений, быстрые алгоритмы сжатия.
Экранное видео - видео происходящего на экране пользователя. При этом фиксируется активность пользователя: движения курсора мыши, скроллинг, сворачивание и открытие свёрнутого окна, перемещение окна, ввод текста и т. д.
Сжатие видео - одна из наиболее трудоёмких по времени задач, которые приходится решать не только профессионалам, но и рядовым пользователям. Одним из типов видеоданных, сжатие которых необходимо осуществлять в режиме реального времени, является экранное видео. Как правило, это видео высокого разрешения. Причём зачастую о полезности программ, осуществляющих сжатие и запись на жёсткий диск этого типа видеоданных, можно говорить только в том случае, когда их можно запустить в фоновом режиме.
Поскольку при сжатии видео ключевые кадры кодируются независимо от других кадров, существует необходимость в быстрых алгоритмах сжатия изображений. В соответствии с классификацией изображений, приведённой в [1], кадры экранного видео относятся к дискретно-тоновым изображениям. Для сжатия таких изображений, как правило, используются алгоритмы без потерь информации, так как при сжатии дискретно-тоновых изображений даже небольшой процент потерь может привести к значительному визуальному ухудшению качества изображения. Например, искажение всего нескольких пикселей буквы делает её неразборчивой, преобразует привычное начертание в практически неразличимое [1, с. 120]. К таким алгоритмам можно отнести RLE (Run-length encoding) и семейство алгоритмов LZ (Lempel - Ziv). Для сжатия экранного видео в режиме реального времени зачастую используется алгоритм LZO [2]. Например, LZO используется в свободном ПО (программном обеспечении) для сжатия экранного видео CamStudio [3].
В этой работе представлена вторая версия гибридного алгоритма, предназначенного для сжатия дискретно-тоновых изображений. Гибридный алгоритм первой версии был также разработан автором. Ранние модификации гибридного алгоритма подробно рассмотрены в [4, 5]. В этих работах также проводится практическое сравнение гибридного алгоритма с некоторыми другими алгоритмами сжатия. Вторая версия алгоритма отличается увеличенной скоростью работы и повышенной степенью сжатия. Далее в тексте при упоминании о гибридном алгоритме речь идёт именно о второй версии.
Также в работе представлен комбинированный алгоритм сжатия на основе гибридного алгоритма, который на финальном этапе сжатия использует LZO. Как
показано в разд. 3 «Результаты тестирования», такой комбинированный алгоритм позволяет значительно увеличить степень сжатия по сравнению с алгоритмами семейства Ь20, способными сжимать экранное видео в режиме реального времени на широком спектре компьютеров пользователей.
1. Схема комбинированного алгоритма сжатия
Был предложен следующий комбинированный алгоритм сжатия:
На первом этапе исходное изображение обрабатывается гибридным алгоритмом версии 2. На выходе получается 3 массива:
1. Массив флагов. В этом массиве избыточность данных минимальна, поэтому флаги записываются в выходной поток без дополнительного сжатия.
Рис. 1. Схема комбинированного алгоритма, разработанного для сжатия ключевых кадров экранного видео
2. Массив байтов сдвигов и количеств. В этом массиве также содержатся различные служебные данные (кроме флагов), используемые гибридным алгоритмом. Все данные, попадающие в этот массив, имеют однобайтовую природу. Данные в этом массиве имеют большую избыточность, по сравнению с массивом флагов. Действительно, для кадра экранного видео оказывается, что различные значения таких параметров, как количество подряд идущих пикселей одного цвета, а также расстояние до ближайшего встреченного пикселя такого же цвета, не являются равновероятными. То есть такие данные имеют статистическую избыточность. Поэтому для дополнительного сжатия этих данных можно использовать один из статистических методов сжатия. Было принято решение использовать ал-
горитм Хаффмана, так как кодирование метода Хаффмана работает достаточно быстро для осуществления сжатия в режиме реального времени.
3. Массив пикселей. Будем называть этот массив остаточным изображением. Это те пиксели исходного изображения, которые не были заменены в ходе кодирования гибридным алгоритмом некоторыми служебными данными. Как правило, статистическая избыточность в этом массиве невысока (например, алгоритм Хаффмана обычно способен сжать остаточное изображение всего на 1 - 3 %). Зато в этих данных присутствует некоторая пространственная избыточность. Часто в остаточном изображении можно увидеть группы подряд идущих пикселей по вертикали или горизонтали близких цветов. Такой тип пространственной избыточности характерен для остаточного изображения, так как гибридный алгоритм не может его устранить.
Было принято решение провести следующую предобработку: новое значение для каждой компоненты пикселя, начиная со второго, вычисляется как разность с соответствующей компонентой предыдущего пикселя:
с_coded[i] = (с[/] - е[/-1]) % 256; (язык Си++).
После этой предобработки вместо различных последовательностей пикселей близкого цвета появляются значения, близкие к нулю. И только первый пиксель в группе пикселей близкого цвета после такой предобработки получает значение, далёкое от нуля.
Затем применяется алгоритм Ь20, который обеспечивает дополнительное сжатие при минимальных временных затратах. Было принято решение использовать алгоритм Ь20_Х_999 с уровнем сжатия 6 как обеспечивающий максимальное сжатие при допустимых затратах времени. Как будет показано в разд. 3 «Результаты тестирования» степень сжатия предложенной схемы сжатия не ниже, а для некоторых типов изображений значительно выше, чем у Ь20_Х_999 с уровнем сжатия 6.
2. Гибридный алгоритм второй версии
Гибридный алгоритм является органическим соединением двух алгоритмов: КЬБ и сдвигового. Рассмотрим вначале каждый из этих алгоритмов в отдельности.
2.1. ЯЬБ
В качестве составной части гибридного алгоритма используется специально разработанная реализация ЯЬБ, адаптированная для сжатия экранного видео. Канонический алгоритм ЯЬБ способен выявлять только горизонтальную или вертикальную избыточность (в зависимости от способа обхода пикселей изображения) [6, с. 289]. В состав гибридного алгоритма входит реализация КЬБ, способная выявлять как горизонтальную, так и вертикальную избыточность.
Вспомогательные структуры данных. При кодировании и декодировании используется массив флагов, где один флаг соответствует одному пикселю исходного изображения. Если этот флаг равен 0, соответствующий ему пиксель ещё не был закодирован, иначе - данный пиксель уже закодирован. Уже закодированные пиксели пропускаются при кодировании.
На каждом шаге алгоритма происходит подсчёт количества подряд идущих одинаковых пикселей в трёх направлениях: вправо от текущего пикселя, вниз от текущего пикселя, а также в прямоугольнике, левым верхним углом которого яв-
ляется текущий пиксель. Затем для кодирования выбирается то направление, в котором было найдено максимальное количество одинаковых пикселей. Для большинства типов изображений, например для непрерывно-тоновых, не имеет смысла вводить такое направление поиска, как прямоугольник с текущим пикселем в качестве левого верхнего угла. Но в случае кадров экранного видео использование такой области поиска оправдано, так как часто встречаются именно прямоугольные области одного цвета.
Обход пикселей изображения выполняется построчно сверху вниз, но если на данном шаге выбрана вертикальная либо прямоугольная группа пикселей, то устанавливаются соответствующие флаги в массиве флагов, после этого происходит возврат на исходную строку. При этом возможна следующая ситуация: пиксель р[1] уже был закодирован ранее, попав в вертикальную или прямоугольную группу пикселей одинакового цвета. Пусть текущий пиксель - это р^'-1]. Допустим также, что пиксель р^'+1] имеет такой же цвет, как р^-1]. В этом случае р^-1] и р^+1] могут быть закодированы, как горизонтальная группа пикселей.
Рассмотрим способ выбора флагов, записываемых в выходной массив:
1. В случае одиночного пикселя в массив флагов записывается один бит, равный 0.
2. В случае выбора прямоугольной области в массив флагов записывается последовательность битов 11.
3. В случае выбора горизонтальной области в массив флагов записывается последовательность битов 100.
4. В случае выбора вертикальной области в массив флагов записывается последовательность битов 101.
Самый короткий однобитовый флаг соответствует одиночному пикселю, так как тестирование показало, что при кодировании кадров экранного видео частота, с которой встречается одиночный пиксель, значительно превышает сумму частот всех остальных случаев. Частота, с которой встречается прямоугольная область, оказалась несколько выше частот встречаемости горизонтальной и вертикальной областей, поэтому для прямоугольной области была выбрана более короткая последовательность флагов.
Используется следующий формат закодированных данных.
В первом случае: <Последовательность флаговых битов> <цвет пикселя>.
Во втором случае: <Последовательность флаговых битов> <цвет пикселя> <количество пикселей по горизонтали> <количество пикселей по вертикали>.
В третьем и четвёртом случаях: <Последовательность флаговых битов> <цвет пикселя> <количество пикселей>.
При этом под количество пикселей отводится 2 байта во втором случае; 1 байт в третьем и четвёртом случаях.
Коэффициент сжатия в наихудшем случае: 25 / 24.
Коэффициент сжатия в наилучшем случае: 42 / (256 • 256 • 24).
Преимущества:
1. У такой реализации КЬБ повышена способность выявлять пространственную избыточность по сравнению с канонической реализацией.
Но при этом сохраняется главный недостаток канонического алгоритма КЬБ при сжатии экранного видео:
1. Если при построчном обходе пикселей изображения часто чередуются цвета, причём даже в том случае, когда набор цветов ограничен (например, текст), эффективность сжатия резко падает.
2.2. Сдвиговый алгоритм
Идея алгоритма: если при построчном обходе пикселей изображения незадолго до текущего пикселя встречался пиксель такого же цвета, то 3 байта, кодирующие цвет пикселя, можно заменить на 1-байтовую ссылку на пиксель с таким же цветом, а точнее - указать, на сколько пикселей нужно сдвинуться назад относительно текущего пикселя остаточного изображения, чтобы получить нужный цвет. Таким образом, может быть выстроено множество списков. Обход пикселей изображения выполняется построчно сверху вниз.
Вспомогательные структуры данных. Для ускорения работы алгоритма, как при кодировании, так и при декодировании используется хэш-таблица. При кодировании ключом хэш-таблицы является цвет, а значением - номер пикселя в остаточном изображении последнего просмотренного пикселя с таким цветом. При декодировании ключом хэш-таблицы является номер последнего просмотренного пикселя с таким цветом в остаточном изображении, а значением - цвет.
В случае, когда цвет встретился впервые или количество пикселей в остаточном изображении до предыдущего пикселя с таким же цветом превышает 28 -1, используется следующий формат: <0 (один бит)> <цвет пикселях Иначе используется формат: <1 (один бит)> <ссылка>.
Коэффициент сжатия в наихудшем случае: 25 / 24.
Коэффициент сжатия в наилучшем случае: 9 / 24.
Преимущества:
1) получаемый при кодировании формат хорошо поддаётся дальнейшему кодированию другими алгоритмами.
Недостатки:
1) даже в наилучшем случае степень сжатия невелика;
2) алгоритм медленно работает из-за обращения на чтение, а затем на запись к дополнительным структурам данных для каждого пикселя.
2.3. Гибридный алгоритм
На каждом шаге алгоритма кодирование выполняется в 2 стадии:
1. Выполняется часть алгоритма, основанная на сдвиговом алгоритме, то есть определяется, можно ли заменить 3 байта цвета пикселя на 1 байт ссылки.
2. Выполняется часть алгоритма, основанная на КЬБ. На этой стадии определяется, можно ли выявить группу пикселей одного цвета. Не будем перечислять варианты результирующего формата, так как это все возможные комбинации результирующих форматов КЬБ и сдвигового алгоритмов.
При этом используются вспомогательные структуры данных сдвигового алгоритма и КЬБ, рассмотренные выше.
Коэффициент сжатия в наихудшем случае: 26 / 24.
Коэффициент сжатия в наилучшем случае: 27 / (256 • 256 • 24).
Гибридный алгоритм обладает всеми преимуществами КЬБ. При его использовании достигается дополнительное сжатие за счёт применения идей сдвигового алгоритма. Гибридный алгоритм не наследует недостатки сдвигового алгоритма. Недостаток (1) устраняется за счёт сжатия алгоритмом ЯЬБ. А недостаток (2) присутствует в значительно меньшей степени, так как обращение к дополнительным структурам данных происходит не для каждого пикселя, а для каждой группы, то есть примерно в 40 раз реже при сжатии изображения, типичного для Windows ХР и примерно в 86 раз реже при сжатии изображения, значительную
часть которого занимает текст (эти цифры получены опытным путём). За счёт применения идей сдвигового алгоритма также устранён недостаток алгоритма RLE - в случае частого чередования цветов при построчном обходе пикселей изображения в условиях ограниченного количества этих цветов степень сжатия значительно выше, чем при сжатии RLE [4].
Стоит отметить, что гибридный алгоритм плохо поддаётся распараллеливанию, так как в случае независимой обработки различных частей исходного изображения разными потоками будет утеряна информация о связях между этими частями, вследствие чего степень сжатия снизится.
3. Результаты тестирования
Были протестированы следующие алгоритмы: LZO_X_1, LZO_X_999 с уровнем сжатия 1, 4, 6, 9; гибридный алгоритм второй версии, представленный комбинированный алгоритм, использующий LZO_X_999 с уровнем сжатия 6. Также в тестировании принимала участие реализация алгоритма, соответствующего стандарту Deflate [6, с. 95], от Microsoft. Соответствующий класс реализован в .NET framework 2.0. Для алгоритмов семейства LZO приведены также время финального сжатия алгоритмом Хаффмана, а также размер закодированного изображения после финального сжатия.
При тестировании каждое изображение имело разрешение 1024x768 и глубину цвета в 32 бита. Таким образом, размер исходного изображения составляет 1024-768-4 байтов. Тестирование проводилось на платформе со следующими характеристиками: процессор Intel Core 2 Duo E6750 2,66 ГГц; оперативная память DDR2 2Гб; операционная система Windows XP. На момент написания данной работы тестовая платформа находится в среднем сегменте по производительности.
Замечание 1: для гибридного алгоритма второй версии данные о размере сжатых данных и времени сжатия приведены с учётом финальной обработки методом Хаффмана, так как гибридный алгоритм был изначально спроектирован для использования совместно с методом Хаффмана.
Для тестирования использовались скриншоты трёх типов:
1. Изображения, типичные для Windows XP (10 штук);
2. Изображения, значительную часть которых занимает текст (8 штук);
3. Изображения, содержащие графики, диаграммы (10 штук);
Эти скриншоты доступны по ссылке [7]. Рис. 2 - 4 представляют собой уменьшенные копии некоторых тестовых изображений, сохранённые в градациях серого цвета.
По результатам тестирования, представленным в табл. 1 - 3, видно, что финальное сжатие методом Хаффмана позволяет значительно увеличить коэффициент сжатия алгоритмов семейства LZO при сравнительно небольших затратах времени (порядка 7 - 10 мс на кодирование и столько же на декодирование). Алгоритм, соответствующий стандарту Deflate и LZO_X_1, продемонстрировал наихудшие результаты на большинстве тестов. Из серии алгоритмов LZO наибольший коэффициент сжатия имеет LZO_X_999 с уровнем сжатия 9. Но этот алгоритм выполняется слишком долго для его запуска в режиме реального времени на значительной части компьютеров, используемых пользователями. При тестировании было установлено, что из алгоритмов серии LZO максимальная степень сжатия, при условии возможности запуска алгоритма в режиме реального времени на подавляющей части компьютеров, используемых пользователями, достигается при использовании LZO_X_999 с уровнем сжатия 6.
Рис. 2. Уменьшенная копия изображения WinXP_0.bmp
IO The Mozilla Blog | News, notes and rambling! from the Mozilla project - Mozilla Firefox 0НВ1
Файл Правка Вид Журнал Закладки Инструменты Справка
’ С X Й 1 http ://Ыод. mozilla. сот/ ’ ІІ/’ ЯнДекс Р\ Г, и
Ij31 Самые популярные I "‘l Начальная страница 1йП Лента новостей | ^ Windows Media [j Windows |_5 Бесплатная почта И. .. Q Настройка ссыпок
The latest Firefox 4 Beta is now available to download and test. We’ve continued our work to improve performance and stability, while also implementing a “Do Not Track” privacy feature to provide more control over online behavioral tracking.
The Web is evolving quickly and so are the ways that your data is collected, shared and stored. With the integration of the “Do Wot Track” option into Firefox 4 Beta, you can now check a “Do Not Track” box in the “Advanced” screen of Firefox’s Options. When this option is selected, a header will be sent signaling to websites that you wish to opt-out of online behavioral tracking. You will not notice any difference in your browsing experience until sites and advertisers start responding to the header.
You can read more about behavioral tracking in this post from Mozilla Privacy Lead, Alex Fowler. For more information about the technical implementation Do Not Track, check out this post from Sid Stamm, Mozilla security and privacy engineer.
Around the Web Firefox
Firefox for mobile International Mozilla Community Mozilla Labs Mozilla News Mozilla Service Week Personas Press Releases Tips Ee Tricks Uncategorized
We couldn’t do this without the help of our millions of beta testers and their feedback, which we welcome as we continue to improve and polish Firefox 4 Beta to ensure we deliver an awesome experience to our 400 million users around the world.
For more information:
Download Firefox 4 Beta Learn more about the features Submit your feedback Short, to the point FAQ Long, technical release notes
Trackbacks (132!)
Archives
February 2011 January 2011 December 2010 November 2010 October 2010 September 2010 August 2010 July 2010 June 2010 May 2010 April 2010
TZ. ■ 1—1 Г ОТ ОБО і Л Т £ 1 1 а . 1 ■ Л 1
I // пуск ш text У Мой компьютер Г Codec - Microsoft Vi... Г Ті TestLZO - Microsoft... О The Mozilla Blog | N.,, 13:31 1
Рис. З. Уменьшенная копия изображения text_4.bmp
Рис. 4. Уменьшенная копия изображения diagram_0.bmp
Сам по себе гибридный алгоритм демонстрирует меньшую степень сжатия по сравнению со схемой сжатия на его основе. Рассмотрим более подробно результаты тестирования комбинированного алгоритма, использующего Ь20_Х_999 с уровнем сжатия 6, и Ь20_Х_999 с уровнем сжатия 9 (с использованием финального сжатия методом Хаффмана).
Т аблица 1
Усреднённые данные о сжатии изображений, типичных для ’Моте* ХР
Алгоритм I Параметр Время кодирования I декодирования (мс) Размер после основного сжатия Размер после сжатия алгоритмом Хаффмана
1. LZO X 999, уровень 1 56 I 11 147886,6 124405
2. LZO X 999, уровень 4 56, 6 I 10 129921,8 112427,4
3. LZO X 999, уровень 6 67,7 I 9 120198,5 106388,6
4. LZO X 999, уровень 9 370,6 I 8,8 113822,4 101859,9
5. LZO X 1 11,2 I 11,7 159182,3 142159
6. Гибридный алгоритм v. 2 54,2 I 33,5 117388
7. Комбинированный алгоритм, использующий LZO_X_999, уровень 6 58,1 I 24,6 91029,1
8. Комбинированный алгоритм, использующий LZO_X_999, уровень 9 64,1 I 23,1 90679
9. Deflate 48,6 I 12 157206,5
Т аблица 2
Усреднённые данные о сжатии изображений, значительную часть которых занимает текст
Алгоритм I Параметр Время кодирования I декодирования (мс) Размер после основного сжатия Размер после сжатия алгоритмом Хаффмана
1. LZO X 999, уровень 1 56,1 I 10,9 164025,4 118184,1
2. LZO X 999, уровень 4 57,4 I 9,6 133731,6 102429,1
3. LZO X 999, уровень 6 72,6 I 8,5 110345,4 91106,8
4. LZO X 999, уровень 9 880 I 7,8 94430,6 81288,4
5. LZO X 1 11,8 I 11 176658,4 138447,3
6. Гибридный алгоритм V. 2 62,4 I 33 98180,3
7. Комбинированный алгоритм, использующий LZO_X_999, уровень 6 62,5 I 26,7 89682,6
8. Комбинированный алгоритм, использующий LZO_X_999, уровень 9 65 I 26,8 89578
9. Deflate 50,6 I 10,9 126848,4
Т аблица 3
Усреднённые данные о сжатии изображений, содержащих графики и диаграммы
Алгоритм I Параметр Время кодирования I декодирования (мс) Размер после основного сжатия Размер после сжатия алгоритмом Хаффмана
1. LZO X 999, уровень 1 53,9 I 9,1 124239,5 106542,4
2. LZO X 999, уровень 4 55,4 I 8,7 113404,2 98963,6
3. LZO X 999, уровень 6 65,4 I 8,6 107833,9 95126,4
4. LZO X 999, уровень 9 293,5 I 7,6 103002,1 91764,1
5. LZO X 1 10,1 I 10,3 136494,8 124248,7
6. Гибридный алгоритм V. 2 60,2 I 32 112324,1
7. Комбинированный алгоритм, использующий LZO_X_999, уровень 6 62,5 I 27,6 94742,1
8. Комбинированный алгоритм, использующий LZO_X_999, уровень 9 68,2 I 26,6 94522,5
9. Deflate 47,1 I 10,9 145175,6
По данным, представленным в табл. 4, видно, что комбинированный алгоритм имеет превосходство по степени сжатия на всех изображениях, типичных для Windows ХР (в среднем на 17 %). На изображениях, значительную часть которых занимает текст, оба алгоритма демонстрируют близкие результаты (в среднем различие около 1,5 %), что подтверждается критерием знаков и критерием Вил-коксона [8]. Так, количество типичных и нетипичных сдвигов равны. А суммы рангов в соответствии с критерием Вилкоксона в типичном и нетипичном направлении равны соответственно 30 и 25 (очень близки). На изображениях, содержащих графики и диаграммы, оба алгоритма также демонстрируют близкие результаты (в среднем различие менее чем на 1 %). Количество сдвигов в типичном направлениях 4,5, в нетипичном направлении - 3,5. Сумма рангов в соответствии с критерием Вилкоксона в типичном направлении равна 22, в нетипичном случае - 14.
Т аблица 4
Данные о размере закодированного файла (в байтах) для 28 тестовых изображений
Название исходного файла Комбини- рованный алгоритм LZO_X_999 уровень 6
WinXP 0.bmp 113975 128252
WinXP 1.bmp 82631 96198
WinXP 2.bmp 52561 60342
WinXP 3.bmp 74150 81067
WinXP 4.bmp 156418 180901
WinXP 5.bmp 109818 136935
WinXP 6.bmp 75795 94816
WinXP 7.bmp 78706 84810
WinXP 8.bmp 76326 93963
WinXP 9.bmp 89911 106602
text 0.bmp 102958 101112
text 1.bmp 106795 109794
text 2.bmp 63057 69093
text 3.bmp 98198 98203
Название исходного файла Комбини- рованный алгоритм LZO_X_999 уровень 9
diagram 0.bmp 94224 94236
diagram 1.bmp 103741 101878
diagram 2.bmp 106732 98256
diagram 3.bmp 87839 91097
diagram 4.bmp 106887 106721
diagram 5.bmp 90874 87176
diagram 6.bmp 153883 159781
diagram 7.bmp 79009 77775
diagram 8.bmp 66592 70697
diagram 9.bmp 57640 63647
text 4.bmp 84089 79868
text 5.bmp 85699 96272
text 6.bmp 91144 88090
text 7.bmp 85521 86422
Замечание: для критерия знаков и критерия Вилкоксона в качестве типичного направления сдвига был выбран случай, когда степень сжатия комбинированного алгоритма выше.
Заключение
Представленный в данной работе комбинированный алгоритм, основанный на гибридном алгоритме и LZO, подтвердил свою эффективность при тестировании. Такой комбинированный алгоритм позволяет увеличить степень сжатия изображений, типичных для Windows XP, в среднем на 17 % по сравнению с лучшими по степени сжатия представителями семейства алгоритмов LZO, способными сжимать экранное видео в режиме реального времени на широком спектре компьютеров пользователей (LZO_X_999 с уровнем сжатия 6). При этом комбинированный алгоритм и LZO_X_999 с уровнем сжатия 6 обеспечивают близкие степени сжатия изображений, содержащих текст, диаграммы или графики. Поэтому представленный комбинированный алгоритм может быть использован на практике для сжатия кадров экранного видео.
На данный момент комбинированный алгоритм встроен в кодек для обработки экранного видео Butterfly Screen Video Codec, ориентированный на минимизацию использования процессорного времени при сохранении высокой степени сжатия. Представленный комбинированный алгоритм используется не только при сжатии ключевых кадров, но и при сжатии изменившихся частей промежуточных кадров. Поэтому разработка представленного в данной работе комбинированного алгоритм является очередным шагом в оптимизации по уровню использования системных ресурсов и степени сжатия кодека Butterfly Screen Video Codec.
ЛИТЕРАТУРА
1. Сэломон Д. Сжатие данных, изображений и звука. М.: Техносфера, 2006. 365 с. (Мир программирования).
2. LZO. [Электронный ресурс]. URL: http:IIwww.oberhumer.com/opensourceIlzo (дата обращения 19.02.2011)
3. СашзШИо. [Электронный ресурс]. ИКЬ: http://camstudio.org (дата обращения 19.02.2011)
4. Дружинин Д. В. Гибридный алгоритм сжатия изображения. Сравнение алгоритмов сжатия изображений. // Информационные технологии и математическое моделирование: Материалы VI Международной научно-практической конференции. Томск, 2007. Т. 2. С. 70-73.
5. Дружинин Д.В. Модификации гибридного алгоритма сжатия изображений // IV Научнопрактическая конференция «Обратные задачи и информационные технологии рационального природопользования». Ханты-Мансийск, 2008. С. 218-222.
6. Ватолин Д. Методы сжатия данных. Устройство архиваторов, сжатие изображений и видео. М.: Диалог-МИФИ, 2003. 384 с.
7. Скриншоты. [Электронный ресурс] / Д.В. Дружинин. ЦКЪ: http://narod.ru/disk/1502175 1001/ screenshots.zip.html (дата обращения 19.02.2011).
8. Большев Л.Н., Смирнов Н.В. Таблицы математической статистики. М.: Наука, 1983. 416 с.
Дружинин Денис Вячеславович Томский государственный университет, E-mail: [email protected]
Поступила в редакцию 8 июня 2010 г.