帧内、帧间预测编码效率比较
来源:互联网 发布:js获取数组长度 编辑:程序博客网 时间:2024/06/12 02:16
在之前的各种文献中都看到过这样的结论:帧间预测的编码效率要高于帧内预测。可是从来没看过详细解释,今天来总结一下。注意这里谈论的编码效率是整体而言的。
从理论入手
首先来看原理:
帧内预测——基于同一帧内已编码块预测,构造预测块,计算与当前块的残差,对残差、预测模式等信息进行编码。其主要去除的是空域冗余。
帧间预测——基于一个或多个已编码帧预测,构造预测块,计算与当前块的残差,对残差、预测模式、运动矢量残差、参考图像索引等信息进行编码。其主要去除的是时域冗余。
简单的来说,帧内预测可以看做空域预测,而帧间预测可以看做时域预测。比较帧内帧间的编码效率应该从空域和时域的冗余来考虑。
在《H.265/HEVC——视频编码新标准及其扩展》一书中看到了比较详细的解释。
一般而言,帧间预测编码效率比帧内预测更高,其原因在于视频的帧间相关性很强,信息的冗余度很高。例如,有统计结果表明,对内容变化不快的256级灰度视频序列,相邻帧之间的帧间差绝对值超过3的像素平均不到一帧像素的4%;对内容变化剧烈的256%级灰度视频序列,帧间差绝对值平均不到一帧像素的7.5%。
可见,视频的时域冗余相当大,帧间预测可以获得相当高的编码效率。
再来想象一下空域冗余的情况。对于平坦视频,空域相关性是十分强的,帧内预测可以获得很不错的编码效率。但并不是所有视频都会有很大的平坦区域,更多情况下视频纹理会比较复杂,平坦区域只是一部分,此时帧内预测效果就不是很理想了。
因此整体而言,帧间预测的编码效率要高于帧内预测。
我之前还产生过这样的疑惑:
帧间预测还要编码运动矢量残差,在运动较多的视频中,运动矢量残差将占整体码流的很大一部分。那这时,是不是帧间预测编码效率就比帧内预测低呢?当然不是。
运动矢量编码虽然增加了编码数据量,但是毕竟一个块才只有一个运动矢量残差,整体而言,还是块残差数据量更大一些。因此不能直接从这个方面考虑。
从码流入手
上面说的都是理论,其实最直观的还是从码流入手。
下面是一个视频RA模式下的最终码流数据:
SUMMARY -------------------------------------------------------- Total Frames | Bitrate Y-PSNR U-PSNR V-PSNR YUV-PSNR 97 a 9503.7328 43.5410 51.8656 51.3843 44.9325 I Slices-------------------------------------------------------- Total Frames | Bitrate Y-PSNR U-PSNR V-PSNR YUV-PSNR 4 i 150206.7600 46.2157 52.3800 52.0057 47.4596 P Slices-------------------------------------------------------- Total Frames | Bitrate Y-PSNR U-PSNR V-PSNR YUV-PSNR 0 p -1.#IND -1.#IND -1.#IND -1.#IND -1.#INDB Slices-------------------------------------------------------- Total Frames | Bitrate Y-PSNR U-PSNR V-PSNR YUV-PSNR 93 b 3451.9897 43.4259 51.8435 51.3575 44.8509 RVM: 0.000Bytes written to file: 3841524 (9504.802 kbps) Total Time: 8340.854 sec.
可以看到,I帧仅有4帧,但数据量相当大,而B帧有97帧,总数据量要小很多。I帧只是用帧内预测,而B帧既有帧内预测又有帧间预测,帧间预测的编码效率是显而易见的。
- 帧内、帧间预测编码效率比较
- 帧内预测编码
- 帧内预测和帧间预测的比较
- 帧内预测和帧间预测的比较
- X264帧内预测编码模式
- HEVC算法和体系结构:预测编码之帧内预测
- H.264预测编码之帧内预测
- HEVC算法和体系结构:预测编码之帧内预测
- 帧内预测与帧间预测
- 帧内预测和帧间预测
- 帧内预测模式预测
- 帧间预测编码原理
- 帧间预测编码原理
- 帧间预测编码原理
- HEVC帧内预测编码之LCU四叉树结构分块
- HEVC核心编码技术之二.帧内预测
- HEVC核心编码技术之二.帧内预测
- HEVC帧内预测编码之LCU四叉树结构分块
- 吐血推荐珍藏的 CHROME 插件二
- 全景影像转点云——只有鱼才能看见的真实
- Multiplication Puzzle POJ
- vue.js vue组件中style样式中的css引入背景图路径不对,解决方案
- MATLAB绘制区域图形
- 帧内、帧间预测编码效率比较
- Java 开发必须掌握的线上问题排查命令
- Java入门基础之【日期时间】14
- Java中的ThreadPoolExecutors
- 机器学习(周志华)读书笔记-(四)决策树
- break,continue,return你了解吗?
- PowerDesigner导出sql语句时去掉双引号
- 蔡勒公式(根据日期计算出周几)
- 04_编码