- •Вопрос 10
- •Вопрос 11 Вещественные числа (числа с плавающей точкой)
- •Вопрос 12
- •Вопрос 13
- •Вопрос 14
- •Вопрос 15
- •Вопрос 16
- •Характеристики алгоритмов сжатия и их применения Коэффициент сжатия
- •Допустимость потерь
- •Системные требования алгоритмов
- •Сжатие без потерь
- •Сжатие и комбинаторика
- •Техника сжатия без потерь
- •Методы сжатия без потерь
- •Многоцелевые
- •Сжатие аудио
- •Сжатие графики
- •Типы сжатия с потерями
- •Сжатие с потерями против сжатия без потерь
- •Недостатки
- •Вопрос 17
- •Вопрос 18
- •Вопрос 19
- •Вопрос 20
Техника сжатия без потерь
В общих чертах смысл сжатия без потерь таков. В исходных данных находят какую-либо закономерность и с учётом этой закономерности генерируют вторую последовательность, которая полностью описывает исходную. Например, для кодирования двоичных последовательностей, в которых много нулей и мало единиц, мы можем использовать такую замену:
00 → 0
01 → 10
10 → 110
11 → 111
В таком случае шестнадцать битов
00 01 00 00 11 10 00 00
будут преобразованы в тринадцать битов
0 10 0 0 111 110 0 0
Такая подстановка является префиксным кодом, то есть обладает такой особенностью: если мы запишем сжатую строку без пробелов, мы всё равно сможем расставить в ней пробелы — а значит, восстановить исходную последовательность. Наиболее известным префиксным кодом является код Хаффмана.
Большинство алгоритмов сжатия без потерь работают в две стадии: на первой генерируется статистическая модель для входящих данных, вторая отображает входящие данные в битовом представлении, используя модель для получения «вероятностных» (то есть часто встречаемых) данных, которые используются чаще, чем «невероятностные».
Статистические модели алгоритмов для текста (или текстовых бинарных данных, таких как исполняемые файлы) включают:
Преобразование Барроуза — Уилера (блочно-сортирующая пре-обработка, которая делает сжатие более эффективным)
LZ77 и LZ78 (используется DEFLATE)
LZW
Алгоритмы кодирования через генерирование битовых последовательностей:
Алгоритм Хаффмана (также используется DEFLATE)
Арифметическое кодирование
Методы сжатия без потерь
Полный список смотрите в Категория:Сжатие данных
Многоцелевые
Кодирование длин серий — простая схема, дающая хорошее сжатие данных, которые содержат много повторяющихся значений
LZW — используется в gif и во многих других.
Deflate — используется в gzip, усовершенствованной версии zip и как часть процесса сжатия PNG.
LZMA — используется в 7-zip.
Сжатие аудио
Apple Lossless — ALAC (Apple Lossless Audio Codec)
Audio Lossless Coding — также известен как MPEG-4 ALS
Direct Stream Transfer — DST
Dolby TrueHD
DTS-HD Master Audio
Free Lossless Audio Codec — FLAC
Meridian Lossless Packing — MLP
Monkey's Audio — Monkey’s Audio APE
OptimFROG
RealPlayer — RealAudio Lossless
Shorten — SHN
TAK — (T)om’s verlustfreier (A)udio (K)ompressor (нем.)
TTA — True Audio Lossless
WavPack — WavPack lossless
WMA Lossless — Windows Media Lossless
Сжатие графики
ABO — Adaptive Binary Optimization
BTPC
CALIC
CREW
CTW
DPCM
GIF — (без потерь только для изображений содержащих не более 256 цветов)
JBIG2 — (с потерями или без Ч/Б изображений)
Lossless JPEG — (расширение стандарта сжатия JPEG, обеспечивающее сжатие без потерь)
JPEG-LS — (стандарт сжатия без потерь/почти без потерь)
JPEG 2000 — (в режиме сжатия без потерь)
LOCO-I
MRP
PGF — Progressive Graphics File (сжатие с/без потерь)
PNG — Portable Network Graphics
PWC
TIFF — (исключая режимы сжатия с потерями[1])
TMW
HD Photo — (включая метод сжатия без потерь)
Сжатие видео
Animation codec
CamStudio Video Codec
CorePNG
FFV1
Huffyuv
Lagarith
LCL
MSU Lossless Video Codec
Qbit Lossless Codec
SheerVideo
TSCC — TechSmith Screen Capture Codec
WMC — Wavelet Media Codec
Motion JPEG 2000
Сжатие текстов
PPM — архиватор HA (автор Harry Hirvola), использующий алгоритм PPM, известен высокой степенью сжатия на текстовых файлах; по этому параметру он превосходил первые версии появившегося несколько лет спустя RAR. Поэтому популярные в конце 90-х годов компакт-диски наподобие «Библиотека в кармане» использовали именно HA.
Примеры алгоритмов
Семейство алгоритмов Лемпеля-Зива
RLE (Run-length encoding — Кодирование длин серий)
Примеры форматов и их реализаций
универсальные — Zip, 7-Zip, RAR, GZip, PAQ и др.
звук — FLAC (Free Lossless Audio Codec), Monkey's Audio (APE), TTA (True Audio), TTE, LA (LosslessAudio), RealAudio Lossless, WavPack и др.
изображения — BMP, PNG
видео — Huffyuv
Сжатие данных с потерями
Сжатие данных с потерями — метод сжатия (компрессии) данных, при использовании которого распакованные данные отличаются от исходных, но степень отличия не является существенной с точки зрения их дальнейшего использования. Этот тип компрессии часто применяется для сжатия аудио- и видеоданных, статических изображений, в Интернете, особенно в потоковой передаче данных, и цифровой телефонии. Альтернативой является сжатие без потерь.
