SPIHT
От: KARALIUS Россия http://ci-school.org
Дата: 22.01.03 16:44
Оценка:
Народ, скажите кто-нибудь SPIHT реализовывал на асме с супероптимизацией, а то либо качество плохое, либо много процессорного времени жрет. Просто ужас.
----
При промывке мозгов извилины стираются.
Re: SPIHT
От: lis_asm  
Дата: 23.02.03 13:17
Оценка:
Здравствуйте, KARALIUS, Вы писали:

KAR>Народ, скажите кто-нибудь SPIHT реализовывал на асме с супероптимизацией, а то либо качество плохое, либо много процессорного времени жрет. Просто ужас.


lis>Я реализовал SPIHT на ASM'е. Насчет супероптимизации сказать сложно, т.к. всегда можно сделать круче. Что касается качества, то многое зависит от выбора вейвлета. Так-же очень не вредно самый крупный масштаб, (т.е. LL квадратик), SPIHT'ом не обраватывать, а просто запихнуть в байты и так передать. Короче говоря примерно так:

psraw mm1,n
packuswb mm1,mm1
где n зависит от конкретного вейвлета.
Я сам немного не догнал, как энтропийно дожимать. Кстати, при сильном сжатии, это существенно! Может кто подскажет? Свои исходники впринципе могу дать, только их надо поаккуратней оформить, чтго-бы кто-нибудь, кроме меня, что-то понял.
Re[2]: SPIHT
От: cpp Россия http://www.elecard.com
Дата: 24.02.03 16:17
Оценка:
Здравствуйте, lis_asm, Вы писали:

LA> Я реализовал SPIHT на ASM'е. Насчет супероптимизации сказать сложно, т.к. всегда можно сделать круче. Что касается качества, то многое зависит от выбора вейвлета. Так-же очень не вредно самый крупный масштаб, (т.е. LL квадратик), SPIHT'ом не обраватывать, а просто запихнуть в байты и так передать. Короче говоря примерно так:

LA> psraw mm1,n
LA> packuswb mm1,mm1
LA>где n зависит от конкретного вейвлета.
LA> Я сам немного не догнал, как энтропийно дожимать. Кстати, при сильном сжатии, это существенно!
что именно "существенно!"? и что за код вы привели? хотя бы пару слов
Сергей.
Re[3]: SPIHT
От: lis_asm  
Дата: 25.02.03 13:29
Оценка:
Здравствуйте, cpp, Вы писали:

cpp>Здравствуйте, lis_asm, Вы писали:


LA>> Я реализовал SPIHT на ASM'е. Насчет супероптимизации сказать сложно, т.к. всегда можно сделать круче. Что касается качества, то многое зависит от выбора вейвлета. Так-же очень не вредно самый крупный масштаб, (т.е. LL квадратик), SPIHT'ом не обраватывать, а просто запихнуть в байты и так передать. Короче говоря примерно так:

LA>> psraw mm1,n
LA>> packuswb mm1,mm1
LA>>где n зависит от конкретного вейвлета.
LA>> Я сам немного не догнал, как энтропийно дожимать. Кстати, при сильном сжатии, это существенно!
cpp>что именно "существенно!"? и что за код вы привели? хотя бы пару слов
LIS> Существенно энтропийное сжатие, т.к. сначала SPIHT выдает практически одни нули. Поэтому когда нужен маленький размер (на котором останавливаем работу алгоритма), доля этих нулей будет велика. Тут можно и RLE применить, но при этом нужно четко определить, где "начало", а где уже нет и жать только начало. Что касается двух команд, то они просто запихивают коэфицент в байт. По моему опыту, крупный масштаб лучше вообще никак ни жать, все-равно он очень мало занимает.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.