走进音视频的世界——音视频的基本概念

2023-05-16

音视频通用的基本概念有码率、时长,而不同音视频有不同的封装格式、编码协议。其中视频关键参数有分辨率、帧率、画质、旋转角度、像素格式,而音频关键参数有采样率、声道数、声道布局、音质、采样数、采样位数、帧时长。接下来与大家详细探讨。

目录

音视频背景

MPEG发展历史

带着问题寻找答案

一、视频

1、码率

2、分辨率

3、帧率

4、像素格式

5、画质

6、色域与HDR

7、旋转角度

8、时长

9、封装格式

10、编码协议

二、音频

1、采样率

2、声道

3、声道布局

4、音质

5、封装格式

6、编码协议

7、采样数

8、采样位数

9、存储空间

10、帧时长

11、采样格式


音视频背景

ISO:国际标准化组织,官方网址:ISO - International Organization for Standardization。很多音视频协议都可以从这里找到。

MPEG:ISO与IEC下属的针对运动图像与语音压缩制定国际标准的组织,全称为运动图像专家组(Moving Picture Experts Group),官网网址:https://mpeg.chiariglione.org。

IETF:互联网工程任务组(Internet Engineering Task Force),官方网址:https://www.ietf.org。常见的网络协议、多媒体通信协议的地址:https://tools.ietf.org/html/。

MPEG发展历史

名称

编号

年份

描述

MPEG1

ISO/IEC11172

1992

用于存储语音的编码,MPEG1 audio layer3,简称mp3

MPEG2

ISO/IEC13818

1994

用于数字电视、图像通信的编码

MPEG4

ISO/IEC14496

1998

用于视频电话、家庭影音的编码

MPEG7

          /

1999

生成一种用来描述多媒体内容的标准,MPEG7=1+2+4

MPEG21

         /

1999

多媒体框架

带着问题寻找答案

1) 如何计算视频平均码率和传输动态码率;

2) 如何切换在线视频分辨率;

3) 如何实现自适应与全屏播放;

4) 如何实现倍速播放;

5) 摄像头为什么能抓拍到汽车超速;

6) 为什么有些视频默认横屏显示,有些竖屏显示;

7) 如何得到视频的时长;

一、视频

1、码率

码率,又叫比特率,单位时间内传输的数据量,单位一般为kbps(千位每秒)。需要注意的是,这里b代表bit,而不是byte。计算公式:平均码率(kbps)=文件大小(kb)*8/时间(s)。动态码率(kbps)=每秒传输数据量(kb)*8。

恒定码率:CBR,码率稳定可控,带宽要求不高,图像变化量比较大时方块效应比较明显。

动态码率:VBR,码率波动较大,带宽要求较高,图像变化量比较大时方块效应有所改善。发生网络抖动时,比较容易丢包,需要重传,或者FEC前向纠错,从而带来延时。

2、分辨率

分辨率又称为解析度,分辨率越高,像素越多,图像越清晰。

视频分辨率:又称为图像分辨率,由视频的宽高组成,表示形式宽x高,常见的视频分辨率有480P、720P、1080P、2K(2048x1080/2160x1440)、4K(4096x2160/3840x2160),具体如下表1所示。

屏幕分辨率:又称为显示分辨率,描述屏幕分辨率的单位是ppi(pixel per inch,每英寸的像素数)。

位分辨率:又称为位深(BitDepth),每个像素点存储信息的位数。常见的有:8位、16位、24位、32位色彩。Android的Bitmap常见的有ALPHA_8、RGB_565、ARGB_4444、ARGB_8888。

显示模式

水平像素x垂直像素

宽高比

QCIF

176x144

11:9

QVGA

320x240

4:3

CIF

352x288

11:9

nHD

640x360

16:9

VGA

640x480

4:3

HD

1280x720

16:9

Full HD

1920x1080

16:9

2K(FHD+)

2048x1080

17:9

4K(UHD)

3840x2160

16:9

                                                               表1-常见分辨率及其显示模式

3、帧率

视频帧率:测量显示帧数的量度,单位为每秒显示帧数(FPS,全称为Frame Per Second)。一般视频帧率为24fps,P制(PAL,德国提出,中国、印度、巴基斯坦等国家使用)为25fps,也就是每帧显示40ms,N制(NTSC,美国标准委员会提出,美国、日本、韩国等国家使用)为30fps。有些超高帧率的视频达到60fps。

显示帧率:以帧为单位的位图图像连续出现在显示器的频率,也称为刷新速率。Android设备刷新率一般为60Hz,也就是帧率为60fps,每帧为16ms,超过16ms能给人的肉眼带来延迟卡顿的感觉。做性能优化方面,也就是保证从测量、布局、绘制、上传指令、与GPU交换缓冲区等一系列动作在16ms完成。Android11支持120Hz的更高帧率,一般为对帧率要求极高的应用场景,比如互动游戏。

4、像素格式

像素格式:像素色彩分量的排列,由每个像素使用的总位数以及各分量的位数决定。图像的像素格式一般是RGBA四个分量通道各占8bits,组成一个32位的像素。其中R代表Red、G代表Green、B代表Blue、A代表Alpha。但是,视频压缩存储的像素格式不是RGBA,而是YUV,其中Y代表亮度(Luma),U代表色度(Chroma),V代表对比度(Contrast)。

5、画质

画质:画面质量,由清晰度、锐度、解析度、色彩纯度、色彩平衡等指标构成。

清晰度:指图像细节纹理及其边界的清晰程度。

锐度:反应图像平面清晰程度,以及图像边缘的锐利程度。

解析度:指像素点的数量,与分辨率对应,分辨率越高,解析度越高。

色彩纯度:指色彩的鲜艳程度。所有色彩都是三原色组成,其他颜色都是三原色混合而成,理论上可以混合出256种颜色。原色的纯度最高。色彩纯度是指原色在色彩中的百分比。

色彩平衡:用来控制图像的色彩分布,使得图像整体达到色彩平衡。

6、色域与HDR

色域:指某种表色模式所能表达的颜色构成的范围区域,色域空间越大,所能表现的颜色越多。

HDR:High Danamic Range,高动态范围,比普通图像提供更多动态范围和图像细节,能够更好反应真实环境的视觉效果。颜色值经过归一化后,范围一般是[0,1]。而HDR可以表达超出1的颜色值,拥有更大的颜色范围。

7、旋转角度

旋转角度:视频的YUV储存方向。一般的视频旋转角度是0°,对应的是横屏显示。后置摄像头竖屏拍的视频,旋转角度为90°,对应的是竖屏显示。Android中可以通过MediaMetaDataRetriever获取旋转角度。

8、时长

视频所有图像播放所需要的时间称为视频时长。计算公式:时长(s)=帧数x每帧时长=帧数x(1/帧率)。假设一个视频帧数为1000,帧率为25fps,那么时长为40s。

9、封装格式

视频的封装格式,由特定格式头+媒体信息+音视频轨(字幕)数据+视频轨索引组成。常见的封装格式有:mp4、mkv、webm、avi、3gp、mov、wmv、flv、mpeg、asf、rmvb等。

10、编码协议

视频经过解封装得到的视频轨数据,是经过编码的,所以显示视频帧前需要解码。不同编码算法组成不同编码协议,常见的有:H264(AVC,一般使用x264编码)、H265(HEVC,一般使用x265编码)、VP8、VP9、MPEG4、MJPEG、WMV3等。

二、音频

1、采样率

采样率:对声音信号每秒的采样次数,采样率越高,声音的还原越真实。采样率单位为Hz,常见的采样率有:8000Hz、16000Hz、44100Hz、48000Hz。人类一般能够听到的声音范围:20Hz~20000Hz。根据奈奎斯特采样定理:当采样频率大于信号中最高频率的2倍时,采样后的数字信号能够完整保留原始信号的信息。

2、声道

声道:指声音在录制或播放时,在不同空间位置采集或回放的相互独立音频信号。声道数指在录音时的音源数量,或者在播放时的扬声器数量。

3、声道布局

不同声道数对应不同声道布局。常见的声道布局有单声道(mono)、立体声道(stereo)、四声环绕、5.1声道。

单声道:只有一个声道,优点数据量小,amr_nb和amr_wb默认为单声道,缺点是缺乏对声音位置定位。

立体声道:一般为两个声道,由左声道、右声道组成,改善对声音位置定位的状况。

四声环绕:由前左、前右、后左、后右组成,形成立体环绕。4.1声道是在四声环绕基础上,增加一个低音。

5.1声道:在4.1基础上,增加一个中场声道,杜比AC3就是采用5.1声道,也就是影院宣传的杜比音效。

4、音质

音质:声音的质量,经过编码压缩后的音频信号保真度,由音量、音高和音色组成。

音量:音频的强度,数值范围0-100,静音时为0,最大值为100。Android中有提供音量增强LoudnessEnhancer,调节声音分贝值。

音高:声音的音调,即音频频率或每秒变化次数。

音色:音频泛音,又称为音品,不同声音表现在波形方面与众不同的特性。

5、封装格式

音频的封装格式,与视频封装格式类似,由特定格式头+媒体信息+音频轨数据组成。常见的封装格式有:mp3、m4a、ogg、amr、wma、wav、flac、aac、ape等。

6、编码协议

音频经过解封装得到的音频轨数据,也是经过编码的。常见的音频编码协议有:mp3、aac、amr_nb、amr_wb、ac3、vorbis、opus、flac、wmav2等。

7、采样数

采样数,即每帧采样的数量。在FFmpeg的AVFrame中,定义为nb_samples。

8、采样位数

采样位数,即每个采样占用多少位。在RIFF(Resource Interchange File Format)资源交换文件格式有个字段bits_per_sample表示采样位数,在FFmpeg也是用这个字段表示采样位数。

9、存储空间

音频的每秒存储空间由:采样率、声道数、每个采样位数。假设采样率为44.1k,声道数为2,采样位数为16。那么,每秒所占存储空间字节数=44100 * 2 * 16 / 8

10、帧时长

音频的帧时长=采样数 / 采样率。假设采样率为44.1k,采样数为1024。那么每帧时长约等于23ms。

11、采样格式

音频的采样格式分为大端存储和小端存储。按照符号划分有:有符号与无符号。按照类型划分有:整型与浮点型。按照存储位数划分有:8位、16位、32位、64位,都是8的倍数。在FFmpeg的AVSampleFormat枚举如下:

enum AVSampleFormat {
    AV_SAMPLE_FMT_NONE = -1,
    AV_SAMPLE_FMT_U8,          // unsigned 8 bits
    AV_SAMPLE_FMT_S16,         // signed 16 bits
    AV_SAMPLE_FMT_S32,         // signed 32 bits
    AV_SAMPLE_FMT_FLT,         // float
    AV_SAMPLE_FMT_DBL,         // double
 
    AV_SAMPLE_FMT_U8P,         // unsigned 8 bits, planar
    AV_SAMPLE_FMT_S16P,        // signed 16 bits, planar
    AV_SAMPLE_FMT_S32P,        // signed 32 bits, planar
    AV_SAMPLE_FMT_FLTP,        // float, planar
    AV_SAMPLE_FMT_DBLP,        // double, planar
    AV_SAMPLE_FMT_S64,         // signed 64 bits
    AV_SAMPLE_FMT_S64P,        // signed 64 bits, planar
 
    AV_SAMPLE_FMT_NB           // Number of sample formats
};

音视频学习和音视频处理可参考项目:FFmpegAndroid

视频教程:一起学习音视频​​​​​​​

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

走进音视频的世界——音视频的基本概念 的相关文章

随机推荐

  • C#连接sqlServer数据库详解

    C 是如何跟SQL Server进行连接的 xff1f 在C NET程序设计中 xff0c 离不开ADO NET ADO NET是 NET连接数据库的重要组件 使用其可以很方便地访问数据库 xff0c ADO NET还可以访问Oracle数
  • C++ 如何用创建txt文件,并且写入内容(汇总)

    void CreatTxt char pathName unsigned char rBuffer int length 创建txt文件 char path 61 34 C 1 txt 34 你要创建文件的路径 ofstream fout
  • 常用邮箱的 IMAP/POP3/SMTP 设置

    通过网上查找的资料和自己的总结完成了下面的文章 xff0c 看完之后相信大家对这三种协议会有更深入的理解 如有错误的地方望指正 POP3 POP3是Post Office Protocol 3的简称 xff0c 即邮局协议的第3个版本 它规
  • Critical error detected c0000374

    最近发现一个新奇的情况导致这个问题出现 版本不一致 简单来说 xff0c 就是有一个类A xff0c 调用类B xff1b 但是这个类B有两个版本B1 xff0c B2 大小不一致 xff1b 类B包含两个类C D 在调用类B时 xff0c
  • 串口通信协议

    概念 串口通信 xff08 Serial Communications xff09 的概念非常简单 xff0c 串口按位 xff08 bit xff09 发送和接收字节 尽管比按字节 xff08 byte xff09 的并行通信慢 xff0
  • [二] Nuttx移植-星瞳pyboard开发板

    目录 一 Nuttx配置文件二 构建自己的配置文件1 include board h文件构建2 kernel amp amp scripts 构建3 nsh defconfig 构建4 src 构建5 Kconfig 构建 三 修改 nut
  • Parrot Bebop2 与ROS

    第二章 无人机平台与开发环境搭建 本章主要介绍无人机平台及相关开发环境的搭建 包括介绍Parrot Bebop2的相关规格与使用说明 xff0c 以及ROS的操作系统的简介 发展历程 安装流程 xff0c 还有ROS的数据通信方式和ROS的
  • python2与python3解析数据

    蓝牙模块接收到监测设备传输来的数据 xff0c 封装格式为十六进制的数据帧 xff0c 蓝牙模块将数据通过串口发送给wrtnode 2p xff0c wrtnode通过ser2net服务将数据转为网络数据 xff0c 可以通过监听192 1
  • 上传本地项目到github远程仓库

    前提已经注册github账号并在本地电脑安装git客户端 1 为Github账户设置SSH key 进入git bash xff0c 通过如下命令生成 ssh keygen t rsa C 34 github所绑定的邮箱 34 一路回车 x
  • 卫星导航定位技术二:由星历参数求解卫星时空位置

    卫星星历是描述卫星运动轨道的信息 也可以说卫星星历就是一组对应某一时刻的轨道参数及其变率 有了卫星星历就可以计算出任意时刻的卫星位置及其速度 GPS卫星星历分为预报星历和后处理星历 预报星历又称广播星历 GPS广播星历参数共有16个 xff
  • 模式识别:最小错误率贝叶斯决策分类

    一 引言 1 用贝叶斯决策理论分类要事先知道两个条件及要求 xff1a 各类的先验概率 xff1a 及特征向量的条件概率密度 xff1a 或后验概率 xff1a 决策分类的类别一定 2 解决的问题 xff1a 已知一定数目的样本 xff0c
  • 模式识别:BP神经网络算法

    1 BP神经网络分类器 1 1 BP算法基本原理 神经网络结构大概如下图1 1 xff1a 图1 1 包括输入层 xff0c 隐层和输出层 包含一层隐层的神经网络称为浅层神经网络 xff0c 即SNN 包含多层隐层的神经网络称为深度神经网络
  • 模式识别:C-means(K-means)聚类算法与分级聚类(层次聚类)算法

    C均值聚类算法与分级聚类算法的聚类分析 一 实验目的 理解聚类的整体思想 xff0c 了解聚类的一般方法 xff1b 掌握 C means与分级聚类算法算法思想及原理 xff0c 并能够熟练运用这些算法进行聚类分析 xff1b 能够分析二者
  • ROS 配置多网口通讯

    列出当前所有的网络设备 ifconfig a 结果如下 xff1a enp1s0 Link encap Ethernet HWaddr 00 2f 5c 68 06 ad inet addr 192 168 1 101 Bcast 192
  • qt creator开启openMP加速方法

    环境 Qt creator4 11 for msvc2017 内置openmp库 启用方法 1 在pro文件加上QMAKE CXXFLAGS 43 61 openmp 2 添加头文件omp h
  • c++中::的用法

    是运算符中等级最高的 xff0c 它分为三种 1 global scope 全局作用域符 xff09 xff0c 用法 xff08 name 2 class scope 类作用域符 xff09 xff0c 用法 class name 3 n
  • 【ubuntu】——gflags&glog卸载与安装

    gflags glog 通过apt安装的glog xff0c gflags没有config cmake xff0c 所以在一些情况下需要手动编译 1 卸载gflags amp glog 只适用于通过apt安装的方式 span class t
  • 【算法】A* 寻路 可视化

    如下图 寻路图A 使用A 算法 xff0c 需要将地图抽象成一个个方块 xff0c 蓝色代表不可以动 墙 xff0c 黄色为起始点 xff0c 红色为目标点 其地图的二维坐标如图所示 xff0c 每一个单位为1米 A 的基本公式为 F n
  • 实验室新生成长指南[2.2.1] · 连接器

    欢迎进入 实验室新生成长指南 第二章 xff1a 硬件 本篇是 实验室新生成长指南 第二章第二节第一篇 xff1a 连接器 整个2 2节将帮助新手快速建立设计电路系统的一些基本知识储备 更多关于 实验室新生成长指南 的介绍 xff0c 请前
  • 走进音视频的世界——音视频的基本概念

    音视频通用的基本概念有码率 时长 xff0c 而不同音视频有不同的封装格式 编码协议 其中视频关键参数有分辨率 帧率 画质 旋转角度 像素格式 xff0c 而音频关键参数有采样率 声道数 声道布局 音质 采样数 采样位数 帧时长 接下来与大