对原始信源的格式、存储形式及表示形式的详解

来源:互联网 发布:百分百qq采集分析软件 编辑:程序博客网 时间:2024/06/05 11:48

原始信源采集进来是怎样存储,怎样表示的?

一、视频(图像)

    视频数据,图像数据在存储中的存储格式主要有RGB和YUV。RGB是多媒体数据进行数据存储采用的主流格式;YUV格式所需存储空间一般是RGB格式存储空间的一半,所以YUV格式主要用于多媒体数据传输中。


1. RGB概述

    计算机彩色显示器显示色彩的原理与彩色电视机一样,都是采用R(Red)、G(Green)、B(Blue)相加混色的原理:通过发射出三种不同强度的电子束,使屏幕内侧覆盖的红、绿、蓝磷光材料发光而产生色彩。这种色彩的表示方法称为RGB色彩空间表示。

    根据三基色原理任意一种色光F都可以用不同分量的R、G、B三色相加混合而成。

     F = r [ R ] + g [ G ] + b [ B ]

    其中,r、g、b分别为三基色参与混合的系数。当三基色分量都为0(最弱)时混合为黑色光;而当三基色分量都为k(最强)时混合为白色光。调整r、g、b三个系数的值,可以混合出介于黑色光和白色光之间的各种各样的色光。


2. YUV概述

    在现代彩色电视系统中,通常采用三管彩色摄像机或彩色CCD摄像机进行摄像,然后把摄得的彩色图像信号经分色、分别放大校正后得到 RGB,再经过矩阵变换电路得到亮度信号Y和两个色差信号R-Y(即U)、B-Y(即V),最后发送端将亮度和色差三个信号分别进行编码,用同一信道发送出去。这种色彩的表示方法就是所谓的YUV色彩空间表示。

    采用YUV色彩空间的重要性是它的亮度信号Y和色度信号U、V是分离的。如果只有Y信号分量而没有U、V分量那么这样表示的图像就是黑白灰度图像。彩色电视采用YUV空间正是为了用亮度信号Y解决彩色电视机与黑白电视机的兼容问题使黑白电视机也能接收彩色电视信号。


3. 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)


4. YUV采样格式

    亮度和色度元素被称为YUV(模拟信号)或YCbCr(数字信号)而不是RGB。主要的采样格式有YCbCr 4:2:0、YCbCr 4:2:2、YCbCr 4:1:1和 YCbCr 4:4:4。其中YCbCr 4:1:1 比较常用,其含义为:每个点保存一个 8bit 的亮度值(也就是Y值), 每 2 x 2 个点保存一个 Cr和Cb值, 图像在肉眼中的感觉不会起太大的变化。所以, 原来用 RGB(R,G,B 都是 8bit unsigned) 模型, 每个点需要 8x3=24 bits,而现在仅需要 8+(8/4)+(8/4)=12bits, 平均每个点占12bits。这样就把图像的数据压缩了一半。

    上边仅给出了理论上的示例,在实际数据存储中是有可能是不同的,下面给出几种具体的存储形式:

   (1) YUV 4:4:4

    YUV三个信道的抽样率相同,因此在生成的图像里,每个象素的三个分量信息完整(每个分量通常8比特),经过8比特量化之后,未经压缩的每个像素占用3个字节。

   (2) YUV 4:2:2

    每个色差信道的抽样率是亮度信道的一半,所以水平方向的色度抽样率只是4:4:4的一半。对非压缩的8比特量化的图像来说,每个由两个水平方向相邻的像素组成的宏像素需要占用4字节内存。

   (3) YUV 4:1:1

    4:1:1的色度抽样,是在水平方向上对色度进行4:1抽样。对于低端用户和消费类产品这仍然是可以接受的。对非压缩的8比特量化的视频来说,每个由4个水平方向相邻的像素组成的宏像素需要占用6字节内存。

   (4)YUV 4:2:0

  4:2:0并不意味着只有Y,Cb而没有Cr分量。它指得是对每行扫描线来说,只有一种色度分量以2:1的抽样率存储。相邻的扫描行存储不同的色度分量,也就是说,如果一行是4:2:0的话,下一行就是4:0:2,再下一行是4:2:0...以此类推。对每个色度分量来说,水平方向和竖直方向的抽样率都是2:1,所以可以说色度的抽样率是4:1。对非压缩的8比特量化的视频来说,每个由2x2个2行2列相邻的像素组成的宏像素需要占用6字节内存。

        原始4:4:4             

    色度取样4:2:2              

    色度取样4:1:1           


    色度取样4:2:0           


5. 色度格式

   4:2:0格式是指色差信号U,V的取样频率为亮度信号取样频率的四分之一,在水平方向和垂直方向上的取样点数均为Y的一半。

 

二、音频(语音)


1.wav文件格式

1.1

   WAVE文件作为多媒体中使用的声波文件格式之一,它是以RIFF格式为标准的。

   RIFF是英文ResourceInterchange File Format的缩写,每个WAVE文件的头四个

   字节便是“RIFF”。

   WAVE文件是由若干个Chunk组成的。按照在文件中的出现位置包括:RIFF WAVE

Chunk, Format Chunk, Fact Chunk(可选), DataChunk。具体见下图:

 

------------------------------------------------

|             RIFF WAVE Chunk                  |

|             ID = 'RIFF'                     |

|             RiffType = 'WAVE'                |

------------------------------------------------

|             Format Chunk                     |

|             ID = 'fmt '                      |

------------------------------------------------

|             Fact Chunk(optional)             |

|             ID = 'fact'                      |

------------------------------------------------

|             Data Chunk                       |

|             ID = 'data'                      |

------------------------------------------------

              Wav格式包含Chunk示例

   以'FIFF'作为标示,然后紧跟着为size字段,该size是整个wav文件大小减去ID和Size所占用的字节数,FileLen- 8 = Size。然后是Type字段,为'WAVE',表示是wav文件。

   以'fmt '作为标示。一般情况下Size为16,此时最后附加信息没有;如果为18则最后多了2个字节的附加信息。主要由一些软件制成的wav格式中含有该2个字节的附加信息。

   Fact Chunk是可选字段,一般当wav文件由某些软件转化而成,则包含该Chunk。

   Data Chunk是真正保存wav数据的地方,以'data'作为该Chunk的标示。然后是数据的大小。紧接着就是wav数据。

   其中除了FactChunk外,其他三个Chunk是必须的。每个Chunk有各自的ID,位于Chunk最开始位置,作为标示,而且均为4个字节。并且紧跟在ID后面的是Chunk大小(去除ID和Size所占的字节数后剩下的其他字节数目),4个字节表示,低字节表示数值低位,高字节表示数值高位。下面具体介绍各个Chunk内容。

   PS:所有数值表示均为低字节表示低位,高字节表示高位。


1.2

   WAVE文件是非常简单的一种RIFF文件,它的格式类型为"WAVE"。RIFF块包含两个子块,这两个子块的ID分别是"fmt"和"data",其中"fmt"子块由结构PCMWAVEFORMAT所组成,其子块的大小就是sizeofof(PCMWAVEFORMAT),数据组成就是PCMWAVEFORMAT结构中的数据。

                                                 

                    

    "data"子块包含WAVE文件的数字化波形声音数据,其存放格式依赖于"fmt"子块中wFormatTag成员指定的格式种类,在多声道WAVE文件中,样本是交替出现的。如16bit的单声道WAVE文件和双声道WAVE文件的数据采样格式分别如下图所示:

    16位单声道:

                                          

                

    16位双声道:

                

                                          

2.PCM编码

    其中,数字信号是对连续变化的模拟信号进行抽样、量化和编码产生的,称为PCM(Pulse-code modulation),即脉冲编码调制。PCM中的声音数据没有被压缩,如果是单声道的文件,采样数据按时间的先后顺序依次存入(它的基本组织单位是BYTE(8bit)或WORD(16bit)),如果是双声道的文件,采样数据按时间先后顺序交叉地存入。如下图所示:

                                    

    PCM的每个样本值包含在一个整数i中,i的长度为容纳指定样本长度所需的最小字节数。首先存储低有效字节,表示样本幅度的位放在i的高有效位上,剩下的位置为0,这样8位和16位的PCM波形样本的数据格式如下所示。

    

                                     



0 0
原创粉丝点击