HM编码器代码阅读(2)——框架以及主要流程

框架以及主要流程




HM编码器的运行方式



编码器的运行方式: encoder -c encoder_lowdelay_main.cfg -c akiyo.cfg
其中encoder就是编码器可执行文件的名字,encoder_lowdelay_main.cfg是编码器的配置信息,akiyo.cfg是待编码的视频数据的配置信息。

下面是运行截图:



主函数



编码器主函数在文件encmain.cpp中,调用如下:

1、create是个空函数
2、encode函数执行了实际的编码工作

编码的简要流程


    TAppEncTop的encode函数调用了compressGOP这个函数,这是一个非常重要的函数,它对一个图像组进行编码。
    compressGOP函数(这个函数将近2000行,我就不贴上来了。。。):
    1、调用xInitGOP设置图像组中帧的数量
    2、设置一些图像增强信息
    3、进入一个大的for循环,对图像组的每一帧图像进行处理
         3.1、说明一下GOPEntry并不表示一个图像组,而是表示某一帧对应的GOP(即图像组)的信息,它包含了这个帧的参考帧等重要的信息。
         3.2、调用selectReferencePictureSet、createExplicitReferencePictureSetFromReference、applyReferencePictureSet、arrangeLongtermPicturesInRPS、setRefPicList、setRefPOCList、setList1IdxToList0Idx等几个函数,设置当前帧的参考图像集、参考帧、并对这些参考帧进行排序等等,比较复杂的功能。
         3.3、进入一个while循环,对帧的每一片(slice)进行编码,主要是调用compressSlice来选出最优的参数,以及预测、变换、量化的编码工作,然后进行环路滤波,最后调用encodeSlice对其进行熵编码
    4、一些收尾工作!


  • 23
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值