HM编码器代码阅读(2)——框架以及主要流程
2016-04-12 17:12
323 查看
编码器的运行方式:
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、最后最一些收尾工作!
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、最后最一些收尾工作!
相关文章推荐
- Python回顾与整理9:函数和函数式编程
- 【Spring】spring-mvc hibernate druid jdbc等数据源事务配置详解(解决注解事务不生效问题)
- php 验证邮箱 url 数字等
- C#中的 int?是什么意思
- c++中的续行符 \和宏定义的结合使用
- 24、php知识点总结基础教程--part-2
- java线程的几种状态
- 怎么学习阅读大型项目的代码
- BC404学习笔记-ABAP面向对象编程(三)-CAST 向上、向下转型问题.
- Java读取properties文件
- Java Base64 类
- python3.4中自定义wsgi函数,make_server函数报错问题
- c++作业3
- JAVA – 虚函数、抽象函数、抽象类、接口
- 使用 json_in_java
- Asp.net mvc Controller与 View之间的传递
- C# 多线程
- java学习之反射
- asp.net 点击服务器按钮 不触发后台事件解决方法
- ThinkPHP 3.2.3 验证码 生成和校验DEMO