Простой в использовании конвертер JPEG в Bitmap для Delphi 6, который эффективен при использовании памяти? - PullRequest
1 голос
/ 26 декабря 2011

Существует ли простой в использовании конвертер JPEG (исходный код) для Delphi 6, который преобразует кадр JPEG в буфере памяти в совместимое с DirectShow растровое изображение быстро и без постоянного перераспределения памяти?Я пытаюсь избежать стандартного модуля JPEG в сочетании с TBitmap, потому что он выделяет новое растровое изображение при каждом преобразовании, а также имеет некоторые другие операции инициализации / разрыва, связанные с каждой операцией.

Я буду получать кадры JPEG от RTP-сервера, который мне нужно преобразовать в растровые изображения и выдать через вызов FillBuffer () моего фильтра DirectShow.Каждый кадр будет иметь одинаковый размер и формат, поскольку они передаются с устройства захвата видео с использованием предустановленных настроек.Поэтому, если бы я мог выделить растровое изображение только один раз, а затем преобразовать каждый входящий кадр JPEG в существующую область памяти растрового изображения, я мог бы избежать перераспределения фрагмента памяти 25 раз в секунду, а издержки любых других объектов вспомогательных данных Delphi связаныв процессе преобразования, используемом в модуле JPEG вместе с TBitmap.

Это не должно быть молниеносно с точки зрения использования процессора.Просто достаточно быстро, чтобы обработать 640 x 480 JPEG конвертацию кадра менее чем за 1/25 секунды (1/15 для безопасности).

1 Ответ

1 голос
/ 26 декабря 2011

Не уверен насчет использования памяти, но очень маленький JPEG-декодер с источником, который вы можете легко изменить самостоятельно, это NanoJPEG: http://keyj.emphy.de/nanojpeg/

Конвертация Delphi здесь: http://www.emix8.org/static.php?page=nanoJpeg

...