YUV422蓝色屏幕输出的调试援助
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数据显示的工具。
小议了一下这个伟大的、可爱的蓝屏输出,让人爱也让人恨的蓝屏输出:)。利用好蓝屏输出的数据模样。对我们解决相关问题还是非常有帮助的。
版权声明:本文博主原创文章,博客,未经同意不得转载。
YUV422蓝色屏幕输出的调试援助的更多相关文章
- [Linux]屏幕输出控制
专门的术语叫做ANSI Escape sequences(ANSI Escape codes),题目并不恰当,与其说是屏幕输出控制,不如说是通过bash在兼容VT100的终端上进行输出. 主要有以下类 ...
- [手机取证] 绕过屏幕锁定启用调试模式-For Android 4.4.2
Google在Android 4.x中引入了调试信任机制,类似于iOS,在设备有屏幕密码的情况下首次连接(或未记住计算机)的情况下, 需要首先打开屏幕锁定后才可进行调试启用操作. 在Android 4 ...
- Debug模式应用程序输出Debug调试信息(现成的宏定义,用于格式化打印信息)
// Debug模式,主要输出一些调试的信息. #ifdef UNICODE #define _FILE_ _STR2WSTR(__FILE__) #define _FUNCTION ...
- 如何优雅的输出PHP调试信息
经常因为出现紧急bug而被老板骂的同事,为了更快的修复而直接利用线上的错误环境现场debug,并直接在页面上echo和dump.结果被老板发现了,又是一通臭骂.那么有没有什么办法更优雅的输出PHP调试 ...
- JavaScript的屏幕输出及时间函数
Js屏幕输出 重定向页面输出: 更改输出流,如果在加载时使用则会正常排序,如果在HTML加载完成后使用,如点击事件,则会全部覆盖原HTML的内容. 1 <script> 2 //参数为输出 ...
- Linux记录屏幕输出log
应用场景: 请专家通过Console处理问题时,保留console输出无疑是非常有意义的.一来可留着作为维护日志,二来可供事后学习. 最简洁的方式是通过系统自带的script命令去记录. $ scri ...
- Linux命令执行的屏幕输出内容重定向到日志文件
摘要: 作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 快速mark一下这个命令细节,免得以后使用又忘记了 大家都知道可以用echo来输出内容到 ...
- C语言入门5-键盘的输入和屏幕输出
C程序中的键盘输入和屏幕输出都是通过 调用输入/输出函数 实现的. 一.数据的格式化 屏幕输出 函数printf()的一般格式 (有两种) (1)第一种: printf(格式控制字符串): ...
- kubectl格式化输出和调试
1.格式化输出 以特定的格式想终端输出详细信息,可以在 kubectl 命令中添加 -o 或者 -output 选项 输出格式 描述 -o=custom-columns=<spec> 使 ...
随机推荐
- CSS+DIV+HTML(一)--HTML总结
一.定义 HTML(Hyper Text Markup Language),标记语言. 二.主要内容: HTML元素分为三类:块级标签.内联标签.可变标签.差别在于: 块级元素:在默认情况下会换行显示 ...
- 超人学院Hadoop大数据资源共享
超人学院Hadoop大数据资源共享-----数据结构与算法(java解密版) http://yunpan.cn/cw5avckz8fByJ 訪问password b0f8 很多其它精彩内容请关注: ...
- cocos2dx-2.x CCFileUtils文件管理分析(2)
于1于,我只是对整体结构进行了分析,然后,2于,我会在一些我们经常使用的分析功能. //获取给定文件名称的全路径 //以下这非常长一段凝视.通过举样例,像我们说明cocos2dx获取文件全路径的规则. ...
- [DEEP LEARNING An MIT Press book in preparation]Deep Learning for AI
动人的DL我们有六个月的时间,积累了一定的经验,实验,也DL有了一些自己的想法和理解.曾经想扩大和加深DL相关方面的一些知识. 然后看到了一个MIT按有关的对出版物DL图书http://www.iro ...
- Windows在生产体系Android开关机动画
在Windows根据系统.办Android开关机动画,几个需要注意的问题: 1.压缩的选择 2.压缩的格式: 版权声明:本文博客原创文章,博客,未经同意,不得转载.
- 【SQL Server性能优化】SQL Server 2008该表压缩
当数据库是比较大的,而当你想备份,我们可以启动数据库备份压缩.这项由于备份文件比较小的压缩,所以整个备份的更快的速度,同时还低了磁盘空间的消耗. 当然还有一方面.肯定会添加cpu的消耗.只是一般的se ...
- C++学习笔记25,析构函数总是会宣布virtual
为了永远记住析构函数声明virtual----><<effective c++>> 为这句话不一定对,但无需质疑的是这句话是非常实用的. 查看以下的样例: #includ ...
- Effective C++ -- 继承和面向对象设计
32.确保你的public继承了模is-a关系 public继承意味着is-a关系(里氏替换原则),一切适用于基类也适用于派生类. 矩形继承正方形问题: 可实施与矩形的操作无法实施与正方形 在编程领域 ...
- poj 1975 Median Weight Bead(传递闭包 Floyd)
链接:poj 1975 题意:n个珠子,给定它们之间的重量关系.按重量排序.求确定肯定不排在中间的珠子的个数 分析:由于n为奇数.中间为(n+1)/2,对于某个珠子.若有至少有(n+1)/2个珠子比它 ...
- SQL Server 连接问题-命名管道
原文:SQL Server 连接问题-命名管道 出自:http://blogs.msdn.com/b/apgcdsd/archive/2011/01/12/sql-server-1.aspx 一.前言 ...