| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| JPEG компресия http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=1887 |
Страница 1 от 2 |
| Автор: | TheWizard [ Пет Фев 24, 2006 9:18 pm ] |
| Заглавие: | JPEG компресия |
Някой да срещал интересни сорс решения, но не за "бавен ембедед Линукс"... |
|
| Автор: | ypauns [ Съб Фев 25, 2006 10:31 pm ] |
| Заглавие: | |
Основния open source за JPEG, който съм виждал е на Independent JPEG Group's software. Главния изчислителен ресурс при JPEG e за DCT-алгоритъма. Навремето бях свалял разни статии, където правеха DCT, без умножение а само с разни ротации и прочее и увеличават бързодейсвието,но трябва да се разровя да ги намеря. Всъщност незнам точно какво имаш предвид по интересни? |
|
| Автор: | TheWizard [ Съб Фев 25, 2006 10:39 pm ] |
| Заглавие: | |
е точно това търся :) |
|
| Автор: | ypauns [ Съб Фев 25, 2006 11:41 pm ] |
| Заглавие: | |
ОК. Ще ми трябва малко време да ги изровя. Мисля че в тях обаче няма готов сорс, имаше доста математика |
|
| Автор: | TheWizard [ Съб Фев 25, 2006 11:57 pm ] |
| Заглавие: | |
на 16 битова РИСК платформа искам да тествам на 40 мипса (Инфинеон XC167) гоня над 4 фрейма в секунда В монента не пиша нищо по въпроса, а събирам инфо относно JPEG-a |
|
| Автор: | t_i_t_o [ Нед Фев 26, 2006 9:13 am ] |
| Заглавие: | |
Смъкни си eCos, там имаше някакава JPEG релизация май, и си е готов код. |
|
| Автор: | ypauns [ Нед Фев 26, 2006 12:37 pm ] |
| Заглавие: | |
На 40MIPS-a, наистина ще ти трябва добра оптимизация. В документите дето изрових има пример за ARM на 400MHz, който постига 7 кадъра в секунда при 512x512-24bits/pixel, тествете са правени по Linux. По повечето фотоапарати и web-камерки ползват хардуерни кодеци. Всъщност гледал съм при евтините web-камери, ползват чип който постига 15f/s при 320x240, само че изхода е USB-stream. Иначе събрах статтиите -архива е 6MB, ако те интересуват може да ти ги пратя. Има и разни примерни кодове вътре. |
|
| Автор: | TheWizard [ Нед Фев 26, 2006 1:35 pm ] |
| Заглавие: | |
Най-отгоре съм написал без Linux решения... Незнам, имам наблюдения над китайски изработки на 54 мипса (х86) и постигат 8 фрейма/сек 640/480 без хардуерни кодеци. |
|
| Автор: | ypauns [ Нед Фев 26, 2006 2:11 pm ] |
| Заглавие: | |
Всъщност прав си за Linux-a, ония пичове с ARM-a сигурно са взели готвия отворен код и са го компилирали без особени оптимизации. Щом китайците имат решения може и да стане, но сигурно ще иска сериозно ръчкане за да се изтискат максимални резултати от процесора. Между другото метода за DCT, без умножение за който писах по-горе се нарича binDCT, казват че процесори които не могат да умножават бързо оказва сериозно подобрение върху бързодействието. |
|
| Автор: | TheWizard [ Нед Фев 26, 2006 2:23 pm ] |
| Заглавие: | |
има нещо глило :)) ....... оптимизацията за 1Д май се свежда до: a is "addition" s is "substraction" m is "multiply" aassaassasaasaamasmmmmasasaasasaas по 8 пъти малиии бая мислене ще пада...... ще събера повече инфо и ще пробвам :) |
|
| Автор: | TheWizard [ Пон Фев 27, 2006 12:43 am ] |
| Заглавие: | |
ypauns тествах 2 метода за DCT 2D: Embeded: със integer - addition, substraction и multiply И Linux: float - addition, substraction, multiply, cos и sqrt относителната разликата е приблизително 1 мили към 4 мразим Linux :)) |
|
| Автор: | ypauns [ Пон Фев 27, 2006 4:06 pm ] |
| Заглавие: | |
Незнам дали е виновен Linux-a, но по принцип с "float" аритметика е по-бавно. Виж какви резултати дават тук в една статия за различните методи. Платформата е PIII 550MHz, ОС твоя "любим" Линукс: EXECUTING TIMES OF DIFFERENT DCT’s FOR A 8x8 IMAGE BLOCK IJG Floating DCT - 119.05us IJG Integer DCT - 4.10us IJG Fast Int. - 2.39us binDCT-C1 - 2.45us binDCT-C4 - 2.09us binDCT-C7 - 2.06us IJG - Independent JPEG group - open source |
|
| Автор: | TheWizard [ Пон Фев 27, 2006 6:21 pm ] |
| Заглавие: | |
да, намерих инфото за binDCT :) Test: dsPIC 40 mipsa block pixel 8x8 full float = 4 sec DCT = 360 uSec binDCT = 118 uSec експеримента продължава :) |
|
| Автор: | ypauns [ Пон Фев 27, 2006 11:51 pm ] |
| Заглавие: | |
Значи при 640x480 -имаме 4800 блкочета 8x8 x 119us =0.57 sec и то само за Y-компонета и без другите кодирания. Очевидно на dsPIC, ще му трябват секунди за да направи цялата компресия. |
|
| Автор: | TheWizard [ Вто Фев 28, 2006 12:40 am ] |
| Заглавие: | |
има нещо такова но не съм оптимизирал процеса за dsPIC аритметиката на теста е инт32 а пика е 16 битов, а и гледам че има бая шифтове дето бават, може да ги преправя на умножение а и не гледай че си играя с пика - просто ползвам идето за симулация... не съм почнал поект - спортна злоба :) |
|
| Страница 1 от 2 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|