学习HEVC(1)

刚开始看H265代码,做一些笔记。

TAppEncoder

程序初始化部分

TAppEncTop  cTAppEncTop;

  // print information
  fprintf( stdout, "\n" );
  fprintf( stdout, "HM software: Encoder Version [%s]", NV_VERSION );
  fprintf( stdout, NVM_ONOS );
  fprintf( stdout, NVM_COMPILEDBY );
  fprintf( stdout, NVM_BITS );
  fprintf( stdout, "\n" );

  // create application encoder class
  cTAppEncTop.create();

  // parse configuration
  try
  {
	  if(!cTAppEncTop.parseCfg( argc, argv ))
    {
      cTAppEncTop.destroy();
      return 1;
    }
  }
  catch (po::ParseFailure& e)
  {
    cerr << "Error parsing option \""<< e.arg <<"\" with argument \""<< e.val <<"\"." << endl;
    return 1;
  }
其中,create函数是空的,argc和argv是配置的参数,这里我设置的是官方给的cfg文件,encoder_intra_main.cfg和BasketballDrill.cfg文件。

parseCfg函数应该就是读取cfg文件,设置一些参数。

接下来进入parceCfg函数内部,里面略显复杂。

po::Options opts;
  opts.addOptions()
  ("help", do_help, false, "this help text")
  ("c", po::parseConfigFile, "configuration file name")
addOptions()后面又跟了一个括号,仔细看了一下program_options_lite.h里面的实现,OptionSpecific类重载了括号运算符,所以addOptions后面括号里的是参数,相当于赋值了,都插入到opts包含的若干列表和映射中。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值