Объясните на пальцах, как работает сжатие WinRAR?

 
1 2 3 4
+
-
edit
 

AGRESSOR

литератор
★★★★★
Как происходит сжатие? Ну, допустим, я понимаю, что перекодировке, скажем, рисунка формата *.bmp в формат *.jpeg можно убрать какую-то информацию. Картинка станет хуже, но при этом меньше и все равно будет восприниматься глазом. Или, например, можно перекодировать громоздкий *.wav в формат *.mp3 - с теми же потерями. Это понятно, что-то отсекается, что не воспринимается глазом/ухом и файл в результате становится заметно меньше размером.

Но при сжатии RAR-м почему так получается? Сначала сжали - файл стал маленьким. Информация отсечена (допустим). Но при раскодировании файл-то вынимается прежний!

Причем плотности сжатия разные. У текста очень высокая (в 5-6 раз сжимает), а у видео или аудио почти никакая (порядка 5-7 % по памяти).

Как это происходит?
 
US Naturalist #19.01.2008 21:01
+
-
edit
 

Naturalist

аксакал

У сжатия звука и данных разные принципы.


Сжатие данных — Википедия

Сжатие данных
Материал из Википедии — свободной энциклопедии
Перейти к: навигация,
поиск
У этого термина существуют и другие значения, см. Сжатие.
Сжатие данных (англ. data compression) — алгоритмическое преобразование данных, производимое с целью уменьшения их объёма. Применяется для более рационального использования устройств хранения и передачи данных. Синонимы — упаковка данных, компрессия, сжимающее кодирование, кодирование источника. Обратная процедура называется восстановлением данных (распаковкой, декомпрессией).

// Дальше — ru.wikipedia.org
 

 
RU Серокой #19.01.2008 21:02
+
-
edit
 

Серокой

координатор
★★★★
Не знаю, как RAR, а ZIP работает так: ищутся повторяющиеся последовательности, которым назначается другое, более короткое, сочетание байт. Для текста это наиболее характерно. Кодирование Хаффмана. В придачу к получившемуся помещается словарь - расшифровка коротких сочетаний. Для текста совпадения байт наиболее часто встречаются (окончания с пробелом, например), поэтому текст наиболее эффективно сжимается.
Больше не раскалятся ваши колосники. Мамонты пятилеток сбили свои клыки. ©  
+
-
edit
 

AGRESSOR

литератор
★★★★★
В видео и звуке повторяющиеся последовательности так редки, поэтому и так мал процент сжатия - так?
 
RU Серокой #19.01.2008 21:05
+
-
edit
 

Серокой

координатор
★★★★
Хуже. В видео эти повторения уже найдены и закодированы. )
Точнее, как. Опорный так называемый кадр зажат в JPEG. Затем следующие кадры описываются только изменениями картинки относительно опорного и последующих после опорного. Избыточность информации здесь минимальна.
Больше не раскалятся ваши колосники. Мамонты пятилеток сбили свои клыки. ©  
+
-
edit
 

marata

Вахтер форумный
★★
AGRESSOR> ... Или, например, можно перекодировать громоздкий *.wav в формат *.mp3 - с теми же потерями. Это понятно, что-то отсекается, что не воспринимается глазом/ухом и файл в результате становится заметно меньше размером...
А, вроде, wav это уже сжатый файл, нечто аналогичное mp3
 
+
-
edit
 

AGRESSOR

литератор
★★★★★
А за счет чего же тогда сжимается видео?
 

GOGI

координатор
★★★★
WAV Это вообще просто контейнер для аудиоданных. Звук там может быть как несжатый, так и пожатый любым из кодеков.
1  
+
-
edit
 

AGRESSOR

литератор
★★★★★
marata> А, вроде, wav это уже сжатый файл, нечто аналогичное mp3

Ни в коем случае! Это все равно что формат *.bmp в рисунках. Сжимается он перекодированием, а не архивированием. Значит, есть чего сжимать.
 
RU Серокой #19.01.2008 21:21  @AGRESSOR#19.01.2008 21:19
+
-
edit
 

Серокой

координатор
★★★★
AGRESSOR> А за счет чего же тогда сжимается видео?

Я ж написал. За счёт подобия ряда кадров. Или ты про сжатие файла архиватором7 Так он почти не жмётся, как бы не увеличивается...
Больше не раскалятся ваши колосники. Мамонты пятилеток сбили свои клыки. ©  
RU GOGI #19.01.2008 21:24  @Серокой#19.01.2008 21:02
+
-
edit
 

GOGI

координатор
★★★★
Серокой> Не знаю, как RAR, а ZIP работает так: ищутся повторяющиеся последовательности, которым назначается другое, более короткое, сочетание байт. Для текста это наиболее характерно. Кодирование Хаффмана.
А разве это не LZW?
У Хаффмана, с трудом вспоминая курс ИИТ, чем чаще отдельный символ ASCII встречается в данных, тем меньшим числом бит он в архиве кодируется.
1  
RU Kernel3 #19.01.2008 21:26  @Серокой#19.01.2008 21:02
+
-
edit
 

Kernel3

аксакал

Серокой> Не знаю, как RAR, а ZIP работает так: ищутся повторяющиеся последовательности, которым назначается другое, более короткое, сочетание байт. Для текста это наиболее характерно.
Серокой> В придачу к получившемуся помещается словарь - расшифровка коротких сочетаний. Для текста совпадения байт наиболее часто встречаются (окончания с пробелом, например), поэтому текст наиболее эффективно сжимается.
Ага. Только это вы LZ описали, а не Хаффмана :) (Код Хаффмана — Википедия) Собсна, Zip сначала сжимает так, а уже потом - Хаффманом.
А Rar какой-то из арифметических алгоритмов использует (Арифметическое кодирование — Википедия)
Broken Windows® cures my ills and makes me feel alright... ©  
RU Серокой #19.01.2008 21:28  @GOGI#19.01.2008 21:24
+
-
edit
 

Серокой

координатор
★★★★
GOGI> А разве это не LZW?
Не, это алгоритм Хаффмана. А LZW - это алгоритм чуваков с фамилиями на L и Z, а W бодро всё это запатентовал...
Больше не раскалятся ваши колосники. Мамонты пятилеток сбили свои клыки. ©  
RU Серокой #19.01.2008 21:30  @Kernel3#19.01.2008 21:26
+
-
edit
 

Серокой

координатор
★★★★
Kernel3> Ага. Только это вы LZ описали, а не Хаффмана :)
Ы? А может и так, я же автоматически написал про байты, а не про биты. Давно дело было, когда на семинарах мы дерево Хаффмана на листике руками выписывали. Но я имел в виду только Хаффмана. )
Больше не раскалятся ваши колосники. Мамонты пятилеток сбили свои клыки. ©  
RU Kernel3 #19.01.2008 21:31  @Серокой#19.01.2008 21:28
+
-
edit
 

Kernel3

аксакал

GOGI>> А разве это не LZW?
Серокой> Не, это алгоритм Хаффмана. А LZW - это алгоритм чуваков с фамилиями на L и Z, а W бодро всё это запатентовал...
Это да, но GOGI всё правильно написал :)
Broken Windows® cures my ills and makes me feel alright... ©  

AGRESSOR

литератор
★★★★★
GOGI> WAV Это вообще просто контейнер для аудиоданных. Звук там может быть как несжатый, так и пожатый любым из кодеков.

Не... Чо-т тут не то. Берем обычный *.mp3 и перекодируем его в *.wav - он немедленно разрастается до огромных размеров.
 
RU Серокой #19.01.2008 21:34  @Kernel3#19.01.2008 21:31
+
-
edit
 

Серокой

координатор
★★★★
Kernel3> Это да, но GOGI всё правильно написал :)
Эх, ну перепутал байты и биты. :) Позор, но в оправдание зато похвастаюсь, что моя первая научная статья была про сжатие кардиограмм перед записью в память. )
Больше не раскалятся ваши колосники. Мамонты пятилеток сбили свои клыки. ©  
+
-
edit
 

Kernel3

аксакал

AGRESSOR> Не... Чо-т тут не то. Берем обычный *.mp3 и перекодируем его в *.wav - он немедленно разрастается до огромных размеров.
Всё то. На практике в основном встречаются WAV-файлы в "сыром" (PCM) формате. Грубо говоря так, как они лежат на СD-DA диске. Но могут быть варианты :)
Broken Windows® cures my ills and makes me feel alright... ©  

GOGI

координатор
★★★★
Значит ты его перекодируешь в wav без компрессии.
А так можно ему можно ту же MP3 компрессию поставить.
Открой стандартной программой звукозапись свой файл, меню файл/сохранить как и в открывшемся окне нажми внизу кнопку изменить. Там ты можешь изменить формат, в том числе и на MPEG Layer 3 :-)
1  
+
-
edit
 

Balancer

администратор
★★★★★
wav бывает разный. Это контейнер, данные внутри него могут быть как несжатые (PCM), так и сжатые - ADPCM/GSM/MP3...

Аналогично и AVI - это тоже контейнер.
 
RU Dem_anywhere #19.01.2008 23:03
+
-
edit
 

Dem_anywhere

аксакал
★☆
> Точнее, как. Опорный так называемый кадр зажат в JPEG. Затем следующие кадры описываются только изменениями картинки относительно опорного и последующих после опорного. Избыточность информации здесь минимальна.
Последующие - тоже зажаты, хотя и иначе
 
+
-
edit
 

Wyvern-2

координатор
★★★★★
Мдяяя...забывает народ аналы .. :F

Тут по ходу пьесы, кроме "контейнеров" и собственно сжатого потока, спутали еще MP3 и JPEG/MPEJ - системы сжатия с потерями , основанные на специфике человеческого восприятия и матметоды без потерь - основанные на избыточности кодирования информации Кстати зипы и рары не сильно отличаются от простого тупого факса - тот железно выполняет практически те же операции и не менее эффективно :)

Ник
Жизнь коротка, путь искусства долог, удобный случай мимолетен, опыт обманчив.... Ἱπποκράτης  
US Naturalist #20.01.2008 00:31
+
-
edit
 

Naturalist

аксакал

В факсе/bmp групповое кодирование, это совсем не то.

Для Агрессора:

групповое кодирование представляет из себя запись типа:
очень хорошо жмет при пересылке белой картинки с редкими черными буквами.






В WAV записывается сам сигнал, как есть. Поэтому он не жмется обычным архиватором.

MP3 - формат записи с частотами. Другими словами записывается частота и амплитуда сигнала.
При кодировании происходит разложение сигнала на набор частот и амплитуд. Потом, самое тихое выкидывается, т.к. считается, что мозг не сможет этот сигнал распознать. Потом, что осталось записывается в виде частота+амплитуда. При воспроизведении синтезатор играет эту частоту с нужной громкостью.
 
Это сообщение редактировалось 20.01.2008 в 00:40
US Сергей-4030 #20.01.2008 01:15  @AGRESSOR#19.01.2008 21:20
+
-
edit
 

Сергей-4030

исключающий третье
★★
админ. бан
marata>> А, вроде, wav это уже сжатый файл, нечто аналогичное mp3
AGRESSOR> Ни в коем случае! Это все равно что формат *.bmp в рисунках. Сжимается он перекодированием, а не архивированием. Значит, есть чего сжимать.

И в WAV'е может быть сжатое содержимое, и в BMP.
 
RU AGRESSOR #20.01.2008 01:19  @Сергей-4030#20.01.2008 01:15
+
-
edit
 

AGRESSOR

литератор
★★★★★
Сергей-4030> И в WAV'е может быть сжатое содержимое, и в BMP.

Да, я вот как раз после этого топика поюзал программу кодировщик, немного понял, как кодировать *.wav-ы.

Но как может быть сжатое содержимое в *.bmp?
 
1 2 3 4

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru