h264帧内预测模式编号的编码过程

老人慢慢飞 老人慢慢飞     2022-08-10     800

关键词:

1 本文词汇约定

  宏块:H264编码基本单元,16x16像素(或采样)构成

  块:   由8x8像素(或采样)构成的单位

  子块:   由4x4像素(或采样)构成的单位

  

2 帧内亮度预测模式

  H264规范中,宏块有4种帧内亮度预测模式,模式编号为0,1,2,3;块与子块分别有9种帧内亮度预测模式,模式编号从0至9,即0,1,2,.......,8。具体不细说了,可查H264标准。下文以子块为例说明其亮度预测模式如何编码进码流中的。

  

3 子块亮度预测模式编码的句法元素

  prev_intra4x4_pred_mode_flag:是否使用该子块的上左子块亮度预测模式编号的最小值,在计算出该子块的最佳亮度预测模式后,若基编号与该子块上左子块亮度预测模式编号的最小值相等,prev_intra4x4_pred_mode_flag为1,否则为0。

  rem_intra4x4_pred_mode:prev_intra4x4_pred_mode_flag为0时,指示计算出的该子块的最佳亮度预测模式编号或该子块的最佳亮度预测模式编号减1。

4 子块亮度预测模式编码的句法元素赋值的伪代码过程

  

  for( luma4x4BlkIdx=0; luma4x4BlkIdx<16; luma4x4BlkIdx++ ) {

    MinModeBetwennLeftAndUpSubBlock[luma4x4BlkIdx] = (如果左边子块或上边子块不可用,比如跨片片界或为非帧内编码模式) ? 2 : Min(MinModeOfLeftSubBlock,MinModeOfUpSubBlock);
    BestMode[luma4x4BlkIdx] = 计算子块的最佳亮度预测模式();
    if(BestMode[luma4x4BlkIdx]  == MinModeBetwennLeftAndUpSubBlock[luma4x4BlkIdx]) 
    {
      prev_intra4x4_pred_mode_flag[ luma4x4BlkIdx ] = 1;
    }  
    else
    {
      prev_intra4x4_pred_mode_flag[ luma4x4BlkIdx ] = 0;
    }

    if(!prev_intra4x4_pred_mode_flag[ luma4x4BlkIdx ])
    {
      if(BestMode[luma4x4BlkIdx]  < MinModeBetwennLeftAndUpSubBlock[luma4x4BlkIdx])
      {
        rem_intra4x4_pred_mode[ luma4x4BlkIdx ] = BestMode[luma4x4BlkIdx];
      }
      else
      {
        rem_intra4x4_pred_mode[ luma4x4BlkIdx ] = BestMode[luma4x4BlkIdx] - 1;//标注4
      }
    }
  }

 

5 为什么要计算MinModeBetwennLeftAndUpSubBlock

  每个4×4 块帧内亮度预测模式编号必须编码传给解码器以便解码。该信息可能需大量比特表示,但邻
  的帧内模式通常是相关的。例如,A、B 、E 分别为左边、上边和当前块,如果 A 和B 预测模式
  式1 ,E 的最佳预测模式很可能也为模式 1 。所以通常利用这种关联性编码 4×4 帧内亮度预测模式编号。

6 体会H264之博大精深  

  帧内亮度预测模式有9种,其编号为0,1,......,8,其范围上界(8)用2进制数表示需要4位,通过标注4可将rem_intra4x4_pred_mode的值的范围的上界限定为7,从而3位即可表达。少了一位,H264就是通过这样的巧妙设计达到提升编码效率的目的的。

 

  

  

视频技术基础02:视频编码基础(代码片段)

....4减少高频信息2.5推理过程小节3H264编码结构3.1帧类型3.1.1帧内编码帧和帧间编码帧3.1.2H264帧类型3.1.3IDR帧3.2GOP的概念3.3Slice的概念4H264码流结构4.1码流格式4.1.1Annexb格式(附录B格式)4.1.2MP4格式4.2码流结构4.2.1参数集4.2.2NALU... 查看详情

视频编解码—帧内预测

目录帧内预测块大小帧内预测模式4x4亮度块的帧内预测模式(9种)16x16亮度块的帧内预测模式8x8色度块的帧内预测模式帧内预测模式的选择率失真优化视频编码流程 帧内预测一张图像中相邻像素的亮度和色度信息是比较... 查看详情

h264编码原理之帧间预测与帧内预测

...一帧帧的图片,引申出以下的概念:·I帧:关键帧,采用帧内压缩技术举个例子,如果你用摄像头对着一棵树来拍摄,1秒之内,实际你发生的变化是非常少的。1秒钟之内实际很少有大幅度的变化.摄像机一般一秒钟会抓取几十帧的... 查看详情

codecs系列hevc标准:帧内预测技术及x265实现分析

DATE:2021.12.25圣诞文章目录1、帧内预测技术1.1、帧内预测模式1.2、帧内预测过程2、x265实现分析2.1、帧内代码流程图2.2、详细分析1、帧内预测技术对于亮度信号,H.265采用35种帧内预测模式,包括33种角度预测以及DC预测模式和Plan... 查看详情

codecs系列hevc标准:帧内预测技术及x265实现分析

DATE:2021.12.25圣诞文章目录1、帧内预测技术1.1、帧内预测模式1.2、帧内预测过程2、x265实现分析2.1、帧内代码流程图2.2、详细分析1、帧内预测技术对于亮度信号,H.265采用35种帧内预测模式,包括33种角度预测以及DC预测模式和Plan... 查看详情

音视频流媒体图像视频编码网络协议超详细介绍(代码片段)

...几个slice是同一帧?如何从SPS中获取图像宽高如何得到PQ值帧内预测不同块大小的帧内预测模式4*4亮度块的帧内预测16*16亮度块的帧内预测8*8色度块帧内预测帧内预测模式的选择帧间预测块大小参考帧和运动矢量运动搜索钻石(菱形)... 查看详情

icassp2021:av1帧内模式编码改进

本文来自ICASSP2021论文《IMPROVEDINTRAMODECODINGBEYONDAV1》AV1帧内预测简介在AV1中帧内预测模式分为角度帧内预测模式和非角度帧内预测模式,和VP9一样有8种角度帧内预测模式,在每种方向上还有7个delta角度(-3~+3)用... 查看详情

codecs系列x265编码器:帧内模式选择代码分析(代码片段)

Date:2022.9.10中秋文章目录1、x265帧内模式选择过程2、帧内模式选择核心代码1、x265帧内模式选择过程(1)比较35种预测模式的SATDcost,选出N种RDO候选模式,其中N值与rdlevel和PU尺寸有关。(2)针对N种RDO候选模式采用简单的RDO(无... 查看详情

codecs系列x265编码器:帧内模式选择代码分析

Date:2022.9.10中秋文章目录1、x265帧内模式选择过程1、x265帧内模式选择过程(1)比较35种预测模式的SATDcost,选出N种RDO候选模式,其中N值与rdlevel和PU尺寸有关。(2)针对N种RDO候选模式采用简单的RDOÿ... 查看详情

codecs系列x265编码器:帧内模式选择代码分析

Date:2022.9.10中秋文章目录1、x265帧内模式选择过程1、x265帧内模式选择过程(1)比较35种预测模式的SATDcost,选出N种RDO候选模式,其中N值与rdlevel和PU尺寸有关。(2)针对N种RDO候选模式采用简单的RDOÿ... 查看详情

h264基础简介

...类型(1)I-slice:slice的全部MB(宏块)都采用intra-prediction(帧内预测)的方式来编码;(2)P-slice:slice中的MB(宏块)使用intra-prediction(帧内预测)和inter-prediction(帧间预测)的方式来编码,但每一个inter-predictionblock最多只能使用一个... 查看详情

音视频开发之旅(58)-h.264帧内预测

目录编码流程和数据格式回顾4×4亮度块的9中预测模式16×16亮度块的4种预测模式8×8色度块的4种预测模式JM代码资料收获一、编码流程和数据格式回顾我们先看下下图来回顾下编码流程一个编码图像通常划分一个或多个片,每... 查看详情

音视频开发之旅(58)-h.264帧内预测

目录编码流程和数据格式回顾4×4亮度块的9中预测模式16×16亮度块的4种预测模式8×8色度块的4种预测模式JM代码资料收获一、编码流程和数据格式回顾我们先看下下图来回顾下编码流程一个编码图像通常划分一个或多个片,每... 查看详情

视频编解码—dct变换和量化

...DCT变换和量化H264各模式的DCT变换和量化过程1、亮度16x16帧内预测块2,其它模式亮度块3,色度块小结视频编码流程DCT变换        离散余弦变换        它能将空域信号转换到频率上表示,并能够比较好的去除... 查看详情

avs3帧内预测

帧内预测是去除空域冗余的重要工具,AVS3的帧内预测是在AVS1和AVS2的基础上逐步演化来的,包括DC、plane、bi-linear、角度模式等。图1AVS帧内预测模式AVS1支持8种角度模式,如图1(a),对于不同尺寸块使用的角度模式... 查看详情

vvc/vtm帧内编码主要流程图与划分函数

(1)VTM中帧内编码程序的主要流程如下,进行划分的主要函数是XCompressCU与xCheckModeSpilt(2)xCompressCU函数的主体部分如下。对于帧内编码来说,在xCompressCU函数中主要进行的就是一个模式的分割以及帧内代价的计算,通常在填充分割模... 查看详情

avs3帧内预测

帧内预测是去除空域冗余的重要工具,AVS3的帧内预测是在AVS1和AVS2的基础上逐步演化来的,包括DC、plane、bi-linear、角度模式等。图1AVS帧内预测模式AVS1支持8种角度模式,如图1(a),对于不同尺寸块使用的角度模式... 查看详情

x264亮度信号8x8帧内预测模式

1该模式的8个预测方向与4x4帧内预测模式一样。2 该模式只有Highprofile及更高的Profile的才有可能使用,Baseline、MainProfile、Preset为ultrafast时不支持,命令行参数为--8x8dct与--no-8x8dct控制是否使用,x264内部参数结构x264_param_t的成员... 查看详情