c JPEG 中MCU 的理解

jpeg编码中,因为对MCU的理解不正确,造成YUV 三分量的排列错误 ,排错了好几天。

对于yuv420p:

       如: y00   3    y02   3     y4 ......

               y10    y11    y12     y13  ......

   则第一个MCU为:  y00   y01  y10   y11   u00   v00    共6个字节

  我理解MCU 就是比特流中最小的重复单位

下面的程序为Y亮度排序程序,也就2*2的块分割。uv分量不用再排序。

	//---------Y 排序----------------------------------   //第一个MCU y01 y02 y10 y11 u01 v01
	int yw[pic_heigth*pic_width/64]={};
	int wn=0;
	for(int y=0;y<pic_heigth/8;y=y+2){
		for(int x=0;x<pic_width/8;x=x+2){
			for(int b=0;b<2;b++){
				for(int a=0;a<2;a++){
			       yw[wn]=(y+b)*pic_width/8+x+a;
					wn++;
				}
			}
		}
	}

	//---------MCU---------------------------------