音视频开发知识一:基础名词

news/2024/10/17 12:29:09/

1. 音视频编解码(熟知)
音视频编解码的作用是为了将音视频数据压缩,在带宽有限的情况下以便在网络上高效的传输或存储。编解码是将音视频数据从一种格式转换为另一种格式的过程。 xinyuaa
未经编解码的数据也就是信源往往有着大量的冗余信息:视频是由多组图像组成,视频压缩编码的实质是减少图像中的冗余。

2. 数据冗余:时间冗余、空间冗余、知识冗余、结构冗余、视觉冗余(了解)
视频是连续的图像序列,由连续的帧构成,一帧即为一幅图像。由于人眼的视觉暂留效应,当帧序列以一定的速率播放时,我们看到的就是动作连续的视频。由于连续的帧之间相似性极高,为便于储存传输,需要对原始的视频进行编码压缩,以去除空间、时间维度的冗余等。
时间冗余是指在数字图像中,相邻帧之间的相似度较高,因此可以通过去除一些帧来减少数据量。 例如,视频编码中的运动估计算法就利用了图像时间冗余来提高压缩率。
图像空间冗余是指在数字图像中,一帧相邻像素之间存在较强的相关性,因此可以通过去除一些像素来减少数据量。 例如,视频编码中的运动估计算法就利用了图像空间冗余来提高压缩率。
图像知识冗余是指在数字图像中,相邻像素之间存在较强的相关性,这类规律性的结构可由先验知识和背景知识得到,我们称此类冗余为知识冗余。
==视觉冗余:==人的视觉系统对于图像场的任何变化,并不是都能感知的。对于那些人类视觉感知不到的图像信息的变化都可以成为视觉冗余。

3. 视频有损压缩、无损压缩
无损压缩也称为可逆编码,指使用压缩后的数据进行重构(即:解压缩)时,重构后的数据与原来的数据完全相同。也就是说,解码图像和原始图像严格相同,压缩是完全可恢复的或无偏差的,没有失真。无损压缩用于要求重构的信号与原始信号完全一致的场合,例如磁盘文件的压缩。
有损压缩也称为不可逆编码,指使用压缩后的数据进行重构(即:解压缩)时,重构后的数据与原来的数据有差异,但不影响人们对原始资料所表达的信息造成误解。也就是说,解码图像和原始图像是有差别的,允许有一定的失真,但视觉效果一般是可以接受的。有损压缩的应用范围广泛,例如视频会议、可视电话、视频广播、视频监控等。
百度百科

4. 软解码 硬解码
硬解码就是通过显卡的视频加速功能对高清视频进行解码。显卡的GPU/VPU要比CPU更适合这类大数据量的、低难度的重复工作,它的优点就是播放流畅,功耗低,但是也存在着受视频格式限制、功耗大、画质没有软解码好的缺点。
软解码是纯粹依靠CPU来解码的方式,将解压高清编码的任务交给CPU。
==解码速度不同:==硬解码最大的优点就是速度非常快(与软解码相比较而言,在相同条件下),再有就是省电。
==视频的网络传输延迟:==在相同的网络环境下,视频的网络传输延迟和软硬件编解码器的选择有直接关系。相比软件编解码器,独立工作的硬件编解码器能有足够的专用资源完成编解码任务,不受其他电脑中运行程序对系统调度和CPU占用的影响。

5. 视频转码(熟知)
是指将已经压缩编码的视频码流转换成另一个视频码流,以适应不同的网络带宽、不同的终端处理能力和不同的用户需求。其中往往有着视频传输协议、封装协议的改变。本质上是一个先解码,再编码的过程,因此转换前后的码流可能遵循相同的视频编码标准,也可能不遵循相同的视频编码标准。
百度百科


http://www.ppmy.cn/news/533383.html

相关文章

Jmeter脚本的录制与回放

一、打开Jmeter,在测试计划处点击右键Add>Threads>Threads Group,新建一线程组如login 二、在名为login的线程组处右击Add>Logic Controller>Recording Controller,新建一个录制控制器 三、在login线程组新建察看结果树、聚合报告 四、右击测试计划新建Http(s) Tes…

流量录制与回放在vivo的落地实践

一、为什么要使用流量录制与回放? 1.1 vivo业务状况 近几年,vivo互联网领域处于高速发展状态,同时由于vivo手机出货量一直在国内名列前茅,经过多年积累,用户规模非常庞大。因此,vivo手机出厂内置很多应用…

python3实现鼠标键盘动作录制,并还原执行过程

这里写自定义目录标题 1.录制鼠标过程源代码,按esc键结束录制,最后保存在commands.json文件中2.执行上面代码得到的commands.json文件,运行程序,输入文件绝对路径或者文件名,输入文件名则搜索当前程序下的目录文件 1.录…

安卓实现按键录制回放

最近玩pokemongo需要将扔excellent球的操作录下来,这样子下次直接就可以不用自己手扔了。通过adb进入shell后getevent命令可以打印实时触摸的操作信息,sendevent能够写入操作到触摸屏,实现模拟滑动和点击和其他操作,但是将geteven…

如何录制/回放使用工具推荐

在测试过程,我们总是出现重复性劳动工作,步骤都一致,我们希望有个机器人帮我们完成,可是代码又不会写咋办? (本文只对刚入门或者没有接触测试的同学) 在这里就给大家推荐录制回放的工具&#…

前端监控:回放录制库 rrweb

rrweb rrweb 主要由 rrweb 、 rrweb-player 和 rrweb-snapshot 三个库组成: rrweb:提供了 record 和 replay 两个方法;record 方法用来记录页面上 DOM 的变化,replay 方法支持根据时间戳去还原 DOM 的变化。rrweb-player&#x…

java写键盘鼠标录制器,易语言仿按键精灵录制键盘鼠标操作的代码

DLL命令表 .版本 2 .DLL命令 取按键状态, 短整数型, "user32.dll", "GetAsyncKeyState" .参数 鼠标键, 整数型 .DLL命令 取鼠标位置, 整数型, "user32.dll", "GetCursorPos" .参数 当前鼠标位置, 鼠标位置, 传址 .DLL命令 模拟鼠标按键…

QT 录制鼠标键盘回放

QT 录制鼠标键盘回放 前段时间因为朋友想要解放双手想要把一些操作录制回放 所以做了这个小项目 因为我目前运用的QT只能在程序中去记录鼠标跟键盘的操作 所以网上找了找方法 有钩子函数使用 所以运用了钩子函数 一、Hook Window的钩子可以捕捉整个窗口的鼠标跟键盘 首先我们…