YUV420P 灰阶测试图小例

本文记录了学习雷神关于YUV420P灰阶测试图的实现过程,详细解释了如何仿写simplest_yuv420_graybar接口并加入注释。文中提到,原程序将Y分量分为9份,而个人实现将其分为10份,导致最后一个色柱无法达到最大亮度255。通过malloc分配内存并填充YUV值,最后将数据写入文件完成测试图的创建。
摘要由CSDN通过智能技术生成

最近在学习雷神的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] = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值