MATLAB で単純な jpeg デコーダーを設計しようとしています。.jpg 画像を取得し、その画像のヘッダーをデコードします。次に、SOS ヘッダーの後のスキャン データをデコードし、64 ピクセルのブロックを作成します。
(スキャンデータをデコードする順序: ハフマンデコード、逆量子化、逆ジグザグ、逆 DCT、レベルシフト、クランプ、Ycbcr から RGB への変換)
上記のデコード プロセスは正しいと思います。64 ピクセルのブロックごとに実行し、ブロックのサブサンプリング効果も決定しました。今、私はYチャンネルとCbおよびCrチャンネルの構造の下にあります:(CbおよびCrチャンネルの係数2のサブサンプリングがあるとします)
[16*16 ピクセル] , [16*16 ピクセル] , [16*16 ピクセル] , [16*16 ピクセル] , [16*16 ピクセル] ,... ..., [16*16 ピクセル] , [16*16 ピクセル] .
上のブロック配列の長さは imageWidth*imageLength/256 (割り切れると仮定)
今、私の質問は次のとおりです。ブロックの上から画像全体を復元する方法、つまり、デコードされた画像全体を取得するには、ブロックの上でどのように並べ替えて配置する必要がありますか?