реклама на сайте
подробности

 
 
6 страниц V  < 1 2 3 4 > »   
Reply to this topicStart new topic
> JPEG кодек на ARM, есть ли исходники или открытые проекты
Rst7
сообщение Jun 2 2008, 17:01
Сообщение #16


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
Так я же уточнил, что цвет 4:2:2, а не 4:2:0, так что 4+2+2=8.На BF'е, как я уже говорил, 5 MI.


Немного поплясал с бубном, вспомнив, что среди результатов квантизации почти 75% нулей (это для всех картинок, так сама идея кодера задумана), следовательно, можно неплохо выиграть, правильно написав условия (т.е. обеспечить кратчайшее время при 0). После этого на моей тестовой картинке 3235931 такта. Больше видимо уже не удасться выжать.

Кстати, бекпорт оптимизированного кодера привел к результату 8561325 на AVR (было около 12 миллионов).

И вот еще что - отношение количества тактов на AVR к ARM можно рассматривать как ориентировочную цифру увеличения производительности чисто за счет разрядности - 2.6 раза (при одинаковых тактовых, конечно).


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
blackfin
сообщение Jun 2 2008, 17:50
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261



Цитата(Rst7 @ Jun 2 2008, 21:01) *
После этого на моей тестовой картинке 3235931 такта. Больше видимо уже не удасться выжать.
Вот видите, можете поблагодарить меня за предоставленный стимул.. beer.gif
Go to the top of the page
 
+Quote Post
Rst7
сообщение Jun 2 2008, 17:59
Сообщение #18


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



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


Спасибо. Кстати, получается, что разрыв с BF сократили до 30%. Я считаю - есть над чем подумать... (не нам с Вами, а тем, кто сейчас чешет репу с вопросом "какую бы каменюку мне в проект заложить";) )


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
blackfin
сообщение Jun 2 2008, 18:13
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261



Цитата(Rst7 @ Jun 2 2008, 21:59) *
Я считаю - есть над чем подумать...
Подумать всегда есть над чем, но нужно не забывать, что конвейер в BF - 10 тактов, а рабочая частота ядра - 600 МГц. wink.gif
Go to the top of the page
 
+Quote Post
etoja
сообщение Jun 3 2008, 04:10
Сообщение #20


Профессионал
*****

Группа: Свой
Сообщений: 1 121
Регистрация: 14-01-05
Из: Москва
Пользователь №: 1 952



Для быстрого сжатия можно использовать:
1) алгоритм JPEG-LS, в котором нет дискретного косинусного преобразования (смотри приложение)
2) аппаратное сжатие. У Xilinx есть свободно распространяемый пример сжатия со скоростью 24 кадра в секунду.
Прикрепленные файлы
Прикрепленный файл  ljpg.zip ( 234.85 килобайт ) Кол-во скачиваний: 295
 
Go to the top of the page
 
+Quote Post
blackfin
сообщение Jun 3 2008, 04:28
Сообщение #21


Гуру
******

Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261



Цитата(etoja @ Jun 3 2008, 08:10) *
Для быстрого сжатия можно использовать:
1) алгоритм JPEG-LS, в котором нет дискретного косинусного преобразования (смотри приложение)
2) аппаратное сжатие. У Xilinx есть свободно распространяемый пример сжатия со скоростью 24 кадра в секунду.

1) насколько мне известно, алгоритм JPEG-LS жмет в 3-4 раза, что, IMHO, недостаточно для многих приложений.
2) А что за кадры? Размер кадра? Цвет?
И сколько стоит реализация на FPGA? Есть оценки?
Go to the top of the page
 
+Quote Post
Rst7
сообщение Jun 3 2008, 05:25
Сообщение #22


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
1) алгоритм JPEG-LS, в котором нет дискретного косинусного преобразования (смотри приложение)


Вы думаете, что DCT - это самое зло? Вы ошибаетесь. Обработка результатов DCT занимает столько же времени, что и само преобразование (хотя бы потому, что необходимо каждую гармонику (а их всего столько же, сколько пикселей) разделить на коэффициент) - причем, это с учетом всех оптимизаций (деление заменено на умножение на 1/q; если делимое меньше делителя, сразу исполняется быстрая обработка нулевого результата). А вот в LS надо над каждым пикселем поплясать немало.

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


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jun 3 2008, 05:49
Сообщение #23


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Rst7 @ Jun 2 2008, 19:01) *
И вот еще что - отношение количества тактов на AVR к ARM можно рассматривать как ориентировочную цифру увеличения производительности чисто за счет разрядности - 2.6 раза (при одинаковых тактовых, конечно).

Очень интересное число. Для общего развития не можете назвать получившееся при этом соотношение размеров кода?


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
etoja
сообщение Jun 3 2008, 06:00
Сообщение #24


Профессионал
*****

Группа: Свой
Сообщений: 1 121
Регистрация: 14-01-05
Из: Москва
Пользователь №: 1 952



Если вместо DCT применить преобразование Уолша (Walsh transform), то кадровая скорость сжатия возрастёт в 4 раза. Правда это будет нестандартный JPEG.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Jun 3 2008, 06:04
Сообщение #25


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
Для общего развития не можете назвать получившееся при этом соотношение размеров кода?


ARM: 2 232 bytes in segment CODE
AVR: 2 026 bytes in segment CODE
AVR32: 1 910 bytes in segment CODE32

ARM в арме. Тумбу даже пробовать не буду, регистров не хватит, будет дупа по производительности.

Цитата(etoja @ Jun 3 2008, 09:00) *
Если вместо DCT применить преобразование Уолша (Walsh transform), то кадровая скорость сжатия возрастёт в 4 раза. Правда это будет нестандартный JPEG.


Вы читаете то, что я пишу? Если выбросить DCT, то времени займет только в 2 раза меньше

Конечно, если у Вас плохо дело с оптимизацией самого DCT - тогда да.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
blackfin
сообщение Jun 3 2008, 06:04
Сообщение #26


Гуру
******

Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261



Цитата(etoja @ Jun 3 2008, 10:00) *
Если вместо DCT применить преобразование Уолша (Walsh transform), то кадровая скорость сжатия возрастёт в 4 раза. Правда это будет нестандартный JPEG.
Для BF по моим оценкам, затраты на DCT -15%, а на сжатие Huffman'ом и все остальное - 85%.
Где тут можно получить выигрыш в 4 раза? wacko.gif

Сообщение отредактировал blackfin - Jun 3 2008, 06:17
Go to the top of the page
 
+Quote Post
Rst7
сообщение Jun 3 2008, 06:16
Сообщение #27


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
По моим оценкам, затраты на DCT -25%, а на сжатие Huffman'ом - 75%.


Это на BF. Там DCT конечно лучше должно получиться, все-таки несколько MAC за такт.

А на AVR/ARM/AVR32 соотношение 50 на 50.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
etoja
сообщение Jun 3 2008, 06:30
Сообщение #28


Профессионал
*****

Группа: Свой
Сообщений: 1 121
Регистрация: 14-01-05
Из: Москва
Пользователь №: 1 952



DCT и преобразование Уолша проверены на реальном продаваемом оборудовании
http://telekadr.by.ru
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jun 3 2008, 06:30
Сообщение #29


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Rst7 @ Jun 3 2008, 08:04) *
ARM: 2 232 bytes in segment CODE
AVR: 2 026 bytes in segment CODE
AVR32: 1 910 bytes in segment CODE32

Совершенно привычные соотношения. Cпасибо.
Цитата
ARM в арме. Тумбу даже пробовать не буду...

Это правильно smile.gif


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Rst7
сообщение Jun 3 2008, 06:41
Сообщение #30


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Гм... Вообщем, нельзя доверять этим симуляторам в иаре... AVR'овский правильно такты считает, а ARM - слишком льстит - B за 1 такт вместо 3, ST за 1 такт вместо 2, LD за 2 такта вместо 3х.. AVR32 тоже далек от правды, причем в другую сторону... Ну для AVR32 я студию выйму, посмотрю, чего она насчитает, а вот для ARM'а... Чем бы таким посимулить поумнее?

Цитата
DCT и преобразование Уолша проверены на реальном продаваемом оборудовании


Это говорит только о том, что Вы не в теме wink.gif И оптимизацию, как сейчас модно говорить, ниасилили.

Цитата
Очень интересное число.


Щас будем пересматривать...


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post

6 страниц V  < 1 2 3 4 > » 
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 19:57
Рейтинг@Mail.ru


Страница сгенерированна за 0.01425 секунд с 7
ELECTRONIX ©2004-2016