数字视频基础(三)

2.3 HDMI和DVI

2.3.1 HDMI

2.3.1.1 概述

如下图所示,HDMI电缆和连接器有4对差分线,3对TMDS数据线和1对时钟通道。这些通道用来传输视频、音频和辅助数据。另外,HDMI还有DDC通道,DDC是用来配置显示器和获得显示器状态,这里我们不讨论DDC。

音频、视频和辅助数据通过3个TMDS数据通道来传输,TMDS时钟,其频率通常是视频像素时钟频率,作为接收器的参考频率。TMDS将每个TMDS数据通道的并行8bit数据转换为直流平衡跳变最少的串行10bit数,因此发送是每个TMDS时钟周期发送10bit的数。

视频数据可以是24、30、36或48bit,一般是24bit,如果超过24bit,则使用更高的TMDS时钟速率。如果像素时钟速率过低,比如PAL视频像素时钟为13.5MHz,则发送时使用像素复制方法。视频像素可以是RGB、YCbCr444或YCbCr422格式。

为了通过TMDS通道传输音频和辅助数据,HDMI使用包结构。为了获得较高的传输可靠性,这些数据采用BCH纠错技术。

基本的音频功能支持IEC60958L-PCM音频流,采样速率32KHz,44.1KHz,48KHz。也能兼容通常的立体声数据流。

3.3.1.2 基本数据结构

  • 视频数据周期(Video Data Period):传输视频数据,使用TMDS编码,每个通道8bit,每个像素24bit。
  • 数据岛周期(Data Island Period):使用TMDS及纠错编码,每个通道传输4bit,每个时钟周期传输12bit
  • 控制周期(Control Period):每通道2bit,每个TMDS时钟周期6bit,这6bit是HSYNC、VSYNC、CTL0、CTL1、CTL2、CTL3。在每个控制周期结束附近,有一个前缀,它使用CTLx位,指示下个数据周期是一个视频数据周期还是一个数据岛周期。

每个视频数据周期和数据岛周期开始于前导监视段(Leading Guard Band),用来可靠地确定由控制周期到数据周期的转变。这个前导监视段(Leading Guard Band)由2个特殊字符组成。

数据岛周期还使用后缀监视段(Trailing Guard Band)来保护,用来可靠地确定到控制段的转换。

2.3.2 DVI

HDMI和DVI都是采用TMDS编码方式,只不过HDMI在消隐期间增加了数据岛包用来传输音频数据,而DVI没有传输数据岛。其他两者是兼容的。

这里我们没有介绍TMDS(Transition Minimized DifferentialSignaling)是如何将并行数据转换为串行数据的。也没有介绍数据岛包的具体定义。详细内容见有关标准。

下图简单说明一下TMDS的概念:

0-1和1-0之间的变化会引起干扰,使这个变化次数最少,可以降低干扰,提高数据传输的带宽。

2.4 SDI

2.4.1 概述

SDI接口必须进行2个处理工作:数据组合和串行化。数据组合发生在源端,是将视频、同步、音频、辅助数据等组合成一个并行格式的数据流。然后由串行化电路将这并行的数据流转换成串行数据流用于传输。在解码端是个逆向过程。

2.4.2 数据组合

我们对上面的数据流应该很面熟才是,其实就是源自BT656。

辅助数据格式:

1)       辅助数据标志(Aux Data Flag):1个字,3FCh

2)       数据ID(Data ID):1个字。指示数据类型,低8位有效,高2位为校验位。尽管有256种类型,但是目前仅定了AES/EBU格式的音频数据类型。ID = 0FFh表示音频,000h表示无格式化音频数据。

3)       数据块编号(Data Block Number),同一数据ID的数据块编号。

4)       数据个数(Data Count),最大255。

5)       用户数据。

6)       检查和:包含从Data ID到用户数据的检查和。

2.4.3 串行编码器

形成并行的数据之后,为了串行传输,需要将并行数据转换为串行数据,SDI一般采用扰码编码编码方式进行并转串。关于扰码技术,我们今后会仔细讨论这个问题,大家在此知道一下就可以了。

数字视频基础(三),布布扣,bubuko.com

时间: 2025-01-12 15:38:42

数字视频基础(三)的相关文章

数字视频基础(一)

上海凯视力成信息技术有限公司 编写 版权所有,转载和引用请注明出处 1.    基本概念 1.1视频的表示 1.1.1图像的表示 把一个图像用一个个像素来表示,每个像素有确定的位置和确定的亮度值(这里假设是黑白图像).于是构成了图象. 比如下面的图片: 我们用0表示白,1表示黑,则图像可表示成: 图像有2个分辨率:一个是空间分辨率,也就是图中的水平分辨率N和垂直分辨率M:另一个是灰度级分辨率,也就是用几个bit来表示灰度等级.极端的有二值图,如刚才那个"1"的图. 1.1.2视频的表示

数字视频基础(二)

2.    常用数字视频标准 2.1 BT656 首先要理解模拟PAL/NTSC的视频信号的波形: 要进行视频的数字传输,首先我们要将模拟视频信号数字化,获得每个像素的YUV值,一般采用YUV422格式,仅仅传输图像数据还不行,还要传输行同步.场同步.奇偶场信号.以及每行图像什么时候开始的,什么时候结束的.这样在接收端才能正确接收和理解数据,并获得视频的重现. SAV(有效视频开始)和EAV(有效视频结束)码,反映了模拟视频的同步信号.由前导符FF.00.00开始,这三个字节的前导符在视频数据中

数字视频基础(四)

3. 常用视频处理算法 3.1 图像的缩放 所谓图像缩放就是创立新的像素位置并对这些新位置赋灰度值.比如,有一副大小为500x500像素的图像,想把它放大1.5倍,也即750x750像素,概念上看,一种最容易的形象化放大方法就是在原始图像上,放一个虚构的750x750的栅格.很显然栅格的间隔小于1个像素,因为,我们在一个较小的图像上去拟合它.为了对覆盖层上的任何电进行灰度赋值,我们在原图像上寻找最靠近的像素并把它的灰度付给栅格上的新像素.当对覆盖栅格的全部点都赋完值之后,就得到放大的图像.这种灰

JS基础三

1.delete删除对对象的属性和方法的定义.强制解除对它的引用,将其设置为 undefined delete 运算符不能删除开发者未定义的属性和方法. 2.void 运算符对任何值返回 undefined.该运算符通常用于避免输出不应该输出的值,没有返回值的函数真正返回的都是 undefined. 3.前增量运算符,就是数值上加 1,形式是在变量前放两个加号(++): var iNum = 10; ++iNum; 第二行代码把 iNum 增加到了 11,它实质上等价于: var iNum =

音视频基础,各种连接线的接入方法。

音视频基础 1. 基本流程 2. 流程简介 2.1 解协议 名称 推出机构 传输层协议 客户端 使用领域 RTSP&RTP[&RTCP] IETF TCP&UDP VLC.WMP IPTV RTMP Adobe Inc. TCP Flash 互联网直播 RTMFP Adobe Inc. UDP Flash 互联网直播 MMS Microsoft Inc. TCP/UDP WMP 互联网直播&点播 HTTP WWW+IETF TCP Flash 互联网点播 2.2解封装 名称

Object Pascal 语法之语言基础(三)

1.6 Object Pascal 的运算符 运算符是程序代码中对各种类型的数据进行计算的符号,通常分为算数运算符.逻辑运算符.比较运算符和按位运算符. 1.算术运算符Object Pascal 语言的算术运算符,如表1-9 所示.表1-9 Object Pascal 语言算术运算符 操作符 操作 操作数据类型 结果类型 + 加 整型.实型 整型.实型 - 减 整型.实型 整型.实型 * 乘 整型.实型 整型.实型 / 除 整型.实型 整型.实型 mod 取余 整型 整型 div 整除 整型 整

【蓝鸥Unity开发基础三】课时3 Terrain地形系统【未完】

[蓝鸥Unity开发基础三]课时3  Terrain地形系统[未完] 推荐视频讲师博客:http://11165165.blog.51cto.com/ 一.Terrain地形系统 Terrain地形系统 资源包的导入 场景漫游 立方体是:长宽高1m 二.Terrain地形系统 1.Terrain组件:提升地形/沉降地形工具 点击左键-- 提升地形 点击左键+Shift--沉降地形 选择笔刷的形状.笔刷的大小,笔刷的硬度--绘制地形 2.Terrain:平坦地形工具:设置地形目标高度 平滑地形工具

【蓝鸥Unity开发基础三】课时2 游戏对象和基本操作

[蓝鸥Unity开发基础三]课时2 游戏对象和基本操作 一.首先,让我们先看一下下面的图片--金字塔架构 推荐视频讲师博客:http://11165165.blog.51cto.com/ 一个游戏有多个场景组成, 场景是由多个游戏对象组成, 每一个游戏对象身上由多个组件组成的, 每个组件都是为了完成某个特定的功能! 二.创建一个游戏环境--01 1.快捷键--CTRL+S 2.创建的环境会在视图中显示 3.在Create视图中邮件--选3D Object 4.创建一个--Plane 5.创建一个

shell 入门基础三

    linux shell 编程 1什么是bash shell 变量 shell变量可分为两类: 局部变量和环境变量. 局部变量只在创建它们的shell中可用.而环境变量则可以在创建它们的shell及其派生出来的任意子进程中使用.有些变量是用户创建的,其他的则是专用shell变量.变量名必须以字母或下划线字符开头.其余的字符可以是字母.数字(0~9)或下划线字符.任何其他的字符都标志着变量名的终止.名字是大小写敏感的.给变量赋值时,等号周围不能有任何空白符.为了给变量赋空值,可以在等号后跟一