|
JPEG кодек на ARM, есть ли исходники или открытые проекты |
|
|
|
 |
Ответов
(1 - 79)
|
May 30 2008, 21:28
|
Участник

Группа: Участник
Сообщений: 19
Регистрация: 27-02-05
Пользователь №: 2 915

|
В uc/GUI есть поддержка вывода jpeg на дисплей. Правда, сам я ее не пробовал использовать. Вот цитата из мануала Цитата 9.2.1 Supported JPEG compression methods This software implements JPEG baseline, extended-sequential, and progressive compression processes. Provision is made for supporting all variants of these processes, although some uncommon parameter settings aren’t implemented yet. For legal reasons, code for the arithmetic-coding variants of JPEG is not distributed. It appears that the arithmetic coding option of the JPEG spec is covered by patents owned by IBM, AT&T, and Mitsubishi. Hence arithmetic coding cannot legally be used without obtaining one or more licenses. For this reason, support for arithmetic coding has not been included to the free JPEG software. (Since arithmetic coding provides only a marginal gain over the unpatented Huffman mode, it is unlikely that very many implementations will support it.) So far as we are aware, there are no patent restrictions on the remaining code. The library does cot contain provision for supporting the hierarchical or lossless processes defined in the standard.
Сообщение отредактировал mai - May 30 2008, 21:33
|
|
|
|
|
May 31 2008, 11:00
|

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

|
Цитата Это, конечно, первоисточник. Но уж очень сия библиотека громоздка и требует менеджера кучи для работы. Я бы рекомедовал делать так - из этой библиотеки взять быстрый целочисленный DCT, из ftp://havefun.stanford.edu/pub/jpeg/JPEGv1.2.1.tar.Z - понимание остального (тут код, конечно, менее оптимальный, но зато - понятнее), и из этого слепить свой кодер. Кроме того, обязательно читать ITU T.81 - собственно стандарт. Очень не рекомендую гнаться за универсальностью - в результате получится нечто, напоминающее jpegsrc.v6b. Надо для начала ограничиться монохромной картинкой, использовать основной метод sequential DCT-based, не делать динамического Хаффмана, а ограничиться заранее заданными табличками(см. T.81). Потом можно добавлять цвет и прочее.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Jun 1 2008, 15:00
|

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

|
Перенес свой AVR'овский кодер на ARM. Если верить симулятору в IAR'е, то 320*240ч/б жмет примерно за 4 миллиона тактов. Причем относительное время нахождения в процедурах примерно соответствует, что на AVR, что на ARM. Правда, надо подумать, как битстрим на ARM реализовать покрасивее, все-таки, в отличии от AVR есть сдвиги на произвольное количество бит.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Jun 1 2008, 15:28
|

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

|
Ну, и кстати, к вопросу о качестве. Вот исходное изображение:
input.bmp ( 76.05 килобайт )
Кол-во скачиваний: 243 Вот результат упаковки:
Цитата(Sergei_Ilchenko @ Jun 1 2008, 18:15)  Для RST7: имя у Вас от Zilog? От i8080. Можно в гугле поискать
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Jun 1 2008, 15:49
|

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

|
Цитата Т.е. цветное 4:2:2 будет сжимать примерно за 8 MIPS'ов. Ну не MIPS, а MIP тогда  а то почти как "узлы в час" получается  )) И, кстати, видимо не 8, а 6. У нас данных по каждому цвету в 4 раза меньше, значит будет 4+1+1=6. ЗЫ Тогда вообще даже MI
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Jun 1 2008, 16:04
|
Гуру
     
Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261

|
Цитата(Rst7 @ Jun 1 2008, 19:49)  Ну не MIPS, а MIP тогда  а то почти как "узлы в час" получается  )) Нет сил возражать..  Вы правы, MI. Цитата(Rst7 @ Jun 1 2008, 19:49)  И, кстати, видимо не 8, а 6. У нас данных по каждому цвету в 4 раза меньше, значит будет 4+1+1=6. Так я же уточнил, что цвет 4:2:2, а не 4:2:0, так что 4+2+2=8. На BF'е, как я уже говорил, 5 MI.
|
|
|
|
|
Jun 2 2008, 17:01
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 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 раза (при одинаковых тактовых, конечно).
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Jun 3 2008, 05:25
|

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

|
Цитата 1) алгоритм JPEG-LS, в котором нет дискретного косинусного преобразования (смотри приложение) Вы думаете, что DCT - это самое зло? Вы ошибаетесь. Обработка результатов DCT занимает столько же времени, что и само преобразование (хотя бы потому, что необходимо каждую гармонику (а их всего столько же, сколько пикселей) разделить на коэффициент) - причем, это с учетом всех оптимизаций (деление заменено на умножение на 1/q; если делимое меньше делителя, сразу исполняется быстрая обработка нулевого результата). А вот в LS надо над каждым пикселем поплясать немало. Ну и часто необходим больший коэффициент сжатия.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Jun 3 2008, 06:04
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 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 - тогда да.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Jun 3 2008, 06:30
|

Гуру
     
Группа: Свой
Сообщений: 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 в арме. Тумбу даже пробовать не буду... Это правильно
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jun 3 2008, 06:41
|

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

|
Гм... Вообщем, нельзя доверять этим симуляторам в иаре... AVR'овский правильно такты считает, а ARM - слишком льстит - B за 1 такт вместо 3, ST за 1 такт вместо 2, LD за 2 такта вместо 3х.. AVR32 тоже далек от правды, причем в другую сторону... Ну для AVR32 я студию выйму, посмотрю, чего она насчитает, а вот для ARM'а... Чем бы таким посимулить поумнее? Цитата DCT и преобразование Уолша проверены на реальном продаваемом оборудовании Это говорит только о том, что Вы не в теме  И оптимизацию, как сейчас модно говорить, ниасилили.Цитата Очень интересное число. Щас будем пересматривать...
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Jun 3 2008, 07:04
|
Гуру
     
Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261

|
Цитата(etoja @ Jun 3 2008, 10:30)  DCT и преобразование Уолша проверены на реальном продаваемом оборудовании Тогда, если не секрет, сообщите, плиз, реальные характеристики оборудования, т.е: количество кадров/сек., размер кадров, формат цвета. И, заодно, какой там используется процессор, если, конечно, речь не идет о сжатии на FPGA.
|
|
|
|
|
Jun 3 2008, 07:14
|

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

|
Цитата(aaarrr @ Jun 3 2008, 09:56)  Эксперимент с RVDS 2.2 дал такие цифры: Код CODE 2456 CLOCKS 5215498 Выкладываю последнюю ревизию. Попробуйте посимулить ее, и дайте листинг, чего он там накомпилил.
JPEGcoderARM.zip ( 85.57 килобайт )
Кол-во скачиваний: 665 Цитата(etoja @ Jun 3 2008, 10:01)  Для Rst7: не симулируй. Ну нету у меня под рукой ARM7 живого, а на ARM9 (да еще и под многозадачкой) - чистота экперимента будет нарушена.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Jun 3 2008, 07:46
|
Участник

Группа: Новичок
Сообщений: 48
Регистрация: 26-10-06
Пользователь №: 21 675

|
Прогонял исходники jpeg-6b на симуляторе в ИАРе V4, ARM7. Вот что получилось по соотношению %времени/процессы. Сжатие кадра 720*576, размер выходного 28Кб, коэф сжатия 25, цвет 4:2:2. 1) Использовался "быстрый" DCT 30 rgb_ycc_convert 40 forward_DCT 19 jpeg_fdct_ifast 16 encode_mcu_huff 2) Использовался "точный" DCT 24 rgb_ycc_convert 43 forward_DCT 26 jpeg_fdct_islow 15 encode_mcu_huff Фц. jpeg_fdct_??? непосредственно вычисляет коэффициенты, является частью forward_DCT. Заметно что вклад "вычисления коэффициентов" и "разборки результатов" примерно равен. Различия в выходных картинка не замечаю, хотя материал немного не тот. В прикреплении пожатые картинки.
jpeg6b_out_25.rar ( 54.51 килобайт )
Кол-во скачиваний: 282
Сообщение отредактировал AKimbo - Jun 3 2008, 07:52
|
|
|
|
|
Jun 3 2008, 08:06
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Rst7 @ Jun 3 2008, 11:42)  А вменяемый листинг можно положить? С сишным исходником в каментах? Вменяемый листинг получить нельзя. Цитата(Rst7 @ Jun 3 2008, 11:42)  И кстати, рекомендую выключить инлайн функций, может нехватать регистров. Он и так выключен. Включение, кстати, картину немного улучшает: Код CODE 2208 CLOCKS 4290777
|
|
|
|
|
Jun 3 2008, 08:25
|

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

|
Цитата Вменяемый листинг получить нельзя. а objdump -S out.elf? Ну и так, кстати, видно, что качество кода IAR'у уступает... Цитата Коммерчески ценные исходники никто никогда никуда не выкладывает. Ваши исходники никто не просит, у Вас просят общее описание - какое железо, количество FPS, во сколько раз пакует...
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Jun 3 2008, 08:34
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Rst7 @ Jun 3 2008, 12:25)  а objdump -S out.elf? Не совсем так, но:
jprocess.txt ( 69.73 килобайт )
Кол-во скачиваний: 373Цитата(Rst7 @ Jun 3 2008, 12:25)  Ну и так, кстати, видно, что качество кода IAR'у уступает... Очень сильно в этом сомневаюсь. Впрочем, IAR'а у меня нет, сравнить не получится.
|
|
|
|
|
Jun 3 2008, 09:46
|
Знающий
   
Группа: Свой
Сообщений: 509
Регистрация: 19-07-07
Из: г. Таганрог
Пользователь №: 29 246

|
События развиваются так быстро, что не успеваю переваривать. Может тогда осветить вопрос наиболее подходящих камер для подобных проектов? Выкладываю даташит на одну из них.
--------------------
Умные речи подобны строкам, напечатанным курсивом. К. Прутков
|
|
|
|
|
Jun 3 2008, 09:48
|

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

|
Цитата Очень сильно в этом сомневаюсь. Да, вроде ничего, сейчас внимательнее рассмотрел. Есть спорное место о замене загрузки непосредственного операнда и умножения на 3 сложения. Дело в том, что операнд <256, следовательно, умножение выполняется 2 такта + 1 такт MOV, значит, по тактам - одинаково, но зато лишнее слово. А это - потенциальная потеря скорости (например, из-за MAM на LPC, или промаха мимо кеша). А в остальном вроде особых граблей нет, правда местами он лишнего из цикла повыносил с потерей общего быстродействия (это я специально при помощи goto обманывал).
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Jun 3 2008, 09:53
|

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

|
Цитата Готово. Ну что-же. Тогда пересматриваем цифры. Значит, до BF'а нам еще 80%, почти в 2 раза хуже. С другой стороны, соотношение с тактов у AVR с тактами у ARM уменьшилось - так что выигрыш за счет 32хразрядной архитектуры стал около 2х. Цитата 70000 лишних тактов откуда-то набежало только. да хрен с ними, на 4х миллионах то...
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Jun 3 2008, 09:59
|
Знающий
   
Группа: Свой
Сообщений: 509
Регистрация: 19-07-07
Из: г. Таганрог
Пользователь №: 29 246

|
События развиваются так быстро, что не успеваю переваривать. Может тогда осветить вопрос наиболее подходящих камер для подобных проектов? Выкладываю даташит на одну из них.
--------------------
Умные речи подобны строкам, напечатанным курсивом. К. Прутков
|
|
|
|
|
Jun 3 2008, 10:07
|

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

|
Цитата Выкладываю даташит на одну из них. А Вам обязательно такое разрешение? Имейте в виду, что понадобится ОЗУ для хранения всего кадра, и время упаковки растет пропорционально площади изображения (единица измерения - пиксель^2) - так что картинка с такой камеры будет жаться не 4, а 100 миллионов тактов (это чб, с цветом - в полтора-два раза дольше, как выберете). Рекомендую, кстати, искать камеру, которая умеет сразу выдавать YUV, а не RGB - минус матрицирование, тоже требующая времени операция.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Jun 3 2008, 10:56
|
Знающий
   
Группа: Свой
Сообщений: 509
Регистрация: 19-07-07
Из: г. Таганрог
Пользователь №: 29 246

|
Цитата(Rst7 @ Jun 3 2008, 14:07)  А Вам обязательно такое разрешение? Имейте в виду, что понадобится ОЗУ для хранения всего кадра, и время упаковки растет пропорционально площади изображения (единица измерения - пиксель^2) - так что картинка с такой камеры будет жаться не 4, а 100 миллионов тактов (это чб, с цветом - в полтора-два раза дольше, как выберете).
Рекомендую, кстати, искать камеру, которая умеет сразу выдавать YUV, а не RGB - минус матрицирование, тоже требующая времени операция. Собственно озу предолагалось метров на 64. Теперь буду думать над оптимизацией.
--------------------
Умные речи подобны строкам, напечатанным курсивом. К. Прутков
|
|
|
|
|
Jun 3 2008, 13:43
|

Местный
  
Группа: Свой
Сообщений: 226
Регистрация: 13-03-07
Из: Севастополь
Пользователь №: 26 137

|
Цитата(Vitaliy_ARM @ Jun 3 2008, 12:59)  События развиваются так быстро, что не успеваю переваривать. Может тогда осветить вопрос наиболее подходящих камер для подобных проектов? Выкладываю даташит на одну из них. Очинь апасна  Но все же, если не секрет, для чего такое разрешение? Эти все поделки на армах и камерах идут, в основном, в системы наблюдения, видеофоны всякие. А ваше разрешение подразумевает нечто монструозное. Неужели фотоаппарат?
|
|
|
|
|
Jun 7 2008, 07:26
|
Знающий
   
Группа: Свой
Сообщений: 509
Регистрация: 19-07-07
Из: г. Таганрог
Пользователь №: 29 246

|
Цитата(dENIM @ Jun 3 2008, 17:43)  Очинь апасна  Но все же, если не секрет, для чего такое разрешение? Эти все поделки на армах и камерах идут, в основном, в системы наблюдения, видеофоны всякие. А ваше разрешение подразумевает нечто монструозное. Неужели фотоаппарат?  Не совсем секрет. Устройство, очень похожее на хороший фотоаппарат. Ничего монстроузорного в 2 Мпикселях нет.
--------------------
Умные речи подобны строкам, напечатанным курсивом. К. Прутков
|
|
|
|
|
Jun 7 2008, 14:01
|
Знающий
   
Группа: Свой
Сообщений: 509
Регистрация: 19-07-07
Из: г. Таганрог
Пользователь №: 29 246

|
Цитата(_4afc_ @ Jun 7 2008, 13:59)  Нет ли у кого более подробной информации по LZ0P39HA или LZ0P3954? Всмысле I2C и режимов работы. Конструктив мне понятен. Все остальное, вроде, под NDA дается.
--------------------
Умные речи подобны строкам, напечатанным курсивом. К. Прутков
|
|
|
|
|
Jun 9 2008, 17:52
|
Знающий
   
Группа: Свой
Сообщений: 509
Регистрация: 19-07-07
Из: г. Таганрог
Пользователь №: 29 246

|
Цитата(_4afc_ @ Jun 9 2008, 13:49)  Может брал кто уже под NDA? Поделитесь пожалуйста. А то лежат LZ0P39HA, не знаю как подступиться... А если попробовать VS6724?
--------------------
Умные речи подобны строкам, напечатанным курсивом. К. Прутков
|
|
|
|
|
Jun 10 2008, 07:01
|

Профессионал
    
Группа: Свой
Сообщений: 1 262
Регистрация: 13-10-05
Из: Санкт-Петербург
Пользователь №: 9 565

|
Цитата(Vitaliy_ARM @ Jun 9 2008, 21:52)  А если попробовать VS6724? Вам она больше подойдёт несомненно, поскольку жмёт в JPEG сама. Меня больше интересует изображение в YUV420 ибо камеры на самом деле, в частности MT9D131, выдают JFIF без заголовков и коэфициентов, которые надо формировать самому. Т.е. надо или работать с постоянными коэф. или вычитывать их по I2C. Причём доступ к многим регистрам в MT9D131 через узенькую дырочку. PS: VS6724 мне понравилась, жаль раньше не видел. И дока подробная. Цитата(singlskv @ Jun 9 2008, 22:59)  Это есть в нескольких местах в интернете, и естественно я получил этот документ при покупке модулей. Прочитав документ я не нахожу ответа что такое адреса 5e4-5eb, неясно каким образом осуществляется 5 кратный зум и перевороты картинки. Кроме того различные регулировки баланса белого и т.п. И регулировка автофокуса не ясна. Данные о наличии или отсутствии фокуса должны идти с камеры, даже если я сам кручу мотором. Если мне самаму придётся обрабатывать кадр - это уже ручной фокус.
Сообщение отредактировал _4afc_ - Jun 10 2008, 07:17
|
|
|
|
|
Jun 10 2008, 10:14
|
Знающий
   
Группа: Свой
Сообщений: 509
Регистрация: 19-07-07
Из: г. Таганрог
Пользователь №: 29 246

|
Цитата(_4afc_ @ Jun 10 2008, 11:01)  PS: VS6724 мне понравилась, жаль раньше не видел. И дока подробная. Для полного счастья не хватает примеров работы. Нашел только какие-то обрывки кода для получения данных на STR9... Жудко нехороший процессор
--------------------
Умные речи подобны строкам, напечатанным курсивом. К. Прутков
|
|
|
|
|
Aug 14 2008, 07:14
|

Профессионал
    
Группа: Свой
Сообщений: 1 262
Регистрация: 13-10-05
Из: Санкт-Петербург
Пользователь №: 9 565

|
Цитата(Rst7 @ Jun 2 2008, 11:03)  Вот повставлял в исходники необходимые упоминания про GPL и выкладываю... Теперь посмотрим, какие новые поделки с камерами за бабло появятся  Что-то у меня с JPEG никак отношения не ладятся. Откомпилировал ваш исходник в DEV-C++ под винду - результат конвертации ошеломляет. Может кто подскажет - что не так, визуально? Округления? Инты, шорты, чары? Структуры? Исходная картинка - таже.
Эскизы прикрепленных изображений
|
|
|
|
|
Aug 26 2008, 09:12
|

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

|
Цитата(_4afc_ @ Aug 14 2008, 10:14)  Что-то у меня с JPEG никак отношения не ладятся. Ну как? Разобрались? Если нет - то в версии для x86 замените _WRITE_BITS_N на это Код #define _WRITE_BITS_N(LEN,SYM) \ { \ if ((REG)(__bs_bit-=LEN)>0) \ { \ __bs_buf|=SYM<<__bs_bit; \ } \ else \ { \ UREG c; \ __bs_buf|=SYM>>(__bs_bit=0-__bs_bit); \ c=__bs_buf>>24; \ if ((*__bs_bytep++=c)==0xFF) *__bs_bytep++=0; \ c=__bs_buf>>16; \ if ((*__bs_bytep++=c)==0xFF) *__bs_bytep++=0; \ c=__bs_buf>>8; \ if ((*__bs_bytep++=c)==0xFF) *__bs_bytep++=0; \ c=__bs_buf>>0; \ if ((*__bs_bytep++=c)==0xFF) *__bs_bytep++=0; \ if (__bs_bit) __bs_buf=SYM<<(__bs_bit=32-__bs_bit); else {__bs_buf=0; __bs_bit=32;}\ } \ } \ Собственно говоря, актуален последний if.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Aug 28 2008, 15:28
|

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

|
Цитата(_4afc_ @ Aug 28 2008, 13:08)  Самостоятельно - нет. Дал ковырятся местному программисту, но он увяз. Слабак  шютка Цитата Ваш вариант работает. У вашего кодера чуть больше артефактов, чем у Cristi Cuturicu - вероятно из-за целочисленных вычислений, правда у Cristi Cuturicu файл больше. Дык поиграйтесь коэффициентом сжатия, он задается параметром функции-генератора заголовка. Чем он больше, тем выше качество и выходной размер.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Aug 29 2008, 09:04
|

Профессионал
    
Группа: Свой
Сообщений: 1 262
Регистрация: 13-10-05
Из: Санкт-Петербург
Пользователь №: 9 565

|
Цитата(Rst7 @ Aug 28 2008, 19:28)  Дык поиграйтесь коэффициентом сжатия, он задается параметром функции-генератора заголовка. Чем он больше, тем выше качество и выходной размер. Я сначала подумал, что чем больше коэф. - тем хуже качество Кстати, замена усечения на округление - улучшает резкость. Код #define MUL_U16(a,b) ( (unsigned int)( ( ((UINT32)(a)*(b))+0x8000 )>>16 ) ) В теме проскакивали тесты на скорость - ваш исходник скомпилированный влоб на VDSP5 под BF жмёт ч/б 640х480 за 42 миллиона тактов, что неплохо.
|
|
|
|
|
Aug 29 2008, 12:46
|

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

|
Цитата Кстати, замена усечения на округление - улучшает резкость. Возможно. Надо вообще проверить это место, чтобы совпадало с проверкой на минимальное значение. Короче, я гляну. Цитата ваш исходник скомпилированный влоб на VDSP5 под BF жмёт ч/б 640х480 за 42 миллиона тактов, что неплохо. На арме эту картинку жало бы примерно 20 миллионов тактов. Перепишите хотя-бы DCT на асме, для остального DSPшные фичи особо не нужны...
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Aug 29 2008, 19:08
|
Местный
  
Группа: Участник
Сообщений: 273
Регистрация: 3-11-05
Пользователь №: 10 442

|
В прошлые выходные реализовал JPEG . Честно признаюсь, не написал ни строчки кода  Хотя и разобрался как работает, всё увёл из http://mxhaard.free.fr/spca50x/Download/sp...20060127.tar.gz . Это драйвера для вебкамер под линукс. НО в папке encode есть кодировщик и в папке decode раскодировщик. Эсть готовые функции encode_image и decode_image
|
|
|
|
|
Aug 30 2008, 05:54
|

Профессионал
    
Группа: Модераторы
Сообщений: 1 120
Регистрация: 17-06-04
Пользователь №: 37

|
Цитата НО в папке encode есть кодировщик и в папке decode раскодировщик. Эсть готовые функции encode_image и decode_image В этом архиве нет папок "encode" и "decode". И нет функций "encode_image" и "decode_image". Может Вы ошиблись ссылкой?
--------------------
Если зайца бить, его можно и спички научить зажигать Сколько дурака не бей - умнее не будет. Зато опытнее
|
|
|
|
|
Dec 20 2014, 21:53
|
Группа: Новичок
Сообщений: 5
Регистрация: 19-08-11
Пользователь №: 66 788

|
Добрый вечер, у меня вопрос по кодеку JpegCoderARM, я его перед тем как переносить на МК, попробовал в Windows, что то не выходит картинка, на вход давал картинку 320*240 grayscale, в том числе пробовал и фотку из архива, в чем может быть причина, картинка получается, по размеру файл сжатый, но ооочень неправильная, непонятно что изображено, может как то алгоритм по другому под виндой работает? Просто боюсь все переносить на МК, ощущение непонимания возникает! )
Сообщение отредактировал BaRaGoZ - Dec 20 2014, 21:56
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|