MPEG-1の圧縮-生産macroblocks
-
13-09-2019 - |
質問
私ための基本的な問題MPEG-1の圧縮。いを演出していmacroblocks内のイメージです。A macroblock成16×16ピクセルで4×8×8では輝度、1×8×8はCb-1×8×8である。MATLABを作っていきたい細胞のマトリクスを含む。ご意見募集
解決
いるように聞こえるように最善の方法を収集するための様々な 8-by-8 行列を単一の変数となります。ができる方法な(最初のオプションのように選択の場合):
列のデータを3-D matrix:
で利用できます 猫 機能をスタック行列と同じサイズに沿って定の寸法となります。例えば、お4 8-by-8 輝度行列を変数
L1
,L2
,L3
, は、L4
, は、下記まで連結し 8-by-8-by-4 マトリックス:luminance = cat(3,L1,L2,L3,L4);
このままに、追加の
Cb
やCr
行列を作る 8-by-8-by-6 マトリックス:macroBlock = cat(3,L1,L2,L3,L4,Cb,Cr); %# OR... macroBlock = cat(3,luminance,Cb,Cr); %# Using luminance variable from above
そのindex
macroBlock
次のようになっていますへのアクセスな 8-by-8 行列必要なもの:L2 = macroBlock(:,:,2); %# Get the second luminance matrix Cb = macroBlock(:,:,5); %# Get the Cb matrix
データの保管細胞配列:
すべての行列と同じサイズ、上記の連結したオプションであろう。しかし、別のオプションを中心としなければならないときに便利でしたいデータを格納する小規模なものも含めると、タイプ、寸法)を利用 細胞配列.以下の作成 1-by-6 細胞配列の行列:
macroBlock = {L1 L2 L3 L4 Cb Cr};
そのindex
macroBlock
次のようになっていますへのアクセスな 8-by-8 行列必要なもの:L2 = macroBlock{2}; %# Get the second luminance matrix Cb = macroBlock{5}; %# Get the Cb matrix
保存データ構造
別のオプションを使用 構造 お客様の 8-by-8 行列.構造のできるデータにアクセス フィールド名 とを覚えている指数値です。こちらの方が初期化構造:
macroBlock = struct('L1',L1,'L2',L2,'L3',L3,'L4',L4,'Cb',Cb,'Cr',Cr); %# OR... macroBlock = struct(); macroBlock.L1 = L1; macroBlock.L2 = L2; macroBlock.L3 = L3; macroBlock.L4 = L4; macroBlock.Cb = Cb; macroBlock.Cr = Cr;
のいずれかの構文上記の体制を構築したフィールド名
'L1'
,'L2'
,'L3'
,'L4'
,'Cb'
, は、'Cr'
.そのindexmacroBlock
次のようになっていますへのアクセスな 8-by-8 行列必要なもの:L2 = macroBlock.L2; %# Get the second luminance matrix Cb = macroBlock.Cb; %# Get the Cb matrix
他のヒント
私はあなたが必要なものを取得できませんでした。 これらのブロックにどのパーティション画像コード
何を作成する必要はM、Nの画像とIのn番目及びm番目8×8ブロックを表し、jは内の特定のピクセルを指す行列I(I、J、M、N)でありますブロックます。