音视频基础

音视频基础

  • 一、音视频录制原理
  • 二、音视频播放原理
  • 三、图像表示RGB-YUVV
    • 1.图像基础概念
      • 1.1 像素
      • 1.2 分辨率
      • 1.3 位深
      • 1.4 帧率
      • 1.5 码率
      • 1.6 Stride跨距
    • 2.RGB、YUV深入讲解
      • 2.1 RGB
      • 2.2 YUV
        • 2.2.1 YUV采样表示法
        • 2.2.2 YUV数据存储
      • 2.3 RGB和YUV的转换(了解)
        • 为什么解码出错显示绿屏?
    • 2.4 YUV Stride对齐问题
  • 四、视频
  • 五、音频
    • 1.基本概念
      • 声音的物理性质
    • 2.数字音频
      • 2.1 采样频率
      • 2.2 采样量化
    • 3.音频常见名词
    • 4.音频编码原理
      • 4.1 频谱掩蔽效应
      • 4.2 时域掩蔽效应
      • 4.3 压缩编码方法
  • 六、封装格式
  • 七、音视频同步概念

一、音视频录制原理

image-20240627175043483

  1. 采集阶段
    • 音频输入(麦克风)和视频输入(摄像头):这是录制过程的起始点,音视频数据从这里开始被系统捕获。
    • 音频处理视频处理:这些步骤涉及对捕获的音视频数据进行初步处理,如降噪、调整分辨率等。
  2. 队列管理
    • 音频帧队列视频帧队列:处理过的音视频数据被暂存于帧队列中,以便进一步处理。
    • 音频包队列视频包队列:帧数据进一步封装成数据包,以便于传输或存储。
  3. 编码与合成
    • 复用器:音频和视频数据包在此阶段被合成为一个单一的流,准备进行存储或发送。
  4. 输出
    • 文件:最终的音视频流被存储为文件,或者被发送到网络等媒体。

二、音视频播放原理

image-20240627175215856

  1. 输入
    • 文件:存储的音视频文件作为输入源。
  2. 解码与分离
    • 解复用器:输入的文件被分离成独立的音频和视频数据流。
  3. 队列管理
    • 音频包队列视频包队列:分离出的数据流被组织成数据包,暂存于队列中。
    • 音频帧队列视频帧队列:数据包进一步解码为帧,以便播放。
  4. 输出
    • 音频输出视频输出:解码后的音视频帧被发送到相应的输出设备,如扬声器和显示屏。

三、图像表示RGB-YUVV

1.图像基础概念

1.1 像素

image-20240627175849694

1.2 分辨率

image-20240627175919236

image-20240627180013970

1.3 位深

image-20240627185134491

1.4 帧率

image-20240627185236854

1.5 码率

image-20240627185414275

1.6 Stride跨距

image-20240627203203834

  1. 填充字节:每行末尾填充2个字节。
  2. 计算步骤:对于分辨率为638x480的RGB24图像,每个像素占用3个字节(RGB各1字节),每行有638个像素。
    • 每行的实际数据字节数计算为:638 * 3 = 1914字节。
    • 如果要以16字节对齐,则需要将每行数据的字节数向上取整到最接近的16的倍数,即1920字节。
  3. Stride(步幅):Stride是指每行像素在内存中实际占用的字节数。在这种情况下,每行实际占用的空间为1920字节,这个数值即为该图像的Stride。

综上所述,对于638x480的RGB24图像,每行末尾填充2个字节,并且为了内存对齐需要将每行数据的字节数向上取整到16的倍数,因此最终每行实际占用的字节数为1920字节,这就是该图像的Stride。

2.RGB、YUV深入讲解

RGB:红R、绿G、蓝B三基色。

YUV:“Y”表示明亮度(Luminance或Luma),也就是灰阶值,“U”和“V”表示的则是色度(Chrominance或Chroma)。

2.1 RGB

通常的图像像素是按RGB顺序进行排列,但有些图像处理要转成其他顺序,比如OpenCV经常转成BGR的排列方式。

通常在RGB图像中,每个像素由红色(R)、绿色(G)、蓝色(B)三个颜色通道组成,每个通道占据一个字节,即8位。这样一组RGB数据共占据24个位或3个字节,因此称为RGB24格式。

image-20240627190222140

2.2 YUV

image-20240627190300599

image-20240627190409938

2.2.1 YUV采样表示法

YUV采用A:B:C表示法来描述Y,U,V采样频率比例,下图中黑点表示采样像素点Y分量,空心圆表示采样像素点的UV分量。主要分为 YUV 4:4:4、YUV 4:2:2、YUV 4:2:0 这几种常用的类型。

image-20240627213318858

2.2.2 YUV数据存储

下面以每个分量数据存储在一个char(或byte)中为例描述YUV的数据存储方式。

image-20240627213441387

image-20240627213508978

image-20240627213532714

image-20240627213647052

image-20240627213806385

2.3 RGB和YUV的转换(了解)

image-20240627214707931

为什么解码出错显示绿屏?

image-20240627214741053

2.4 YUV Stride对齐问题

image-20240627214954424

image-20240627215201258

四、视频

image-20240627215328968

image-20240627215531566

image-20240627215811912

image-20240627215834248

五、音频

1.基本概念

声音的物理性质

  • 振动

声音是一种由物体振动引发的物理现象,如小提琴的弦声等。物体的振动使其四周空气的压强产生变化,这种忽强忽弱变化以波的形式向四周传播,当被人耳所接收时,我们就听见了声音。

  • 波形

声音是由物体的振动产生的,这种振动引起了周围空气压强的振荡,我们称这种振荡的函数表现形式为波形。

image-20240628094927901

  • 频率

声音的频率是周期的倒数,它表示的是声音在1秒钟内的周期数,单位是赫兹(Hz)。千赫(kHz),即1000Hz,表示每秒振动1000次。声音按频率可作如下划分:

次声:0~20Hz

人耳能听见的声音:20Hz~20KHz

超声:20KHz~1GHz

特超声:1GHz~10THz

  • 振幅

声音有振幅,振幅的主观感觉是声音的大小。声音的振幅大小取决于空气压力波距平均值(也称平衡态)的最大偏移量。

image-20240628095037353

2.数字音频

计算机并不直接使用连续平滑的波形来表示声音,它是每隔固定的时间对波形的幅值进行采样,用得到的一系列数字量来表示声音。下图是经过数字采样的波形示意图。

脉冲编码调制PCM(Pulse Code Modulation),脉冲编码调制。人耳听到的是模拟信号,PCM是把声音从模拟信号转化为数字信号的技术。

2.1 采样频率

根据Nyguist采样定律,要从采样中完全恢复原始信号波形,采样频率必须至少是信号中最高频率的两倍。前面提到人耳能听到的频率范围是[20H~20kHz],所以采样频率一般为44.1Khz,这样就能保证声音到达20Khz也能被数字化,从而使得经过数字化处理之后,人耳听到的声音质量不会被降低。

image-20240628095223646

2.2 采样量化

采样是在离散的时间点上进行的,而采样值本身在计算机中也是离散的。采样值的精度取决于它用多少位来表示,这就是量化。例如8位量化可以表示256个不同值,而CD质量的16位量化可以表示65536个值,范围为[-32768, 32767]。

下图是一个3位量化的示意图,可以看出3位量化只能表示8个值:0.75,0.5,0.25,0,-0.25,-0.5,-0.75和-1,因而量化位数越少,波形就越难辨认,还原后的声音质量也就越差(可能除了一片嗡嗡声之外什么都没有)。

image-20240628095316433

3.音频常见名词

image-20240628095434623

image-20240628095519996

image-20240628095926027

image-20240628095938720

image-20240628095954958

4.音频编码原理

数字音频信号如果不加压缩地直接进行传送,将会占用极大的带宽。例如,一套双声道数字音频若取样频率为44.1KHz,每样值按16bit量化,则其码率为:

2*44.1kHz*16bit=1.411Mbit/s

如此大的带宽将给信号的传输和处理都带来许多困难和成本(阿里云服务器带宽大于5M后,每M价格是100元/月),因此必须采取音频压缩技术对音频数据进行处理,才能有效地传输音频数据。

数字音频压缩编码在保证信号在听觉方面不产生失真的前提下,对音频数据信号进行尽可能大的压缩,降低数据量。数字音频压缩编码采取去除声音信号中冗余成分的方法来实现。所谓冗余成分指的是音频中不能被人耳感知到的信号,它们对确定声音的音色,音调等信息没有任何的帮助。

冗余信号包含人耳听觉范围外的音频信号以及被掩蔽掉的音频信号等。例如,人耳所能察觉的声音信号的频率范围为20Hz~20KHz,除此之外的其它频率人耳无法察觉,都可视为冗余信号。此外,根据人耳听觉的生理和心理声学现象,当一个强音信号与一个弱音信号同时存在时,弱音信号将被强音信号所掩蔽而听不见,这样弱音信号就可以视为冗余信号而不用传送。这就是人耳听觉的掩蔽效应,主要表现在频谱掩蔽效应时域掩蔽效应

4.1 频谱掩蔽效应

image-20240628100217075

4.2 时域掩蔽效应

image-20240628100313328

4.3 压缩编码方法

image-20240628100355174

六、封装格式

image-20240628100449250

image-20240628100543138

  • 常见的视频封装格式

image-20240628100613688

七、音视频同步概念

DTS(Decoding Time Stamp):即解码时间戳,这个时间戳的意义在于告诉播放器该在什么时候解码这一帧的数据。

PTS(Presentation Time Stamp):即显示时间戳,这个时间戳用来告诉播放器该在什么时候显示这一帧(音频或视频)的数据。

  • 音视频同步方式:
    • Audio Master:同步视频到音频
    • Video Master:同步音频到视频
    • External Clock Master:同步音频和视频到外部时钟。
  • 一般情况下 Audio Master > External Clock Master > Video Master

数据。

PTS(Presentation Time Stamp):即显示时间戳,这个时间戳用来告诉播放器该在什么时候显示这一帧(音频或视频)的数据。

  • 音视频同步方式:
    • Audio Master:同步视频到音频
    • Video Master:同步音频到视频
    • External Clock Master:同步音频和视频到外部时钟。
  • 一般情况下 Audio Master > External Clock Master > Video Master

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/363042.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

stm32cubemx,adc采样的几种方总结,触发获取adc值的方法dma timer trigger中断

stm32cubemx adc采样的几种方总结,触发获取adc值的方法 timer trigger中断 方法1,软件触发方法2:,Timer触发ADC采集通过DMA搬运 触发获取adc值的方法 Regular Conversion launched by software 软件触发 调用函数即可触发ADC转换 Timer X Cap…

STM32 HAL库 外部中断 实现按键控制LED亮灭

目录 1、为什么使用GPIO外部中断控制LED亮灭? 2、NVIC嵌套向量中断控制器 3、EXTI外部中断 4、项目的硬件排线 5、STM32CUBE_MX配置 6、HAL库代码 7、实际效果 1、为什么使用GPIO外部中断控制LED亮灭? 实现LED亮灭控制有很多方式,其中…

前端开源项目Vuejs:让前端开发如虎添翼!

文章目录 引言一、Vue.js的优势二、Vue.js实战技巧三、Vue.js社区与资源结语 引言 在前端开发的世界里,Vue.js凭借其简洁、轻量且功能强大的特性,逐渐崭露头角,成为众多开发者心中的首选框架。 一、Vue.js的优势 Vuejs项目地址 Vue.js之…

什么是GPIO口,GPIO口最简单的input/output

目录 一,什么是GPIO口 二,GPIO内部结构 三,GPIO口工作模式 一,什么是GPIO口 1.GPIO口是通用输入输出端口(General-purpose input/output)的英文缩写,是所有的微控制器必不可少的外设之一&…

AVI 是什么格式,AVI 格式用什么播放器打开?

AVI 是什么格式?提到 AVI 格式想必大家多数会想到在 DVD 横行的年代,光盘中所包含的媒体视频格式多是以 AVI 格式存储。AVI 是一个非常通用的容器格式,支持多种视频和音频编解码器。这意味着从DVD中提取视频内容时,可以通过转码为…

浅谈交换机

这篇文章和大家分享一下交换机的通信原理 在说交换机前,首先要了解几个网络知识:到现在为止IP地址分为IPv4和IPv6,IPv4是由32位二进制组成,IPv6则由128位二进制组成,计算机的底层代码其实就是二进制 例如:1…

72V转12V非隔离DC/DC电源原理图+PCB源文件

资料下载地址:72V转12V非隔离DCDC电源原理图PCB源文件 电动车所用的非隔离DC/DC电源,采用BUCK电路,运行稳定,为已经在产品中使用的电路 1、原理图 2、PCB

使用Flink CDC实时监控MySQL数据库变更

在现代数据架构中,实时数据处理变得越来越重要。Flink CDC(Change Data Capture)是一种强大的工具,可以帮助我们实时捕获数据库的变更,并进行处理。本文将介绍如何使用Flink CDC从MySQL数据库中读取变更数据&#xff0…

生成随机函数f3,利用f3生成f18(python)

一、题目 给定一个完全随机函数f3。能够完全随机产生1~3之间任意一个自然数。现在要构造一个f18,让其能随机产生1~18之间任意一个自然数,要求写出f18的函数,另外要测试是否符合预期,f18要用f3 二、代码 欢迎大家给我更优解&…

DIY:在您的 PC 上本地使用 Stable Diffusion AI 模型生成图像

前言 随着DALL-E-2和Midjourney的发布,您可能听说过最近 AI 生成艺术的繁荣。这些人工智能模型如何在几秒钟内创造性地生成逼真的图像,这绝对是令人兴奋的。您可以在这里查看其中的一些:DALL-E-2 gallery和Midjourney gallery 但是这些模型…

【深度学习】深度学习基础

李宏毅深度学习笔记 局部极小值与鞍点 鞍点其实就是梯度是零且区别于局部极小值和局部极大值的点。 鞍点的叫法是因为其形状像马鞍。鞍点的梯度为零,但它不是局部极小值。我们把梯度为零的点统称为临界点(critical point)。损失没有办法再下…

学生信息管理系统

DDL和DML -- 创建学生表 CREATE TABLE students (student_id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50),age INT,gender VARCHAR(10) );-- 创建课程表 CREATE TABLE courses (course_id INT PRIMARY KEY AUTO_INCREMENT,course_name VARCHAR(50) );-- 创建教师表 CREA…

HTML静态网页成品作业(HTML+CSS+JS)——家乡莆田介绍网页(5个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,使用Javacsript代码实现图片轮播,共有5个页面。 二、作品…

C语言基础笔记(全)

一、数据类型 数据的输入输出 1.数据类型 常量变量 1.1 数据类型 1.2 常量 程序运行中值不发生变化的量,常量又可分为整型、实型(也称浮点型)、字符型和字符串型 1.3 变量 变量代表内存中具有特定属性的存储单元,用来存放数据,即变量的值&a…

【Echarts】散点图 制作 气泡 类型图表

目录 需求主要代码效果展示注 需求 需参照设计图画出对应图表 主要代码 /**** 数据 ****/ this.dataList [...Array(8).keys()].map((item) > {return {ywlxmc: 业务类型 (item 1),sl: item > 4 ? 50 : 70} })/**** 气泡样式 ****/ const styleList [{offset: [56…

MySQL实训

项目名称与项目简介 股票交易系统是一个综合性的金融服务平台,它提供了股票买卖、交易查询、用户管理、股票信息管理以及资金账户管理等功能。系统旨在为用户提供一个安全、高效、便捷的股票交易环境,让用户能够实时掌握市场动态,做出合理的…

探索Facebook的未来世界:数字社交的演进之路

在数字化和全球化的浪潮中,社交网络如Facebook已经成为了人们日常生活不可或缺的一部分。然而,随着技术的迅猛发展和用户需求的不断变化,Facebook正在经历着社交平台的演进之路。本文将探索Facebook的未来世界,分析数字社交的发展…

用英文介绍美国总统Trump: Donald J. Trump Twice Impeached (2017 – 2021)

Donald J. Trump: Twice Impeached (2017 – 2021) Link: https://www.youtube.com/watch?vJ7RC2DKf6rs&listPLybg94GvOJ9E-ZM1U6PAjgPUmz-V4-Yja&index45 Summary Summary of Donald Trump’s Rise and Presidency Donald John Trump, originally from Queens, Ne…

【MTK平台】如何学习Bluedroid A2DP Code

一 Bluedroid A2DP架构图 备注: vendor/mediatek/proprietary/packages/modules/Bluetooth/system/audio_a2dp_hw/src 目录下编译生成audio.a2dp.default.so,主要实现a2dp做为设备的功能 二 A2DP File Hierarchy ModuleFileDescriptionAudio HAL (hardware/libhardware/…

Arcgis 计算经纬度坐标并补齐6位小数

工作中我们经常需要在Arcgis中计算点的经纬度或者线的起点、终点坐标,为确保数据的准确性,我们必须保留6位小数,但我们在默认计算的时候偶尔会遇到算出来的经纬度坐标小数位不足6位,那我们应该如何补齐呢,这里我将方法…