最近在学习雷神的YUV生成420P的灰阶测试图
自己仿写了雷神的接口simplest_yuv420_graybar,在代码中加入了一些注释, 记录下来
【注】:
在Y分量取值方面, 雷神的程序将0~255分成了9份, 即最后一个色柱可以取到255
而我自己的程序将0~255分成了10份, 最后一个色柱取不到最大亮度255
代码的大概意思是malloc三块内存data_y,data_u,data_v,并分别将YUV值按照要求写入
开辟一块writeBuff用于将data_y,data_u,data_v装在一起, 最后将writeBuff的内容写入文件即可
#include"common_head.h"
#define MAX_LEN (1*1024*1024)
int simplest_yuv420_graybar(int width, int height, int ymin, int ymax, int barnum, char* url_out)
{
int barwidth = 0;//garybar width
float lum_inc = 0.0;//luma_increase
unsigned char lum_temp = '\0';//each column's luma value
int fd_ori = -1;//file descriptor
unsigned char* data_y = NULL;
unsigned char* data_u = NULL;
unsigned char* data_v = NULL;
int t = 0, i = 0, j = 0;//for circle
int s32Ret = 0;
unsigned char writeBuff[MAX_LEN] =