视频编解码学习之一:理论基础

news2024/11/26 0:44:39

1. 为什么要进行视频压缩?

  • 未经压缩的数字视频的数据量巨大

  • 存储困难

    • 一张DVD只能存储几秒钟的未压缩数字视频。

  • 传输困难

    • 1兆的带宽传输一秒的数字电视视频需要大约4分钟。

\2. 为什么可以压缩

  • 去除冗余信息

    • 空间冗余:图像相邻像素之间有较强的相关性

    • 时间冗余:视频序列的相邻图像之间内容相似

    • 编码冗余:不同像素值出现的概率不同

    • 视觉冗余:人的视觉系统对某些细节不敏感

    • 知识冗余:规律性的结构可由先验知识和背景知识得到

\3. 数据压缩分类

  • 无损压缩(Lossless)

    • 压缩前解压缩后图像完全一致X=X'

    • 压缩比低(2:1~3:1)

    • 例如:Winzip,JPEG-LS

  • 有损压缩(Lossy)

    • 压缩前解压缩后图像不一致X≠X'

    • 压缩比高(10:1~20:1)

    • 利用人的视觉系统的特性

    • 例如:MPEG-2,H.264/AVC,AVS

\4. 编解码器

  • 编码器(Encoder)

    • 压缩信号的设备或程序

  • 解码器(Decoder)

    • 解压缩信号的设备或程序

  • 编解码器(Codec)

    • 编解码器对

\5. 压缩系统的组成

(1) 编码器中的关键技术

(2) 编解码中的关键技术

\6. 编解码器实现

  • 编解码器的实现平台:

    • 超大规模集成电路VLSI

      • ASIC, FPGA

    • 数字信号处理器DSP

    • 软件

  • 编解码器产品:

    • 机顶盒

    • 数字电视

    • 摄像机

    • 监控器

文末名片免费领取音视频开发学习资料,内容包括(C/C++,Linux 服务器开发,FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,srs)以及音视频学习路线图等等。

\7. 视频编码标准

编码标准作用:

  • 兼容:

    • 不同厂家生产的编码器压缩的码流能够被不同厂家的解码器解码

  • 高效:

    • 标准编解码器可以进行批量生产,节约成本。

主流的视频编码标准:

  • MPEG-2

  • MPEG-4 Simple Profile

  • H.264/AVC

  • AVS

  • VC-1

标准化组织:

  • ITU:International Telecommunications Union

    • VECG:Video Coding Experts Group

  • ISO:International Standards Organization

    • MPEG:Motion Picture Experts Group

\8. 视频传输

  • 视频传输:通过传输系统将压缩的视频码流从编码端传输到解码端

  • 传输系统:互联网,地面无线广播,卫星

\9. 视频传输面临的问题

  • 传输系统不可靠

    • 带宽限制

    • 信号衰减

    • 噪声干扰

    • 传输延迟

  • 视频传输出现的问题

    • 不能解码出正确的视频

    • 视频播放延迟

\10. 视频传输差错控制

  • 差错控制(Error Control)解决视频传输过程中由于数据丢失或延迟导致的问题

  • 差错控制技术:

    • 信道编码差错控制技术

    • 编码器差错恢复

    • 解码器差错隐藏

\11. 视频传输的QoS参数

  • 数据包的端到端的延迟

  • 带宽:比特/秒

  • 数据包的流失率

  • 数据包的延迟时间的波动

第2章 数字视频

1.图像与视频

  • 图像:是人对视觉感知的物质再现。

  • 三维自然场景的对象包括:深度,纹理和亮度信息

  • 二维图像:纹理和亮度信息

  • 视频:连续的图像。

  • 视频由多幅图像构成,包含对象的运动信息,又称为运动图像。

\2. 数字视频

  • 数字视频:自然场景空间和时间的数字采样表示。

    • 空间采样

      • 解析度(Resolution)

    • 时间采样

      • 帧率:帧/秒

\3. 空间采样

  • 二维数字视频图像空间采样

\4. 数字视频系统

  • 采集

    • 照相机,摄像机

  • 处理

    • 编解码器,传输设备

  • 显示

    • 显示器

\5. 人类视觉系统HVS

  • HVS

    • 眼睛

    • 神经

    • 大脑

  • HVS特点:

    • 对高频信息不敏感

    • 对高对比度更敏感

    • 对亮度信息比色度信息更敏感

    • 对运动的信息更敏感

\6. 数字视频系统的设计应该考虑HVS的特点:

  • 丢弃高频信息,只编码低频信息

  • 提高边缘信息的主观质量

  • 降低色度的解析度

  • 对感兴趣区域(Region of Interesting,ROI)进行特殊处理

\7. RGB色彩空间

  • 三原色:红(R),绿(G),蓝(B)。

  • 任何颜色都可以通过按一定比例混合三原色产生。

  • RGB色度空间

    • 由RGB三原色组成

    • 广泛用于BMP,TIFF,PPM等

    • 每个色度成分通常用8bit表示[0,255]

\8. YUV色彩空间

  • YUV色彩空间:

    • Y:亮度分量

    • UV:两个色度分量

    • YUV更好的反映HVS特点

\9. RGB转化到YUV空间

亮度分量Y与三原色有如下关系:

经过大量实验后ITU-R给出了,

, ,

主流的编解码标准的压缩对象都是YUV图像

\10. YUV图像分量采样

  • YUV图像可以根据HVS的特点,对色度分量下采样,可以降低视频数据量。

  • 根据亮度和色度分量的采样比率,YUV图像通常有以下几种格式:

\11. 通用 的YUV图像格式

  • 根据YUV图像的亮度分辨率定义图像格式

\12. 帧和场图像

  • 一帧图像包括两场——顶场,底场

\13. 逐行与隔行图像

  • 逐行图像:一帧图像的两场在同一时间得到,ttop=tbot。

  • 隔行图像:一帧图像的两场在不同时间得到, ttop≠tbot。

\14. 视频质量评价

  • 有损视频压缩使编解码图像不同,需要一种手段来评价解码图像的质量。

  • 质量评价:

    • 客观质量评价

    • 主观质量评价

    • 基于视觉的视频质量客观评价

  • 客观质量评价:通过数学方法测量图像质量评价的方式。

  • 优点:

    • 可量化

    • 测量结果可重复

    • 测量简单

  • 缺点:

    • 不完全符合人的主观感知

\15. 客观评价的方法

常用的客观评价方法:

\16. 主观评价方法

  • 主观质量评价:用人的主观感知直接测量的方式。

  • 优点:

    • 符合人的主观感知

  • 缺点:

    • 不容易量化

    • 受不确定因素影响,测量结果一般不可重复

    • 测量代价高

常用主观评价方法

\17. 基于视觉的视频质量客观评价方法

  • 基于视觉的视频质量客观评价:将人的视觉特性用数学方法描述并用于视频质量评价的方式。

  • 结合了主观质量评价和客观质量评价两方面优点。

  • 常用方法:结构相似度(Structural SIMilarity,SSIM)方法。

  • 将HVS的特征用数学模型表达出来。

  • 未来重要的研究方向

第3章 信息论基础

\1. 通信系统的组成

  • 信源:产生消息

  • 信道:传输消息

  • 信宿:接收消息

\2. 基本概念

  • 通信中对信息的表达分为三个层次:信号,消息,信息。

    • 信号:是信息的物理层表达,可测量,可描述,可显示。如电信号,光信号。

    • 消息:是信息的载体,以文字,语言,图像等人类可以认知的形式表示。

    • 信息:不确定的内容。

\3. 信息熵

信息的特点

信息的测量

自信息量

条件信息量

\4. 信息熵

\5. 条件熵和联合熵

\6. 熵的性质

  • 非负性:信源熵是非负值,即 H(X) >=0;

  • 扩展性:信源熵X有M个符号,如果其中一个符号出现的概率趋于零,信源熵就等于剩余M-1个符号的信源熵;

  • 极值性(最大信息熵):对于具有M个符号的信源,只有在所有符号等概率出现的情况下,信源熵达到最大值,即

  • 可加性:

  • 熵不增:条件熵不大于信息熵 H(X|Y) <= H(X)

  • 联合熵不大于各信息熵的和,即H(XY) <= H(X) + H(Y)

\7. 互信息量

\8. 互信息

  • 物理意义:H(X)是X所含的信息,H(X|Y)是已知Y的条件下X还能带来的信息量。那么两者之差就是由于知道Y使得X减少的信息量,也即由Y可以得到的关于X的信息量。

\9. 各种熵的关系

\11. 信源编码

  • 信源编码:将消息符号转变成信道可传输的信息。

  • 两个基本问题:

    • 用尽可能少的信道传输符号来传递信源消息,提高传输效率;

    • 减少由于信道传输符号的减少导致的失真。

\12. 离散信源统计特性

\13. 离散信源类型:简单无记忆信源和马尔可夫信源

\14. 编码分类

  • 等长码:在一组码字集合C中的所有码字cm (m = 1,2, …,M),其码长都相同,则称这组码C为等长码。

  • 变长码:若码字集合C中的所有码字cm (m = 1,2, …,M),其码长不都相同,称码C为变长码。

\15. 平均码长

\16. 等长码与变长码比较

  • 等长编码将信源输出符号序列的任意一种取值(概率可能不同)都编码成相同长度的输出码字,没有利用信源的统计特性;

  • 变长编码可以根据信源输出符号序列各种取值的概率大小不同,将他们编码成不同长度的输出码字,利用了信源的统计特性。因此又称其为熵编码。

\17. Huffman编码

  • Huffman编码:典型的变长编码。

  • 步骤:

    • 将信源符号按概率从大到小的顺序排列,假定p(x1)≥ p(x2)… ≥ p(xn)

    • 给两个概率最小的信源符号p(xn-1), p(xn)各分配一个码位"0"和"1",将这两个信源符号合并成一个新符号,并用这两个最小的概率之和作为新符号的概率,结果得到一个只包含(n-1)个信源符号的新信源。称为信源的第一次缩减信源,用S1表表示。

    • 将缩减信源S1的符号仍按概率从大到小的顺序排列,重复步骤2,得到只含(n-2)个符号的缩减信源S2

    • 重复上述步骤,直至缩减信源只剩下两个符号为止,此时所剩两个符号的概率之和必为1。然后从最后一级缩减信源开始,依编码路径向前返回,就得到各信源符号所对应的码字。

\18. 信道编码

  • 信道编码主要考虑如何增加信号的抗干扰能力,提高传输的可靠性,并且提高传输效率。

  • 一般是采用冗余编码法,赋予信码自身一定的纠错和检错能力,使信道传输的差错概率降到允许的范围之内。

\19. 信道类型

  • 根据信道连续与否分类

    • 离散信道

    • 连续信道

    • 半连续信道

  • 根据信道是否有干扰分类

    • 无干扰信道

    • 有干扰信道

  • 根据信道的统计特性分类

    • 无记忆信道

    • 有记忆信道

    • 恒参信道

    • 变参信道

    • 对称信道

    • 非对称信道

\20. 信道容量

  • 在信息论中,称信道无差错传输的最大信息速率为信道容量。

  • 仙农信道容量公式:

    • 假设连续信道的加性高斯白噪声功率为N,信道带宽为B,信号功率为S,则该信道的容量为

    • 由于噪声功率N与信道带宽B有关,则噪声功率N=n0B 。因此,仙农公式还可以表示为

\21. 香农信道容量公式的意义

  • 在给定BS/N的情况下,信道的极限传输能力为C,而且此时能够做到无差错传输。如果信道的实际传输速率大于C 值,则无差错传输在理论上就已不可能。因此,实际传输速率一般不能大于信道容量C ,除非允许存在一定的差错率。

  • 提高信噪比S/N(通过减小n0或增大S),可提高信道容量C。特别是,若n0->0,则C->∞ ,这意味着无干扰信道容量为无穷大;

  • 增加信道带宽B,也可增加信道容量C,但做不到无限制地增加。这是因为,如果 Sn0一定,有

  • 维持同样大小的信道容量,可以通过调整信道的BS/N来达到,即信道容量可以通过系统带宽与信噪比的互换而保持不变。

\22. 失真

  • 失真:信源的消息经过编解码后不能完全复原

  • 在实际的信源和信道编码中,消息的传输并不总是无失真的。

    • 由于存储和传输资源的限制

    • 噪声等因素的干扰

\23. 率失真理论

  • 仙农定义了信息率失真函数R(D)

    • D是消息失真

    • R是码率

  • 率失真定理:在允许一定失真度D的情况下,信源输出的信息率可压缩到R(D)。

\24. 失真函数

  • 失真函数:信源符号X={x1, x2, …..xn},经信道传输接收端符号Y={y1, y2….yn},对于每一对(xi, yj)指定一个非负函数 d(xi, yj),称d(xi, yj)为单个符号的失真度或失真函数。对于连续信源连续信道的情况,常用d(x, y)表示。

  • 常用失真函数:

  • 平均失真度:

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

化工厂人员定位系统:以安全为出发点,助力企业安全生产管控数智化

化工厂人员定位系统采用先进的高精度时间同步技术和调度技术&#xff0c;可在复杂化工场景中精准锁定作业人员在多层空间内的实时位置&#xff0c;实现高精度人员定位。 如何管理好每个车间的作业人员&#xff1f; 如何监管作业人员是否按时到岗&#xff1f; 如何知晓当前人员…

阿里专家精心整理分享的Java程序员面试笔试通关宝典PDF

前言 学习是一种基础性的能力。然而&#xff0c;“吾生也有涯&#xff0c;而知也无涯。”&#xff0c;如果学习不注意方法&#xff0c;则会“以有涯随无涯&#xff0c;殆矣”。 学习就像吃饭睡觉一样&#xff0c;是人的一种本能&#xff0c;人人都有学习的能力。我们在刚出生…

MuLogin的WebRTC功能介绍与设置

WebRTC 协议可以绕过代理取到一些本机的网卡IP和真实的上网公网IP地址&#xff0c;那么我们可以使用替换模式来让网站取到我们指定的IP信息&#xff0c;或用禁用模式&#xff0c;让被访问的网站不能通过WebRTC协议来取我们的IP地址。这里如果你不知道公网IP是多少&#xff0c;建…

18.JVM

目录 1.编写源代码 2.JDK &#xff08;Java Development Kit&#xff09; 3.JRE(Java Runtime Environment) Java运行时环境 4.JVM 1.类名 2.类文件放在哪&#xff1f; 13JVM按需加载类&#xff0c;那么何时加载一个类&#xff1f; 4.类文件是怎么来的&#xff1f; 5…

WebRTC学习笔记五 SDP(Session Description Protocol)

SDP里面内容虽然很多&#xff0c;但是条理很清楚。SDP值为字符串&#xff0c;通过换行符生成一行一行的SDP报文&#xff0c;所有行可分为三类&#xff1a;全局行、音频行、视频行 v - Version&#xff0c;版本&#xff0c;版本&#xff0c;应等于0 o - Origin&#xff0c;源&a…

Github优秀项目-使用Python基于GPT2文本自动生成

基于 GPT2-Chinese 模型的中文文本生成项目,可用于中文生成任务。 当下市面上很多文本自动生成业务都是基于该模型二次开发的,可以很少有那种特定垂直领域的模型用于该领域的创作,也就导致大家在使用类似产品的时候会发现很多的问题,这种问题多数会导致写出来的文章前后逻…

工业大数据收集及预测建模方法(南京大学-宋哲博士分享)- 个人总结

获取工业大数据途径 Retrospective Study(回溯性研究)&#xff1a;完全依赖于现有的历史数据&#xff0c;去数据挖掘、学习和建模&#xff1b;Observational Study(观察性研究)&#xff1a;在一段时间内观察要研究的工业过程&#xff0c;微调相关的控制参数&#xff0c;看系统…

闲人闲谈PS之三十五——物资备货与提前采购

惯例闲话&#xff1a;又一年快过去了&#xff0c;回想刚刚开始在CSDN上写笔记&#xff0c;还是2年前的事情。闲人其实是一个拖延症十分严重的人&#xff0c;自从开始走上写作这条路之后&#xff0c;治疗拖延症找到了办法&#xff0c;每天总有一些事情让闲人去思考&#xff0c;然…

Banana Pi开源社区开源硬件瑞芯微RK3568/RK3588全国产化支持计划

随着国产芯片的崛起与电子供应链的国产化率越来越高&#xff0c;全国产替换从技术上成为了可能。加上近几年地缘政治的影响&#xff0c;全国产替换的呼声越来越高&#xff0c;已经提升到了国家战略层面。国产替换成为了一股技术前进的力量。 Banana Pi开源社区&#xff0c;全力…

操作系统_多线程笔记(二)

文章目录1.线程状态2.多线程在的意义是什么?1.线程状态 状态是针对当前线程调度的情况来描述的,因为线程是系统调度的基本单位,所以状态是属于线程的属性 线程的六种状态: 注意: 1.一旦内核里的PCB消亡了,此时代码中创建的thread也就没有用了,即内核里的线程释放的时候无…

终于有阿里p9架构师分享出困扰我多年的分布式系统开发实战文档

前言 都说程序员工资高、待遇好&#xff0c; 2022 金九银十到了&#xff0c;你的小目标是 30K、40K&#xff0c;还是 16薪的 20K&#xff1f;作为一名 Java 开发工程师&#xff0c;当能力可以满足公司业务需求时&#xff0c;拿到超预期的 Offer 并不算难。然而&#xff0c;提升…

ANR 触发、监控、分析 一网打尽

平时看博客或者学知识&#xff0c;学到的东西比较零散&#xff0c;没有独立的知识模块概念&#xff0c;而且学了之后很容易忘。于是我建立了一个自己的笔记仓库 (一个我长期维护的笔记仓库&#xff0c;感兴趣的可以点个star~你的star是我写作的巨大大大大的动力)&#xff0c;将…

用VS软件开发“浪漫烟花“<笔记摘录>

此处主要讲:如何开发一个连续的烟花弹上升并进行烟花爆炸的程序. 第一步自然是创建窗口,设置窗口宽度为1200,高度为800(#include <graphics.h>) initgraph(1200, 800);//创建窗口,宽度1200,高度800 第二步我们需要为这个窗口添加背景音乐,这里我们添加了一首"周杰伦…

【使用 BERT 的问答系统】第 1 章 : 自然语言处理简介

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…

【车间调度】基于模拟退火优化算法的的并行车间机器优化调度(Matlab代码实现)

目录 1 概述 2并行机调度问题的的描述 3 模拟退火法 4 基于模拟退火优化算法的的并行车间机器优化调度&#xff08;Matlab代码实现&#xff09; 4.1 运行结果 5 参考文献 6 Matlab代码 1 概述 并行机调度&#xff08;也称并行多机调度, Parallel MachinesScheduling Prob…

你不知道的npm

npm 前端工程化离不开 npm&#xff08;node package manager&#xff09; 或者 Yarn 这些管理工具。npm 或 Yarn 在工程项目中&#xff0c;除了负责依赖的安装和维护以外&#xff0c;还能通过 npm scripts 串联起各个职能部分&#xff0c;让独立的环节自动运转起来。 npm诞生…

跨平台.NET应用UI组件DevExpress XAF v22.1 - 增强Web API Service

DevExpress XAF是一款强大的现代应用程序框架&#xff0c;允许同时开发ASP.NET和WinForms。DevExpress XAF采用模块化设计&#xff0c;开发人员可以选择内建模块&#xff0c;也可以自行创建&#xff0c;从而以更快的速度和比开发人员当前更强有力的方式创建应用程序。&#xff…

Web进阶

目录 DOM节点操作&#xff08;上&#xff09; 一、任务目标 二、任务背景 三、任务内容 1、DOM结构及节点 DOM节点操作&#xff08;下&#xff09; 一、任务目标 二、任务背景 三、任务内容 1、DOM修改 DOM控制CSS样式 一、任务目标 二、任务背景 三、任务内容 …

达摩院快速动作识别TPS ECCV论文深入解读

一、论文&代码 论文&#xff1a;https://www.ecva.net/papers/eccv_2022/papers_ECCV/papers/136630615.pdf 模型&代码&#xff1a;ModelScope 魔搭社区 二、背景 高效的时空建模(Spatiotemporal modeling)是视频理解和动作识别的核心问题。相较于图像的Transforme…

ArrayList源码分析

ArrayList源码分析 注意:本笔记分析对象为 Java8 版本,随版本不同,源码会发生变化。 1 ArrayList类图与简介 ArrayList是一个 非线程安全,基于数组实现的一个动态数组。可以看到,它的顶层接口是 Collection<E> 集合类。 Note: ArrayList 可以存放所有元素,包括 n…