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---------------------------------