HEVC学习(十九) —— NAL unit 的解码过程之三

本文深入探讨了HEVC(高效视频编码)中NAL单元的解码流程,特别是如何将NAL单元的payload部分转换为原始数据——从EBSP(增强型字节流)转换为RBSP(除去开始位的字节流)。内容围绕TAppDecTop::decode()的子函数read(nalu, nalUnit)展开,详细分析了convertPayloadToRBSP()函数的实现,与draft 7.3.1.2 NAL单元头语法相对应。" 128776063,14930944,Dockerfile详解与Docker镜像构建实践,"['Docker', '容器技术', '镜像构建', 'Dockerfile']
摘要由CSDN通过智能技术生成

前面两篇已经将NAL的解析过程的核心部分介绍完了,本篇主要讨论如何将NAL的payload部分转化为原始数据,即从EBSP到RBSP的过程。

该过程由TAppDecTop::decode()的子函数read(nalu, nalUnit)调用convertPayloadToRBSP(nalUnitBuf, pcBitstream, (nalUnitBuf[0] & 64) == 0)实现。

read(nalu, nalUnit); //!< nalUnit-->nalu (EBSP-->RBSP)


 

/**
 * create a NALunit structure with given header values and storage for
 * a bitstream
 */
void read(InputNALUnit& nalu, vector<uint8_t>& nalUnitBuf)
{
  /* perform anti-emulation prevention */
  TComInputBitstream *pcBitstream = new TComInputBitstream(NULL);
#if HM9_NALU_TYPES
  convertPayloadToRBSP(nalUnitBuf, pcBitstream, (nalUnitBuf[0] & 64) == 0); //!< 实现真正的EBSP-->RBSP
#else
  convertPayloadToRBSP(nalUnitBuf, pcBitstream);
#endif
  
  nalu.m_Bitstream = new TComInputBitstream(&nalUnitBuf);
  delete pcBitstream;
  readNalUnitHeade
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值