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

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

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

https://github.com/leandromoreira/digital_video_introduction

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

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

往期内容:

  1. 数字视频技术介绍 之 基本术语

  2. 【数字视频技术介绍】| 消除冗余 之 颜色模型

  3. 【数字视频技术介绍】| 视频帧类型(I 帧、P 帧、B 帧)

时间冗余(帧间预测)

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

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

原始帧

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

残差帧

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

维基百科—块运动补偿

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

原始帧运动预测

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

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

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

运动预测

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

运动预测 vs 残差

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

自己动手:查看运动向量

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

  

ffmpeg 帧间预测(运动向量)

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

  

Intel® Video Pro Analyzer 使用帧间预测

空间冗余(帧内预测)

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

空间内重复

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

smw 背景

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

smw 背景块

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

smw 背景预测

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

smw 残差

自己动手:查看帧内预测

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

  

ffmpeg 帧内预测(宏块)

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

  

Intel® Video Pro Analyzer 帧内预测

推荐阅读:

头条内推啦,包括但不限于音视频方向,HR 小姐姐在线答疑

移动端技术交流喊你入群啦~~~

推荐几个堪称教科书级别的 Android 音视频入门项目

觉得不错,点个在看呗~

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在教授视频常见的数字编码技术课程时,有一些重点和难点需要特别关注: 重点: 1. 数字编码的基本概念:重点介绍数字编码的基本概念和原理,包括模拟信号与数字信号的转换、采样率、量化和编码等。学生需要理解数字编码的基本原理,以便能够正确地进行数字信号的表示和处理。 2. 常见的数字编码技术:重点介绍常见的数字编码技术,如脉冲编码调制(PCM)、脉冲幅度调制(PAM)、脉冲位置调制(PPM)等。学生需要了解这些数字编码技术的原理、特点和适用场景,以及它们在实际应用的优缺点。 3. 错误检测和纠正技术:重点介绍错误检测和纠正技术,如奇偶校验、循环冗余校验(CRC)、海明码等。学生需要了解这些技术的原理和应用,以及它们在数据传输和存储的作用。重点介绍如何使用这些技术来检测和纠正数据传输过程可能出现的错误。 难点: 1. 数字信号与模拟信号的转换:学生可能会对数字信号与模拟信号之间的转换过程感到困惑。他们需要理解模拟信号的采样、量化和编码过程,以及如何将模拟信号转换为数字信号。这需要学生理解采样率和量化级别的概念,并能够进行实际的信号转换计算。 2. 编码技术的选择和应用:在实际应用,学生可能会面临选择适当的编码技术和参数设置的难题。他们需要综合考虑数据传输要求、带宽限制、误码率和编码复杂度等因素,选择最合适的编码技术和参数设置。这需要学生具备一定的分析和判断能力,以及对不同编码技术的深入理解。 3. 错误检测和纠正技术的应用:学生可能会面临错误检测和纠正技术的应用难题。在实际应用,他们需要判断何时使用哪种错误检测和纠正技术,并正确地应用到数据传输和存储。这需要学生能够理解不同技术的特点和适用场景,并具备解决实际问题的能力。 教授视频常见的数字编码技术课程时,需要重点关注上述重点内容,并针对难点进行耐心解答和指导。帮助学生理解和掌握数字编码技术的基本原理、常见技术和应用方法,以及解决实际问题的能力。同时,通过实例和练习,帮助学生将理论知识应用到实际场景,加深对数字编码技术的理解和掌握。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值