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

 
 
> JPEG, Примеры JPEG под ТMS643.
Politeh
сообщение Apr 4 2009, 18:33
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 467
Регистрация: 7-06-06
Пользователь №: 17 829



Здравствуйте!

Подскажите где можно взять примеры реализации JPEG(МJPEG) для процессора TMS320DM643... , также примеры на С для других процессоров. Так же нужна информация по оптимизации алгоритма JPEG.

За любую информацию буду благодaрен.

Сергей.
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 18)
Rst7
сообщение Apr 4 2009, 19:10
Сообщение #2


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

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



Поищите по форуму, я выкладывал исходник JPEG-кодера, довольно серьезно оптимизированного. Изначально под ARM, но порт на другую архитектуру не составляет труда. Правда, он с GPL лицензией wink.gif


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


Местный
***

Группа: Свой
Сообщений: 467
Регистрация: 7-06-06
Пользователь №: 17 829



Цитата(Rst7 @ Apr 4 2009, 22:10) *
Поищите по форуму, я выкладывал исходник JPEG-кодера, довольно серьезно оптимизированного. Изначально под ARM, но порт на другую архитектуру не составляет труда. Правда, он с GPL лицензией wink.gif


Cпасибо за ответ. Сейчас поищу. Есть ещё вопрос. Что на входе и можно ли разархивировать выходной файл стандартными средствами?
Благодарю.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Apr 8 2009, 07:31
Сообщение #4


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

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



На входе - массив x на y, содержащий яркость в виде "байт на точку". На выходе поток, соответствующий стандартному JPEG.


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


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

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



Цитата(Rst7 @ Apr 8 2009, 10:31) *
На входе - массив x на y, содержащий яркость в виде "байт на точку". На выходе поток, соответствующий стандартному JPEG.

Токма чёрно-белый и режим сжатия - 1, 2,...
Для потока проще ужимать до ххх бит, ну и лучше цветное 422 или 411 biggrin.gif
Go to the top of the page
 
+Quote Post
Rst7
сообщение Apr 8 2009, 08:55
Сообщение #6


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

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



Ну цвет туда вкрутить не долго. А выбросить передачу заголовков - так вообще пыль для моряка smile.gif


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


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



Вместе со стеклянными бусами, зеркальцами и огненной водой белые люди несут племенам дикарей и некоторые свои странные идеи - поклонение распятому религиозному бунтарю, написание программ с открытыми исходными текстами... Это я о том, что открываем любой проект GNU или BSD связанный с JPEG и имеем исходный текст. Кстати, когда-то сюда уже приводили некоторые интересные ссылки...

вот

А вот вообще шедевр... и там далеко не только mJPEG интересен... BlackFin GCC ...


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
Rst7
сообщение Apr 8 2009, 14:51
Сообщение #8


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

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



Цитата
Это я о том, что открываем любой проект GNU или BSD связанный с JPEG и имеем исходный текст


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


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


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



Цитата(Rst7 @ Apr 8 2009, 17:51) *
Слабо применимый к реалиям встраиваемого мира - одна необходимость в менеджере кучи чего стоит.

biggrin.gif Недавно отсеялся еще на пером этапе собеседования в одну контору. Так вот в Киеве embedded называют Linux в чем-то таком небольшом... где-то так biggrin.gif . Так что не во всяком встроенном есть проблемы с кучей. Кстати, а эти TMS320DM643... они что - без OS? 07.gif


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
Rst7
сообщение Apr 8 2009, 18:24
Сообщение #10


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

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



Цитата
Недавно отсеялся еще на пером этапе собеседования в одну контору. Так вот в Киеве embedded называют Linux в чем-то таком небольшом...


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

Цитата
Кстати, а эти TMS320DM643... они что - без OS?


Ну вот AVR - с осью или без?

Хороший менеджер кучи, не тормозящий сильно процессы в RTOS и при этом не требующий большого перерасхода озу на заранее заготовленные пулы и являющийся достаточно универсальным (идеал - malloc без указания кучи) - мало того, что нетривиален, так еще и нерешаемый в общем виде. Все равно содержит набор костылей sad.gif


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


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



Цитата(Rst7 @ Apr 8 2009, 21:24) *
Не расстраивайтесь. Это явные долбодятлы, которые не видят способа сделать контроллер светодиода без линуха и дотнета. Не говоря уже о том, что правильные пацаны, если и принимают решение об использовании такой оси (причем, после весьма крепкого раздумья), то пользуют фрю - меньше вопросов с лицензией - можно править код системы под свои нужды и не публиковать код этих патчей. А можно и просто форкнуть всю систему, совет попечителей слова не скажет wink.gif

Социопата с моим опытом врядли что-то расстроит biggrin.gif Нет, это не дятлы и как раз с Linux'ом у меня все очень даже хорошо, как и GCC, bash и пррименением libbfdsp biggrin.gif . Но нужны еще и C++, алгоритмы 3-D графики или видеообработки, и приэтом какой-то из ARM9... или работа над численными методами biggrin.gif ... Не шчу. Контору мы все - знаем wink.gif .

Цитата(Rst7 @ Apr 8 2009, 21:24) *
Ну вот AVR - с осью или без?

Ну x86 тоже можно без оси, и прогу из флеши вместо биоса загружать biggrin.gif . Дело в том, что мы то не знаем что нужно аФФтару, и что там у него за средствА, но насколько помню к таким процам есть фирменная оська да и сам компилятор обязательно что-то выдумает. Если нужно "на вчера" - GNU jpeg уже выход smile.gif ...
Цитата(Rst7 @ Apr 8 2009, 21:24) *
Хороший менеджер кучи, не тормозящий сильно процессы в RTOS и при этом не требующий большого перерасхода озу на заранее заготовленные пулы и являющийся достаточно универсальным (идеал - malloc без указания кучи) - мало того, что нетривиален, так еще и нерешаемый в общем виде. Все равно содержит набор костылей sad.gif

...не спорю. smile.gif


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
_4afc_
сообщение Apr 9 2009, 09:28
Сообщение #12


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

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



Цитата(Rst7 @ Apr 8 2009, 11:55) *
Ну цвет туда вкрутить не долго. А выбросить передачу заголовков - так вообще пыль для моряка smile.gif


Я не про передачу заголовков. А о подборе коэффициентов под картинку так, чтоб независимо от сцены JFIF был всегда одной длины.
Если на AVR это нагрузка на процессор, то на TI или Blackfin - нет.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Apr 9 2009, 09:33
Сообщение #13


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

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



Цитата
А о подборе коэффициентов под картинку так, чтоб независимо от сцены JFIF был всегда одной длины.


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

Цитата
Если на AVR это нагрузка на процессор


Я тут AVR не упоминал вообще. Не надо пугать народ smile.gif


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


Местный
***

Группа: Свой
Сообщений: 467
Регистрация: 7-06-06
Пользователь №: 17 829



Цитата(Rst7 @ Apr 8 2009, 10:31) *
На входе - массив x на y, содержащий яркость в виде "байт на точку". На выходе поток, соответствующий стандартному JPEG.


С опозданием, но всем спасибо за предоставленную информацию!

Сергей.
Go to the top of the page
 
+Quote Post
_4afc_
сообщение Apr 10 2009, 08:43
Сообщение #15


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

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



Цитата(Rst7 @ Apr 9 2009, 12:33) *
Ну для этого достаточно 2 раза зажать. Первый раз - для ориентировки, второй - боевой. Хотя, если бы мне надо было обеспечить в среднем одинаковый поток, я бы делал не так - я бы от размера предыдущих кадров крутил бы уровень компрессии.


Тогда надо делать более мелкий шаг уровня компрессии. Когда сидишь между 1 и 2 уровнем, то получатся кадры, то по Х байт, то по 2Х байт приблизительно. Соответственно визуально очень сильная разница в качестве между соседними кадрами.

Если посмотреть на реализацию JPEG2000 c Wavelet, то там арифметик упаковывает с точностью до байта.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Apr 10 2009, 09:01
Сообщение #16


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

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



Цитата
Тогда надо делать более мелкий шаг уровня компрессии.


Если Вы про мой кодер, то достаточно заменить целочисленное деление
Код
    UREG q=JHEADER_Q[zi]/quality;

на, например, деление на fixed_point 8.8 вот таким способом
Код
    UREG q=(JHEADER_Q[zi]<<8)/quality;


В результате будет не 1,2,3, а 0x100...0x200...0x300 с промежуточными значениями.


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


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



Не просветите?
Сделал преобразование в RGB таким образом.
Y=Y+128;
Остальные компоненты без изменений.
Далее умножаю, складываю и отнимаю стандартно.
После чего проверяю на диапазон (0-255) и вывожу на экран.
Все воспроизводитсязамечательно. Цвета на моем экране совпадают с оригиналом.

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

При горизонтальной субпикселизации наблюдаю у левой границы квадарата черную полоску (в 7-8 пикселах от левой границы), а справой стороны - синиюю полоску - в 7-8 пикселах ОТ границы квадрата (там где ничего не должно быть.

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

Предполагаю, что неправильно преобразую YCR в RGB.


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
DpInRock
сообщение Apr 25 2009, 10:34
Сообщение #18


Гуру
******

Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515



Прикрепленное изображение

Типа, снято фотиком с экрана. Все, что имеет странный цвет - чисто синее. Либо белое.
Полоса справа лежит вне реального синего квадрата. Чисто синего.
На месте этой полосы в реальном изображении пипеткой корела обнаруживается некая полоска низкой яркости R=2, G=0, B=9 - такого порядка .

Сообщение отредактировал DpInRock - Apr 25 2009, 10:38


--------------------
On the road again (Canned Heat)
Go to the top of the page
 
+Quote Post
owl
сообщение Apr 28 2009, 08:52
Сообщение #19


Частый гость
**

Группа: Свой
Сообщений: 90
Регистрация: 7-08-06
Из: Смоленск
Пользователь №: 19 370



Цитата(Политех @ Apr 4 2009, 22:33) *
Здравствуйте!

Подскажите где можно взять примеры реализации JPEG(МJPEG) для процессора TMS320DM643... , также примеры на С для других процессоров. Так же нужна информация по оптимизации алгоритма JPEG.

За любую информацию буду благодaрен.

Сергей.


Занимался JPEG кодером и энкодером на асме проца 64х3х.
25 кадров в секунду для одновременного кодирования и декодирования на 640х480 получалось стабильно.
Исходником поделиться не смогу слишком много времени и сил было в это вложено, советом всегда пожалуйста.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 5th August 2025 - 00:14
Рейтинг@Mail.ru


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