一、 视频(图像)
原始视频信源采集后的数据为RGB格式,每一帧图像都分成红、绿、蓝3个通道,RGB三个分量分别用8bit来表示,其取值范围为0--255,然后将其转换成YUV格式进行压缩编码,Y、R-Y以及B-Y的取值范围如图1:
图1. RGB信号到色差信号的转换
由于B-Y的数值动态范围在620mV之间,R-Y的数值动态范围在491mV之间,为了把B-Y和R-Y信号动态范围控制在350mV之内,需要引入幅度压缩系数,令:,,为了便于数字化处理,再将、引入350mV偏置,使、信号的数值动态范围在0700mV之间[1]。
人眼分辨景物彩色细节的能力很差,只有对黑白细节分辨力的1/3--1/5,因此一般将亮度信号用全带宽传送,而色差信号则用半带宽或1/4带宽传送,以YUV取样格式4:2:0为例来说明,如图2:
图2. 4:2:0格式中亮度信号和色差信号样点位置
UV分量在压缩前甩去3/4的数据量,如图3:图3. 4:2:0色度取样格式数据量示意图
由于显示屏需要通过RGB触发,所以解压缩后YUV数据需要内插得到原来的数据量,再通过转换公式得到RGB数据。
1.YUV与RGB空间的相互转换
由电视原理可知,亮度和色差信号的构成如下:
Y=0.299R + 0.587G + 0.114B
R-Y=0.701R – 0.587G – 0.114B
B-Y=–0.299R – 0.587G + 0.886B
U=0.493(B – Y)
V=0.877(R – Y)
由以上可得:
R = Y + 1.4075 *(V – 128)
G = Y – 0.3455 *(U – 128)–0.7169 *(V – 128)
B = Y + 1.779 *(U – 128)
2.色度格式
4:2:0格式是指色差信号U,V的取样频率为亮度信号取样频率的四分之一,在水平方向和垂直方向上的取样点数均为Y的一半,因此UV的分辨率是Y的1/4。
二、 音频(语音)
电视广播离不开声音信号,随着人们对电视质量的要求越来越高,在数字电视广播、高清晰数字电视和数字电影中不仅应有高质量的图像,还要保证有高质量的伴音。
1.wav文件格式
wav是一种无损音频文件格式,相对于其他音频格式文件数据是没有经过压缩的,通常文件也相对比较大些。它符合资源交换文件格式(RIFF,ResourceInterchange File Format)规范,用于保存Windows平台的音频信息资源,被Windows平台及其应用程序所广泛支持[2],常见的wav文件有两种,分别对应于单声道(11.025kHz采样率,8bit/样值)和双声道(44.1kHz采样率,16bit/样值),对于双声道音频文件,每个采样数据用16bit表示,高八位和低八位分别代表左右两个声道。wav文件分为两个部分,第一部分是wav头文件,第二部分是PCM编码的音频数据部分。如图4所示:
图4. wav文件格式
wav文件是以RIFF格式来组织内部结构的,每个文件最前端写入的是RIFF块,每个文件只有一个RIFF块,第一个4字节为块的标志符,如“RIFF”等,指定块的标志ID,第二个4字节用来指定块的数据域大小(包括图4中从“Format”到“data”所有内容的大小),“数据”用来描述具体的声音信号,另外,RIFF块的数据总是以一个指定文件中数据存储格式的四个字符码(称为格式类型)开始,如wav文件有一个“WAVE”的格式类型,如表1:
表1. RIFF块的结构
所占字节数
具体内容
块的标志符
4Bytes
“RIFF”
数据大小
4Bytes
36+Subchunk2Size
数据
4Bytes
“WAVE”
RIFF块包含两个子块,这两个子块的ID分别是“fmt”和“data”,其中“fmt”子块由结构PCMWAVEFORMAT所组成,其子块的大小就是sizeof(PCMWAVEFORMAT),数据组成就是PCMWAVEFORMAT结构中的数据,包括诸如通道数,采样率,每个样本点的比特数等信息,“data”子块包括声音数据块的大小以及音频数据信息,如表2。
表2. wav文件的结构
所占字节数
具体内容
标志符
4 Bytes
“RIFF”
数据大小
4 Bytes
36+Subchunk2Size
格式类型
4 Bytes
“WAVE”
标志符
4 Bytes
“fmt ”
Sizeof (PCMWAVEFORMAT)
4 Bytes
16(对于PCM)
PCMWAVEFORMAT
16 Bytes
标志符
4 Bytes
“data”
声音数据大小
4 Bytes
Subchunk2Size
声音数据
Subchunk2Size
非PCM格式的文件会至少多加入一个“fact”块,它用来记录数据(注意是数据而不是文件)解压缩后的大小,这个“fact”块一般加在“data”块的前面。
表3. factchunk的结构
所占字节数
具体内容
ID
4Bytes
“fact”
Size
4Bytes
4
Data
4Bytes
解压后的音频数据的大小(Bytes)
以一个无损的test.wav文件为例,读取其中存储的信息(其中播放时间是自己后续的计算,286s= 4: 46s),读取结果如图5:
图5. 实验结果
分析实验结果:以ChunkID:“RIFF”中的“F”为例,其ASCII码值为70,换算成二进制表示为01000110,将其换算成16进制为46;以Subchunk2ID:“data”中的“a”为例,其ASCII码值为97,换算成二进制表示为01100001,将其换算成16进制为61。
用UltraExit来看test.wav文件数据,如图6:
图6.test.wav文件数据
2.PCM格式
PCM (PulseCode Modulation) 被称为脉码编码调制。PCM中的声音数据没有被压缩,如果是单声道的文件,采样数据按时间的先后顺序依次存入(它的基本组织单位是BYTE(8bit)或WORD(16bit)),如果是双声道的文件,采样数据按时间先后顺序交叉地存入。如图7所示[3]:
图7. 双声道文件采样数据存储方式
PCM的每个样本值包含在一个整数i中,i的长度为容纳指定样本长度所需的最小字节数。首先存储低有效字节,表示样本幅度的位放在i的高有效位上,剩下的位置为0,这样8位和16位的PCM波形样本的数据格式如表4所示。
表4. 8位和16位的PCM波形样本的数据格式
样本大小
数据格式
最小值
最大值
8bit PCM
unsigned int
0
255
16bit PCM
int
-32768
32767
参考文献
[1] 姜秀华,柴剑平等.现代电视原理[M].北京:高等教育出版社,2008:272
[2] pi9nc. wav文件详解[N/OL]. 2013-10-10. http://blog.csdn.net/pi9nc/article/details/12570841
[3] DoubleLi. wave文件格式、PCM数据格式[N/OL]. 2014-05-15. http://www.cnblogs.com/lidabo/p/3729615.html