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