Blackfin.2D DCT / IDCT (сжатие изображения) с помощью BF537 EZ-KIT, КАК ЗАПИСАТЬ В ФАЙЛ (на диске) восстановленное изображение (необработанные пиксельные данные) из памяти BF537? - PullRequest
0 голосов
/ 08 января 2012

Я попробовал этот эксперимент с цифровой обработкой изображений - 2D DCT / IDCT ( сжатие изображений ) с BF537 EZ-KIT , реализованным AnalogDevices .

Чтобы упомянуть «резюме»:

  • Я создаю проект;

  • Загрузка черно-белого изображения (* .bmp) с дискав память Blackfin при 0x8000 с помощью средства просмотра изображений;

  • Выполнить проект;

  • Нажать кнопку (от ПО 10 до 13) на плате BlackFin(BF537) и выберите уровень сжатия;

  • После расчета таблицы квантования и DCT-> Квантование-> Деквантование-> Обратное DCT .. приводит к восстановленному изображению в некоторой точке адресации вBF memory (0x80000);

  • С Image Viewer (из VisualDsp) я загружаю это восстановленное изображение в градациях серого из памяти BF, и все в порядке, и различия видны;

! Упоминание , что когда я загружаю изображение в BF-память из disk с Image Viewer или из памяти BF с Image Viewer, исходный формат Необработанные данные пикселей .

НО все, что я хочу сделать в дополнение к этому проекту иНЕ ЗНАЙТЕ, КАК: - взять ( создать / записать ) [на C языке], что восстановленное изображение из памяти Blackfin на диск (запись кода или что-то в этом роде;НЕ с функцией просмотра изображений - Сохранить изображение как ...).

Я попытался fwrite , чтобы восстановить буфер, расположенный в памяти в 0x80000, в файл * .bmp, но кажется, что когдая открываю его и получаю ошибки вроде: "не могу прочитать заголовок файла; неизвестный формат файла или файл не найден ...";

//my code for saving/creating/writing
//    that reconstructed image = Raw pixel data from Blackfin memory  

    unsigned char *jpeg_buff;
    int jpeg_buff_size;
    jpeg_buff=0x80000;

    jpeg_buff_size = 308280;     //jpeg_buff_size = 480*640*1;
    FILE *jpegfp = fopen ("myimg_reconstr80000.bmp", "wb");
    fwrite (jpeg_buff, 1, jpeg_buff_size, jpegfp);
    fclose (jpegfp);

Пожалуйста, кто-нибудь знает, как создать / записать / сохранить * .bmp изображение из этих необработанных пиксельных данных, находящихся в памяти Blackfin на C языке?

Заранее спасибо;Любые решения, предложения будут оценены!

Ниже приведена ссылка с архивом всего проекта Visual Dsp.(я использую VisualDsp ++ 5.0) https://docs.google.com/open?id=0B4IUN70RC09nMjRjNzlhNTctMTI3OS00ZmI4LWI4NzAtNWRkM2MyMDgyMjZm

* извините за мои ошибки в английском

1 Ответ

1 голос
/ 08 января 2012

Перед всеми данными пикселей добавьте информацию для заголовка растрового изображения.

http://en.wikipedia.org/wiki/BMP_file_format#Bitmap_file_header

Если вы записываете эти данные заголовка перед данными изображения, это должен быть действительный файл растрового изображения.

...