web-dev-qa-db-ja.com

グレースケーリングによるビデオサイズの縮小

ビデオをグレースケールに変換すると、ピクセル内の3色(RGB)すべてに(3つの異なる番号ではなく)同じ番号が割り当てられます。したがって、理論的には、サイズをほぼ66%縮小する必要があります。いくつかのメタデータとサウンドデータがあることは知っていますが、最大のデータはピクセルに関するものです。

出力サイズ4.17MBのHandbrakeでビデオを変換し、[グレースケール]チェックボックスをオンにする以外は同じ設定で変換すると、出力ファイルサイズは3.88MBになりました。なぜ7%のサイズ縮小しかないのですか?別のビデオの場合:3.08MBおよび2.97MB(ほぼ6%)。

「CorelVideoStudio」の「モノクロ」フィルターを使用してグレースケーリングも行ったところ、同様の結果が得られました(8.70 MB&8.32 MB-> 5%)。より良い結果を得るためのアルゴリズムや何かはありますか?

1
living being

問題は、保存している基になる形式が24ビット/ピクセルの色以外を理解していないことです。基になるコンテナまたはフォーマットが8ビットグレースケール(または一般に8ビットフォーマット)用に特別に用意されている場合は、期待どおりにサイズが縮小されます。

例として、画像を.BMPまたはPNGとして保存できます。通常、出力のビット深度を設定するオプションがあり(少なくともPaint.NETを使用している場合はそうします)、グレースケールに変換すると効果があります。

私が正しく覚えていれば、JPEGはより低いビット深度を厳密にサポートしていません。99%の使用がカラーソースであるため、最新のビデオエンコーダーのほとんどがサポートしているとしたら驚きます。

2
Mokubai