首页 > 其他分享 >【数字视频技术介绍】| 编码中的时间冗余和空间冗余

【数字视频技术介绍】| 编码中的时间冗余和空间冗余

时间:2022-12-15 19:39:46浏览次数:64  
标签:编码 预测 数字视频 残差 运动 我们 冗余


公众号回复:666,领取学习资源大礼包

这是一份循序渐进的视频技术的介绍,来自 Github 仓库:

​https://github.com/leandromoreira/digital_video_introduction​

本文档旨在尽可能使用浅显的词语,丰富的图像和实际例子介绍数字视频概念,使这些知识能适用于各种场合。

有兴趣了解更多内容的同学可以下载仓库源码,这里只做摘录,仅供参考。

时间冗余(帧间预测)

让我们探究去除时间上的重复,去除这一类冗余的技术就是帧间预测

我们将尝试花费较少的数据量去编码在时间上连续的 0 号帧和 1 号帧。

【数字视频技术介绍】| 编码中的时间冗余和空间冗余_ide

原始帧

我们可以做个减法,我们简单地用 0 号帧减去 1 号帧,得到残差,这样我们就只需要对残差进行编码

【数字视频技术介绍】| 编码中的时间冗余和空间冗余_ide_02

残差帧

但我们有一个更好的方法来节省数据量。首先,我们将​​0 号帧​​​ 视为一个个分块的集合,然后我们将尝试将 ​​帧 1​​​ 和 ​​帧 0​​ 上的块相匹配。我们可以将这看作是运动预测

维基百科—块运动补偿

“运动补偿是一种描述相邻帧(相邻在这里表示在编码关系上相邻,在播放顺序上两帧未必相邻)差别的方法,具体来说是描述前面一帧(相邻在这里表示在编码关系上的前面,在播放顺序上未必在当前帧前面)的每个小块怎样移动到当前帧中的某个位置去。”

【数字视频技术介绍】| 编码中的时间冗余和空间冗余_运动向量_03

原始帧运动预测

我们预计那个球会从 ​​x=0, y=25​​​ 移动到 ​​x=6, y=26​​,xy 的值就是运动向量进一步节省数据量的方法是,只编码这两者运动向量的差。所以,最终运动向量就是 ​​x=6 (6-0), y=1 (26-25)​​。

实际情况下,这个球会被切成 n 个分区,但处理过程是相同的。

帧上的物体以三维方式移动,当球移动到背景时会变小。当我们尝试寻找匹配的块,找不到完美匹配的块是正常的。这是一张运动预测与实际值相叠加的图片。

【数字视频技术介绍】| 编码中的时间冗余和空间冗余_运动预测_04

运动预测

但我们能看到当我们使用运动预测时,编码的数据量少于使用简单的残差帧技术。

【数字视频技术介绍】| 编码中的时间冗余和空间冗余_ide_05

运动预测 vs 残差

你可以使用 jupyter 玩转这些概念。

自己动手:查看运动向量

我们可以使用 ffmpeg 生成包含帧间预测(运动向量)的视频。

 【数字视频技术介绍】| 编码中的时间冗余和空间冗余_ide_06 

ffmpeg 帧间预测(运动向量)

或者我们也可使用 Intel® Video Pro Analyzer(需要付费,但也有只能查看前 10 帧的免费试用版)。

 【数字视频技术介绍】| 编码中的时间冗余和空间冗余_运动预测_07 

Intel® Video Pro Analyzer 使用帧间预测

空间冗余(帧内预测)

如果我们分析一个视频里的每一帧,我们会看到有许多区域是相互关联的

【数字视频技术介绍】| 编码中的时间冗余和空间冗余_ide_08

空间内重复

让我们举一个例子。这个场景大部分由蓝色和白色组成。

【数字视频技术介绍】| 编码中的时间冗余和空间冗余_运动向量_09

smw 背景

这是一个 ​​I 帧​​,我们不能使用前面的帧来预测,但我们仍然可以压缩它。我们将编码我们选择的那块红色区域。如果我们看看它的周围,我们可以估计它周围颜色的变化

【数字视频技术介绍】| 编码中的时间冗余和空间冗余_运动向量_10

smw 背景块

我们预测:帧中的颜色在垂直方向上保持一致,这意味着未知像素的颜色与临近的像素相同

【数字视频技术介绍】| 编码中的时间冗余和空间冗余_运动向量_11

smw 背景预测

我们的预测会出错,所以我们需要先利用这项技术(帧内预测),然后减去实际值,算出残差,得出的矩阵比原始数据更容易压缩。

【数字视频技术介绍】| 编码中的时间冗余和空间冗余_运动向量_12

smw 残差

自己动手:查看帧内预测

你可以使用 ffmpeg 生成包含宏块及预测的视频。请查看 ffmpeg 文档以了解每个块颜色的含义。

 【数字视频技术介绍】| 编码中的时间冗余和空间冗余_运动预测_13 

ffmpeg 帧内预测(宏块)

或者我们也可使用 Intel® Video Pro Analyzer(需要付费,但也有只能查看前 10 帧的免费试用版)。

 【数字视频技术介绍】| 编码中的时间冗余和空间冗余_ide_14 

Intel® Video Pro Analyzer 帧内预测

【数字视频技术介绍】| 编码中的时间冗余和空间冗余_运动预测_15


【数字视频技术介绍】| 编码中的时间冗余和空间冗余_运动预测_16




标签:编码,预测,数字视频,残差,运动,我们,冗余
From: https://blog.51cto.com/u_12127193/5945718

相关文章

  • Python14 文件读写和编码&OS、path模块的使用
    编码文件读写操作#作者:咸瑜file=open("text.txt","r",encoding="utf-8")print(file.readlines())#['姓名:咸瑜\n','年龄:18\n','籍贯:广东·惠州']file.clo......
  • Python__03--二进制与字符编码
    1二进制与字符编码1.1二进制定义:二进制简单来说就是用两个不同的符号0和1来表示的以2为基数的一个计数系统,是一种机器语言,就是计算机可以看懂的(区别一下python,python......
  • 嵌入式:ARM指令集分类及编码
    ARM指令集是32位的,程序的启动都是从ARM指令集开始。主要是以下三个方面:指令分类及指令格式条件执行指令集编码指令分类及指令格式ARM指令使用的基本格式如下:〈opcode〉{〈c......
  • 即时通讯音视频开发编码H.264的特点与优势
    即时通讯应用中的实时音视频技术,几乎是IM开发中的最后一道高墙。原因在于:实时音视频技术=音视频处理技术+网络传输技术的横向技术应用集合体,而公共互联网不是为了实时......
  • 字符编码详情
    一,ASCII编码。    1、在计算机中,所有的数据在​​存储​​​和运算时都要使用​​二进制数​​​表示。而具体用哪些二进制数字表示哪个符号,当然每个人都可以约定自......
  • 编码遵守的规则
    一、求唯一通常情况下,只要物料的物理或化学性质有变化,只要物料必须要在仓库中存储,就必须为其指定一个编码,即通常所说的一物一码。比如某零件要经过冲压成型、钻孔、喷漆三......
  • CTF常见的加密和编码方法
    目录​​哈希摘要算法​​​​对称加密算法​​​​其他加密算法​​​​编码​​哈希摘要算法以 root 加密为例。MD4:32位的摘要算法。2add09183d0b1dc0428701df9838fbaM......
  • Mysql一个表编码的坑,mark一下
    问题:一个sql执行很慢,5分钟左右,关键是最大的表是5万出头,另一张表不到5000原因:是两个表的字符集不同,导致匹配时,没有匹配到解决办法:将两个表的字符集改成一样具体的命令:ALTERT......
  • HTML URL 字符编码
    URL编码会将字符转换为可通过因特网传输的格式。 URL-统一资源定位器Web浏览器通过URL从web服务器请求页面。URL是网页的地址,比如 http://www.w3school.co......
  • HTML 编码(字符集)
    为了正确显示HTML页面,Web浏览器必须知道要使用哪个字符集。从ASCII到UTF-8ASCII是第一个字符编码标准。ASCII定义了128种可以在互联网上使用的字符:数字(0-9)、英......