音视频编解码格式基础分析

 一、视频分析

1.YUV与RGB格式转换

YUV格式具有亮度信息和色彩信息分离的特点,但大多数图像处理操作都是基于RGB格式。因此当要对图像进行后期处理显示时,需要把YUV格式转换成RGB格式。RGB与YUV的变换公式如下:

 

Y=0.30R+0.59G+0.11B         R = Y + 1.4075 *(V-128

U=0.493(B-Y),            G = Y – 0.3455 *(U–128) – 0.7169 *(V –128)

V=0.877(R-Y)              B = Y + 1.779 *(U – 128

因为U和V是差值,其取值范围在正负值上都有分布,为使其方便处理,通常会加一个128的偏移量,使之为非负数。

  1.1 整型算法

       要用整型运算代替浮点运算,当然是要用移位的办法了,我们可以很容易得到下列算法:

        u = YUVdata[UPOS] - 128;
        v = YUVdata[VPOS] - 128;

        rdif = v + ((v * 103) >> 8);
        invgdif = ((u * 88) >> 8) +((v * 183) >> 8);
        bdif = u +( (u*198) >> 8);

        r = YUVdata[YPOS] + rdif;
        g = YUVdata[YPOS] - invgdif;
        b = YUVdata[YPOS] + bdif;

为了防止出现溢出,还需要判错计算的结果是否在0-255范围内,做类似下面的判断。

        if (r>255)
            r=255;
        if (r<0)
            r=0;

        要从RGB24转换成RGB565数据还要做移位和或运算:

        RGBdata[1] =( (r & 0xF8)  | ( g >> 5) );
        RGBdata[0] =( ((g & 0x1C) << 3) | ( b >> 3) );

2.不同色度采样格式

根据人眼对亮度敏感而对色度不敏感,可以有不同的色度采样方式:

4:4:4:每一个像素中都有该像素对应的Y,U,V分量

4:2:2:在水平方向上,即每一行的像素中,两个色差信号的取样点数减少为亮度取样点数的一半。也就是说,一行中,如果一个像素是拥有该像素所对应的所有YUV分量,那么下一个像素只有色度信号分量。

4:2:0:在每一行中,亮度取满点,色度取样点只有亮度取样点的一半,且色度只取两个色度分量的其中一个,下一行再取另一个色度分量。

                                                          原始信号4:4:4     

                                                           色度取样4:2:2    

                                                           色度取样4:2:0    

 

二、 音频分析

1. wav文件格式

      WAVE扩展名为WAV该格式记录声音的波形,故只要采样率高、采样字节长、机器速度快,利用该格式记录的声音文件能够和原声基本一致,质量非常高,但这样做的代价就是文件太大。

      采样位数——可以理解数字音频设备处理声音的解析度,即对声音的辨析度。就像表示颜色的位数一样(8位表示256种颜色,16位表示65536种颜色),有8位,16位,24位等。这个数值越大,解析度就越高,录制和回放的声音就越真实。

      采样频率——就是对声音信息1秒钟采样多少次,以记录成数字信息。如CD音频是44.1KHz采样率,它对声音以每秒44100次的频率来记录信息。原则上采样率越高,声音的质量越好。

       比特率 —— 表示单位时间( 1 秒)内传送的比特数 bps bit per second ,位 / 秒)的速度。作为一种数字音乐压缩效率的参考性指标,通常使用 kbps (通俗地讲就是每秒钟 1024 比特)作为单位

      1.1音频数据源取样频率:44.1kHz

      1.2量化比特数:16bit

      1.3每个WAVE文件的头四个字节便是“RIFF”。WAVE文件由文件头和数据体两大部分组成。其中文件头又分为RIFF/WAV文件标识段和声音数据格式说明段两部分,如下图:

                                                                                                                  

                                                                                                         

        16bit的单声道WAVE文件和双声道WAVE文件的数据采样格式分别如下图所示:

                                             16位单声道:                                   

               

 

                                            16位双声道:                         


2. PCM编码

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

           

      PCM数据的存放方式:   样本1 样本2 

      双极性表示方法:PCM编码有一位表示极性

                                              


 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值