タグ付けされた質問 「compression」


2
JPEGエンコードではガンマを考慮する必要がありますか?
画像がJPEGを使用してエンコードされる場合、RGBピクセルは最初にYUVにエンコードされ、次にUVチャンネルがダウンサンプリングされます。実際にDCTを実行して係数をエンコードする前に、JPEG は Yチャネルをガンマ補正しません。これは正しいです?表示結果に最も影響を与えるDCT係数を決定すべきではないでしょうか?

1
JPEGを作成する場合、アーチファクトの発生を最小限に抑えるにはどうすればよいですか?
JPEG画像を作成するときにデジタルアーティファクトにつながると思われる主な要因は、エイリアスと圧縮の2つです。 例: 文字の入ったPNGをJPEGに変換したり、写真の上にベクター画像を配置したりすると、エッジがピクセル化されます。アンチエイリアスは一般に、それらの周囲に一種のブラーを作成しますが、画像が非可逆圧縮されている場合、詳細の一部も失われるため、ブラーとピクセル化が目立たなくなる場合があります。 これは正しいことですか?つまり、ロスレス圧縮は非常に詳細な画像を生成するため、エイリアシングから生じるアーティファクトがより顕著になるため、適切な圧縮を使用してバランスを見つけることができますが、画質は低下します。 編集する このJPEGをmspaint(3.46KB)に保存しました。 これが最大の圧縮(最低品質、0.5KB)の同じJPEGです。 これが50%圧縮の同じJPEGです(サイズの違い、1.29KBに注意してください)。 同じ50%圧縮ですが、「プログレッシブJPG」として保存され、元のEXIFおよびXMPデータを保持し、「元のJPG品質で保存しようとしました」(灰色のピクセルがない、2.96KBであることがわかります)。 そして最後に、クロマサブサンプリングを無効にした以前と同じ(同じファイルサイズ、2.96KB):

1
追加のコピーなしで、計算シェーダーを使用して圧縮テクスチャに書き込む
コンピューティングシェーダーを使用してOpenGLテクスチャを生成する最善の方法を理解しようとしています。これまでのところ、ピクセルバッファーオブジェクトは非ブロッキングCPU-> GPU転送に適していること、およびコンピューティングシェーダーは、どのようにバインドされているかに関係なく、バッファーを読み書きできることを確認しました。理想的には、できるだけ多くのコピーを避けたいと思います。つまり、GPUにバッファーを割り当て、圧縮されたテクスチャデータをGPUに書き込み、そのバッファーをシェーダーのテクスチャオブジェクトとして使用します。 現在、私のコードは次のようになります。 GLuint buffer; glGenBuffers(1, &buffer); glBindBuffer(GL_SHADER_STORAGE_BUFFER, buffer); glBufferStorage(GL_SHADER_STORAGE_BUFFER, tex_size_in_bytes, 0, 0); glBindBuffer(GL_SHADER_STORAGE_BUFFER, 0); // Bind buffer to resource in compute shader // execute compute shader glBindBuffer(GL_PIXEL_UNPACK_BUFFER, buffer); glCompressedTexImage2D(GL_TEXTURE_2D, 0, fmt, w, h, 0, tex_size_in_bytes, 0); これは正しいです?同期の保証についてもどこかで読みました。バッファオブジェクトからコピーする前に、コンピュートシェーダーが実行を完了させるために何を追加する必要がありますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.