写作背景:最近在研究H264编码器的参数,里面的参数不太懂,其中包括: 1) 30 # i intervals // I 帧间距 2)30 # idr intervals// idr帧间距 3) 0 # b frame number between 2 p-frame(0, 1, 2) 4). 0 # min qp //最小量化步长 6) 200000 # bps码率 先对简单的进行解释: 2)idr帧间距 IDR帧是视频流的“分隔符”,所有帧都不可以使用越过关键帧的帧作为参考帧。IDR帧是I帧的一种,所以它们也不参照其它帧。这意味着它们可以作为视频的搜索(seek)点。 3)b帧数 B帧数(Number of B-Frames):在IP帧之间可插入的B帧数量最大值,范围0~16,可以 #大大提高 压缩比,建议选择2 4)min qp 最小量化步长 说明:设置x264可以使用的最小量化器。量化参数越小,输出越接近输入。使用某些值时,x264的输出可以和输入看起来完全一样,虽然其实并不是精确相同的,通常就够了没有必要使用更多比特在宏块上了。
说明:qpmin的反面,设置x264可以使用的最大量化器。默认值51是H.264标准中的最大值,质量非常低。默认值51其实相当于没有设置qpmax。如果你想控制x264输出的最低品质,也许你想要把这个值调低一点(调到30-40最低了),但一般而言不推荐调节这个值。 6)码流(Data Rate) 是指视频文件在单位时间内使用的数据流量,也叫码率,是他是视频编码中画面质量控制中最重要的部分。同样分辨率下,视频文件的码流越大,压缩比就越小,画面质量就越高。 7) 帧率 帧率是一秒播放的视频中有多少个帧。帧是组成视频的基本单位。视频文件本身是由很多连续的图片组成,简单的可以理解为帧率就是一秒内录下的图片数量(实际上这些图片通过压缩,一帧数据不一定保存的是一个完成图片 I帧 I帧(I frame) 又称为内部画面 (intra picture),I 帧通常是每个 GOP(MPEG 所使用的一种视频压缩技术)的第一个帧,经过适度地压缩,做为随机访问的参考点,可以当成图象。在MPEG编码的过程中,部分视频帧序列压缩成为I帧;部分压缩成P帧;还有部分压缩成B帧。I帧法是帧内压缩法,也称为“关键帧”压缩法。I帧法是基于离散余弦变换DCT(Discrete Cosine Transform)的压缩技术,这种算法与JPEG压缩算法类似。采用I帧压缩可达到1/6的压缩比而无明显的压缩痕迹。 帧是组成视频图像的基本单位。关键帧也叫I帧,它是帧间压缩编码里的重要帧;它是一个全帧压缩的编码帧;解码时仅用I帧的数据就可重构完整图像;- D% j" B. F1 8 h3 z1 l) q& S% ]% l5 nI帧不需要参考其他画面而生成。视频文件是由多个连续的图片组成。 在视频会议系统中,终端发送给MCU(或者MCU发送给终端)的图像,并不是每次都把完整的一幅幅图片发送到远端,而只是发送后一幅画面在前一幅画面基础上发生变化的部分。如果在网络状况不好的情况下,终端的接收远端或者发送给远程的画面就会有丢包而出现图像花屏、图像卡顿的现象,在这种情况下如果没有I帧机制来让远端重新发一幅新的完整的图像到本地(或者本地重新发一幅新的完整的图像给远端),终端的输出图像的花屏、卡顿现象会越来越严重,从而造成会议无法正常进行。 在视频会议系统中I帧只会在会议限定的带宽内发生,不会超越会议带宽而生效。I帧机制不仅存在于MCU中,电视墙服务器、录播服务器中也存在。就是为了解决在网络状况不好的情况下,出现的丢包而造成的如图像花屏、卡顿,而影响会议会正常进行。 30帧发一个I帧, 所以I帧大一点
帧间距 以下来自博客:http://blog.csdn.net/oncoding/article/details/3344378 1.什么是 IFG?(What) IFG(Interframe Gap),帧间距,以太网相邻两帧之间的时间断;以太网发送方式是一个帧一个帧发送的,帧与帧之间需要间隙,即帧间距IFG也可称其为IPG (Interpacket Gap)。IFG指的是一段时间,不是距离,单位通常用微秒(μs)或纳秒(ns)。如下图所示:
图 1 帧间距 2.为什么需要IFG?(Why) 网络设备和组件在接收一个帧之后,需要一段短暂的时间来恢复并为接收下一帧做准备。 3.IFG的大小为多少?(Importance) IFG的最小值是 96 bit time,即在媒介中发送96位原始数据所需要的时间,在不同媒介中IFG的最小值是不一样的: 不管 10M/100M/1000M的以太网,两帧之间最少要有96bit;IFGmin=96bit/speed (s) 则:10Mmin: 9600 ns 100Mmin: 960 ns 1000Mmin: 96 ns 4.如何使用IFG?(How) 举个具体例子说明,IFG在以太网的流控机制中解决速度匹配问题; 这里涉及到以太网的流控机制,如下图:
图 2以太网传输示例
1) 设备1以其自身的工作时钟(OSC1) 向设备2发送到待发数据; 2) 数据包进入设备2: a) 经过时钟数据恢复器(CDR)的处理,从数据中提取时钟,并基于提取的时钟(CLK2),将数据包存入接收缓存,此时,CLK2和OSC1是同步的; b) 数据从接收缓存,经过上层协议的处理,存入发送缓存; 3) 发送缓存以设备2的工作时钟(OSC2)发送数据,由于以太网是异步工作的,故OSC1和OSC2作为不同设备的本地时钟,并不能做到完全同频(以太网设备的工作时钟允许有正负50ppm的频差),上图假设OSC1大于OSC2,那么设备2的接收的速度将大于发送的速度,如果接收缓冲满了,将造成丢包; 如何解决上述丢包问题? 在设备2的发送侧通过减小IFG(帧间距)来加快其发送有效数据包的速度,从而使得发送速度能跟上接收速度。 5.IFG在我们实际工作的应用? 这里主要提到Smartbit 6000C 在产测中的使用。 使用原理: IFG增大,设备的有效速度减小,可以解决因速度过快丢包的问题; IFG减小(但必须大于 96 bit time),设备的有效速度增大,可以解决因速度过慢导致测试超时的问题。 参考资料: [1] 以太网流控机制及其基于VSC7323的实现. http://tech./169/a266942.html [2] Interframe gap Wikipedia. http://en./wiki/Interframe_gap [3] thernet .http://www./en/US/docs/internetworking/technology/handbook/Ethernet.pdf
|
|