攻克视频技术
李江
声网 Agora 视频专家
7494 人已学习
新⼈⾸单¥59
登录后,你可以任选3讲全文学习
课程目录
已完结/共 19 讲
攻克视频技术
15
15
1.0x
00:00/00:00
登录|注册

07|帧间预测:如何减少时间冗余?

你好,我是李江。
上一节课我们一起讨论了帧内预测。帧内预测主要是通过当前编码块它的相邻的已经编码完成的像素预测得到预测块,从而达到减少空间冗余的目的。我们知道在视频编码时主要需要去除 4 个冗余,包括:空间冗余、时间冗余、视觉冗余和信息熵冗余。那么这节课我们接着之前的课程,继续讲讲如何减少时间冗余。
提醒一下,这节课难度比较高,涉及的知识点又很多,建议你多看几遍。我也会尽量简化过程,把基本的原理讲清楚。你在这里打好了基础,再去学习更高阶的内容就轻松多了。
我们已知,视频在 1 秒钟内有很多帧图像,其通过帧率来表示。一般来说帧率为 24fps 或者 30fps,也就是指,1 秒钟会有多达 24 帧或者 30 帧图像。
但是其实在自然状态下,人或者物体的运动速度在 1 秒钟之内引起的画面变化并不大,且自然运动是连续的。所以前后两帧图像往往变化比较小,这就是视频的时间相关性。帧间预测就是利用这个特点来进行的。通过在已经编码的帧里面找到一个块来预测待编码块的像素,从而达到减少时间冗余的目的。
那么在正式讲解之前,还有三点我需要特别强调一下。
第一,在帧内预测中,我们是在当前编码的图像内寻找已编码块的像素作为参考像素计算预测块。而帧间预测是在其他已经编码的图像中去寻找参考像素块的。这正是帧内预测和帧间预测的区别
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

视频编码中的帧间预测技术是减少时间冗余的重要方法之一。本文深入介绍了帧间预测的基本原理和实现过程,包括帧内预测与帧间预测的区别、多参考与单参考的概念,以及P帧与B帧的特点。文章还讨论了帧间编码中的块大小、参考帧和运动矢量的概念,以及运动搜索算法的作用。快速运动搜索算法如钻石搜索算法和六边形搜索算法被介绍,以及运动矢量预测和亚像素插值的应用。通过本文的阐述,读者可以了解帧间预测在视频编码中的重要性以及其基本实现原理,为进一步深入学习视频编码技术奠定基础。文章内容详实,涵盖了视频编码中的关键技术,对于从事视频编码相关工作或对视频编码感兴趣的读者具有很高的参考价值。文章还介绍了亚像素插值算法和亚像素精度运动搜索,以及运动矢量预测算法和SKIP模式,为读者提供了全面的视频编码技术知识。文章内容丰富,涉及了帧间预测的具体选择过程和相关算法,对于视频编码领域的专业人士具有很高的实用价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《攻克视频技术》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(14)

  • 最新
  • 精选
  • T------T
    老师好,“小车向前行驶了 48.5 个像素点”. 一个像素点不应该只有一种颜色吗?怎么会有0.5呐? 还是说这里的像素点是指一个宏块或者子块?

    作者回复: 一个像素是只会有一种颜色的,我在图里面也标注了的。之所以用这个例子来解释是因为想定性的解释一下为什么要做亚像素精度搜索。如果定量的推敲的话你会发现是不严谨的。但是我要是严谨的来讲又会提高门槛很多人会更不懂了。所以用这种例子来给大家解释一下让各位更好的理解基本意思。实际上,因为一个物体的边缘往往会横跨好几个像素的,这个物体动一点点采集到的边缘的颜色就会变化。提供亚像素精度搜索可以多一种选择,跟整像素搜索对比选一个最好的。并且实验证明对编码性能确实有提升。

    2022-01-27
    3
  • Geek_7de4c5
    可惜雷神离开我们很久了。

    作者回复: 是的啊,好可惜

    2021-12-06
    1
  • Geek_9c9938
    预测块具体是什么意思 ? 文中有 '作为预测块' 也有 '计算预测块' 这两种描述不是一个意思吧

    作者回复: 预测块就是通过帧间或帧内预测算法得到的一个像素块。

    2023-11-02归属地:北京
    2
  • 晓龙
    帧间和帧内预测,YUV三个分量都是分开进行预测的么?还是说预测Y分量,然后UV是依据Y分量的预测结果?

    作者回复: 不分开预测,Y和UV共用运动矢量

    2022-02-11
  • 晓龙
    老师,复习的时候遇到一个疑惑,帧内预测时,亮度和色度块是分开预测的,以420编码为例,亮度划分成16x16,4x4,色度8x8。这里有两个问题: 1)帧间预测时,亮度和色度模块也是分开预测的么? 2)还是以420为例,亮度划分成16x16,8x16,16x8,8x8,4x8,8x4,4x4 ,色度块 8x8 ,是这样划分的么?

    作者回复: 帧间预测亮度和色度是共用一个运动矢量的,色度块不会单独划分,跟亮度块对应。

    2022-02-11
  • newzai
    要深入了解图像编码解码相关的,目前有哪些书籍推荐,优先中文?

    作者回复: 入门的中文书籍的话,毕厚杰老师的《新一代视频压缩编码标准H264 AVC》

    2022-01-16
  • tony
    运动矢量搜索时按照16x16,8x8,4x4,4x8,8x4,8x16,16x8等整数像素搜索,为什么运动矢量还会出现小数点?

    作者回复: 16*16和8*8这些是搜索的块大小。块除了大小之外,还有位置坐标。位置坐标在亚像素搜索的时候可以是“小数”

    2022-01-03
  • Geek_b8aa7b
    这里提到了运动矢量这一个概念,我看视频监控里有一个功能叫做运动检测,画面运动的部分会用宏块标识出来,是不是和这个运动矢量是一个原理呢?

    作者回复: 应该差不多

    2021-12-25
  • *佳
    P帧B帧可以进行帧内预测吗?每一帧都会进行帧内和帧间两个预测吗?

    作者回复: 预测是按块来的,P帧和B帧的每一个一个块可以在帧内和帧间里面选一种“最好的”模式

    2021-12-08
    2
  • 晓龙
    先问一个问题,P,B帧是帧内帧间算法二选一么?我一直以为是先帧间,然后帧内,两次压缩。为什么不选用两次压缩呢?是 压缩时间/压缩效果 太大了么? P 帧的第一个宏块的 MVP 怎么得到呢? MVP等于自身块的运动矢量,MVD = (0,0)

    作者回复: 作为帧间压缩之后就是残差块了,像素值就很小了,再做帧内预测那帧内预测的残差块不是很大吗?没有意义。而且还增加压缩时间

    2021-12-06
    2
收起评论
显示
设置
留言
14
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部