2012-05-10 15 views
3

JPEG画像を保存して、圧縮された形式のすべてのピクセルをエンコードするために使用するビットの総数を指定できます。例えば、私が1024 x 1024のサイズの4チャンネル画像を持っている場合、圧縮なしでビットを符号化するには4 * 8 * 1024 * 1024ビットが必要です。圧縮を使用すると、大幅に少ないビットが使用される可能性があります。圧縮された形式のビット数を指定します。圧縮:Java/Scalaで指定されたビットレートでJPEG画像を保存する

反復解は、JPEG圧縮品質パラメータのバイナリ検索です。私は、JavaやScalaの直接的なソリューションを期待しています。

+6

完全な圧縮が実際に試されるまで、結果がどのようになるかは分かりません(損失圧縮の性質など)。おおまかに見積もることはできますが、「xバイト大きくする」という呼び出しはありません。バイナリ検索は、あなたがしようとしているほど良いものです。 –

+0

@Chrisそれも私の意見です。あなたのコメントを答えに変えなければならないと思います。 – paradigmatic

+0

@paradigmatic私の原則として、私は実際に質問に答えていない限り、私は答えとして何かを投稿しません。この場合、OPはバイナリ検索よりも優れたものが望ましいと明示していたので、私は本当に何かに答えているとは思わない。 –

答えて

0

@Chrisによると、JPEGのショートカットはありません。しかし、 - これは長いことですが、JPEGの代わりにJPEG2000を使用する場合は、圧縮率を直接指定することができます。このJJ2000 libraryEncoderクラスを見ると、エンコードされた画像のビットレートを修正する方法がわかります。

残念ながら、JPEG2000のサポートは、JPEGほど広く普及していないため、これはあまり役に立ちません。

関連する問題