首页 > 其他分享 >音视频基础知识

音视频基础知识

时间:2023-07-12 20:55:25浏览次数:37  
标签:视频 编码 解码 基础知识 画面 图像 音视频 音频

1.视频编码

  视频编码是指采用某种算法对视频数据进行压缩,以便在存储和传输时占用更少的空间和带宽。我们平时所看的视频其实都是由大量的图像帧组成的,比如,如果帧率为30fps,则相当于一秒播放了三十个图像,如果把每一张图像帧都完整的保存下来,则占用的空间超乎想象。我们可以计算一下,如果视频的分辨率为1920x1080,图像的像素格式是yuv420p,则一张图像的大小为1920x1080x1.5byte,按照一部电影90分钟来算的话,则整个影片的大小为:90x60x30x1920x1080x1.5byte,即469GB。但根据我们的常识,一个电影也就1到2个G。所以说,如果视频不经过压缩直接保存的话,占用的空间非常大。

2.音频编码

  音频编码是将声音信号转换为数字数据的过程。它使用一种算法来压缩音频数据,以便在存储和传输时占用更少的空间和带宽。音频编码的目标是保留足够的音质,同时减小文件大小。

3.一些名词的解析

  帧率:每秒显示的帧数,单位为fps,即帧每秒

  分辨率:视频分辨率指视频成像产品所形成的图像的尺寸

  刷新率:一般提到刷新率是指垂直刷新率,即表示屏幕上图像每秒重绘多少次,以赫兹为单位

  码率:即比特率,比特率是单位时间所播放连续的媒体的比特数量,文件大小=码率x时长

  DTS:Decode Time Stamp,解码时间戳,主要用来标示读入内存中的比特流在什么时候开始送入解码器中进行解码的

  PTS:Presentation Time Stamp,显示时间戳,主要用于度量解码后的视频帧什么时候被显示出来

  视频帧:常见的视频帧有I,P,B帧等。I帧表示关键帧,你可以理解为这一帧是画面的完整保存,解码时只需要本帧数据即可。P帧表示的是这一帧和前一帧(I/P)的差别,解码时需要用到之前缓存的画面叠加上本帧定义的差别生成最终画面。B帧是双向差别帧,也就是说B帧记录的是本帧和前后帧的差别,解码的时候不仅要取得之前缓存的画面,还要解码之后的画面,通过前后画面数据和本帧数据的叠加取得最终的画面,B帧的压缩率高,但解码时CPU会比较吃力。

  量化精度:量化精度表示将模拟信号分成多少个等级,量化精度越高,音乐的声压振幅越接近原音乐。量化精度的单位是bit,也可以理解为一个采样点用多少bit表示。

  采样率:指每秒音频采样点的个数,单位是赫兹

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

  

  

  

 

  

标签:视频,编码,解码,基础知识,画面,图像,音视频,音频
From: https://www.cnblogs.com/luqman/p/17548814.html

相关文章

  • axios基础知识详解
    一、什么是axiosaxios是一个基于Promise的HTTP客户端,用于浏览器和Node.js中发送HTTP请求。它支持各种HTTP请求方法,如GET、POST、PUT、DELETE等,并且可以拦截请求和响应,设置请求超时等功能。它也可以与现代前端框架(如Vue.js、React、Angular等)进行集成。二、如何在Vue.js中使用axios(1......
  • Qt/C++音视频开发46-音视频同步保存到MP4
    一、前言用ffmpeg单独做视频保存不难,单独做音频保存也不难,难的是音视频同步保存到MP4中,重点是音视频要同步,其实这也不难,只要播放那边音视频同步后的数据,写入到文件即可。最难的是在播放过程中不断随机的切换播放进度,而且还会暂停播放、暂停录制的情况出现,这些个复杂情况的出现,可......
  • c#基础知识篇-名词解释
    程序集概念:是一个包含来程序的名称,版本号,自我描述,文件关联关系和文件位置等信息的一个集合。在.net框架中通过Assembly类来支持,该类位于System.Reflection下,物理位置位于:mscorlib.dll。程序集可以看作是给一堆相关类打一个包,相当于java中的jar包。表现形式:dll(不可执行)、exe(可......
  • Java语言基础知识全总结
    一.Java的优点1.      跨平台性。一次编译,到处运行。Java编译器会将Java代码编译成能在JVM上直接运行的字节码文件,C++会将源代码编译成可执行的二进制代码文件,所以C++执行速度快2.      纯面向对象。Java所有的代码都必须在类中书写。C++兼具面向对象和面向过程的特......
  • Java 基础知识
    Java基础知识1.Java语言有哪些特点简单易学、有丰富的类库面向对象(Java最重要的特性,让程序耦合度更低,内聚性更高)与平台无关性(JVM是Java跨平台的根本)可靠安全支持多线程2.面向对象和面向过程的区别面向过程:是分析解决问题的步骤,然后用按说......
  • c#基础知识篇-Monitor
    作用提供同步访问对象的机制,实现线程同步。命名空间&程序集命名空间:System.Threading程序集:System.Threading.dll常用属性&方法Monitor.Enter(Object)在指定对象上获取排它锁Monitor.Exit(Object)释放指定对象上的排它锁Monitor.Pulse通知等待队列中的线程锁定对象状......
  • IP基础知识
    一.简单局域网局域网:一般称为内网简单局域网的构成:交换机,网线,PC(其他IT终端)交换机:用来组建内网的局域网设备二.IP地址一个唯一标识,是一段网络编码(二进制),由32位组成;一段IP地址分成4个组合:8个数字加一点(.)因为IP地址太长,便于记忆,会转为10进制,称这种方式为点分十进制 IP地址的......
  • golang 使用ffmpeg工具实现音视频转码
    1ffmpeg工具是什么FFmpeg即是一款音视频编解码工具,同时也是一组音视频编码开发套件,作为编码开发套件,它为开发者提供了丰富的音视频处理的调用接口。FFmpeg提供了多种媒体格式的封装和解封装,包括多种音视频编码、多种协议的流媒体、多种多彩格式转换、多种采样率转换、多种码率转换......
  • 阵列信号处理及matlab仿真-------波束形成算法基础知识以及MMSE、MSNR和LCMV的MATLAB
    上一篇《阵列信号处理及MATLAB仿真-----阵列信号绪论》里面说了阵列信号处理研究的四个主要问题:波束形成技术、空间谱估计、信号源定位、信源分离。接下来我们就波束形成来做一个详细的学习。一、波束形成的定义:首先说一下它的物理意义,阵列天线的方向图是全方向的,但是......
  • 区块链基础知识
    开始学习区块链了,记录一下区块链入门的一些基础知识。1. 区块链区块链本质是一种多方共享的分布式账本技术,存储于其中的数据或信息,具有“不可伪造、不可篡改、全程留痕、可以追溯、公开透明、集体维护”等特征。2.区块区块链中一套分布式账本存储的基本数据结构、是在区块链......