标准BT.656并行数据结构
转自网络,感谢原作者和转载者。
还有参考:百科http://baike.baidu.com/link?url=bqBT3S7pz_mRJoQE7zkE0K-R1RgQ6FmHNOZ0EjhlSAN_oy-2-hj6G9oMPfTwPZvUoMTc5pCiAuQtUXj0SY--C_
更重要的参考:http://www.spacewire.co.uk/video_standard.html
原文:
BT.656并行接口除了传输4:2:2的YCbCr视频数据流外,还有行、列同步所用的控制信号。如图3所示,一帧图像数据由一个625行、每行1 728字节的数据块组 成。 其中,23~311行是偶数场视频数据,336~624行是奇数场视频数据,其余为垂直控制信号。

BT.656每行的数据结构如图4所示。

图4中,每行数据包含水平控制信号和YCbCr。视频数据信号。视频数据信号排列顺序为Cb-Y-Cr-Y。每行开始的288字节为行控制信号,
开始的4字节为EAV信号(有效视频结束),紧接着280个固定填充数据,最后是4字节的SAV信号(有效视频起始)。
注: YCbCr取值范围:Y:16~235;Cb:16~240;Cr:16~240;
注意:如果你在查找资料的时候足够仔细,你就会发现。。。。。有很多地方对于BT656的编码的图示,看似相同,其实差别很大。有以下几点差别:
1、上图中EAV和SAV的开头字节为 FF 00 00,而有些资料上却是 FF FF 00(包括百科,以及本文的参考资料).
2、上图中268个BLANKING 是 16进制 80 10 ,而有效资料却是 80 16 (比如BT656的编码芯片资料TW2867).
所以在查资料的时候也要很仔细,多方查证。 而个人更相信上面的图示。
SAV和EAV信号有3字节的前导:FF、FF、00;最后1字节XY表示该行位于整个数据帧的位置及如何区分SAV、EAV。XY字节各比特位含义见图5。

图5中,最高位bit7为固定数据1;F=0表示偶数场,F=1表示奇数场;V=0表示该行为有效视频数据,V=1表示该行没有有效视频数 据;
H=0表示为SAV信号,H=1表示为EAV信号;P3~P0为保护信号,由F、V、H信号计算生成;P3=V异或H;P2=F异或H;P1=F异或 V;P0=F异或V异或H。
分析:最后1个字节XY的取值情况:






补充,在BT656中YCBCR格式对不同颜色的编码如下图:

标准BT.656并行数据结构的更多相关文章
- ITU-R BT.656 协议
ITU-R BT.601和ITU-R BT.656国际电信联盟(International Telecommunication Union)无线通信部门(ITU-R)制定的标准.严格来说,ITU-R ...
- BT.656
转自http://www.cnblogs.com/s_agapo/archive/2012/04/08/2437775.html 凡是做模拟信号采集的,很少不涉及BT.656标准的,因为常见的模拟视频 ...
- BT.656 NTSC制式彩条生成模块(verilog)
BT.656 NTSC制式彩条生成模块(verilog) 1.知识储备 隔行扫描是将一副图像分成两场扫描,第一场扫描第1,2,5,7...等奇数行,第二场扫描2,4,6,8...等偶数行,并把扫奇数行 ...
- BT.656视频信号解码
BT.656视频信号解码 BT.656协议标准 ITU-R BT.601和ITU-R BT.656是ITU-R(国际电信联盟)制定的标准.严格来说ITU-R BT.656是ITU-R BT.601 ...
- PHP 标准库 SPL 之数据结构栈(SplStack)简单实践
PHP 5.3.0 版本及以上的堆栈描述可以使用标准库 SPL 中的 SplStack class,SplStack 类继承双链表 ( SplDoublyLinkedList ) 实现栈. 代码: & ...
- SPL标准库常用的数据结构
栈数据结构 $stack = new SplStack(); //栈数据结构->先进后出 2 $stack->push('data1'); //入栈 $stack->push('da ...
- iOS标准库中常用数据结构和算法之查找
参数: key: [in] 要查找的元素.base:[in] 数组元素的首地址.nelp: [in/out] 数组的元素个数指针.width: [in] 数组中每个元素的尺寸.compar: [in] ...
- 第32课 初探C++标准库
有趣的重载: 实验: 将1左移到cout对象中. 将Test改名为Console,此时我们的本意是想让这个cout代表当前的命令行: cout代表命令行的一个实例,本意是想将1打印到命令行上. 我们在 ...
- RGB, YUV及相关标准
最近在一次排查问题的过程中发现色彩空间及色彩空间转换也有很多技术细节,而理清这些细节能帮助我们更准确的定位视频方面的问题. 1. 色彩空间 色彩空间一词源于英文的“Color Space”,色彩学中, ...
随机推荐
- 【浅墨Unity3D Shader编程】之一 夏威夷篇:游戏场景的创建 & 第一个Shader的书写
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/40723789 作者:毛星云(浅墨) ...
- VirtualBox centos 6.5 minimal 开启网络
默认情况下载的centos 6.5 minimal是不开启网卡功能的,按照下面的步骤开启网卡. vi /etc/sysconfig/network-script/ifcfg-eth0 将其中的 ONB ...
- Android菜单Menu的创建
在res目录下的menu文件夹下创建一个main.xml文件,内容如下: <?xml version="1.0" encoding="utf-8"?> ...
- BZOJ 1068: [SCOI2007]压缩
Sol 区间DP.这个区间DP需要三维, \(f[i][j][k]\) 表示\([i,j]\) 这个区间中是否存在 \(M\) . 转移有两种,一种是这个区间存在 \(M\) ,那么直接枚举 \(M\ ...
- net-snmp-5.7.3配置编译安装
net-snmp-5.7.3配置编译安装 [TOC] 先看一下系统环境 o@o-pc:~/work/_snmp/net-snmp-5.7.3$ uname -a Linux o-pc 3.16.0-3 ...
- xdebug调试php程序
相关设置 xdebug.default_enable=1 默认是1,当错误出现时,堆栈跟踪会激活.可以在代码中通过xdebug_disable()来关闭它. xdebug.force_display_ ...
- js之序列化、eval和Date类用法
序列化 JSON.stringify() 将对象转换为字符串 JSON.parse() 将字符串转换为对象类型 示例 var jsonStr = '{"name":"le ...
- centos 设置永久dns
最近在折腾一个问题. 由于服务器的带宽是联通5M, 不稳定.而且所处的网络的dns解析貌似老出问题,每隔一定周期解析时间特别长. 于是乎,想在本地做一个dns,这样可以减少dns解析时间,并做些静态配 ...
- phpcms新闻详情页上一篇下一篇的实现
在新闻详情页(show.html或show_*.html) 只需要添加类似如下代码即可: <div>上一篇:<a href="{$previous_page[url]}&q ...
- Isomorphic Strings
Given two strings s and t, determine if they are isomorphic. Two strings are isomorphic if the chara ...