ビデオをフレームに分割し、画像ステガノグラフィーをフレームに適用して、エンコードされたフレームを生成するプロジェクトを行っています。次に、エンコードされたフレームが再びビデオに変換されます。すべての方法が正常に適用されますが、唯一の問題は、元のビデオよりも非常に大きいエンコードされたビデオを取得することです。movie2avi
関数を使用してビデオを生成しています。
元のビデオに比べてそれほど大きくないビデオを生成する方法を誰かが提案できますか?
ビデオをフレームに分割し、画像ステガノグラフィーをフレームに適用して、エンコードされたフレームを生成するプロジェクトを行っています。次に、エンコードされたフレームが再びビデオに変換されます。すべての方法が正常に適用されますが、唯一の問題は、元のビデオよりも非常に大きいエンコードされたビデオを取得することです。movie2avi
関数を使用してビデオを生成しています。
元のビデオに比べてそれほど大きくないビデオを生成する方法を誰かが提案できますか?
まず、 を使用している場合movie2avi
、非常に貧弱なコーデック (圧縮形式) の選択肢が限られています。十分に新しいバージョンの Matlab (R2009b+ だと思います) を使用している場合は、VideoWriter
代わりにクラスを使用する必要があります。コーデックの選択はまだあまり良くありませんが、品質ははるかに優れています。使用しているコーデック (または OS) を示していないため、代替案をお勧めできません。
第 2 に、理想的な状況であっても、追加の圧縮を適用しない限り、動画ファイルは実行内容に応じて大きくなることが予想されます。ステガノグラフィ コンテンツを追加することは、ノイズを追加することに似ているため、データの圧縮が難しくなります。どちらでもmovie2avi
、VideoWriter
コーデックに応じて圧縮レベルまたは品質を調整できます。また、Linux および OS X のデフォルトのmovie2avi
コーデックは圧縮を使用しないため、変更しないとファイルが巨大になります。
ニーズを満たさない場合VideoWriter
(またはお使いのバージョンにない場合) はQTWriter
、GitHub で私のクラスを試して、Matlab で QuickTime ムービーをエクスポートできるようにすることができます。のようVideoWriter
に機能しますが、いくつかの画像ベースのコーデックを使用して高品質の QuickTime ムービーを作成できます。フレーム間圧縮は使用されず、PNG および TIFF 形式はロスレス (これはステガノグラフィ アプリケーションにとって重要な場合があります) でありながら、Matlab でよく生成されるようなコンテンツを非常に効率的にエンコードします。一般的な画像に適した JPEG 形式もあります。その後、必要に応じて、QuickTime ファイルを他の形式に変換できます。ここで詳細を読んで例を確認し、単一の M ファイルをここからダウンロードできます。
これは、元のビデオで何を隠そうとしているかに完全に依存します。元のビデオは、フレーム間の最小変更やその他のさまざまなことを利用できる圧縮コーデックを使用していることに注意してください。これを行うと、間違いなくファイルが大きくなります。したがって、何をしようとしているのか、またそれをどのようにエンコードしようとしているのかに注意する必要があります。