数字视频基础(二)

2.    常用数字视频标准

2.1 BT656

首先要理解模拟PAL/NTSC的视频信号的波形:

要进行视频的数字传输,首先我们要将模拟视频信号数字化,获得每个像素的YUV值,一般采用YUV422格式,仅仅传输图像数据还不行,还要传输行同步、场同步、奇偶场信号、以及每行图像什么时候开始的,什么时候结束的。这样在接收端才能正确接收和理解数据,并获得视频的重现。

SAV(有效视频开始)和EAV(有效视频结束)码,反映了模拟视频的同步信号。由前导符FF、00、00开始,这三个字节的前导符在视频数据中是不可能存在的,XY为状态字,每一位定义如下:

有时我们会看到BT.601,其与656的差别不过是数据流中缺少了同步信息,所以,必须另外有HS、VS、FIED、DE等同步信息才能完整传输数字视频。

大部分情况我们使用8bit的BT656,标准本身是支持10bit的。

BT656主要是针对PAL/NTSC等标清视频。时钟频率是27MHz。注意采样频率灰度为12.5MHz,色度为6.25MHz。

随着高清视频的发展的需要,又推出了BT1120标准,它与BT656是类似的,只不过时钟频率更高了,以适合高清视频的传输。

2.2 OpenLDI和CameraLink

2.2.1 OpenLDI

OpenLDI:Open LVDS Display Intrerface是通过LVDS信号来传输视频。

先了解一下LVDS:Low-voltage differentialsignaling. 低电压差分信号。

LVDS能带宽极高,可达数G。

模拟VGA信号的时序:

OpenLDI有以下几种传输方式:

(1)18bit单像素非平衡

(2)24bit单像素非平衡

(3)18bit双像素非平衡

(4)24bit双像素非平衡

(5)18bit单像素平衡模式

平衡模式,是每个周期除了像素和控制信息外,还增加了一位,这一位叫直流平衡位(DCBAL:DC Balance)。DCBAL位的目的是使得信号线上的直流偏置最小,为了最小化直流分量,是需要对传输的数据进行修改才能实现的。如果数据没有被修改的周期,DCBAL=0,否则,DCBAL=1。

类似还有24bit单像素平衡模式、以及双像素的18bit、24bit平衡模式。

因为平衡模式我们使有的比较少,具体算法不在这里介绍。可参考有关文档。

OPENLDI的时钟可能不高,但是数据线上的频率却很高,这是需要注意的。

2.2.2 CameraLink

2.2.2.1 概述

OpenLDI标准定义了视频传输的方式,在此基础上添加一些控制信号、通讯、所使用的连接器定义,由此构成可CameraLink标准。CameraLink最大时钟频率就是85MHz

CameraLink有5种配置:因为视频的分辨率越来越高,也即像素时钟越来越高,比如单色[email protected]的点频是25.175MHz(Lite),彩色[email protected]点频是65MHz(Base),彩色[email protected]点频是108MHz(Medium),所以,不同的配置是为了满足不同分辨率和精度的视频传输的要求。相当于车速不变,增加车道以提高车流量。

l  Lite:支持10bit,端口A、B,1个电缆连接器

l  Base:支持24bit,端口A、B、C,1个电缆连接器

l  Medium:支持48bit,端口A、B、C、D、E、F,2个电缆连接器

l  Full:支持64bit,端口A、B、C、D、E、F、G、H,2个电缆连接器

l  80 Bit。支持80bit,端口A、B、C、D、E、F、G、H、I、J,2个电缆连接器

连接器定义:

CameraLink的信号:

除了数据通道,还有:

(1)4个使能信号:

l  FVAL:帧有效(FVAL),高有效,表示有效行。

l  LVAL:行有效,高有效,表示有效像素

l  DVAL:数据有效,高表示数据有效。对80bit配置,这个信号用来传输数据。

l  Spare:备用。对80bit配置,这个信号用来传输数据。

(2)对Base/Medium/Full/80bit配置,还有下面摄像机控制信号:CC1、CC2、CC3、CC4。而对Lite配置,仅有CC一个控制信号。

(3)通讯:波特率至少9600,1个起始位,1个停止位、无奇偶校验、无握手信号。

l  SerTFG:串行通讯差分对,去帧捕捉器。对Lite配置,这个信号被分配在一个携带图像数据的差分对上。见位分配。

l  SerTC:串行通讯差分对,去摄像机。

端口(Port)的概念:一个端口是8bit宽,从信号连接的角度来说,1个端口可传输8bit的数,但是到底这8bit数是什么并没有规定。

Tap的概念:Tap表示一个类型的数据,比如:Red数据、Green数据、或Blue数据、灰度数据,或偶像素数据、或奇像素数据。比如:

1)       用一个Base配置来传输24bit的RGB,RGB的每个数据是8bit,那么我们就说是3个TAP,每个TAP是8bit。

2)       如果我们用一个Medium配置来传输双像素RGB,RGB数据是8bit,那么我们就说是6个TAP,每个TAP是8bit。

3)       如果我们用Lite配置来传输黑白图像,亮度用10bit数来表示,那么,我们说1个TAP,每个TAP是10bit。

CameraLink标准应该对如下一些内容作出明确定义:

1)       我们知道要传输的图像数据是由一个或多个Tap组成的,先要定义这些Tap的每一位是如何分配在Port上的,这就是第2.2.2.1节定义的位的分配(Bit Assignment)。

2)       然后要定义Port的每一位及LVAL、FVAL、FVAL、SPARE处于LVDS时钟周期的哪个相位,也就是是Port每一位与收发器的RX/Tx脚位之间的关系。这个问题在2.2.2.2节位的位置(Bit Allocation)中定义。

3)       标准还要定义每个Port位于哪个通道连接,或者说哪个芯片上,或者说是在X连接通道上,还是Y、Z连接通道上?这一点由第2.2.2.3节的配置的框图来定义。

2.2.2.1位的分配(Bit Assignment)

2.2.2.2位的位置(Bit Allocation)

2.2.2.3硬件路由和框图

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

时间: 2024-08-02 10:53:14

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

数字视频基础(一)

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

数字视频基础(三)

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数,因此发送是

数字视频基础(四)

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

嵌入式视频处理基础(二)

引言: 作为消费者,我们对于各种形式的视频系统都已经非常熟悉了.但是从嵌入式开发人员的角度来看,视频就好像是一张纷繁复杂的网络,里面充满了各种不同的分辨率.格式.标准与显示等. 隔行扫描和逐行扫描: 隔行扫描起源于早起的模拟电视广播,那时候需要按顺序将图像快速刷新,以减小视觉上的闪烁,但是当时的技术还无法做到这么快速的刷新整个屏幕.因此,就将每一帧进行交织处理,即分为两场,一个由奇数扫描行组成,另一个由偶数扫描行组成. 隔行扫描 帧分为奇数和偶数场 NTSC(PAL)的帧刷新率大约为30(25)

Python全栈开发【基础二】

Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 编码与进制转换 Python 运算符 1.算术运算: 2.比较运算: 3.赋值运算: 4.逻辑运算:  5.成员运算: 基本数据类型 1.数字 int(整型) 1 class int(object): 2 """ 3 int(x=0) -> integer 4 int(x, base=10) -&g

Python基础二--基本控制语句

基本接触每一种语言,都需要做的:1.print 一个"Hello world!" 2.了解基本的数据类型 3.学习控制语句. 当我们学习控制语句,一般都离不开if,for ,while,switch(case).本文就做一个简单的介绍python的基本控制语句,其中我们用if while来做一个经典的"猜数字游戏",if for来做一个"输出完美数". 在此之前,对于一些没用过python的同学而熟悉c/c++等用{}来做块的要注意了,pytho

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

音视频基础 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解封装 名称

Bootstrap<基础二十七> 多媒体对象(Media Object)

Bootstrap 中的多媒体对象(Media Object).这些抽象的对象样式用于创建各种类型的组件(比如:博客评论),我们可以在组件中使用图文混排,图像可以左对齐或者右对齐.媒体对象可以用更少的代码来实现媒体对象与文字的混排. 媒体对象轻量标记.易于扩展的特性是通过向简单的标记应用 class 来实现的.你可以在 HTML 标签中添加以下两种形式来设置媒体对象: .media:该 class 允许将媒体对象里的多媒体(图像.视频.音频)浮动到内容区块的左边或者右边. .media-list

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

1.5 数据类型与定义变量 Object Pascal 语言的最大特点是对数据类型的要求非常严谨.传递给过程或函数的参数值必须与形参的类型一致.在Object Pascal 语言中不会看到像C 语言编译器提示的“可疑的指针转换”等警告信息.由于Object Pascal 语言对数据类型比较严谨,因此它会对代码进行严格检查,以确保不会出现错误.变量是程序代码中代表一个内存地址的标识符,那么该地址的内存内容就可以在程序代码执行时被改变.每个变量都有一个名字和数据类型,名字可以用来引用变量,数据类型决