精华内容
下载资源
问答
  • 帧内预测

    千次阅读 2018-04-17 10:04:06
    为什么要有帧内预测?因为一般来说,对于一幅图像,相邻的两个像素的亮度和色度值之间经常是比较接近的,也就是颜色是逐渐变化的,不会一下子突变成完全不一样的颜色。而进行视频编码,目的就是利用这个相关性,来...

    转载于:https://www.cnblogs.com/charybdis/p/6049108.html

    为什么要有帧内预测?因为一般来说,对于一幅图像,相邻的两个像素的亮度和色度值之间经常是比较接近的,也就是颜色是逐渐变化的,不会一下子突变成完全不一样的颜色。而进行视频编码,目的就是利用这个相关性,来进行压缩。帧内预测是利用视频空间域的相关性,使用同一帧图像内邻近已编码像素预测当前的像素,以达到有效去除视频时域冗余的目的。

    很好理解,存储一个像素的亮度值可能需要8个bit,但是如果相邻的两个像素变化不大,我存储一个像素的原始值,以及第二个像素相对第一个像素的变化值,那么第二个值我可能用2个bit就够了,这就节约了很多的空间。而节约存储消耗的bit数,也就是节约码率,贯穿了H.264编码器的所有过程,不管是帧内预测、帧间预测、变换、量化、熵编码,一切的一切都是为这个目的服务的,明白了这一点,我们就能轻易的理解H.264编码器,所有看上去复杂难懂的地方,都是为了一个目的——节约码率。

    说回到帧内预测,帧内预测的流程见下图

    首先,是上图中蓝色的部分,假设现在我需要对一个像素X进行编码,在编码这个像素之前,先假设我已经有一个参考像素X’了,这个参考像素与同一帧的临近像素有关,根据参考像素X’的值,我得到了一个预测值Xp。

    然后,是上图中红色的部分,我用编码的像素X减去预测值Xp,得到了残差d,这个残差d代替原始值X被编码进最终的图像,起到了节省码率的作用

    最后,是上图中黑色的部分,残差d和预测值Xp相加,得到了X’,用于下一个像素的预测。

    总结起来就是三步:

    1、以同一帧图像内的临近像素作为参考,计算预测值Xp

    2、原始值X和预测值Xp的差值d,被传递到解码端

    3、解码端接收到差值d,将其与预测值Xp相加,就得到了“原始值”X’,X’=Xp+d

    注意:此处只是画出了帧内预测这一部分的流程,参考帧X’真正是由残差d做了变换量化和反量化反变换后与预测值Xp相加得到的。

    步骤很简单,但是里面有几个问题要明确,首先要知道的是,我们固然可以按像素来进行预测,但是这样太费事了,要计算很多次,而且由于帧内预测的特性,你要预测当前的像素,能参考的像素只能是它的临近像素,也就是前面已经编码完成的,它后面的像素还没有编到,所以自然是不能用来编码当前像素的,因此我们只能一个像素一个像素进行编码,编完了一个才能编下一个,这样显然会很慢。于是H.264标准中提出按块进行计算,一个宏块是16x16像素,然后它可以分成子块,最小是4x4的(这个大小是对于亮度编码而言,至于色度编码,4:2:0格式的色度宏块的长和宽都是亮度宏块的一半),这样也能大大提高计算速度。因此下面提到的“值”可以代表“像素”也可以代表“块”,从原理上来说是一样的,而实际采用的是“块”,因此我也就统一用块这个词了。

    我们从上面三个步骤从头开始一点点找问题

    1、这个参考值X’是怎么来的?答案是在第三步里,使用Xp和传递过来的残差d相加得到的,这个X’用于后面的块编码时的参考。

    2、预测值Xp是怎么从X’获得的?答案是根据X’,通过某个公式计算得到的。而这个X’并不是只有一个块,而是有左侧、左上、正上、右上一共四个块作为参考。

    3、上面提到的这个某个公式是什么?根据白皮书,Intra(帧内预测)有两种,一种是4x4大小的亮度块,一种是16x16大小的亮度块。

    对于4x4大小的亮度块,我们有9种预测模式,如下图所示

    对于预测模式0(vertical),当前块的十六个像素值,完全由其上方块最后一行的那四个像素值决定,第一列所有的Xp值都等于A,第二排都等于B,以此类推。

    预测模式1(horizontal)也是一样,完全由图中IJKL四个像素值决定。

    对于预测模式2(DC),则十六个像素值完全相等,等于ABCDIJKL这八个像素的平均值。

    对于预测模式3-8,倾斜方向的,各个像素是由A到L像素通过权重不等的公式加权计算的

    比如对于模式3(diagnal down-left)来说,a=(A+2B+C+2)/4,这里+2代表四舍五入,b和e=(B+2C+D)/4,cfi=(C+2D+E+2)/4,dgjm=(D+2E+F+2)/4,hkn=(E+2F+G+2)/4,lo=(F+2G+H+2)/4,p=(G+2H+H+2)/4=(G+3H+2)/4

    对于模式4(diag down-right),加权系数也是(1,2,1)/4,afkp用IMA三个像素计算,以此类推

    对于模式5(vertical right),aj=(M+A+1)/2,同理bk是AB均值,cl是BC均值,d是CD均值(因为这几个像素延长线都不在预测用的13个像素里面)。en在M的延长线上,所以等于(I+2M+A+2)/4,同理fo\gp\h\i\m都可以计算出来

    同理模式6、7、8也基本跟5一样,注意对于模式8来说,klmnop四个像素都等于L,因为其延长线在L的下面和前面,没有可以平均的像素,于是只好用L一个值代替了。

    还有一点要注意的是,这里面A到L的像素有的没有怎么办?对于模式2(DC),有什么用什么,反正是求均值就对了。其余的模式就必须用到的那几个像素都存在才行(EFGH四个像素可以不存在,此时认为都等于D)

    最终,我们要选择哪种模式进行预测?为了在后面节约码率考虑,当然是预测的越准越好,也就是选择Xp和X’差距最小为好。而评判这个差距其实也有好几种算法,比如SAD、SATD等,等到了变换那里再详细说。总之我们用一个公式把上面9种模式的预测都评价了一番,选出里面最好的一种,作为4x4帧内预测的选择。

    我们注意到这里有9种模式,之后要进行编码的话,我们除了把残差编进去,总得知道我预测的时候用了哪种模式吧,9这个数就尴尬了,因为刚好三个比特可以表示8种,四个比特可以表示16种,所以3bit不够4bit又浪费了。怎么办呢?有个方法就比较巧妙,我有1bit用来表示我当前用的模式和前面的是不是一样的,因为经常有这样的情况,我前面块用的预测方向和现在这个块用的预测方向一样(比如物体边缘是一条直线,那么对应的那几个块用的预测方向很可能都是一样的),如果一样,我只用1bit就足够存储了,如果不一样,我再用用4个bit存储,也就达到了节约bit的目的。

    说完了4x4的亮度块,我们看看16x16大小的亮度块。16x16亮度块有四种模式,如下图

     

    前面三种很好理解了,重点是第四种plane的计算方式,从图上看大概能理解,不过具体算法我还不是很理解。

    我们假设左上角起,上方那一行是17个像素是a1 b2 c3 d4 e5 f6 g7 h8 i9 j8 k7 l6 m5 n4 o3 p2 q1,用这17个像素计算一个H值。

    我在上面标了1~9~1的数字,有数字相同的8对像素,后面计算的时候,都是一对对的计算的。

    i9;j8 - h8;k7 - g7;l6 - f6;m5 - e5;n4 - d4;o3 - c3;p2 - b2;q1 - a1,这九对分别乘以权重0到8(也就是i9这个像素没有用到),而最左边和最右边两个像素权重最大。

    同理V值,也是一样的算法,从上到下像素记作带’的(当然a1’ = a1)。

    然后计算一个A值,它等于右上角(q1)和左下角(V值计算时候对应的那个q1’)的和乘以16

    计算一个B值,它等于(5*H+32)/64,计算一个C值,C=(5*V+32)/64,这种后面加了32又除以64的,其实都是用来四舍五入的。

    然后就能计算我们的预测值了。

    i00 = A - 7*B -7*C + 16

    pix[0][0] = i00 / 32(超出0到255范围的要截断成0或者255)

    然后计算第一行十六个像素分别是i00 + B到i00 + 15*B,然后除以32(然后截断到0~255)

    第二行是在第一行基础上加了一个C,一直到第16行,加了15个C,于是这256个像素都算出来了。

    这就是plane方式的算法。算出来结果就跟下图一样。

      

    对于色度块是亮度块的四分之一,也就是8x8的,那就只有一种了,预测模式也跟亮度16x16块的类似,有四种,只不过具体的序号不一样而已。是0代表DC,1代表horizontal,2代表vertical,3代表plane。

    plane的算法和上面16x16的类似,只不过系数变了,而且两个色度块用的方式一定都是一样的。

    好了,我们回到前面的帧内预测的步骤,还有几个问题没有解决

    4、重建值X’和原始值是不是一样的?答案是不一样,因为d在传到解码端的过程中经过了量化、变换、反变换和反量化,有了精度的损失,因此Xp+d得到的X’跟原始的X是不一样的。这也是为什么要用重建值X’来得到Xp而不是用原始值X。因为解码器那边在解码图像的时候,用到的是有损的X’获得Xp,如果编码器用无损的X来得到Xp的话,那么得到的残差d在编码侧和解码侧就不一致了,这个误差扩散到了下一个块里。

    好了,这样上面的步骤就组成了一个循环,可以一直编码下去了,当然最开始没有参考的那个块,其预测值Xp又是怎么来的呢?可以有一种方式叫做DC128,也就是认为这个块的每个像素都是0x80,然后依据此来计算。

    实际上对于一个16x16的宏块,上面这个16x16的四种模式和它16个子块(大小4x4)的9种模式都会算一遍,然后用16个子块的SATD最小值和16x16的四种模式的SATD最小值比较,选择更小的那个,所以这里面计算量还是很大的。x264源代码里有很多节约计算量的设计,不过这些就得看代码了,白皮书里面是没有的,以后再做研究。

    另外x264里面还有Intra8x8亮度块的模式,这种我认为应该也是为了找到一个预测最准的模式而加进去的,而且也不常用,所以也就不多介绍了。

    回过头来看最开始的那个步骤图,跟白皮书里给的编码器流程图,是不是正是编码器的一部分呢?

    展开全文
  • VVC帧内预测(一)

    万次阅读 2019-12-04 22:46:46
    1、帧内预测模式 为了适应更多的预测方向,VVC的帧内角度预测模式增加为65个,加上DC模式和planar模式,VVC的帧内预测模式有67个。下图中红色的线是VVC比HEVC增加的预测方向。 在HEVC中,每个帧内预测块都是...

    1、帧内预测模式

    为了适应更多的预测方向,VVC的帧内角度预测模式增加为65个,加上DC模式和planar模式,VVC的帧内预测模式有67个。下图中红色的线是VVC比HEVC增加的预测方向。

     

    在HEVC中,每个帧内预测块都是正方形,且边长是2的幂次方,在用DC模式进行帧内预测时不需要使用除法运算。而在VVC中,由于帧内预测块可能是矩形,为了避免用DC模式进行帧内预测时需要进行除法运算只计算较长边的均值作为预测值。

    2、帧内预测模式编码

    如果直接对预测块的模式进行编码,那么对于67种模式需要7bit来编码,数据量很大。VVC采取和HEVC一样的方法,先构建最可能模式列表(most probable mode ,MPM),在VVC内MPM list里有6个预测模式,如果该块的预测模式在MPM中只需要编码其索引号(只需要3bit),如果该块的预测模式不在MPM中而是在61个non-MPM模式在,在熵编码阶段使用截断二元码(Truncated Binary Code ,TBC)编码其模式。

    MPM构建过程如下:

    • 当该编码块左边和上边块的模式不可参考时,其帧内模式默认设为Planar模式。

    • 当该编码块左边和上边块的模式都不是角度模式时:

      • MPM list = {Planar,DC,V,H,V-4,V+4}

    • 当该编码块左边和上边块的一个是角度模式,另一个是非角度模式时:

      • Max=(左边和上边较大的模式)

      • MPM list = {Planar,Max,DC,Max-1,Max+1,Max-2}

    • 当该编码块左边和上边块的模式都是角度模式,且角度不同时:

      • Max=(左边和上边较大的模式)

      • 如果左边和上边模式差值在2到62间,MPM list = {Planar,Left,Above,DC,Max-1,Max+1}

      • 否则,MPM list = {Planar,Left,Above,DC,Max-2,Max+2}

    • 当该编码块左边和上边块的模式都是角度模式,且角度相同时:

      • MPM list = {Planar,Left,Left-1,Left+1,DC,Left-2}

    在构建MPM过程中,如果MPM内有重复模式则剔除。

    3、矩形块的宽角度帧内预测(Wide-angle intra prediction,WAIP)

    在HEVC中,由于帧内预测块都是正方形的所以各个角度预测模式使用的概率是相等的。而在VVC中,帧内预测块可能是矩形块,对于水平类的块(宽大于高)上边的参考像素使用概率大于左边参考像素的使用概率,对于垂直类的块(高大于宽)上边的参考像素使用概率小于左边参考像素的使用概率。所以VVC中提出了WAIP,在对非正方形块进行帧内角度预测时用宽角度方向替换原始的方向。

     

    如上图所示,其中模式2 ~ 66表示传统的帧内预测模式,模式 -1 ~ -14以及模式67 ~ 80表示WAIP预测模式。

    但是在传输预测模式时还是传输原始的预测模式,在解码端会将该模式映射到宽角度模式,这样总的帧内预测模式数量和编码方式都没有变化。

    要替换为宽角度的模式与预测块的宽高比有关,如下表。

    Aspect ratio Replaced intra prediction modes
    W / H == 16 Modes 12, 13,14,15
    W / H == 8 Modes 12, 13
    W / H == 4 Modes 2,3,4,5,6,7,8,9,10,11
    W / H == 2 Modes 2,3,4,5,6,7,
    W / H == 1 None
    W / H == 1/2 Modes 61,62,63,64,65,66
    W / H == 1/4 Mode 57,58,59,60,61,62,63,64,65,66
    W / H == 1/8 Modes 55, 56
    W / H == 1/16 Modes 53, 54, 55, 56

    例如当宽高比为2时(水平类块),模式2、3、4、5、6、7要替换为宽角度模式。

    在VTM5中具体传统模式和宽角度模式间的映射关系实现如下:

      int IntraPrediction::getWideAngle( int width, int height, int predMode )
      {
        if ( predMode > DC_IDX && predMode <= VDIA_IDX )
        {
          int modeShift[] = { 0, 6, 10, 12, 14, 15 };
          int deltaSize = abs(g_aucLog2[width] - g_aucLog2[height]);
          if (width > height && predMode < 2 + modeShift[deltaSize])
          {
            predMode += (VDIA_IDX - 1);
          }
          else if (height > width && predMode > VDIA_IDX - modeShift[deltaSize])
          {
            predMode -= (VDIA_IDX - 1);
          }
        }
        return predMode;
      }

     

    如上图所示,在对矩形块进行WAIP预测时,垂直相邻的两个像素可能使用不相邻的参考像素,为了减少参考像素间距过大的影响,需要对参考像素进行低通滤波和平滑处理。当预测模式是[-14, -12, -10, -6, 72, 76, 78, 80]时,参考像素可以不经处理直接使用。

    4、Mode Dependent Intra Smoothing (MDIS)

    在VVC中使用6bit 4抽头高斯插值滤波器对角度模式的参考像素进行滤波,对非角度模式(planar模式和DC模式)不进行滤波。对模式2, HOR_IDX, DIA_IDX, VER_IDX, 66也不进行处理。其处理过程如下:

    1. 将帧内预测模式分类如下:

      • A:垂直或水平模式(HOR_IDX,VER_IDX)

      • B:对角线模式(2, DIA_IDX, VDIA_IDX)

      • C:其他

    2. 如果角度模式属于A,不进行滤波处理,直接将参考像素作为预测像素。

    3. 如果角度模式属于B,使用[1, 2, 1]滤波器对参考像素进行滤波,直接将滤波后的值作为预测像素不进行插值处理。

    4. 如果角度模式属于C,对落到非整数位置的参考像素进行插值处理(不再进行滤波)。

    下面是VTM5内滤波相关的代码:

     //left column (bottom to top)
      for( int i = 1; i < predHSize; i++, piDestPtr -= predStride, piSrcPtr -= predStride)
      {
        *piDestPtr = (piSrcPtr[predStride] + 2 * piSrcPtr[0] + piSrcPtr[-predStride] + 2) >> 2;
      }
        //top row (left-to-right)
      for( uint32_t i=1; i < predSize; i++, piDestPtr++, piSrcPtr++ )
      {
        *piDestPtr = (piSrcPtr[1] + 2 * piSrcPtr[0] + piSrcPtr[-1] + 2) >> 2;
      }

    感兴趣的可以关注微信公众号Video Coding

     

    展开全文
  • H.265帧内预测文档

    2018-09-05 17:32:23
    H.265帧内预测总结文档,对H.265帧内预测方式及运动矢量处理做一些详细总结
  • 提出了一种AVS高清视频编码器帧内预测模块硬件结构。通过对AVS帧内预测各个预测模式的分析,设计了帧内预测编码流水线结构和模式预测运算单元电路。根据各预测模式的编码运算关系,合理安排流水线结构,采用8 bit...
  • 帧内预测和帧间预测的关系

    千次阅读 2017-07-21 20:07:49
    首先补充一下,一般编码时如果只使用帧内预测,那么它的配置文件是encoder_intra_main.cfg,如果存在帧间预测,那么它的配置文件是encoder_randomaccess_main.cfg。前面几篇博客写了tile和软件操作手册的一些东西,...

    首先补充一下,一般编码时如果只使用帧内预测,那么它的配置文件是encoder_intra_main.cfg,如果存在帧间预测,那么它的配置文件是encoder_randomaccess_main.cfg。前面几篇博客写了tile和软件操作手册的一些东西,后来发现方向跑偏了,所以现在再转回来,脚踏实地。首先很惭愧,原来很多的概念都搞错了还不自知,基础远远不够,少年还得加把劲。
    首先是帧间帧内编码的关系,在我原来的想法里,I帧使用帧内预测,B帧参考了I帧,就是帧间预测,现在被博主 岳麓吹雪 纠正了,感觉这个错误很多HEVC新学者也会犯,所以记录到博客里。

    这里写图片描述
    上图中,红色的部分是帧内编码的部分,蓝绿是帧间编码的部分,这里一帧图像中,哪些块采用帧间哪些块采取帧内是根据率失真代价计算出的,如果帧内预测率失真代价低,那么这个块就是用帧内预测,这里可以知道其实在编码前,帧内预测和帧间预测都完成了,只是选其一。
    也就是说帧内预测和帧间预测是竞争关系。
    另外,如果模式决定了是帧间,那么实际压缩的是MVD,对每一个块的MV都进行编码,那么将花费很多的比特数,特别是小尺寸块。空间相邻的块之间存在相关性,因此可以根据邻近已编码的块进行预测,预测得到的运动矢量即为MVP。时域上也是存在相关性的,因此也可以进行时域预测,可以得到时域MVP。

    为了进一步减少编码比特数,采用了残差编码,即对当前MV和预测MV(MVP)的差值进行编码,这个差值即为MVD。

    三者之间的关系:MV=MVP+MVD
    MV这段及下面merge这段转载自::http://blog.csdn.net/lin453701006/article/details/74012420
    另外是merge和skip,skip是merge的一种特殊情况,
    这里写图片描述
    AMVP就是需要预测出MV然后对MVD编码,但是merge是直接使用原来的MV,MVD为零,但是即使为零也需要编码,而如果进入了skip,那么就不对MVD编码。

    展开全文
  • 为捕获自然视频序列中出现的任意边缘方向,帧内预测角度模式数量从HEVC中的33个增加至65个。新增的模式如图红色虚线所示,planar和DC模式保持不变。这些更紧密的帧内预测模式适用于亮度和色度分量的所有尺寸块。 ...

    为捕获自然视频序列中出现的任意边缘方向,帧内预测角度模式数量从HEVC中的33个增加至65个。新增的模式如图红色虚线所示,planar和DC模式保持不变。这些更紧密的帧内预测模式适用于亮度和色度分量的所有尺寸块。

    亮度帧内编码模式

    这里写图片描述
    为了容纳数量增多的角度帧内预测模式,使用一种有6个最可能模式 (Most Probable Modes,MPMs) 的帧内模式编码方法。该方法主要由两方面组成:1、导出6个MPM;2、熵编码6个MPM模式及非MPM模式。
    在JEM中,包含在MPM列表中的模式被分类为3组:
    1、邻近帧内模式 Neighbour intra modes:
    5个临近块的帧内预测模式被用来导出MPM列表。5个相邻块的位置与merge模式中的相同,如图所示,为左侧 (Left),上方 (Above),左下 (Below-Left),右上(Above-Right) 和左上 (Above-Left)。
    这里写图片描述
    2、导出帧内模式 Derived intra modes:
    派生模式通过对MPM列表中角度预测模式-1或+1得到(注:DC或planar模式不用于派生模式)
    3、默认帧内模式 Default intra modes:
    垂直,水平,模式2,对角模式

    过程为:
    初始MPM列表通过插入5个邻近块的帧内预测模式及planar,DC模式生成。之后会排除初始MPM列表中重复的模式,使得每个模式仅保留一个。初始模式的顺序按下排外:左侧,上方,planar,DC,左下,右上,左上;如果初始MPM列表在排除操作后模式数不足6个,会加上导出的派生模式;若MPM列表仍然不足6个,加入默认帧内模式。通过上述所有过程,可生产一个包含6个不重复模式的MPM列表。

    在熵编码被选的6个MPM模式时,使用截断一元码进行模式的二值化。前三位的bins使用上下文模型编码,由于当前正编码的bin相关的MPM模式决定。MPM模式分为三类:a、主要水平模式 (MPM模式号小于或等于对角线方向模式号);b、主要垂直模式( MPM模式号大于对角线方向模式号);c、非角度模式类(DC和planar模式)。相应地,根据该分类方案使用3个上下文模型传输MPM索引。 剩余61个非MPM帧内预测模式的编码方法如下。
    61个非MPM模式首先通过当前模式减去MPM模式中小于它的个数得到的,随后分成两个集合:被选集合和非被选集合。被选集合中有16个模式,剩余45个模式属于非被选集。在码流中有flag表示当前模式所属的模式集合。如果所指示的模式在所选模式集合内,所选模式被4 bit定长码表示;如果所指示的模式属于非被选集合,被选模式通过截断二元码二值化。所选择的模式集是通过以下61种非MPM模式的子采样得到的:
    - 被选模式集 = {0,4,8,12,16,20……60}
    - 非被选模式集={1,2,3,5,6,7,9,10……59}

    在编码端,使用与HM柤似的两个阶段的帧内预测摸式决策过程。

    1. 第一阶段为帧内模式预选择阶段,使用低复杂度的绝对变换差之和 (Sum of Absolute Transform Difference,SATD) 从所有可选的帧内预测模式中预选择N个帧内预测模式;
    2. 第二阶段,使用更高复杂度的R-D cost,从第一阶段选出的N个候选中选择1个最佳的预测模式。

    当总共有67个帧内预测模式时,可用的模式数几乎是原来的两倍,若直接应用HM的模式决策过程,帧内模式预选择阶段的复杂度也将变高。

    降低编码端的复杂度

    使用两步帧内模式预选择过程。第一步,采用SATD从最初35个帧内预测模式 (图中黑色实线箭头) 中选择N(N的值与帧内预测块大小相关)个模式;第二步,通过SATD进一步检查所选择的N模式的直接邻接(如图中的红色虚线箭头所指示的附加帧内预测方向),并更新所选择的N个模式的列表。最后,MPM列表中的M个模式与N个选出的模式相结合得到最终进入RD cost计算的模式列表,该过程与HM一致。与HM相比,Μ的值增大1;N的值减少如表所示。
    这里写图片描述

    帧内模式色度编码

    JEM中,chroma编码块CB允许使用11种帧内模式,包括5个传统帧内模式和6个CCLM模式。chroma模式候选包括以下三部分:

    1. CCLM模式(6个);

      2和3中共取5个,取到5个不重复的模式即停止,没取到则一直进行。

    2. DM模式,由luma CB覆盖当前chroma块五个并列位置,从而得到的帧内预测模式:
      五个要确定的位置的顺序依次为:center (CR),top-left (TL),top-right (TR),bottom-left (BL)以及bottom-right (BR) 4x4的块,在对应当前I帧chroma的luma 块上。对于P B slice而言,只有五个子块中的一个被确定,因为有相同的模式index。
      这里写图片描述
    3. 空间相邻块的chroma预测模式:
      a.5个chroma预测模式 : left,above,below-left,above right,above-left空间相邻块
      b,planar以及DC模式
      c、加入衍生模式,这些帧内模式通过-1或+1到list中已经包含的角度模式中得

      d、垂直,水平,模式2

    无论何时,当新的chroma帧内模式加入候选列表时,排除操作都要进行。非CCLM的chroma帧内模式候选列表大小修剪至5。至于模式signalling,首先传一个flag来表示是使用CCLM还是传统chroma帧内预测模式。之后用几个flags来表示当前色度块使用的chroma预测模式。

    展开全文
  • HEVC 帧内预测

    千次阅读 2018-09-28 10:49:56
    帧内预测使用TU块。利用当前图片已经编码的像素进行预测。 预测模式 帧内预测可用块大小为帧内预测分成35种预测模式,其中33种角度预测(2-34),Planar预测(0)和DC预测(1)。支持块大小从4x4到64x64。 MPM选择 ...
  • 帧内预测模式预测

    千次阅读 2016-03-31 10:41:12
    D、帧内预测模式的选择:  亮度和色度的帧内预测,都有多种预测策略,因此实际应用中要选择最优的帧内预测策略。  对于色度块预测,只能采用8x8的分块大小,只需要比较4种模式的代价(用RDO模型),选择代价...
  • PDPC核心思想是联合HEVC帧内预测中滤波边缘参考采样与未滤波边缘参考采样,进行加权预测。注意:考虑到复杂度问题,PDPC只用于Planar模式。在HEVC的帧内预测中,根据预测模式和块尺寸大小,选择未滤波和滤波后的边缘...
  • VTM 5.0版本更新的帧内预测技术,其最初的思想来源于基于神经网络的帧内预测技术(JVET-J0037)。 Tracking route: N0217 -> M0043 -> L0199 -> K0196 -> J0037 intra prediction based on neural ...
  • VTM7.0中,在进行帧内预测之前,需要对帧内预测参数进行初始化,初始化函数是initPredIntraParams,该函数主要包含以下几个功能: 判断当前模式是垂直类模式还是水平类模式 根据当前模式计算角度偏移值 根据当前...
  • IOS音视频(十二)帧内预测压缩和帧间预测压缩原理分析
  • VVC-帧内预测改进

    2019-04-30 22:36:47
    1. 65个帧内预测方向 HEVC帧内预测:包括Planar模式、DC模式和33种角度预测模式。 VVC帧内预测:Planar和DC模式,角度预测模式增加到了65种,帧内预测模式达到了67种。角度预测更加密集,对所有块、亮度色度分量都...
  • HEVC帧内预测

    2016-08-04 14:38:24
    HEVC帧内预测hevc有35种预测模式,都是基于PU定义的,而具体帧内预测过程的实现是以TU为单位。标准规定PU可以以四叉树的形式划分TU,且一个PU 内的所有TU共享统一种预测模式。HEVC帧内预测的步骤 判断当前TU相邻...
  • 基于减少视频编码复杂度的目的,本文采用一种基于SATD的帧内预测模式选择算法,该算法首先计算出35种预测模式所对应的SATD值,然后通过MPM选择出最有可能预测模式,并计算出最有可能预测模式所对应的SATD值和35种...
  • 帧内预测与帧间预测

    千次阅读 2008-08-26 23:47:00
    一、帧内预测:我觉得帧内预测是H.264区别于其它编码标准的一个重要特征,mpeg-1和mpeg-2都没有帧内预测,mpeg-4虽然有但作用并不明显,而h.264的帧内预测是很强大的,对于16x16的块支持4种帧内预测模式,对于4x4得...
  • 帧内预测调用流程

    2019-05-30 12:44:18
    帧内预测函数调用流程图
  • 上一篇:H.266/VVC-VTM代码学习-帧内预测16-解码端xIntraRecBlk完成TU指定分量帧内重建(附ISP变换和预测尺寸不同、JCCR、LMCS简述) 下一篇:持续创作中… 目录H.266/VVC专栏传送前言一、initIntraPatternChTypeISP...
  • 为了进一步提高HEVC信息隐藏过程中的嵌入效率,提出了一种HEVC帧内预测模式调制的信息隐藏方法。该方法根据密钥生成每个CTU的空间点阵维数N(N=2,3,4),利用帧内预测模式选取规则选出N个顶角处的帧内预测模式,通过...
  • 亮度块的帧内预测 帧内预测的流程 (1)遍历所有的预测模式,得到每种模式下的残差信号,再对残差信号进行Hadamard变换计算SATD值 (2)利用SATD值计算每种预测模式的率失真代价,选取率失真代价最小的几种模式...
  • AVS帧内预测模块FPGA实现,向红莉,张刚,本文采用资源共享、高并行和多流水线结构在FPGA平台实现帧内预测算法。该方法在分析AVS帧内预测9种预测模式的基础上,利用预测模式�
  • 为了降低新一代视频编码系统的复杂度,提出了基于图像相关性和最优模式概率统计的帧内预测优化算法,降低了视频编码的复杂度。首先,介绍了新一代视频编码标准(HEVC)帧内预测算法中的Angular预测模式、Planar预测...
  • 当前主流的视频编码标准(如H.264/AVC,VP9,AVS1,HEVC等)均使用当前预测单元最邻近的已重构像素对当前预测单元进行帧内预测。因为当前预测单元与其临近的像素之间有很强的相关性,该帧内预测技术可以有效地降低...
  • 帧内预测和帧间预测

    2012-03-05 16:05:47
    帧内预测(Intra-Prediction) 预测块P是基于已编码重建快和当前块形成的,当前块减去这个预测块,将差值进行编码 老外的说; Intra-Prediction means that the samples of amacroblock are predicted by using only...
  • 色度分量的帧内预测 入口函数 对色度分量进行帧内预测的入口函数是:estIntraPredChromaQT 1、调用getAllowedChromaDir构造色度分量的帧内预测候选模式列表 2、遍历候选模式列表,对于每一个模式,调用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,704
精华内容 681
关键字:

帧内预测