YUV422蓝屏显示输出功能辅助调试

简介: YUV422蓝屏显示输出功能辅助调试     YUV422有YUYV,YVYU,UYVY,VYUY四种,下面笔者就就以UYVY为例介绍一下数据构成。

YUV422蓝屏显示输出功能辅助调试

 

    YUV422有YUYV,YVYU,UYVY,VYUY四种,下面笔者就就以UYVY为例介绍一下数据构成。由于经常要跟视频输入打交道,所以YUV422这种常见的视频信号是经常碰到的。有时候我们调试一个模块输出YUV422,然后再显示出来。很多时候,可能没法准确判断你那个模块是不是已经正常跑起来了,跑起来来的情况下,是不是真的有数据输出,有了数据输出后来的数据到底对不对。

   带着这些疑问,当然有很多对策,笔者就先把这个事情一分为二,以YUV422数据为界限分两部分,如果怀疑是模块没有输出YUV422数据或者输出的数据有错误,那么我们就让这个模块暂时不工作,手动模拟一个YUV422一帧的数据送到显示里面去,比较著名就是蓝屏输出了。下面笔者就简单介绍一下YUV422数据

/*****************************************************************************************************/
声明:本博内容均由http://blog.csdn.net/edsam49原创,转载请注明出处,谢谢!
/*****************************************************************************************************/

   在多数平台里,芯片在输出YUV422数据的时候,Y是一个buffer,UV合在了一个buffer,YUV422的情况下uv的数据就是交替出现。下面就是笔者亲自试过的一组产生相应buffer的代码。

   首先是申请Y & UV的buffer空间吧!这个不用讲了吧!

   然后就是修改设置buffer的值,示例688X480的buffer数据,

void setYUVbufferColor(void){
    unsigned int i, addr, regval;
	for(i=0; i<=(688*480); i++){
		//addr = (unsigned int )TVDTransferToDRVInfo.addrYx + 4*i + 0x10;
		//*(unsigned int *)(addr) = yv;
		addr = (unsigned int )TVDTransferToDRVInfo.addrYx + i;
		*(unsigned char *)(addr) = 0x70;
	   }

	for(i=0; i<=(172*480); i++){
		addr = (unsigned int )TVDTransferToDRVInfo.addrCx + 4*i;
		*(unsigned int *)(addr) = 0x72d472d4;
	   }

}

      主要就是Y的数据是0x70,U跟V是0x72跟0xd4;

      修改好这样的buffer的数据,直接把地址送到显示那边去,看有没有蓝屏输出,如果有就说明显示没问题,如果没有就说明显示有问题,这样我们就可以至少可以判断出显示有没有问题了。

那么有人可能会问了,如果模块跟显示都有问题还不是一样显示 不出来。当然了,笔者只是一分为二先判断显示有没有问题,你解决了显示的问题,再回回过来解决模块的问题也是可以的。当然,也可以调试模块的时候,保存模块输出的一帧数据帧,分析一下它的数据有没有问题,PC端也有一些分析纯YUV数据显示的工具。

       小议了一下这个伟大的、可爱的蓝屏输出,让人爱也让人恨的蓝屏输出:),利用好蓝屏输出的数据模样,对我们解决相关问题还是很有帮助的。

 

 

目录
相关文章
|
机器学习/深度学习 传感器 算法
【信号处理】基于Matlab实现男女音变声系统
【信号处理】基于Matlab实现男女音变声系统
|
10月前
|
监控 安全 调度
彻底解决5大开源痛点,阿里云发布任务调度 XXL-JOB 版
阿里云任务调度XXL-JOB版 迎来重磅发布,以任务调度SchedulerX为内核,0代码改造,完全兼容开源XXL-JOB客户端接入,解决开源XXL-JOB痛点问题。
1317 133
|
12月前
|
机器学习/深度学习 数据采集 消息中间件
使用Python实现智能火山活动监测模型
使用Python实现智能火山活动监测模型
203 1
|
人工智能 自动驾驶 搜索推荐
AI技术在现代生活中的应用与影响
本文将探讨AI技术在现代生活中的广泛应用,以及它对人们生活方式的影响。我们将从智能家居、自动驾驶汽车、医疗健康、教育等领域出发,分析AI技术如何改变人们的生活。同时,我们也将讨论AI技术可能带来的问题和挑战,以及如何应对这些问题。
|
网络协议 Java 数据安全/隐私保护
Java中UDP通信连接实现
TCP与UDP的主要区别: TCP—传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。
2080 0
|
JavaScript 应用服务中间件 nginx
windows下使用Nginx部署Vue项目
windows下使用Nginx部署Vue项目
windows下使用Nginx部署Vue项目
Element UI - 解决部分组件无法阻止冒泡问题
Element UI - 解决部分组件无法阻止冒泡问题
913 0
|
存储 Dubbo Java
Dubbo整合seata实现分布式事务
Dubbo整合seata实现分布式事
|
存储 弹性计算 固态存储
阿里云服务器配置如何选择?(CPU/内存/带宽/磁盘)
阿里云服务器购买需要选择CPU、内存、带宽、磁盘和ECS实例规格,那么云服务器配置如何选择呢?阿里云服务器带宽选多少M合适呢?阿里云ECS云服务器实例规格如共享型、计算型、通用型如何选择?都要根据用户自身实际应用情况来选
6768 0
阿里云服务器配置如何选择?(CPU/内存/带宽/磁盘)
|
机器学习/深度学习 人工智能 数据挖掘
ML/DL之Paper:机器学习、深度学习常用的国内/国外引用(References)参考文献集合(建议收藏,持续更新)
ML/DL之Paper:机器学习、深度学习常用的国内/国外引用(References)参考文献集合(建议收藏,持续更新)
ML/DL之Paper:机器学习、深度学习常用的国内/国外引用(References)参考文献集合(建议收藏,持续更新)