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蓝屏显示输出功能辅助调试的更多相关文章

  1. Linux 命令 - watch: 反复执行命令,全屏显示输出

    watch 命令周期性地执行命令,全屏显示输出.可以通过 watch 命令反复执行某一程序来监视它的输出变化. 命令格式 watch [-dhvt] [-n <seconds>] [--d ...

  2. 安卓投屏助手(B1358)之辅助调试

    Android远程桌面助手的中文版——安卓投屏助手正式上线.安卓投屏和远程控制的软件其实已经非常多了,如Vysor.Total Control.Mobizen.ApowerMirror.TeamVie ...

  3. 【Windows系统】win10系统假死,窗口不能动,鼠标能动或不能动,最后蓝屏显示错误码: VIDEO_DXGKRNL_FATAL_ERROR 的解决办法

    1. 问题的出现过程 最近博主自己用的 windows10 系统就碰到了这个问题. 一开始出现这个问题的征兆是鼠标会时不时地卡顿,一出现卡顿就会等个 1-3秒才能动.然后频繁卡顿(注意,这里根据经验就 ...

  4. 在VC++6.0开发中实现全屏显示

    全屏显示是一些应用软件程序必不可少的功能.比如在用VC++编辑工程源文件或编辑对话框等资源时,选择菜单“View\Full Screen”,即可进入全屏显示状态,按“Esc”键后会退出全屏显示状态. ...

  5. 解决VirtualBox 上的XP 蓝屏,自动重复启动

    启动时的蓝屏显示错误信息是: STOP 0x000000CE (...) DRIVER_UNLOADED_WITHOUT_CANCELLING_PENDING_OPERATIONS intelppm. ...

  6. 解决VirtualBox 上的XP 关机时重启 , 启动时蓝屏 ,点击电源选项蓝屏

    三个问题一次性解决. 启动时的蓝屏显示错误信息是: STOP 0x000000CE (...) DRIVER_UNLOADED_WITHOUT_CANCELLING_PENDING_OPERATION ...

  7. windbg蓝屏调试

    一般在写Windows内核程序的时候,经常会出现蓝屏的问题,这个时候一般是采用记录下dump文件然后用windbg查看得方式,具体的过程就不说了,网上一大堆的内容.现在我主要记录自己当初按照网上的方案 ...

  8. win7下自写驱动导致开机蓝屏调试过程

    之前没有接触过驱动调试.这里上手就要解决一个因为某个自定义驱动导致的系统登陆后蓝屏问题,记录下来.   问题: 从客户那边弄来的一个虚拟机,已知是加了我们的驱动之后才会导致蓝屏. 解决过程:   使用 ...

  9. Android使用百度地图出现闪退及定位时显示蓝屏问题

     目录 1.Android使用百度地图出现闪退 2.Android使用百度地图定位出现蓝屏问题     1.Android使用百度地图出现闪退 一般情况下出现闪退是在AndroidManifest.x ...

随机推荐

  1. php 数组指针相关函数current(),next(),prev(),end()

    mixed current(array target_array) current()函数返回位于target_array数组当前指针位置的数组值.与next().prev().和end()函数不同, ...

  2. http://blog.csdn.net/zhang_xinxiu/article/details/38655311

    一.Activiti下载及简介 1.1.Activiti下载 官网下载地址:http://activiti.org/download.html        Note:下载时不一定要使用最新版本的,最 ...

  3. 乱序双发射 和 GHB的分支预测

    乱序执行(out-of-order execution)是指CPU采用了允许将多条指令不按程序规定的顺序分开发送给各相应电路单元处理的技术.比方Core乱序执行引擎说程序某一段有7 条指令,此时CPU ...

  4. cyg_flag 系列函数

    http://blog.csdn.net/mrwangwang/article/details/7954236 cyg_flag_init Name: cyg_flag_init ( ) - init ...

  5. 对加密方式(公钥私钥)的形象理解(以http和https为例)

    https其实就是建构在SSL/TLS之上的 http协议,所以要比较https比http多用多少服务器资源,主要看SSL/TLS本身消耗多少服务器资源. http使用TCP 三次握手建立连接,客户端 ...

  6. 【Linux安全】系统资源监控与进程终止

    linux系统允许多用户同时操作,当用户量非常大且占用系统资源非常严重的时候, 管理员想要分析一下资源的占用情况,而在linux中有没有类似于windows系统的 资源管理器一样的工具呢,答案是肯定的 ...

  7. EqualsBuilder和HashCodeBuilder

    package com.osc.demo; import java.util.List; import org.apache.commons.lang.builder.EqualsBuilder; i ...

  8. python的whl文件安装

    python27win32安装:https://www.python.org/downloads/   下载2.7的        安装中一路下一步即可: 配置python系统环境变量: 新建: PY ...

  9. 【HDOJ】5564 Clarke and digits

    DP+快速矩阵幂.注意base矩阵的初始化,不难. /* 5564 */ #include <iostream> #include <string> #include < ...

  10. FRM-40401 No changes to save error

    FAQ: I have updated a table from the form and written a update statement in the when-button-pressed ...