2011-01-14 5 views
1

Кто-нибудь знает о современной программе сжатия LOSSY для данных музыки и изображений BESIDES? Мне нужен фактический исполняемый или совместимый исходный код.современная программа сжатия с потерями

Я пытаюсь сжать AMillionRandomDigits.bin.

Идея заключается в lossily сжать AMillionRandomDigits.bin, а затем сохранить LOSSY_COMPRESSED (amillionrandomdigits.bin) + DIFF (LOSSY_UNCOMPRESSED, amillionrandomdigits.bin) http://www.stanford.edu/~hwang41/

+6

Для чего это? Если целевая область не известна, концепция LOSSY НЕ ОПРЕДЕЛЕНА. – OrangeDog

+2

Я даже не могу придумать прецедент для алгоритма сжатия с потерями для чего угодно, кроме музыки и изображений (и я также предполагаю видео). В любой другой сфере (например, финансы, управление воздушным движением и т. Д.) Любая потеря вообще неприемлема. – MusiGenesis

+1

@MusiGenesis: И не забывайте, что речь идет о других кодеках, чем для музыки. –

ответ

2

@ user562688: Сжимая действительно случайное число не может быть сделано. Идея доказательства состоит в том, что если вы пытаетесь сжать 100 бит до 90 бит, вам нужно, чтобы все строки 2^100 помещались в пространство размером 2^90, которое слишком мало. Поэтому будет много столкновений (как минимум, 2^10 в среднем), что означает, что вы не можете декодировать его обратно в исходную строку.

Но для ответа на ваш первоначальный вопрос, хотя Johnson-Lindenstrauss algorithm не является алгоритмом сжатия, он имеет некоторые сходные свойства с тем, что сделано при сжатии изображения.

Цель алгоритма Джонсона-Линдентрауса состоит в том, чтобы взять много векторов (скажем, n векторов) в R^n и найти отображение в гораздо меньшее пространство R^log (n), такое, что расстояния между всеми векторами не сильно меняются.

+1

вопрос был о сжатии с потерями - поэтому, конечно, можно сжать случайные числа и уменьшить 100 бит до 90. Например, крайний случай такого сжатия является только медианным или удаляет каждое второе число и т. д. – noonex