我正在尝试在 MATLAB 中设计一个简单的 jpeg 解码器。我拍摄了一张 .jpg 图像,然后对该图像的标题进行解码。然后在 SOS 标头后解码扫描数据并创建 64 像素块
(我解码扫描数据的顺序:霍夫曼解码、去量化、去锯齿形、逆 DCT、电平移位、钳位和从 Ycbcr 转换为 RGB。)
我已经认为上面的解码过程是正确的。我对每个 64 像素的块都做了,还确定了块的子采样效果。现在我有以下 Y 通道以及 Cb 和 Cr 通道的结构:(假设我有 Cb 和 Cr 通道的因子 2 的子采样)
[16*16pixels] , [16*16pixels] , [16*16pixels] , [16*16pixels] , [16*16pixels] ,... ..., [16*16pixels] , [16*16pixels] .
上述块数组的长度为 imageWidth*imageLength/256 (假设它可整除)
现在我的问题是:我如何从上面的块中恢复整个图像,换句话说,我必须如何对上面的块进行排序和排列以获取整个解码图像?