分类: 嵌入式
2017-02-08 19:14:50
数字视频和声音传输所涉及到的一个重要概念是所谓的“码流”概念。网络上传输数字视频和声音属于流媒体传输范畴,信道中传送的数据流俗称码流,码流带宽则是指传输流在信道中传送数据的速率,通常以比特/秒(bit/s)为单位。一个码流的带宽包括在该流中所有数据(已知和未知的PID,以及空包)每秒传送的比特数。视频、声音和数据从源端同时向目的地传输,并作为连续实时流在目的地被接收。这里的源指的是服务器端的应用,而目的地或称接收端是指客户端应用。
模拟视频和声音信号经过捕获设备转换成数字形式后,其数据量是非常惊人的,必须采用压缩。所以,实现数字视频和声音传输的一般做法是:在源端先将数字视频和声音信息进行压缩,然后经由有服务质量保证的网络传输压缩码流到目的地,再在目的地将之进行解压后显示或回放出来。
现在的两大主流压缩格式阵营分别为MPEG和H.系列。MPEG(Moving Picture Experts Group)运动图像专家组,隶属于ISO/IEC的一个专家工作组,主要负责为数字音视频编码算法开发和制定标准。MPEG-4于1998年11月公布,是针对一定比特率下的视频、音频编码,更加注重多媒体系统的交互性和灵活性。MPEG-4传输速率在4800-6400bps之间,分辨率为176×144,可以利用很窄的带宽通过帧重建技术压缩和传输数据,从而能以最少的数据获得最佳的图像质量。H.系列则是由国际电联(ITU-T)制订的,H.264标准使运动图像压缩技术上升到了一个更高的阶段,能够在较低带宽上提供高质量的图像传输,在同等的图像质量条件下,H.264的数据压缩比能比H.263高2倍,比MPEG-4高1.5倍。H.264获得优越性能的代价是计算复杂度的大幅增加,例如分层设计、多帧参论、多模式运动估计、改进的帧内预测等,这些都显著提高了预测精度,从而获得比其他标准好得多的压缩性能,但也因此对硬件处理能力和软件的架构提出了严苛的要求。在目前的视频服务器领域,尚无法真正意义上实现H.264标准,所以,用于服务器的主流压缩格式还是MPEG4。
MPEG码流完全依靠编码器对MPEG语法和语义的准确使用来处理素材,编码端正确设置固定标志比特位、同步类型、数据包起始码等,并按照一定格式进行编码,所获得的数据码流通过网络传输至客户端。客户端按照固定格式解释MPEG码流,获得所传递的原始数据,此谓之解码。一套完整的传输系统必须同时包括编码解码两部分。
(1)双码流,顾名思义,在视频服务器中同时并存两种码流。双码流是通过在编码端采用两种格式进行分别编码来实现的,对包括芯片在内的硬件系统和软件系统提出了非常高的要求。目前的解决方法有两种,一种是采用更高主频的芯片来进行编码压缩处理,通常至少要达到500M,这样做的好处是成本相应稍低;另一种则是采用两片芯片,一片芯片做一种码流,这样做的优势则在于稳定性比较高。
(2)传统意义上的双码流采用一种码流用于网络传输(低码率,受带宽限制),一种码流用于高品质实时存储(高清需求),同时兼顾本地存储和远程网络传输。
(3)技术发展的最终阶段还将是单码流,但双码流的技术在目前的市场上会存在很长的时间,尤其是在网络带宽不允许的情况下。
码流(Data Rate)是指视频文件在单位时间内使用的数据流量,也叫码率或码流率,通俗一点的理解就是取样率,是视频编码中画面质量控制中最重要的部分,一般我们用的单位是kb/s或者Mb/s。一般来说同样分辨率下,视频文件的码流越大,压缩比就越小,画面质量就越高。码流越大,说明单位时间内取样率越大,数据流,精度就越高,处理出来的文件就越接近原始文件,图像质量越好,画质越清晰,要求播放设备的解码能力也越高。
当然,码流越大,文件体积也越大,其计算公式是文件体积=时间X码率/8。例如,网络上常见的一部90分钟1Mbps码流的720P RMVB文件,其体积就=5400秒×1Mb/8=675MB。
通常来说,一个视频文件包括了画面及声音,例如一个RMVB的视频文件,里面包含了视频信息和音频信息,音频及视频都有各自不同的采样方式和比特率,也就是说,同一个视频文件音频和视频的比特率并不是一样的。而我们所说的一个视频文件码流率大小,一般是指视频文件中音频及视频信息码流率的总和。
以以国内最流行,大家最熟悉的RMVB视频文件为例,RMVB中的VB,指的是VBR,即Variable Bit Rate的缩写,中文含义是可变比特率,它表示RMVB采用的是动态编码的方式,把较高的采样率用于复杂的动态画面(歌舞、飞车、战争、动作等),而把较低的采样率用于静态画面,合理利用资源,达到画质与体积可兼得的效果。
码率和取样率最根本的差别就是码率是针对来讲的。
采样率(也称为采样速度或者采样频率)定义了每秒从连续信号中提取并组成离散信号的采样个数,它用(Hz)来表示。采样率是指将模拟信号转换成数字信号时的采样频率,也就是单位时间内采样多少点。一个采样点数据有多少个比特。比特率是指每秒传送的比特(bit)数。单位为 bps(Bit Per Second),比特率越高,传送的数据越大,音质越好.比特率 =采样率 x 采用位数 x声道数.
采样率类似于动态影像的帧数,比如电影的采样率是24赫兹,PAL制式的采样率是25赫兹,NTSC制式的采样率是30赫兹。当我们把采样到的一个个静止画面再以采样率同样的速度回放时,看到的就是连续的画面。同样的道理,把以44.1kHZ采样率记录的CD以同样的速率播放时,就能听到连续的声音。
比特率是指每秒传送的比特(bit)数。单位为bps(Bit Per Second),比特率越高,传送的数据越大。在视频领域,比特率常翻译为码率 !
比特率是指将数字声音、视频由模拟格式转化成数字格式的采样率,采样率越高,还原后的音质、画质就越好。
视频领域: 码率 = 比特率 = 采样率。
帧速率也称为FPS(Frames PerSecond)的缩写——帧/秒。是指每秒钟刷新的图片的帧数,也可以理解为图形处理器每秒钟能够刷新几次。越高的帧速率可以得到更流畅、更逼真的动画。每秒钟帧数(FPS)越多,所显示的动作就会越流畅。
就是帧大小每一帧就是一副图像。
640*480分辨率的视频,建议视频的码速率设置在700以上,音频采样率44100就行了
一个音频编码率为128Kbps,视频编码率为800Kbps的文件,其总编码率为928Kbps,意思是经过编码后的数据每秒钟需要用928K比特来表示。
计算输出文件大小公式:
(音频编码率(KBit为单位)/8 +视频编码率(KBit为单位)/8)×影片总长度(秒为单位)=文件大小(MB为单位)
目前的720P以及1080P采用了很多种编码,例如主流的MPEG2,VC-1以及H.264,还有Divx以及Xvid,至于封装格式更多到令人发指,ts、mkv、wmv以及蓝光专用等等。
720和1080代表视频流的分辨率,前者1280*720,后者1920*1080,不同的编码需要不同的系统资源,大概可以认H.264>VC-1>MPEG2。