HEVC帧内/帧间/PCM模式选择过程

For inter coded CUs, the following mode decision process is conducted in the HM encoder. Please refer to contributions about early termination for Early_CU condition, CBF_Fast condition, and Early_SKIP condition.

1.         Coding costs (Jmode) for MODE_INTER with PART_2Nx2N is computed and Jmodeis set to minimum CU coding cost J.

2.         Check if motion vector difference ofMODE_INTER with PART_2Nx2N is equal to (0, 0) and MODE_INTER with PART_2Nx2N contains no non-zero transform coefficients (Early_SKIP condition). If both are true, proceed to 17 with setting the best interim coding mode as MODE_SKIP. Otherwise, proceed to 3.

3.         Check if MODE_INTER with PART_2Nx2N contains no non-zero transform coefficients (CBF_Fast condition). If the condition is true, proceed to 17 with setting the best interim coding mode as MODE_INTER with PART_2Nx2N. Otherwise, proceed to 4.

4.         Jmodefor MODE_SKIP is evaluated and J is set equal to Jmode if Jmode< J.

5.         Check if the current CU depth is maximum and the current CU size is not 8x8 when inter_4x4_enabled_flag is zero. If the conditions are true, proceed to 6. Otherwise, proceed to 7.

6.         Jmodefor MODE_INTER with PART_NxN is evaluated and J is set equal to Jmode if Jmode< J. After that, check if MODE_INTER with PART_NxN contains no non-zero transform coefficients (CBF_Fast condition). If the condition is true, proceed to 17 with setting the best interim coding mode as MODE_INTER with PART_NxN. Otherwise, proceed to 7.

7.         Jmodefor MODE_INTER with PART_Nx2N is evaluated and J is set equal to Jmode if Jmode< J. After that, check if MODE_INTER with PART_Nx2N contains no non-zero transform coefficients (CBF_Fast condition). If the condition is true, proceed to 17 with setting the best interim coding mode as MODE_INTER with PART_Nx2N. Otherwise, proceed to 8.

8.         Jmode for MODE_INTER with PART_2NxN is evaluated and J is set equal to Jmode if Jmode< J. After that, check if MODE_INTER with PART_2NxN contains no non-zero transform coefficients (CBF_Fast condition). If the condition is true, proceed to 17 with setting the best interim coding mode as MODE_INTER with PART_2NxN. Otherwise, proceed to 9.

9.         Invoke a process to determine AMP mode evaluation procedure specified in 4.6.2.3. Output of this process is assigned to TestAMP_Hor and TestAMP_Ver. TestAMP_Hor specifies whether horizontal AMP modes are tested with specific ME or tested with merge mode or not tested. TestAMP_Ver specifies whether vertical AMP modes are tested with specific ME or tested with merge mode or not tested.

10.      If TestAMP_Hor indicates that horizontal AMP modes are tested, MODE_INTER with PART_2NxnU is evaluated with procedure suggested by TestAMP_Hor and J is set equal to the resulting coding cost Jmode if Jmode< J. After that, check if MODE_INTER with PART_2NxnU contains no non-zero transform coefficients (CBF_Fast condition). If the condition is true, proceed to 17 with setting the best interim coding mode as MODE_INTER with PART_2NxnU. Otherwise, MODE_INTER with PART_2NxnD is evaluated with procedure suggested by TestAMP_Hor and J is set equal to the resulting coding cost Jmode if Jmode< J. After that, check if MODE_INTER with PART_2NxnD contains no non-zero transform coefficients (CBF_Fast condition). If the condition is true, proceed to 17 with setting the best interim coding mode as MODE_INTER with PART_2NxnD. Otherwise, proceed to 11.

11.      If TestAMP_Ver indicates that vertical AMP modes are tested, MODE_INTER with PART_nLx2N is evaluated with procedure suggested by TestAMP_Ver and J is set equal to the resulting coding cost Jmode if Jmode< J. After that, check if MODE_INTER with PART_nLx2N contains no non-zero transform coefficients (CBF_Fast condition). If the condition is true, proceed to 17 with setting the best interim coding mode as MODE_INTER with PART_nLx2N. Otherwise, MODE_INTER with PART_nRx2N is evaluated with procedure suggested by TestAMP_Ver and J is set equal to the resulting coding cost Jmode if Jmode< J. After that, check if MODE_INTER with PART_nRx2N contains no non-zero transform coefficients (CBF_Fast condition). If the condition is true, proceed to 17 with setting the best interim coding mode as MODE_INTER with PART_nRx2N. Otherwise, proceed to 12.

12.      MODE_INTRA with PART_2Nx2N is evaluated by invoking the process specified in 4.6.1, only when at least one or more non-zero transform coefficients can be found by using the best interim coding mode. J is set equal to the resulting coding cost Jmode if Jmode< J.

13.      Check if the current CU depth is maximum, If the condition is true, proceed to 14. Otherwise, proceed to 15.

14.      MODE_INTRA with PART_NxN is evaluated by invoking the process specified in 4.6.1, only when the current CU size is larger than minimum TU size. The resulting coding cost Jmodeis set to J if Jmode< J.

15.      Check if the current CU size is greater than or equal to the minimum PCM mode size specified by the log2_min_pcm_coding_block_size_minus3 value of SPS parameter. If the condition is true, proceed to 16. Otherwise, proceed to 17.

16.      Check if any of the following conditions are true. If the condition is true, PCM mode is evaluated and J is set equal to the resulting coding cost Jmode if Jmode< J.

           Bit cost of J is greater than that of the PCM sample data of the input image block.

           J is greater than bit cost of the PCM sample data of the input image block multiplied by λmode.

17.      Update bit cost Bmodeby adding bits for CU split flag and re-compute minimum coding cost J.

18.         Check if the best interim coding mode is MODE_SKIP (Early_CU condition). If the condition is true, do not proceed to the recursive mode decision at next CU level. Otherwise, go to next CU level of recursive mode decision if the current CU depth is not maximum.

HEVC帧内/帧间/PCM模式选择过程

 

转载于:https://www.cnblogs.com/dreamsyeah/p/5878453.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值