网站建设dqcx,做网站建设哪家便宜,百度seo优化技术,上海网站公司思路#xff1a;
yuv422 存储格式为 y u y v y u y v y u y v y u y v
yuv420p 存储最简单#xff0c;先存所以的y#xff0c;再存u#xff0c;最后v
所以先把422所有的y存在一起#xff0c;再提奇数行的u #xff0c;偶数行舍弃。提…思路
yuv422 存储格式为 y u y v y u y v y u y v y u y v
yuv420p 存储最简单先存所以的y再存u最后v
所以先把422所有的y存在一起再提奇数行的u 偶数行舍弃。提完u后再提vv也是偶数行不提取。
#include stdio.h
#include sys/types.h
#include sys/stat.h
#include fcntl.h
#include stdlib.h
#include unistd.h
#include sys/ioctl.h
#include linux/videodev2.h
#include string.h
#include sys/mman.h
#include linux/fb.h
#include math.h
#define PI 3.1415926#define pic_width 640
#define pic_heigth 480#define filename /home/wjs/Pictures/my.yuv
#define file_out /home/wjs/Pictures/ //输出文件目录int main(void) {FILE *ffopen(filename,rb);unsigned char i[2*pic_heigth*pic_width]{};fread(i,2*pic_heigth*pic_width,1,f);unsigned char out[pic_heigth*pic_width*3/2]{};int t0;for(int a0;a2*pic_heigth*pic_width;aa2){out[t]i[a];t;}for(int a0;apic_heigth;aa2){for(int b0;b2*pic_width;bb4){out[t]i[a*(2*pic_width)1b];t;}}for(int a0;apic_heigth;aa2){for(int b0;b2*pic_width;bb4){out[t]i[a*(2*pic_width)3b];t;}}chdir(file_out);FILE *ofopen(640480.yuv,wb);fwrite(out,pic_heigth*pic_width*3/2,1,o);fclose(o);return 0;
}