音视频的一些基础概念总结

2020-05-15  本文已影响0人  哈库呐玛塔塔__

本文中涉及到的一些编码,图像等的具体处理在代码上的体现可查看:[总结]视音频编解码技术零基础学习方法

基本概念-颜色

RGB和YUV:图像常见的两类数字化表达。

RGB是基于三原色原理,对红绿蓝三个颜色通道叠加得到各式各样的颜色。主要用来在显示器上显示(渲染)。

常见的RGB格式:

YUV是另一种编码方式,Y表示明亮度,U表示色度,V表示浓度。描述影像的色彩及饱和度,用于指定像素的颜色。主要用于食品信号的压缩、传输和存储。

YCbCr:YUV的另外一种表示YUV是信号领域,YCbCr是数字图像领域。Cr红色分量信号,Cb蓝色分量信号,Y除了g绿色分量信号,还叠加了亮度信号。

常见的YUV/YCbCr格式的采样方法有:
4:4:4 、 4;2:2 、 4:2:0 、 4:1:1。


4:4:4 4:2:2 4:2:0 4:1:1

其中4:2:0并不意味只有Y,Cb没有Cr,它指的是对每行扫描线来说只有一种色度分量以2:1的抽样率存储。
YUV的存储格式:
平面格式:先连续存储所有像素点的Y分量,然后存储U分量,最后是V分量。
打包模式:每个像素点的YUV分量连续交替存储.

YUV格式: image.png image.png

RGB和YUV的转化。
RGB转YUV:
Y = (0.257 * R) + (0.504 * G) + (0.098 * B) + 16
Cr = V = (0.439 * R) - (0.368 * G) - (0.071 * B) + 128
Cb = U = -( 0.148 * R) - (0.291 * G) + (0.439 * B) + 128
YUV转RGB:
B = 1.164(Y - 16) + 2.018(U - 128)
G = 1.164(Y - 16) - 0.813(V - 128) - 0.391(U - 128)
R = 1.164(Y - 16) + 1.596(V - 128)
RGB用来显示,YUV用来传输

基本概念-视频

视频:连续的图像变化每秒超过24帧(frame)画面以上时,看上去就是平滑连续的视觉效果,这样连续的画面叫做视频。
帧(Frame):影像中常用的最小单位,一帧就是一副静止的画面。
帧速率(FPS):每秒说传输的图片个数,或者可以理解为处理器每秒刷新的次数。FPS越高,画面越流畅。
转码:实质是一种针对特定的音视频格式内容压缩成另一种视频格式的方式。

视频的构成 image.png 一个完整的视频文件是由音频和视频两部分组成的,而音频和视频又是由封装格式和编码格式构成的

通常我们看见的视频文件的后缀名就是封装格式比如MP4,3GP,RMVB,MOV。这些封装格式里边还有一层编码文件。常见的视频编码格式有H.264,mpeg-4,常见的音频编码格式有MP3、AAC。

常见的音视频封装格式编码格式以及他们的发展历程

视频编码(压缩)方式/编码(压缩)原理/概念

视频数据有极强的相关性,帧与帧之间有大量冗余信息,压缩的本质就是去除这些冗余信息。
压缩的方向:

DTS:Decode Timestamp 解码时间戳。用于解码阶段进行视频的同步和输出。
PTS:Presentation Timestamp 显示时间戳
硬编码:使用GPU计算,性能高 VideoToolBox、AudioToolBox。但是特性支持有限,而且压缩率一般偏低
软编码:使用CPU来进行编码计算,实现简单直接,升级容易,但是CPU负载重。压缩率比较高,而且支持的H264特性也会比硬编码多很多,相对来说比较可控。

播放一个网络上的视频需要的步骤

1.解协议:将流媒体协议的数据,解析为标准的响应的封装格式数据。
2.解封装:将输入的封装格式的数据,分离成音频流压缩编码数据和视频流压缩编码数据。
3.解码:就是将视频/音频压缩编码数据,解码成为非压缩的视频/音频原始数据。

上一篇 下一篇

猜你喜欢

热点阅读