Форум 3DNews
Вернуться   Форум 3DNews > Программирование > Программирование

Ответ Создать новую тему
Опции темы Опции просмотра
Непрочитано 11.10.2006, 07:13   [включить плавающее окно]   #1
AK3000
Мужской Общительный
Автор темы
 
Аватар для AK3000
 
Регистрация: 24.05.2006
Адрес: Ростов-на-Дону
Cool Мега архиватор

На сколько я знаю сейчас не существует архиватора, который бы сжимал файлик до размеров стремящихся к нулю (конечно при этом время создание такого файла будет стремиться к бесконечности). А ведь это плохо...

Так вот думал я как-то над созданием такой программки. На первый взгляд показалось это возможным. Нужно придумать только кучу способов по пресованию информации и еще кучу по для "перемешивания" файла.

Ну что, как думаете, возможно ли это? Появились бы хорошие возможности...
__________________
Жизнь слишком коротка - наслаждайся пока есть время!
AK3000 вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 11.10.2006, 10:15   [включить плавающее окно]   #2
Fierce Monk
Мужской Запрещенный
 
Аватар для Fierce Monk
 
Регистрация: 15.01.2005
Адрес: Страна Едроссия, деревня Медвепутия
Жизнь слишком коротка. Используй ее с умом и не трать время попусту
Fierce Monk вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 11.10.2006, 10:39   [включить плавающее окно]   #3
AK3000
Мужской Общительный
Автор темы
 
Аватар для AK3000
 
Регистрация: 24.05.2006
Адрес: Ростов-на-Дону
Fierce Monk Дело как раз в том что, если создать такую прогу, то время будет потрчено совсем не попусту.
Представь например DVD фильм, который можно скопировать на дискету.

Еще это было бы очень удобно если у тебя есть неограниченный доступ в интернет, но ты не можешь перенести больший объемы информации из-за правил. Тогда ты например скачал большой файлик, ужал его этой прогой и кидай на дискетку. Собственно у нас такая фигня в РГУ.

Вопрос в том можно ли создать такой алгоритм? Мне кажется что можно, но интересно мнение других. Можно занятся разработкой проги (если найдутся желающие) прямо здесь, на форуме.
__________________
Жизнь слишком коротка - наслаждайся пока есть время!
AK3000 вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 11.10.2006, 10:41   [включить плавающее окно]   #4
Andron_
Мужской Заслуженный
 
Аватар для Andron_
 
Регистрация: 01.02.2004
Адрес: Новосибирск
почитай книги... там все написано....
типа учи матчасть
__________________
Дилетант широкого профиля. По совместительству преподаватель С/С++.
Andron_ вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 11.10.2006, 11:07   [включить плавающее окно]   #5
AWESOME
Мужской Заслуженный
 
Аватар для AWESOME
 
Регистрация: 06.02.2003
Адрес: Белокаменная, Первопрестольная.
AK3000
Мега-архиватор давно создан. Жмёт любой файл до размера 1Кб.
Теперь лучшие умы бьются над созданием мега-разархиватора.
__________________
Error 109: Error 108
AWESOME вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 11.10.2006, 14:04   [включить плавающее окно]   #6
AK3000
Мужской Общительный
Автор темы
 
Аватар для AK3000
 
Регистрация: 24.05.2006
Адрес: Ростов-на-Дону
Andron_ Так может просто уже кто-то прочитал и скажет да или нет! В моей теории - "да", но я не уверен. И потом если "да" то почему WinRar такого не умеет, ведь там не дураки все таки сидят...
__________________
Жизнь слишком коротка - наслаждайся пока есть время!
AK3000 вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 11.10.2006, 14:49   [включить плавающее окно]   #7
Fierce Monk
Мужской Запрещенный
 
Аватар для Fierce Monk
 
Регистрация: 15.01.2005
Адрес: Страна Едроссия, деревня Медвепутия
AK3000
Напряги логику:
1. Автор WinRaR - не дурак;
2. WinRar такого не умеет;

Видимо не потому, что автору лень было придумывать - явно что-то еще мешает.

Ты пытаешься вечный двигатель изобрести, понимаешь?
Идея хорошая, но реализовать не получится.
Fierce Monk вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 11.10.2006, 16:26   [включить плавающее окно]   #8
AK3000
Мужской Общительный
Автор темы
 
Аватар для AK3000
 
Регистрация: 24.05.2006
Адрес: Ростов-на-Дону
Fierce Monk А что если он подумал так: "Зачем человеку архивировать файл еще сильнее если время для этого растет в геометрической прогрессии. Нужно что бы результат был хорошим, но и время пользователя устраивало." Но что если он прощитался и время можно все-таки убавить.

Ну или конечно второй вариант (безнадежный): "Еще сильнее сжать не возможно, т.к. при любом другом алгоритме получим другой конечный результат, но не меньшей по размерам; так что пусть довольствуются этим". Тогда облом.
__________________
Жизнь слишком коротка - наслаждайся пока есть время!
AK3000 вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 11.10.2006, 16:43   [включить плавающее окно]   #9
Andron_
Мужской Заслуженный
 
Аватар для Andron_
 
Регистрация: 01.02.2004
Адрес: Новосибирск
Цитата (AK3000) »
Так может просто уже кто-то прочитал и скажет да или нет!
нет.
__________________
Дилетант широкого профиля. По совместительству преподаватель С/С++.
Andron_ вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 11.10.2006, 17:03   [включить плавающее окно]   #10
Barloggg
Мужской Продвинутый
 
Аватар для Barloggg
 
Регистрация: 11.03.2003
Адрес: Тьмутаракань2, лен. обл
ну.

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

а похожие можно ужать с потерей информации. так работают все видеокодеки.

попытки создать очень хороший упаковщик есть.
даже несколько.

первый
называется фрактальный метод. кажется.
там ищутся похожие части картинки с учетом того что вот этот вот кусок может быть таким как вот этот вот кусок но только 1. повернутым 2. растянутым ну и так далее.

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

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

это метод работает на простых рисунках. На оцифровке сканированных карт например. но для фоток вааще неприменим. и это метод тоже очень сложный.

третий вариант я встретил случайно и он работает для иконок и рисунков с большими частями одного цвета. там фишка в том, что картинка каждый такт рекурсивно режется пополам и если отрезанный кусок залит одним цветом, то этот кусок занимает 2 бита. каким бы большим этот кусок не был. а полученную информацию еще и зипуем.
в лучшем случае получаем сказочную компрессию. в худшем - обычный PNG который суть есть зазипованный BMP.


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

вот потому и нету идеального архиватора.
кстати тот же RAR содержит разом несколько алгоритмов, каждый из которых заточен под свой вариант. возможно все эти 3 представленных мною варианта уже есть. в том или ином виде.

классический способ сжатия - по хаффману. просто и сердито. спроси у поисковика. эффективность как у zip. не больше.

Barloggg добавил :

на мой взгляд идеальный архиватор для фильма представляет собой полную оцифровку каждого предмета в фильме и сохранения его как 3д модели. а потом всего навсего составление готового кадра из базы данных.

но конечно это неосуществимо для обычных фильмов.
в таком формате фильм надо создавать изначально. как flash например.
Barloggg вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 11.10.2006, 17:55   [включить плавающее окно]   #11
Andron_
Мужской Заслуженный
 
Аватар для Andron_
 
Регистрация: 01.02.2004
Адрес: Новосибирск
если говорить про сжатие мультимедии....
существует сжатие с использованием вейвлет-преобразования... штука интересная, но мало изученная. Дает хорошие результаты (лучше JPEG'a) и меньшие объемы... +осуществляется очистка информации от шумов.
Штука интересная, но в настоящий момент пока находится на стадии изучения институтами... хотя некоторые микросхемы, сжимающие сигнал вейвлетами, появились.
__________________
Дилетант широкого профиля. По совместительству преподаватель С/С++.
Andron_ вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 11.10.2006, 18:50   [включить плавающее окно]   #12
FAIER
Мужской Опытный
 
Аватар для FAIER
 
Регистрация: 20.05.2006
Адрес: Минск
Я конечно не спец сжимания файлов, но если рассуждать логически:

Предположим, есть DvD фильмец, родное разрешение которого 1024 на 768. Есчё предположим, что картинка обнавляется со скоростью 24 кадра в секунду. Ну и предположим, что архиватор будет работать по принципу: есть кадр ( 1шт. ) и он каждый пиксель этого кадра наделяется значением ( по цвету ( к примеру 1255334 ). Итак, в одном кадре 786432 пикселся. За секунду " пройдёт " 18874368 пикселей. За час фильма " пройдёт " 18874368*1024 пикселей, что приблизительно равно 18874368000 пикселям. Дальше предположим что кажый цвет ( " пиксел " ) будет хранится в переменной типа int, которая занимает 4 байта.В мег можно будет запихнуть, о ужас, полтора кадра. Значит, после архивирования моим супермегаархиватором фильм будет занимать порядка 90 гигабайт. О, круто!

Да, фигня какая то получается...
FAIER вне форума  
Ответить с цитированием
Непрочитано 12.10.2006, 15:12   [включить плавающее окно]   #13
AK3000
Мужской Общительный
Автор темы
 
Аватар для AK3000
 
Регистрация: 24.05.2006
Адрес: Ростов-на-Дону
Вообщето я имел ввиду сжимание не конкретно для каждых расширений свое, а общее, так будет легче.
Мое логическое рассуждение выглядет так:

1) открываем файл и смотрим сколько задействовано в нем симвалов; к шагу 2;
2) если меньше 255 (2 символа идет на: 1-ый это сивмол вместо которого в тексте будет вставлен присвоенный ему фрагмент; 2-ой на отделение основного текста от фрагмента, присваемого символу) то можно искать повторяющиеся в тексте части и заменять их на неиспользуемые символы. А в начале текста будет описано какой символ на какой текст заменяется; к шагу 3;
3) если больше 254, то с помощью предварительно созданной функции делаем так чтобы в нем было задействовано только 254 символа (естественно это увеличит размер текста); ищем повторяющиеся в тексте части и заменяем их на неиспользуемые символы, причем так чтобы заменяемые части оправдывали предварительное увелечение текста путем создания незадействованных символов; если не удается переходим к шагу 4 иначе в начале текста описываем какой символ на какой текст заменяется; к шагу 4;
4) одной из тысячи предварительно созданных функций перемешиваем файл (например: 1-ый и 3-ий символ меняем местами, 2-ой и 4-ый и т.д.); переходим к шагу 3 (точно зная что все символы задействованы);

Так этот цикл повторяется много-много раз и если моя версия правильна, то получаем любое сжатие, какое хотим, учитывая только время за которое оно будет происходить.

Ну что скажите?
Цитата (Andron_) »
Цитата (AK3000) »
Так может просто уже кто-то прочитал и скажет да или нет!
нет.
Особенно вопрос к тебе Andron_.
__________________
Жизнь слишком коротка - наслаждайся пока есть время!

Последний раз редактировалось AK3000; 12.10.2006 в 15:17.
AK3000 вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 12.10.2006, 18:45   [включить плавающее окно]   #14
Andron_
Мужской Заслуженный
 
Аватар для Andron_
 
Регистрация: 01.02.2004
Адрес: Новосибирск
AK3000 я тебя книжки читать отправлю
Алгоритм Хаффмана - просто и ясно.

А белиберду какую то написал Не разобрался я, че за фрагменты и че куда.

Могу только уверить, что сжимать без потерь можно только до определенного момента. Потом уже мало что то помогает.
Еще я хочу напомнить, что надж проблемами сжатия бьются гениальные умы, выводят сложнейшие теории и пр. И просто так нифига не делается.

Andron_ добавил :

все гораздо сложнее, чем ты даже можешь себе представить.
__________________
Дилетант широкого профиля. По совместительству преподаватель С/С++.
Andron_ вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 13.10.2006, 07:48   [включить плавающее окно]   #15
AK3000
Мужской Общительный
Автор темы
 
Аватар для AK3000
 
Регистрация: 24.05.2006
Адрес: Ростов-на-Дону
Andron_ Плохо что не разобрался. Фрагмент - это некоторый последовательный набор символов из файла. Например если файл такой: "ылфыдсоствлвцукшщсятчтаышвоащцуоащ" то фрагмент к примеру из него: "ылфыдсо" или "влвцукшщ" - все просто.

Ты меня почти убедил, но все таки разберись с тем что я написал. А вот наскольло все сложно, ты прав - я плохо себе представляю. Кстати если алгоритм Хаффмана простой и ясный так выложи его здесь.
__________________
Жизнь слишком коротка - наслаждайся пока есть время!
AK3000 вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 13.10.2006, 07:55   [включить плавающее окно]   #16
Fierce Monk
Мужской Запрещенный
 
Аватар для Fierce Monk
 
Регистрация: 15.01.2005
Адрес: Страна Едроссия, деревня Медвепутия
AK3000 http://ru.wikipedia.org/wiki/%D0%A1%...B9%D1%82%D0%B8
Fierce Monk вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 15.10.2006, 12:15   [включить плавающее окно]   #17
groger
Мужской Интересующийся
 
Регистрация: 05.07.2005
Адрес: Троицк
Мудренно написал, долго разбираться и искать неточности.
Покажи несколько примеров(ну пусть не части не по 254, а по 10 или 20 символов)
__________________
Вчера с пальмы слез
groger вне форума  
Ответить с цитированием
Непрочитано 15.10.2006, 14:02   [включить плавающее окно]   #18
AK3000
Мужской Общительный
Автор темы
 
Аватар для AK3000
 
Регистрация: 24.05.2006
Адрес: Ростов-на-Дону
groger Не знаю, вроде все предельно просто. Не очень тебя понял на счет примеров, если ты имеешь ввиду случай когда в файле используется только 10 или 20 различных символов, то будет тоже самое только не нужно будет переходить к пункту 3 (пока задествованных символов только 10 или 20, а не все 256), чтобы появились свободные символы (имеется ввиду что символ кодируется 2-мя байтами и их максимальное количество 256).
__________________
Жизнь слишком коротка - наслаждайся пока есть время!

Последний раз редактировалось AK3000; 15.10.2006 в 14:05.
AK3000 вне форума  
Конфигурация ПК
Ответить с цитированием
Ответ Создать новую тему

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 18:24. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 2000-2017 3DNews. All Rights Reserved.
Администрация 3DNews требует соблюдения на форуме правил и законов РФ
Серверы размещены в Hostkey