H.264 JM18 analysis—initialization(1st week)

configuration:-d encoder_main.cfg

input file:akiyo_qcif.yuv

一、序列级初始化函数功能说明

函数:alloc_encoder(&p_Enc);

功能:p_Enc是全局(指针)变量,该函数为它所指向的对象分配相应的空间,主要是视频参数和输入参数结构体,并进行默认的初始化(一般都是0)。

 

函数:Configure (p_Enc->p_Vid, p_Enc->p_Inp, argc, argv);

功能:上一个函数为p_Enc->p_Vid, p_Enc->p_Inp两个参数分配了空间,但未进行实质性的初始化。此函数的目的就是根据配置文件(encoder_main.cfg),初始化p_Enc->p_Inp中的部分参数。(调用之前,前两个参数几乎是空白)

 

函数:init_encoder(p_Enc->p_Vid, p_Enc->p_Inp);

功能:初始化编码器。读取输入视频文件,并初始化编码参数,如输入视频文件的格式、量化参数、预测模式、搜索范围、失真准则等等,完成序列级头信息的写入。调用之前,p_Enc->p_Inp的部分参数根据配置文件进行了相应的初始化(Configure函数中完成),但p_Enc->p_Vid几乎是空白。此函数中调用了几个重要函数:

  1. OpenFiles(&p_Inp->input_file1); 功能:打开输入的视频文件;
  2. set_storage_format(p_Vid, &(p_Inp->source), &(p_Vid->p_Dpb_layer[0]->storage_format)); 功能:根据文件设置帧格式,如分辨率(即图像的高和宽)
  3. Init_QMatrix(p_Vid, p_Inp); 功能:完成量化参数矩阵的空间分配及基本初始化。
  4. Init_QOffsetMatrix(p_Vid); 功能:参考《The H.264 Advanced Video Compression Standard》2ed (7.24)及下面的说明。
  5. GenerateParameterSets(p_Vid); 功能:得到sps、pps等参数。包括profile_idc、Level_idc、PPS_id等。
  6. generate_encode_parameters(p_Vid); 功能:得到输入视频文件的一些参数,如文件格式、分辨率等等。
  7. init_img  (p_Vid); 功能:初始化了许多参数,值得关注。包括图像的基本特性,如图像的高和宽、像素值特性、量化步长、参考帧数目、宏块大小、变换系数等空间的分配,初始化上下文环境(概率模型和熵)。
  8. Init_Motion_Search_Module (p_Vid, p_Inp);  功能:若研究预测算法,要特别关注这个初始化函数。
  9. information_init(p_Vid, p_Inp, p_Vid->p_Stats);  功能:打印配置信息。
  10. p_Vid->p_Stats->bit_slice = start_sequence(p_Vid, p_Inp); 功能:将SPS和PPS信息写入到比特中。写序列级信息,参考标准文档:7.3.2.1.1 Sequence parameter set data syntax。

通过以上函数,基本上完成序列级的初始化。

 

二、编码器级初始化函数功能说明

函数:prepare_frame_params(p_Vid, p_Inp, curr_frame_to_code);

功能:为编码一帧初始化参数。一帧编码前的准备,初始化了许多参数。之前的初始化是针对一个视频流,此处是针对具体的帧。

 

三、片级初始化函数功能说明

函数:init_slice (p_Vid, &currSlice, CurrentMbAddr);

功能:为当前处理的片(slice)分配空间并进行初始化,根据帧类型确定参数。这个函数确定了许多参数。

 

当然,在每一级都会有一些基本的初始化,但主要的初始化工作都在序列级和编码器级完成。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值