質問: ボードカメラで撮像した連続画像を、1枚1枚JPEG圧縮する場合の合計と、1つのMPEG画像に圧縮する場合、どちらが小さなファイルサイズになるか見当をつけたいと考えています。 どんな画像にもよるかと思いますので、VGA 640 x 480 pixel, 8 bit color, 30 fps, 30秒間 で、カメラは固定して(背景はほとんど動かない)画面サイズの1/4くらいの大きさの物体が、右から左へ移動する、とした場合、各々どのくらいのファイルサイズになるか、だいたいの見当はつきませんでしょうか?
回答: JPEGは静止画像向け、MPEGは動画像向けのデータ圧縮アルゴリズム("コーデック"とも呼ばれます)であり、それぞれ目的が異なります。質問への直接的な答えとしては、「MPEGを使ったほうがデータサイズが小さくなり」ます。 動画像の1フレーム毎にJPEG圧縮を適用したものは、俗にMotion JPEGと呼ばれます。またJPEGは策定時期が古いコーデックであり、その圧縮性能はあまり高くありません。 MPEGという単語は指す対象がとても広いのですが、この質問の回答としては下記の動画像コーデックが候補となりえます。いずれも前後のフレームが似ていることを利用して、Motion JPEGよりも小さなデータに圧縮できます。また下のものほど新しいコーデックであり、圧縮性能が高くなります(が未対応のアプリケーションも多いです)。 * MPEG-1 Video Codec * MPEG-2 Video Codec * MPEG-4 Visual Codec * MPEG-4 Advanced Video Codec (H.264/AVC) * MPEG-H High Efficiency Video Codec (H.265/HEVC) > > どんな画像にもよるかと思いますので、(中略)、だいたいの見当はつきませんでしょうか? > > > 2種類の答えがあります。 1. 動画像全体を通して安定した画像品質としたい場合、圧縮後のデータサイズを予想するのは非常に困難です。一般論としては、絵柄が単純で動きがあまりない映像ほど小さくなります。 2. 動画像エンコーダ(=圧縮処理を行うアプリケーション)では、「希望の出力データサイズを最初に指定する」モードが存在します。この機能を使えば、ほぼ想定通りのサイズを得ることができます。