信源采集数据后如何存储,如何表示?

    xiaoxiao2021-03-25  181

    一、 视频(图像)

    原始视频信源采集后的数据为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

    转载请注明原文地址: https://ju.6miu.com/read-8583.html

    最新回复(0)