PDA

Просмотр полной версии : алгоритмы сжатия картинок



BlastOff
19.10.2005, 04:04
Есть ли в доступном виде(исходник/псевдокод) алгоритмы работы Спектрумовских программ для упаковки/распаковки картинок?

Hrumer
19.10.2005, 04:59
Быстров как то в Инферногуид описвыал формат упакованных данных разных пакеров, можно там посмотреть...

elf/2
19.10.2005, 09:40
Быстров как то в Инферногуид описвыал формат упакованных данных разных пакеров, можно там посмотреть...
на всякий случай, распаковка lc 4.0 и lc 5.2 на с/с++

psb
19.10.2005, 13:04
хм.. а нету консольных hrust'ов для РС?

elf/2
19.10.2005, 14:04
хм.. а нету консольных hrust'ов для РС?
ну почему же нету... где нашел не помню, не исключено что где-то здесь, на форуме

psb
20.10.2005, 15:26
вооо :))) спасибо большое! :)))

BlastOff
21.11.2005, 08:54
А распаковщики hrum/hrust консольные есть(с сорцами)?

Sinus
21.11.2005, 11:47
есть как паковщики, так и распаковщики. обращаться надо вроде к elf/2.
есть ещё моя версия на C++ (на самом деле классы юзаются только ради пространства имён). ИМХО моя версия почитабельнее будет.
если надо, то когда приду домой закину.

BlastOff
21.11.2005, 19:14
Да, надо, закидывай! :)

Sinus
23.11.2005, 13:26
короче кому надо хруст и дехруст в классах, ловите.
на добрый толк надо конечно было сделать методы статическими, но мне влом.

Hrumer
24.11.2005, 06:09
Привет!

А алгоритм OLZH никто не пробовал прикручивать?

lvd
24.11.2005, 09:54
короче кому надо хруст и дехруст в классах, ловите.
на добрый толк надо конечно было сделать методы статическими, но мне влом.

Интересно, насколько оптимально (в рамках формата упакованных данных) пакует этот "хруст в классах"? Что такое "spd 0-3" ? На 1 файле он немного обошёл, на другом немного проиграл megalz'у. А поскольку депакер megalz'а всего 112 байт, то в данном случае хруст в пролёте =)

Hrumer
24.11.2005, 10:04
lvd, интересно, а в megalz применяются какие либо специальные алгоритмы для улучшения качества сжатия(т.е. более опитмального подбора кодируемых пар) или все кодируется "в лоб"?

Sinus
24.11.2005, 11:10
"хруст в классах" - порт 1:1 со спековского хруста. по этому по всем вопросам относительно оптимальности/неоптимальности упаковки не ко мне ^_~

а что такое megalz?

lvd
24.11.2005, 12:25
lvd, интересно, а в megalz применяются какие либо специальные алгоритмы для улучшения качества сжатия(т.е. более опитмального подбора кодируемых пар) или все кодируется "в лоб"?

Я не знаю, я пакер не писал и не ломал. Депакер можно увидеть в поздних (чем позже тем больше вероятность что самый последний депакер) релизах mayhem. По всем вопросам можно обратиться к fyrex'у, он его писал.

Кстати, а есть сорец депакера к этому пакеру, желательно перемещаемый (LDIR'ом) и нестековый? =)

lvd
24.11.2005, 12:26
а что такое megalz?

Пакер, написанный fyrex'ом из mayhem.

Sinus
24.11.2005, 12:32
а где его взять?

lvd
24.11.2005, 12:39
а где его взять?

Депакер вроде я сказал где, а пакер только для внутреннего использования. По всем вопросам можно к fyrex'у, он тута есть в юзерах, если надо, скажу емыл в личку.

Sinus
24.11.2005, 12:51
хотелось бы посмотреть на этот пакер. ибо если он пакует лучше хруста с депакером в 112 байт, то это по крайней мере интересно.

fyrex
24.11.2005, 12:59
То, что лучше - это конечно врядли...
но то что быстрее распаковщик и меньше на соизмеримом
качестве сжатия - это да.

2hrumer - к сожалению не использует, хотел в своё время поработать с
этим подходом к сжатию, но так и не было особой нужды - предел
некий уже можно сказать достигнут (в этом классе кранчеров)

Sinus
24.11.2005, 13:05
ну так это, не томи ;)
дай потестить

Hrumer
24.11.2005, 13:32
fyrex: Напрасно. Я оцениваю выигрыш по объему где то 1..15%. А может и выше. Если уж Павлов в своем 7zip для формата zip указывает выигрыш до 8..10%, то при использовании "статических кодов" выигрыш будет гораздо серьезнее.

Hrumer
24.11.2005, 14:01
fyrex: оппа. я депакера от megalz не видел. То, на что я подумал называлось bitbuster и RNC_ProPack... Если не трудно, дай текст распаковщика.

jtn
24.11.2005, 15:07
да, закиньте уже плиз эти 112 байт в виде текста прямо в форум

lvd
24.11.2005, 15:21
да, закиньте уже плиз эти 112 байт в виде текста прямо в форум

Из дома закину. Туто нету. Кстати фурех разрешил дать пакер отдельным личностям - тоже разошлю =)).

lvd
24.11.2005, 19:41
Депакер megalz v4



DEC40
;HL - from
;DE - to

LD A,#80
EX AF,AF'
MS LDI
M0 LD BC,#2FF
M1 EX AF,AF'
M1X ADD A,A
JR NZ,M2
LD A,(HL)
INC HL
RLA
M2 RL C
JR NC,M1X
EX AF,AF'
DJNZ X2
LD A,2
SRA C
JR C,N1
INC A
INC C
JR Z,N2
LD BC,#33F
JR M1

X2 DJNZ X3
SRL C
JR C,MS
INC B
JR M1
X6
ADD A,C
N2
LD BC,#4FF
JR M1
N1
INC C
JR NZ,M4
EX AF,AF'
INC B
N5 RR C
RET C
RL B
ADD A,A
JR NZ,N6
LD A,(HL)
INC HL
RLA
N6 JR NC,N5
EX AF,AF'
ADD A,B
LD B,6
JR M1
X3
DJNZ X4
LD A,1
JR M3
X4 DJNZ X5
INC C
JR NZ,M4
LD BC,#51F
JR M1
X5
DJNZ X6
LD B,C
M4 LD C,(HL)
INC HL
M3 DEC B
PUSH HL
LD L,C
LD H,B
ADD HL,DE
LD C,A
LD B,0
LDIR
POP HL
JR M0

axor
24.11.2005, 21:03
Кстати фурех разрешил дать пакер отдельным личностям - тоже разошлю =)).

Зачем только отдельным? Из чего делать секрет? Лучше здесь выложить. Спектрумисты будут благодарны. А вдруг его поддержат в каком-нибудь новом коммандере (например, QC).

lvd
24.11.2005, 21:48
Зачем только отдельным? Из чего делать секрет? Лучше здесь выложить. Спектрумисты будут благодарны. А вдруг его поддержат в каком-нибудь новом коммандере (например, QC).

Вопрос не ко мне - к фуреху.

fyrex
25.11.2005, 09:27
2hrumer - Да, как раз 7з мне и открыл глаза на оптимальное сжатие, когда обычным методом зипа достигается существенно большее сжатие...
Но нада учитывать, что на спеке файлы жмут обычно маленькие, так что
выигрыш в проценты - это несколько байт ! А мучиться с пакером придётся
долго =)

axor
25.11.2005, 10:03
2hrumer - Да, как раз 7з мне и открыл глаза на оптимальное сжатие, когда обычным методом зипа достигается существенно большее сжатие...
Но нада учитывать, что на спеке файлы жмут обычно маленькие, так что
выигрыш в проценты - это несколько байт ! А мучиться с пакером придётся
долго =)

Повторю вопрос. Можно ли пакер закинуть сюда?