0

Raw 画像バッファを jpg 画像バッファに変換する必要があります。

現時点では、次の方法でこの操作を行います。

QImage tmpImage 
         = QImage(rawImgBuffer, img_width, img_height, image.format ); //image.format=RGB888 
QBuffer bufferJpeg(&ba);
bufferJpeg.open(QIODevice::WriteOnly);
tmpImage.save(&bufferJpeg, "JPG");
QByteArray finalJpgBuffer = bufferJpeg.data();

正常に動作しますが、CPU 負荷が高すぎます (毎秒この操作を行うスレッドが多数あります)。Qt のドキュメントを読んで、この記事を見つけました: Hardware Acceleration &amped Embedded Platforms。私が理解していれば、QPainter クラスを使用して gpu 操作を実行できます...このクラスを使用してこの変換 (raw から jpg へ) を行うことは可能ですか? (またはハードウェアアクセラレーション(gpu)を使用する別の同様のQtクラス)!!

私のアプリケーションは、プラットフォームに依存しない必要があります。

全然サンクス。

4

2 に答える 2

2

QImageがGPUを使用してjpegを生成することはないと思います。
通常、GPUからデータを戻す転送時間が支配的であるため、これはおそらく役に立ちません(非常に限られたCPUを除く)。表示にハードウェアアクセラレーションを使用する理由は、結果がすでにGPUに表示できる状態になっているためです。

于 2011-10-05T14:39:35.310 に答える
0

私の知る限り、画像形式 (この場合は jpeg) のデコードは QPainter では処理されません。プラグインを使用して Qt によって制御される libjpeg を使用して Qt によって実行されます。プラグインは qt_source_tree/src/plugins/imageformats/jpeg にあります。これは、システムで利用可能なライブラリ (Linux では libjpeg.so) を使用するだけです。ハードウェア アクセラレーションを使用するかどうかは、システム次第です。

特定のライブラリを使用するためにハードウェアのデコードが必要なケースがありました。その場合、それを処理するために特定の Qt プラグインを作成する必要がありました。

于 2011-10-05T15:22:46.173 に答える