メモリバッファ内のJPEGフレームをDirectShow互換のビットマップに素早く変換し、一定のメモリ再割り当てを行わないDelphi 6用の使いやすいJPEGコンバータ(ソースコード)はありますか?私はTBitmapと一緒にデフォルトのJPEGユニットを避けようとしています。なぜなら、すべての変換で新しいビットマップを割り当て、各操作に関連したいくつかの初期化/ティアダウン操作もあるからです。Delphi 6用のJPEGからBitmapへの変換が簡単で、メモリ使用効率が良いですか?
ビットマップに変換し、私のDirectShowフィルタのFillBuffer()呼び出しを行う必要があるRTPサーバーからJPEGフレームを受信します。各フレームは、プリセット設定を使用してビデオキャプチャデバイスからストリーミングされるため、まったく同じサイズとフォーマットになります。したがって、ビットマップを1回だけ割り当ててから、着信JPEGフレームを既存のビットマップメモリ領域に変換できれば、1秒間に25回のメモリチャンクの再割り当てや、デルファイの他の補助データオブジェクトのオーバーヘッドを避けることができますTBitmapと一緒にJPEGユニットで使用される変換プロセスで使用されます。
CPU使用の観点からは、高速である必要はありません。わずか1/25秒(1/15に安全)で640×480のJPEGフレーム変換を処理するのに十分速い。メモリ使用量が、あなたは簡単に自分自身を変更することができ、ソースと非常に小さいJPEGデコーダわからない
「Delphi 7の」ヘッダないででコンテンツ内の「Delphi 6」と同期します。 – menjaraz
コンバータはTGraphicから派生する必要がありますか? – menjaraz
'TOleGraphic'を試してみてください。ストリームからjpegをロードし、ビットマップに転送を割り当てます。 (あるいは多分Qを理解できなかったかもしれません...) – kobik