ISP(图像信号处理)学习笔记-帧内预测组合(视频编码入门)
转载小柴柴博主的博文
本文链接:https://blog.csdn.net/cxy19931018/article/details/80635898
PDPC(Position Dependent Intra Prediction Combination),位置决定的帧内预测组合
PDPC的基本原理是使用滤波后的参考采样生成预测值,再将此预测值和未滤波的参考采样进行加权平均得到最终的预测值。
帧内预测的基本思想就是利用相邻像素的相关性去除空间冗余。在视频编码中相邻像素指的就是当前块周围的已编码块的重建像素。
帧内预测的过程可以分为4个部分,分别是:
1.参考像素的获取;
2.参考像素的平滑滤波;
3.利用参考像素计算当前块的预测值;
4.对上一步得到的预测块的边界做边界滤波;下面来详细介绍。
一.参考像素的获取:
如上图所示,当前CU的参考像素由5个部分组成,分别是当前块的左下一列的重建值,个数为W,当前块的左边一列的重建值,个数是H,当前块的左上角重建值,个数为1,当前块的上边一行,个数为W,当前块的右上一行,个数为H。总个数为2(W+H)+1。当然,有时候这5个部分的重建值不是都可用,比如在图像,Tile和slice的边缘时,某一部分的重建值或者全部的重建值都不可用,或者参考像素所属的编码块不是帧内预测模式且被限制不能作为帧内预测的参考块时,这时的处理如下:
1.如果5个部分的重建值都不可用时,则用1<<(bitDepth-1)来填充;
2.如果这5个部分中有部分可用部分不可用时,则先查看最左下角的重建像素值是否可用,如果可用,则从下往上遍历,不可用的重建值用其下方最相邻的像素值填充,到达左上角后,从左到右遍历,若有某点的重建值不可用,则用其左边最相邻的像素填充;
如果最左下角的重建像素值不可用,则先从下往上,从左往右一次遍历知道找到可用的重建值吗,将该重建值填充到最左下角的位置,然后重新开始从下往上,从左往右遍历,填充像素值,规则和上述相同。
二. 参考像素的平滑滤波
为了提高帧内的预测效率,减少噪声对预测的影响,提高预测的精度,对参考像素进行平滑滤波。平滑滤波器其实是一个低通滤波器。
进行平滑滤波是分很多情况的,并不是所有情况下都进行平滑滤波的,266中进行平滑滤波的条件是:
1.亮度分量;
2.大小在4*4到128*128之间;
3.不是DC模式
4.如果是2*2的块,则不进行平滑滤波;
如果是4*4的块,则不进行平滑滤波;
如果是8*8的块,则模式1,2,3,33,34,35,65,66进行滤波,其他模式不滤波;
如果是16*16的块,则模式1,2-15,21-47,53-66进行滤波,其他模式不滤波;
如果是32*32的块,则模式1,2-17,19-49,51-66都进行滤波,其他模式不滤波;
如果是64*64的块,则不进行滤波(想不通);
如果是128*128的块,则滤波模式和32*32的块相同;
平滑滤波又分为两种,一种是常规滤波,一种是强滤波,如下图所示,左边是常规滤波,即将当前参考像素和左右两边的参考像素进行【1 2 1】的三抽头滤波,右边是强滤波,即当前像素用左上方和最右(最下)的参考像素加权平均得到,其中权重与当前像素距离最两角的距离成反比;
其中,强滤波的使用是需要满足一定条件的:
1.亮度分量
2.(abs(A+C-2B)<threshold)
(abs(C+E-2D)<threshold)
其中,threshold=1<<(bitDepth-5),A为左下部分的最下角的参考像素,B为左方的最下角的参考像素,C为左上角的参考像素,D为上方的最右边的参考像素,E是右上方的最右的参考像素。
3.块的大小大于等于32*32
可以看出,强平滑滤波用在低纹理区域,通过用沿着每个方向的线性内插值取代真是参考值,取消了小的局部变化,这样的变化尽管很小,但是在32*32的大样点区域上进行帧内预测,还是可以产生可见的结构性失真的。
三.预测值的计算
预测值的计算分成三种,分别是DC模式,PLANAR模式和角度模式
DC模式的计算:适用于平坦区域,即将当前块的上方和左方的参考像素计算一个均值,该均值作为当前块中每个点的预测值。
PLANAR模式的计算:适用于缓慢变化的区域,即根据a,b,c,d求加权平均,权重与距离有关;
角度模式计算:适合纹理比较复杂的区域,先以简单的对角模式66为例,计算当前块中点的预测值的过程起始是投影的过程,将的那个块中的点按照模式66的预测方向45度往参考像素上投影,投影到哪个参考像素,则该参考像素值就是该点的预测值,因为预测角度是45度,所以模式66种当前块的所有点分投影在参考像素是都是整像素位置。
再举个比较复杂的例子--模式21,为了减少的复杂度,先将参考像素统一到一维上,即对于垂直类预测模式35--49,将左方的参考采样投影到上方,对于水平类预测模式19--34,将上方的参考采样投影到左列,得到一维的参考像素后,即可进行预测值的计算。与模式66相似,计算预测值的过程其实也是反投影的过程,但是在模式21里,预测角度并不是45度,所以投影到参考像素上有两种情况,一种是投影到参考像素的整像素位置,一种是投影到参考像素的分像素位置。投影到整像素位置,也是直接将参考像素值作为预测值,如果是分像素位置,则要通过左右两边两个像素插值得到预测值,其中插值系数w1,w2与投影位置与两边像素的距离有关。
四.预测块的边界滤波
为了块边界的连续性,对预测得到的预测块的边界进行边界滤波,分为3种
DC模式:
左上角: P[0]=(P[-1]+P[-stride]+2*P[0]+2)>>2;
第一行:P[x]=(3*P[x]+P[x-stride]+2)>>2;
第一列:P[y]=(3*P[y]+P[y-1]+1)>>2
(近)水平/垂直模式:即将参考采样中存在的增大或者变小的趋势也添加到边界中,下图以垂直模式为例。
(近)水平模式(10,9,11):对第一行的预测值进行滤波
(近)垂直模式(26,24,26):对第一列的预测值进行滤波
(近)对角模式:越接近对角模式,第一行或者第一列与其相邻的参考像素之间的差距越大,所以需要与参考像素进行滤波以减少边界的不连续性,下图以模式66为例。
模式2及其相邻的8个模式(3,4,5,6,7,8,9,10): 对第一行进行边界滤波(模式2是对前四行)
模式66及其相邻的8个模式(58,59,60,61,62,63,64,65): 对第一列进行边界滤波(模式66是对前四列)
————————————————
版权声明:本文为CSDN博主「小小柴」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/cxy19931018/article/details/80635898
本文链接:https://blog.csdn.net/yolo_life/article/details/81392295
JEM中,将planar模式预测所得结果进行进一步修正。PDPC是帧内预测方式,它将未滤波的边界参考样本和HEVC的有滤波边界参考样本结合进行预测。
PDPC的标志如图。r和s表示未滤波和滤波的边界样本。q(x,y)是HEVC基于滤波参考边界样本s的帧内预测 (JEM中只有planar模式) 。x和y是到边界的水平和垂直距离。
1、首先通过未滤波的样本得到滤波样本,即通过r求得s。
三个预先定义低通滤波器中的一个被用来平滑边界样本。三个滤波器包括3,5,7抽头。平滑滤波器的选择是基于块大小和帧内预测模式的。Hk是滤波器的脉冲响应,额外存储的参数a,滤波器参考计算为:
s=ar+(1−a)(hk∗r)s=ar+(1−a)(hk∗r)
*代表卷积。
2、通过s采用HEVC中预测方法得到planar模式的初步预测结果q。
3、预测最终结果p(x,y),需结合带权重的未滤波边界元素值和q(x,y):
c1-4是存储的预测参数,dx=1:块宽小于等于16,dx=2:块宽大于16,dy=1:高小于等于16。从公式中不难发现,将未滤波与滤波边界进行结合,是通过先得到滤波后的预测,再与未滤波边界样本进行计算达到的。b(x,y)昰归一化因子:
预测参数的一个集合(cv1c1v,cv2c2v,ch1c1h,ch2c2h,a 以及滤波器索引k),一个块大小一个。全部参数的总存储占据30字节。
————————————————
版权声明:本文为CSDN博主「Veronica_o_」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yolo_life/article/details/81392295
ISP(图像信号处理)学习笔记-帧内预测组合(视频编码入门)相关推荐
- H.266/VVC代码学习:帧内预测之角度预测函数(predIntraAng、xPredIntraAng)
predIntraAng函数 VTM中,帧内预测的角度预测的入口函数为predIntraAng函数,该函数主要是用于进行传统的帧内预测(Planar.DC.角度预测),然后对Planar和DC模式使用 ...
- H.266/VVC技术学习:帧内预测之PDPC技术
1.PDPC介绍 为了补偿以上较简单帧内预测模式在利用空间冗余度方面的不足,VVC 中引入了一种根据当前样本的位置及帧内预测模式的角度自适应选取反方向角度上的参考样本信息作为新的一个相对互补性的帧内预 ...
- H.266帧内预测:位置决定的帧内预测组合(PDPC)
PDPC核心思想是联合HEVC帧内预测中滤波边缘参考采样与未滤波边缘参考采样,进行加权预测. 注意:考虑到复杂度问题,PDPC只用于Planar模式. 在HEVC的帧内预测中,根据预测模式和块尺寸大小 ...
- H.266 JEM7.0 帧内预测之四(Planar模式的基于位置的帧内预测组合 (PDPC))
JEM中,将planar模式预测所得结果进行进一步修正.PDPC是帧内预测方式,它将未滤波的边界参考样本和HEVC的有滤波边界参考样本结合进行预测. PDPC的标志如图.r和s表示未滤波和滤波的边界样 ...
- 视频编码(结构、帧内预测、帧间预测)参考自公众号Video Coding
编码结构 H.265/HEVC(高效视频编码)提出了编码树单元CTU(Coding Tree Unit),CTU按四叉树方式向下划分成CU(Coding Unit).VCC允许的最大CTU尺寸为128 ...
- H.266/VVC帧内预测总结
一.帧内预测基本原理 帧内预测技术是利用同一帧中相邻像素的相关性,利用当前块相邻区域的重建像素预测当前块中像素的技术,如下图所示,当前CU可以利用相邻A.B.C.D和E位置处的重建像素来预测当前CU中 ...
- 从HEVC到VVC:帧内预测技术的演进(2) – 多划分及多参考行帧内预测
当前主流的视频编码标准(如H.264/AVC,VP9,AVS1,HEVC等)均使用当前预测单元最邻近的已重构像素对当前预测单元进行帧内预测.因为当前预测单元与其临近的像素之间有很强的相关性,该帧内预测 ...
- VVC 帧内预测代码 xPredIntraAng()函数
帧内预测中的initPredIntraParams()函数 (负参考方向处在跑代码时再看一遍)_青椒鸡汤的博客-CSDN博客 H.266/VVC-VTM代码学习-帧内预测05-Angular模式下计算 ...
- HEVC算法和体系结构:预测编码之帧内预测
预测编码之帧内预测(Intra-Picture Prediction) 预测编码(Prediction Coding)是视频编码的核心技术之一,指利用已编码的一个或几个样本值,根据某种模型或方法,对当 ...
最新文章
- [转] linux IO
- 计算机具有很强的记忆力记忆能力的基础是,基于学习能力的记忆力计算机测评研究...
- UITableView性能优化与卡顿
- 如今的移动操作系统,写在2013年——android篇 by 伊一线天
- python import如何使用_python之import引用
- Go实现Raft第四篇:持久化和调优
- dts数据库迁移工具_5分钟学会如何玩转云数据库组件(迁移,审计,订阅)
- C语言文件IO实现图书馆管理系统,登录、注册、借书、还书和新增书籍
- [转贴]色彩调和的原理
- 最权威的成都Java培训机构排名榜单公布啦,学Java必看
- Ajax中readyState和status
- 用hc05蓝牙模块,开发了几个安卓app了,越来越熟悉蓝牙app了。
- Linux高级网络开发奇妙之旅
- pytorch实现word_embedding(negative_sampling的skip-gram模型)
- websocket传输速率_STM32 websocket,TCP和UDP的传输速率
- command在计算机中的意义,MAC系统中Command键功能有哪些
- SORT跟踪算法的详细解释,不容错过
- 打包aab,从AAB文件生成Apk文件(Android应用程序捆绑包)
- iframe自适应高度解决方案
- 分布交互式CosiMate 8.1 2016.04多学科协同仿真计算平台
热门文章
- Mac/Win上运行Switch游戏(亲测可用)
- 常用的国际物流运输方式有哪些
- java jsp教师工资计算_基于jsp的教师工资管理-JavaEE实现教师工资管理 - java项目源码...
- Matlab创建二维图,三维图基本操作
- 强化学习 --- 概述
- python绘图库turtle_Python库-----Turtle绘图库
- oracle 加载数据戽_oracle数据库数据导入导出步骤(入门)
- http://www.cnblogs.com/bluestorm/archive/2012/03/02/2377615.html
- Java集合之Set接口概述
- 【智能物流】河南烟草:新网络模式下的物流系统优化