Как раскодировать JPEG по точкам

Тема в разделе "WASM.ASSEMBLER", создана пользователем djande, 5 янв 2011.

  1. djande

    djande New Member

    Публикаций:
    0
    Регистрация:
    12 ноя 2010
    Сообщения:
    17
    Доброго времени суток! Есть файл в формате *.JPG, его нужно раскодировать(расжать) по точкам. Затем эти точки нужно математически вывести в DIB-секцию, при этом не использовать API-функции Windows. То есть нужно расчитать. Получается, что как-бы мы получаем на выходе .BMP файл, снимая компрессию. В моей программе на masm32 есть свой формат представления графических файлов, с форматом *.BMP я разобрался, я его по точкам расчитываю и делаю дальше уже, что угодно, то же самое нужно и с *.JPG. Для того, чтобы преобразовать формат *.JPG в мой формат, мне нужно знать, как этот *.JPG устроен, то есть его алгоритм. Помогите пожалуйста, в интернете найти не смог!
     
  2. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    djande
    Посмотри как это сделано в колибре. Или библиотеке от интел FastJpeg. Или в любом другом проекте с открытыми исходными кодами. Описание формата файла есть на www.w3.org и еще где-то попадалось. Вообще полно. А да как это не найти в интернете это надо умудриться.

    А да формат jpeg достаточно громоздкий чтобы его не разбирать самому, лучше взять готовую библиотеку.
     
  3. djande

    djande New Member

    Публикаций:
    0
    Регистрация:
    12 ноя 2010
    Сообщения:
    17
    Pavia, мне нужен исходный код библиотеки, где его можно взять?
     
  4. djande

    djande New Member

    Публикаций:
    0
    Регистрация:
    12 ноя 2010
    Сообщения:
    17
    Pavia, а кстати, а что такое "колибра"? И есть ли исходник к библиотеке FastJpeg?
     
  5. shm

    shm New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2010
    Сообщения:
    93
    Я тебе на исходниках отписал.
     
  6. Rustem

    Rustem New Member

    Публикаций:
    0
    Регистрация:
    8 мар 2004
    Сообщения:
    429
    Адрес:
    Russia
    http://habrahabr.ru/blogs/algorithm/102521/#habracut
     
  7. shm

    shm New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2010
    Сообщения:
    93
    Rustem, это статья носит только ознакомительный характер, таких много в инете. Никакого серьезного декодера по ним написать не получиться.
     
  8. S_Alex

    S_Alex Alex

    Публикаций:
    0
    Регистрация:
    27 авг 2004
    Сообщения:
    561
    Адрес:
    Ukraine
    Вот исходники выдрал с "Колибри 6.0".
     
  9. diamond

    diamond New Member

    Публикаций:
    0
    Регистрация:
    21 май 2004
    Сообщения:
    507
    Адрес:
    Russia
    S_Alex
    Оно устарело и поддерживает далеко не всё - например, в принципе нет обработки progressive-изображений. Актуальный декодер - http://kolibrios.org/repos/programs/develop/libraries/libs-dev/libimg/jpeg/jpeg.asm .
     
  10. djande

    djande New Member

    Публикаций:
    0
    Регистрация:
    12 ноя 2010
    Сообщения:
    17
    diamond, а как его использовать на примере, а то там много функций, я не понял какую именно вызывать.
     
  11. diamond

    diamond New Member

    Публикаций:
    0
    Регистрация:
    21 май 2004
    Сообщения:
    507
    Адрес:
    Russia
    djande
    Там всего две пригодных для вызова извне функции, img.is.jpg (stdcall с двумя аргументами, указатель на данные и длина данных), определяющая, похожи ли данные на jpeg-изображение, и img.decode.jpg (stdcall с тремя аргументами, указатель на данные, длина данных, третий используется в других декодерах и игнорируется jpeg). Другой вопрос, что это только сам декодер, являющийся частью библиотеки (сама библиотека, соответственно, располагается выше по дереву - http://kolibrios.org/repos/programs/develop/libraries/libs-dev/libimg/), так что отдельно "как есть" jpeg.asm вообще не скомпилируется. Пример использования всей библиотеки есть в параллельной ветке дерева исходников - http://kolibrios.org/repos/programs/develop/libraries/libs-dev/.test/002/test002.asm.
     
  12. djande

    djande New Member

    Публикаций:
    0
    Регистрация:
    12 ноя 2010
    Сообщения:
    17
    а не подскажете, как с помощью FASM компилировать test002.asm ? FASM у меня есть, версии 1.68
     
  13. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Не понимаю зачем всё это. Взять libjpeg и всё.
     
  14. djande

    djande New Member

    Публикаций:
    0
    Регистрация:
    12 ноя 2010
    Сообщения:
    17
    Booster, а где этот libjpeg скачать? я не против, если к нему можно найти исходники
     
  15. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    djande
    А как же гугел?

    Я тоже не против. )
     
  16. djande

    djande New Member

    Публикаций:
    0
    Регистрация:
    12 ноя 2010
    Сообщения:
    17
    Booster, ну хорошо, а где можно скачать готовую библиотеку? А Вы случайно не знаете, нет ли программ по переводу программ из Visual Basic 6 в MASM32?
     
  17. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Гуглить не умеете? Надо научиться, а то так далеко не уедешь.

    Незнаю. ^)
     
  18. djande

    djande New Member

    Публикаций:
    0
    Регистрация:
    12 ноя 2010
    Сообщения:
    17
    Ладно, буду гуглить, спасибо всем огромное
     
  19. Exception13

    Exception13 New Member

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    66
    Адрес:
    Владимир
    Наиболее внятное объяснение как работает JPEG можно получить, изучив очень замечательное пособие от Дж. Миано: "Форматы И Алгоритмы Сжатия Изображений В Действии" http://community.livejournal.com/fotobooks/285330.html. В свое время страдал над декодированием JPEG'a, что то даже получалось. Но, это так, для общего образования. А если для дела, то это Вам надо сходить сюды: http://www.ijg.org/
    там есть готовая к употреблению либина.
     
  20. sergodanilov

    sergodanilov чай кофе потанцуем

    Публикаций:
    0
    Регистрация:
    25 янв 2011
    Сообщения:
    1
    Адрес:
    Чай-на-таун
    я не понял работает или нет?