抱歉,您的瀏覽器無法訪問本站
本頁面需要瀏覽器支持(啟用)JavaScript
了解詳情 >

图像的概念

图像就是一个由很多个像素点组成的的,像素点(Pixel)。像素是图像的基本组成单位,例如我们常说一张图片是1920*1080的大小,意味着这张图片是一个长度为1920个PX和宽度为1080个PX和乘积为2 073 600PX的图像。

PPI(每英寸像素数)

PPI全称是Pixels Per Inch,每英寸像素数。表示一英寸能够存放多少像素点,当PPI越高,也就意味图像越清晰

图像颜色

首先任何颜色,都可以通过红色(Red)、绿色(Green)、蓝色(Blue)按照一定比例调制出来。这三种颜色,被称为“三原色”。

在计算机里,RGB也被称为基色分量。他们的取值范围从0-255,他们的组合能够表示256×256×256=16,777,216种,共有1600万种颜色,也称24位色。这个范围已经超过了人眼可见的全部色彩,所以也叫真彩色。

视频的概念

视频是由于人体眼睛在画面快速切换的时候,会产生画面残留,感觉起来就是连贯的动作,因此视频就是一系列图片组成的。

视频帧

帧是视频的一个画面,一个视频由许许多多的帧组成。

帧率

帧率代表单位时间内帧的数量,单位:帧/秒或者FPS(frames per second),一秒里帧数越多,则画面更流畅,过渡更自然。不过一般人体只能感觉到最多每秒85的帧率,在高的的帧率在视频里面没有什么意义。

  • 24/25FPS:1秒24/25帧,这是一般电影的帧率;
  • 30/60FPS:1秒30/60帧,这是一般玩游戏可以满足的帧率;

原样视频的大小

根据前面的图像知识和视频知识,我们可以了解到一个分辨率为1920*1080,帧率为30的视频的大小,可以这样计算1920×1080×30=186.6MB。这意味这每秒的视频大小都有186MB,这肯定是存在问题的,因此音视频开发就是对视频进行压缩编码。

编码的概念

编码:按照指定的格式方法,将信息从一种格式转换为另一种格式。

视频编码:将一种视频格式转换为另一种视频格式。

编码的目的就是为了压缩,各种视频编码都是为了将视频体积变的更小,有利于视频存储和传输。(毕竟带宽贵啊)

即时通讯音视频开发(十九):零基础,史上最通俗视频编码技术入门_6.jpg

A/D转换

A/D转换是将模拟信号转换成数字信号,它将时间连续,幅值也连续的模拟量转换为时间离散,幅值也离散的数字信号。因此A/D转换一般要经过取样、保持、量化、编码这四个过程。

YUV信号

YUV简单来说也是一种颜色数字化表示方式。在视频通信系统中使用YUV作为颜色格式是因为RGB信号不利于视频压缩编码。YUV中Y表示亮度(Luma),UV表示色度。

人眼对色度的敏感程度要低于对亮度的敏感程度

YUM采样一般使用的是YUV:4:2:0的采样方式,这样能够得到$\cfrac{1}{2}$的压缩率

视频编码实现的原理

视频编码算法就是寻找规律,构建模型,去除视频里的冗余信息,优先消除的就是空间冗余和时间冗余,目前视频编码格式最火的就是HEVC(H.265)了。

种类 内容 压缩方法
空间冗余 像素间的相关性 变换编码,预测编码
时间冗余 时间方向上的相关性 帧间预测、运动补偿
视觉冗余 人的视觉特性 非线性量化、位分配

即时通讯音视频开发(十九):零基础,史上最通俗视频编码技术入门_9.jpg

视频数据的封装

视频封装就是将编码压缩好的视频轨和音频轨按照一个格式放到一个文件中,目前主流的视频容器有这些:MPG、VOB、MP4、3GP、ASF、RMVB、WMV、MOV、Divx、MKV、FLV、TS/PS等。

在移动端,一般将视频封装成MP4,它支持H264和H265等视频编码和AAC和MP3等音频编码。

硬解码和软解码

  • 软解码:利用CPU的计算能力来进行解码
    • 优点:使用统一的算法,兼容性会很好
    • 缺点:如果CPU能力不行,解码会比较慢,且手机会发热
  • 硬解码:利用手机上专门的解码芯片来加速解码
    • 优点:通常硬解码的速度会快很多
    • 缺点:容易出现兼容性的问题

参考资料

即时通讯音视频开发(十九):零基础,史上最通俗视频编码技术入门-实时音视频/专项技术区 - 即时通讯开发者社区! (52im.net)

零基础入门:实时音视频技术基础知识全面盘点 - 知乎 (zhihu.com)