第一章:多媒体基础知识

1.1 从现实世界到数字世界

1.1.1 颜色和图像

  数字世界中一般都是用RGB(三原色)色彩空间。
  计算机中,图像的存储一般使用位图(Bitmap),也就是一个个点来表示,这个点就是像素。比如宽高分别为100和200的图像,横向有100个像素,纵向有200个像素,一共有20000个像素。如果是RGB色彩的图像,则每个颜色分量对应一个通道,通常单个像素的每种颜色用8位表示,三种颜色24位,所以要也称24位真彩色。
  为了描述透明的图像,在每个像素上增加一个表示透明度的分量,称为Alpha通道,占1个字节,可以表示256(28)种透明度,这种色彩空间称为RGBA,一个像素正好4个字节,可以用32位整数来表示。计算机对整数的计算比一个一个字节计算高效,所以通常用整数对图像进行计算。由于不同计算机的存储方式不一样(大端序和小端序),为了实现图像互通,所以出现了多种存储方式(RGBA、ABGR、BGRA、ARGB)。

1.1.2 电影、电视和视频

  电视是一行行刷新显式的(1080p,p就是逐行扫描,所以完整扫完一副图像,主要是由高度决定的,所以常说1080p,不说1920p)。
  电影和视频其实是快速闪过的、一帧一帧的不连续的图像,每秒闪过的帧数称为帧率(FPS,Frames Per Second)。目前常见的视频都是25fps以上,1帧1080p的图像有2073600像素,如果按照8位色深的RGB格式存储,需要约6M存储空间,按25fps算,一秒钟需要150M,即1200Mbit/s,这超过了一个千兆以太网的带宽。
  为了降低存储空间和传输带宽的占用2,可以使用视频压缩技术(视频编码)。主要是:一,人眼不是对所有颜色敏感,可以去掉一些颜色,对图像进行压缩,称为有损压缩,代表有JPEG;二,两帧图像之间差异不大,所以可以存储或传输图像间的差异信息,而非整个图像,常见的有H.264(AVC),H.265(HEVC)、VP8、AV1等。图像压缩后可以大大降低存储空间和带宽的占用,比如常见的1080p@25fps视频,只需要2Mbit/s~4Mbits/s的传输带宽就够了。注意:实际占用和帧率、分辨率,帧间变化都是正相关的。
  在音视频应用中,视频在传输到对端后需要进行解码,才能输送到显示器上显示。需要编解码的视频图像一般不使用RGB色彩空间,而是使用一种称为YUV的色彩空间。两者之间可以转换,有损但完全可接受。YUV也是一种编码方法,Y表示明亮度,UV分别表示色度和浓度。不同于RGB一般按像素存储(RGBRGBRGB),YUV图像一般按平面存储,即将所有的Y放到一起,UV亦然(YYYYUUUUVVVV)。
  在这种编码算法下,如果编码后一帧的数据丢失,则会影响后面的解码,如果强行解码会花屏(因为差异信息找不到)。因而在实际的编码器上,一般会对图像分组,分组后的图像称为GoP(Group of Pictures)。每隔一定数量(比如100帧,可以根据需要变化)的图像,就对一帧完整的图像进行编码,其编码过程不依赖于它前后的图像,这里主要是不依赖图像间的差异编码。这种不依赖前后图像,可单独编解码的图像称为I帧,因此整个GoP序列的第一帧也称为关键帧。这样,即使前面丢了很多数据,只要一个新的关键帧到来 ,就能继续正确解码。
  除了I帧,还有P帧(前向预测编解码图像帧) ,他会参考前面的图像,仅对部分差异编码;以及B帧(双向预测编码图像帧),它参考前后面的帧,压缩率更高,更省带宽和存储空间,常用于视频文件的存储。由于B帧需要参考后面的帧,所以收到后不能立即解码,在实时音视频应用中一般不使用B帧。(B找I和P参考,P找I参考)

1.1.3 音频

  采集音频到计算机的过程需要执行一个模数转换(ADC) 。任何声音的波形都可以分解为有限个或无限个完美的正弦波(傅里叶变换) 。音量决定是否能听见,频率大小决定听到的内容。

  通过采样、量化和编码3个步骤,可以将模拟信号转化为数字信号。根据采样定理,当抽样频率是模拟信号频率带宽的两倍时,就能够完全还原原来的信号。

  模数转换通常使用PCM(Plus Code Modulation,脉冲编码调制)方法,它是一种通用的将模拟信号转化为0和1表示的数字信号的方法。例如,人的声音频率范围一般是300~4000Hz,通过滤波器过滤超过4000Hz的频率,得到4000以内的模拟信号。然后根据采样定理,使用两倍于带宽的抽样频率即8000Hz进行抽样,便得到离散的数字信号。使用PCM方法得到的数字信号就称为PCM信号,一般一次抽样得到的值用2字节表示。
  有两个以声道(在不同空间位置采集的信号)的音频称为立体声。最简单的立体声分为左右两个声道,可以区分音频的远近和位置,听起来更真实。一般来说,双声道立体声的音频都会交错存储,如果以L代表左声道的一个采样点,R代表右声道的一个采样点,则采样数据存储方式类似“LRLRLRLR” 。有的音视频文件包含更多声道,称为立体声,更加身临其境。

1.1.4 音视频封装、传输和未来。

  将音频和视频组合在一起称为封装,有时是为了存储到文件,有时是为了实时传输。典型的封装格式如mp4,针对文件的元数据和音视频有很多不同的容器,音频和视频一般也是交错存储的,这主要是为了可以实时播放和同步。对于音视频网络传输,在广播电视领域一般使用TS封装和传输,音频和视频也是交错发送方的,主要是为了保证实时性。RTMP流一般用于CDN推流,也是音频和视频交错发送。SIP及WebRTC通信的实时性更好一些,使用RTP流传输,音频和视频使用不同的流(不同端口)发送,有时为了节省端口号也会合并到一个流上发送。

1.2 视频图像像素点的数据格式

1.2.1 图像的位深

  为了表示颜色所使用的位数就称为颜色的位深,彩色图像通常使用R、G、B三色表示,每个单色分别计算位深。我们常说的24位真彩色就是3种位为8的R、G、B颜色的混合,可以表示12777216(224)种颜色。
  如果需要表示更多颜色,就需要更多位。常见的有10位位深,表示一个RGB像素需要30位,将近4字节。随着4K,8K视频的出现,以及人们对图像质量越来愈高的要求,也出现了12、16位的位深。

1.2.2 FourCC

  世界上有如此多的色彩和图像格式,为了表示不同的图像类型和像素排列格式,人们发明了FourCC代码。FourCC代码是一个32位无符号整数,使用大端序编码4个ASCII字符序列。我们之前讲过的RGBA,ARGB等都是FourCC。与RGB色彩空间类似,YUV图像也有多种像素类型,如YUYV、YUY2、UYUV等,而且YUV图像也支持Alpha通道,如YUYA和AYUV等。
  有些FourCC代码比较直观 ,如RGBA,字母 表示与内存中的排列顺序也相同;有的就稍微差一点如Y444格式;常用的YUVI420格式的图像的FourCC代码为YV12或NV12,就不那么直观了。

1.2.4 YUV色彩表示

  YUV诞生于黑白电视向彩色电视过渡时期。黑白电视只有Y(亮度)分量,也就是灰度值。在彩色电视中,除了Y以外,还使用U和V来表示图像的色度,分别代表蓝色通道和红色通道与亮度的插值。所以U和V其实是色差信号,他们告诉电视要偏移某像素的颜色,而不改变其亮度。
  相对于Y来说,人眼对UV不大敏感,因此可以在图像存储时降低UV分量的分辨率,以节省存储空间。YUV图像的像素存储格式一般采用A:B:C表示法,根据采样程度不同,以及像素排列格式不同,有很多不同表示。我们用2×2的图像大小演示

  1. YUV444格式
    YUV444表示水平每4像素种YUV各取4个,即每个像素YUV各取一个,则一个像素是3字节。
    有两种存储格式:按像素存储格式为Y1U1V1Y2U2V2Y3U3V3Y4U4V4; 平面存储格式为Y1Y2Y3Y4U1U2U3U4V1V2V3V4
  2. YUV422格式
    表示水平每2像素中Y取样2个,U和V各1个,则平均一个像素2字节。存储格式为Y1U1Y2V2Y3U3Y4V4。缺少的UV使用相邻元素的UV补充回来,人眼看不出来。
  3. YUV411格式
    水平每4像素中的Y取样四个,UV各一个在这里插入图片描述
  4. YUV420
    水平每2像素和垂直每2像素中Y取4个,UV各取一个。使用比较广泛。下图中UV位置不是固定的,可以使用任意一个。
    在这里插入图片描述

1.2.5 RGB色彩表示

  三原色光模型又称RGB颜色模型,是一种加色模型,调整三种颜色的比例就能合成各种色彩的光。(三个荧光点组成一个像素,离得近但是不重叠)
  在典型使用上,数字视频的RGB不是全值域的。视频RGB使用有比例和偏移量的约定,即(16,16,16)是黑色,(235,235,235)是白色。这种比例和偏移量用在了CCIR601的数字RGB定义中。
  RGB常见的展现方式分16位模式和32位模式。16位模式通常由RGB565、ARGB1555、ABGR1555等不同模式表示,一般是RGB565,因为人眼对绿色更加敏感。
  32位模式也称ARGB8888,可以提高数据处理速度,正好对应一个32位整数。

1.2.6 HSL与HSV色彩表示

  虽然视频的采集和显式采用的都是RGB色彩空间,但是对人眼而言,RGB其实并不直观,比如我们很难反映出粉红的RGB值。为了更直观的表示颜色,所以引入HSV和HSL色彩模型,他们是通过将RGB空间中的点映射到圆柱坐标系中实现的。比如从黄色过渡到红色,只需要调整色相即可,而饱和度和亮度保持不变。因此HSL和HSV更适合人的色彩感知,而RGB更适合显示领域。在图像处理中使用较多的是 HSV 颜色空间,它比 RGB 更接近人们对彩色的感知经验。非常直观地表达颜色的色调、鲜艳程度和明暗程度,方便进行颜色的对比。
  HSL即色相(HUE,通常所说的颜色名称)、饱和度(Saturation,色彩的纯度,越高色彩越纯,越低则变灰,取值0~100%)、 亮度(Lightness,取值0~100%);HSV(V指明度)。

  引用自sdudybody,书上有点啰嗦,直接看这个

1.3 视频逐行和隔行扫描、NTSC与PAL制式

1.3.1 逐行和隔行扫描

直接看这个

逐行扫描:电子束在屏幕上一行接着一行从左到右的扫描方式。

隔行扫描:一张图像的扫描不是在一个场周期完成的,而是由两个场周期完成的.

无论是逐行扫描还是隔行扫描,为了完成对整个屏幕的扫描,就也就是一帧画面的扫描,扫描线并不是完全水平的,而是稍微倾斜的。为此,电子束既要做水平方向的运动,又要做垂直方向的运动。前者形成一行的扫描,称为行扫描,后者形成一幅画面的扫描,称为场扫描。

以NTSC电视为例,在工作的时候把一幅525行的图像分成两场来扫描,第一场成为奇数场,只能扫描奇数行(依次扫描1、2、3…行),第二场称为偶数场,只扫描偶数行(依次扫描2、4、6…行),通过两场扫描来完成一帧图像扫描的行数,由于人眼具有视觉暂留效应,因此去看在眼中时,仍是一幅完整的图像,这就是隔行扫描。

PAL电视标准,每秒25帧,电视扫描线为625线,奇场在前,偶场在后,标准的数字化PAL电视标准分辨率为720*576, 24比特的色彩位深,画面的宽高比为4:3, PAL制电视的供电频率为50Hz,场频为每秒50场,帧频为每秒25帧,扫描线为625行。

也就是说,PAL制式意味着在扫描一幅画面时,是采用了隔行扫描的方式,扫描一场,是一帧画面的一半像素,扫描两场,也就是将奇数场和偶数场全部扫描,才是完整的一帧画面。PAL制式一秒扫描50场,也就是扫描了25帧画面。

NTSC制电视的供电频率为60Hz,场频为每秒60场,帧频为每秒30帧,扫描线为525行,图像信号带宽为6.2MHz。采用NTSC制的国家美国、日本等国家。

NTSC和PAL归根到底只是两种不同的视频格式,其主要差别在于NTSC每秒是60场而PAL每秒是50场,由于现在的电视都采取隔行模式,所以NTSC每秒可以得到30个完整的视频帧,而PAL每秒可以得到25个完整的视频帧。

1.4 音频采样数据格式

  数字音频通过从模拟信号中采样并转换成二进制信号,并以二进制式电子、磁力或光学信号存储。这些信号之后会被进一步编码以便修正存储或传输时产生的错误,然而在数字化的过程中,这个为了矫正错误的编码步骤并不严谨。在广播或者所录制的数字系统中,以频道编码的处理方式来避免数字信号的流失是必要的一环。信号出现错误是,离散的二进制信号中允许编码器拔出重建后的模拟信号。频道编码的其中一例就是CD所使用的八比十四调制。
  数字音频通过ADC将模拟信号转化为数字信号,ADC对音频频率采样并转化为特定的位分辨率。例如,CD音频的采样率为44.1kHz,每个声道都以16位解析。对于双声道而言,他有左右两个声道。如果模拟信号的带宽未受限,那就必须在转换前使用降噪滤波器避免声音损失。
  这样处理后的数字音频是可以被存储和传输的。最后数字音频还能通过DAC转换回来。
  通过ADC将模拟信号专户为数字信号,或通过脉冲调制编码(PCM)对连续变化的模拟信号进行采样、量化和编码,转换成离散的数字信号,这就实现了音频信号的采集。我们常说的PCM文件 就是未经封装的音频原始文件或者叫做音频“裸数据”。

1.4.1 声道

声道是指声音在录制或者播放时在不同空间位置采集或者回放的相互独立的音频信号,声道数也就是声音录制时的音源数量。声道布局图如下:
在这里插入图片描述

1.4.2 采样率

采样率·定义了每秒从连续信号中提取并组成离散信号的采样个数,他用赫兹(Hz)表示。采样率的倒数称为采样周期或者采样时间,他是采样的时间间隔。
根据奈奎斯特采样定理,采样之后的数字信号能保留的原始的频宽基本上是采样率的一半。
常用的采样率有8000Hz(电话)、11025Hz(AM调幅广播)、22050和24000(FM调频广播)、32000Hz(MiniDV数码视频)、44100Hz(音频CD所用的采样率,也常用于MPEG-1)等等。
44100为什么不是整数倍的原因:人的听觉频率范围大约20kHz,根据采样定理,使用40kHz的采样频率就够了,如果再加10%,就是44kHz,多的100哪里来的呢?要从数码录音说起。早期的数码录音就是一个PCM编码器加录像机,所以,数据音频信号是在录像机中存储的。PAL制式的录像机每帧有625条扫描线,但是实际可用的扫描线位588条,由于隔行扫描,扫描线减半,就是294条。每条扫描线可以存储3个采样点的信息,场频位50Hz,因而采样点的数量位294×50×3=44100.NTSC制式设备有525条扫描线,实际可用490,减半245,场频60Hz,245×60×3=44100。

1.4.3 采样位深

采样位深就是每个采样点使用多少位来表示。位深代表的是震动幅度所能表达的精确程度或者粒度。假设数字信号在-11的区间,如果位深为16,那么第一位表示正负号,剩下的15位克表示范围为032767,那么振幅就可以精确到1/32768的粒度。
一般网络电话采用16位位深,这样不影响听觉体验,并且存储和传输的耗费也不是很大。而在做音乐或者有更高保真度要求的场景中则可以使用32位甚至64位。来减少失真。

1.4.4 带宽计算

假设一个双通道立体声、采样率是48000,采样位深是16位、时长为1分钟的音频所占用的存储空间的计算公式如下:
24800016*40 = 92160000bit
带宽需要除以60s,为1.536Mbit/s。
使用MP3或者AAC编码可以将音频压缩(有损)到原来的1/10大小,这样可以节省内存和带宽,但是在语音识别场景下,尽量不要使用有损压缩,影响识别的准确率。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值