Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 28.01.2011, 10:12   #1
infosave
Пользователь
 
Регистрация: 27.06.2010
Сообщений: 11
По умолчанию Самый эффективный алгоритм сжатия информации в свободном доступе

Выкладываю в свободный доступ алгоритм который сможет сжать фильм до размера sms сообщения.
Вложения
Тип файла: doc статья.doc (236.0 Кб, 117 просмотров)
infosave вне форума
Старый 28.01.2011, 11:26   #2
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

В чём наё... эээ, подвох?
--
А, вижу. Попробуйте-ка "построить дерево всех возможных вариантов распаковки" для последовательности из 5.872.025.600 бит (болванка с фильмом-экранкой). Я так тоже умею "сжимать любые объёмы информации" до 16 байт посредством хеширования
пыщь

Последний раз редактировалось JTG; 28.01.2011 в 11:38.
JTG вне форума
Старый 28.01.2011, 11:37   #3
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Кхм... попробую сжать дистрибутив Windows до одного байта... + 3 гига информации для восстановления...
_SERGEYX_ вне форума
Старый 28.01.2011, 15:25   #4
infosave
Пользователь
 
Регистрация: 27.06.2010
Сообщений: 11
По умолчанию

Цитата:
Сообщение от JTG Посмотреть сообщение
В чём наё... эээ, подвох?
--
А, вижу. Попробуйте-ка "построить дерево всех возможных вариантов распаковки" для последовательности из 5.872.025.600 бит (болванка с фильмом-экранкой). Я так тоже умею "сжимать любые объёмы информации" до 16 байт посредством хеширования
Да для такой цепочки (5.872.025.600 бит) дерево построить почти нереально на современном железе :-) я разбиваю по кускам (512 бит) жму и служебная информация тоже жмется на след шаге.
Я написал рабочий вариант программы на Assembler и php - для сжимающего прокси и демонстрировал работу инвесторам которые готовы были вложить в разработку чипа 7.5 мил. $.
Алгоритм выложил с тем расчетом что в ближайшее время совсем откажусь от сотовых и ноутов. Перед тем как выкинуть ноуты с коммуникатором я выложу исходные коды всех своих программ и не только архиватора :-).

Кому интересно моя теория:
Вселенная произошла из ничего
аксиомы
1 ничего=бесконечное множество измерений
2 время есть :-)
теперь ничего + ничего в смещении во времени.
возникает первое измерение каждая точка смещения "ничего" во времени стремиться вернуться в исходное состояния - т.е. вернуться в точку - и каждая точка начинает притягиваться друг к другу возникает 2 измерение (плоскость) теперь каждая точка плоскости начинает притягиваться возникает объем и.т.д. до "ничего".
Вывод: вселенная возникает из ничего и каждая частица нашего мира это сжатые все предыдущие вселенные. (объясняет дежавю и многое другое).
infosave вне форума
Старый 28.01.2011, 15:44   #5
infosave
Пользователь
 
Регистрация: 27.06.2010
Сообщений: 11
По умолчанию

Цитата:
Сообщение от JTG Посмотреть сообщение
В чём наё... эээ, подвох?
--
А, вижу. Попробуйте-ка "построить дерево всех возможных вариантов распаковки" для последовательности из 5.872.025.600 бит (болванка с фильмом-экранкой). Я так тоже умею "сжимать любые объёмы информации" до 16 байт посредством хеширования
Я выложил алгоритм потому что в ближайшее время откажусь от компов и сотовых и электричества.
Действительно на современном железе дерево строить из 5.872.025.600 бит это тоже самое что пробивать бетонную стену лбом :-) и хешированием Вы не сожмете (будет много вариантов с одинаковым хешем). Попробуйте сжать по кускам (служебка будет тоже жаться) я сжимаю пакетами по 512 бит. и то на хорошем серваке.
Через сжимающий прокси который жмет по данному алгоритму я сейчас пишу это сообщение :-).
Спасибо что мое сообщение занесли в СПАМ :-) видно это некому не нужно поэтому исходные коды выкладывать не буду - пишите программки сами к тому же алгоритм прост что поймет и ребенок который внимательно читает :-).
infosave вне форума
Старый 28.01.2011, 15:53   #6
infosave
Пользователь
 
Регистрация: 27.06.2010
Сообщений: 11
По умолчанию

Цитата:
Сообщение от _SERGEYX_ Посмотреть сообщение
Кхм... попробую сжать дистрибутив Windows до одного байта... + 3 гига информации для восстановления...
попробуй служебную информацию тоже сжимать на каждом шаге :-)
infosave вне форума
Старый 28.01.2011, 16:02   #7
xwicked
Участник клуба
 
Аватар для xwicked
 
Регистрация: 21.03.2010
Сообщений: 1,508
По умолчанию

Есть KGB-archiver. Он может сжать офис(2003 или 2007), точно не помню какой, до размера дискетки. Но, котёл должен быть 8(лучше 16ГБ) память и проц 4-х, а лучше 9-ти ( ) ядерный или даже 2-а. На моей системе показал результаты не ахти, но помню, что от железа зависит алгоритм сжатия. Найду статью - покажу.

Но даже он не может похвастаться сжатием видео.

P.S. infosave, Вашу статью даже скачивать не стал .

Цитата:
Сообщение от _SERGEYX_ Посмотреть сообщение
Кхм... попробую сжать дистрибутив Windows до одного байта... + 3 гига информации для восстановления...
Срочно бегите патентовать Ваш алгоритм, а то вдруг, ещё кто-нибудь догадается.
Google - лучший помощник программиста.
---
моя лаборатория | мой FaceBook
xwicked вне форума
Старый 28.01.2011, 16:26   #8
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

>Срочно бегите патентовать Ваш алгоритм
Вот, кстати, да. Я щас его запатентую и буду требовать авторские отчисления.

>в ближайшее время совсем откажусь от сотовых и ноутов.
Уходите в отшельники?

>Я написал рабочий вариант программы на Assembler и php
Ну покажите что ли в действии. Что-то мне кажется, что размер служебной информации, необходимой для хранения номера пути в графе, который строится <количество_преобразований> раз для каждого блока, сведёт всё на нет весь эффект сжатия. А при уменьшении количества блоков размер дерева и число преобразований будет лавинообразно расти, увеличивая размер служебной информации и требуемые ресурсы.

>служебка будет тоже жаться
А служебка, необходимая для хранения сжатой служебки? XD

xwicked:
> сжать офис(2003 или 2007), точно не помню какой, до размера дискетки
Это была интернет-утка


---
СМ, Virtson или кто там в спаме орудует, верните топик обратно в свободное общение
пыщь

Последний раз редактировалось JTG; 28.01.2011 в 16:54.
JTG вне форума
Старый 28.01.2011, 20:37   #9
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

прочитал тему поржал, но потом заинтриговался, стало интересно что же написано в этом DOC-файле. Скачал, посмотрел, в примере было показано как 50 бит упаковать в 1 бит, ещё раз поржал.

Все кто читает эту тему предупреждаю ничего гениального нету, алгоритм класса "сжимаем 3 гига в несколько байт и добавляем информацию для восстановления размером 3 ГБ"

Топикстартёр скорее всего тролль. Даже если это реально работающий алгоритм я не поверю в его работоспособность пока мне не покажут рабочую программу которая осуществляет упаковку и распаковку
rpy3uH вне форума
Старый 06.02.2011, 16:24   #10
infosave
Пользователь
 
Регистрация: 27.06.2010
Сообщений: 11
По умолчанию

Да видно народ совсем разучился думать, а еще и своими мозгами . Выкладываю код на котором проводил начальные эксперименты 3 года назад на моем любимом php. Потом перепишете на то что нравится .
PHP код:
<?
global $mas_all,$str_arc,$str_out,$count,$offset;

function 
tree($n_mas,$len)

global 
$str_arc,$str_out;
global 
$mas_all;
global 
$count;
global 
$offset,$len_doarc,$len_arc;
if(
$len==0$len++;
for(
$i=0;$i<$len;$i++) 
{
//отслеживаем длинну те что уже длинее положенного удаляем
if($len_arc-$mas_all[$n_mas-$i]['num']>0)
if(
strlen($mas_all[$n_mas-$i]['str'])-$mas_all[$n_mas-$i]['num']<=$len_doarc-$len_arc)
{
$count++; //создаю новый элемент массива
$mas_all[$count]['str']='';
$mas_all[$count]['num']=1
$mas_all[$count]['str'].=$mas_all[$n_mas-$i]['str'].'0'.$str_arc[$mas_all[$n_mas-$i]['num']]; //складываю массивы
$mas_all[$count]['num']=$mas_all[$count]['num']+$mas_all[$n_mas-$i]['num'];
}
if(
$len_arc-$mas_all[$n_mas-$i]['num']>1)
if(
strlen($mas_all[$n_mas-$i]['str'])-$mas_all[$n_mas-$i]['num']<=$len_doarc-$len_arc)
if(
$str_arc[$mas_all[$n_mas-$i]['num']].$str_arc[$mas_all[$n_mas-$i]['num']+1]!='11'&&$str_arc[$mas_all[$n_mas-$i]['num']].$str_arc[$mas_all[$n_mas-$i]['num']+1]!='00')  
{
$count++;
$mas_all[$count]['str']='';
$mas_all[$count]['num']=0;
if(
$str_arc[$mas_all[$n_mas-$i]['num']].$str_arc[$mas_all[$n_mas-$i]['num']+1]=='10')
$mas_all[$count]['str'].=$mas_all[$n_mas-$i]['str'].'11';  $mas_all[$count]['num']=$mas_all[$n_mas-$i]['num']+2
//echo '№'.$count.' --- '.$n_mas.' '.$i.' --- '.$mas_all[$n_mas-$i]['num'].'<br>';
}
if(
$str_arc[$mas_all[$n_mas-$i]['num']].$str_arc[$mas_all[$n_mas-$i]['num']+1]=='01')
$mas_all[$count]['str'].=$mas_all[$n_mas-$i]['str'].'10';  $mas_all[$count]['num']=$mas_all[$n_mas-$i]['num']+2
//echo '№'.$count.' --- '.$n_mas.' '.$i.' --- '.$mas_all[$n_mas-$i]['num'].'<br>'; 
}
}


}
for(
$i=0;$i<$len;$i++) {unset($mas_all[$n_mas-$i]);}

if (
$mas_all[$count]['num']<$len_arctree($count,$count-$n_mas);

}

$filename='c:/1.txt';
$fd=fopen($filename,"r");
//$dataf = fread ($fd, filesize ($filename));
$dataf fread ($fd,8); // Указываем количество байт с файла
fclose ($fd);
    
$str_gz=$dataf;
    
$len=strlen($dataf);
    echo 
'Длинна пакета '.$len.' байт<br>';
    
$i=0;
    
$str_out='';
    
$str_anpac='';
    while(
$i<$len)
    {   
        
$byte_in=decbin(ord($str_gz[$i]));
        while(
strlen($byte_in)<8$byte_in='0'.$byte_in;    
        
$str_out.=$byte_in;
        
$i++;
    }
$len_out=strlen($str_out);
$i=0;
$str_arc='';
    while(
$i<$len_out)
    {   
if (
$str_out[$i].$str_out[$i+1]=='00') { $str_arc.='0'$str_anpac.='1';}
if (
$str_out[$i].$str_out[$i+1]=='01') { $str_arc.='1'$str_anpac.='1';}
if (
$str_out[$i].$str_out[$i+1]=='10') { $str_arc.='01'$str_anpac.='00';}
if (
$str_out[$i].$str_out[$i+1]=='11') { $str_arc.='10'$str_anpac.='00';}
$i++;
$i++;
    }
echo 
$str_arc.'<br>';
echo 
'До сжатия(бит)'.strlen($str_out).' После сжатия(бит)'.strlen($str_arc).' в '.strlen($str_out)/strlen($str_arc);

$len_out=strlen($str_arc);

//строим дерево комбинаций

$byte_arc='';
$byte_unpac='';
$i=0;
        
$offset=8-(($len_out/8)-floor($len_out/8))*8
        if(
$offset<8&&$offset>0) { echo 'Offset='.$offset
        }

echo 
'<br>'.$str_out.'<br>';
echo 
$str_arc.'<br>';



echo 
'Все варианты распаковки'." ";
$len_doarc=strlen($str_out);
$len_arc=strlen($str_arc);
$count=0;
$cn=0;
$mas_all[0]['num']=0;
$mas_all[0]['str']='';
tree(0,0);    
foreach (
$mas_all as $key => $value) {
if(
$mas_all[$key]['num']<$len_arc) unset($mas_all[$key]); else {
    
$mas_out[$cn]=$mas_all[$key]['str'];
if(
$mas_all[$key]['str']==$str_out$num_array=$cn;
$cn++;
}

 }
print_r($mas_out);
echo 
'<br> Всего вариантов распаковки '.count($mas_out);
echo 
'<br> Номер варианта '.$num_array;

unset(
$mas_all);
unset(
$mas_out);
?>
Для упаковки пакета 64 байта используйте С или как я Assembler можете в машинных кодах (в 1997 я писал свой визуальный компилятор и все команды Assembler помнил в hex формате и потом наспор писал простые .com программки в машинных кодах).
Если нет Денвера или своего сервака в качестве веб-сервера под Windows можете взять мою сборку http://marketdom.ru/install.exe
из папки www все удалите и код вставьте в index.php
infosave вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Эффективный и физические адреса NSvirus Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 14 14.01.2012 01:45
алгоритм сжатия информации LZW на Java sagnio Общие вопросы по Java, Java SE, Kotlin 1 09.12.2009 21:11
Алгоритм сжатия+ zlib Воин-Леший Общие вопросы Delphi 1 09.12.2007 15:05
Предложите самый быстрый алгоритм! Gambler Общие вопросы Delphi 6 26.12.2006 22:44