我们小组的H.264学习过程(供大家参考)

H.264学习总结报告

--Peter Lee 04.10.19

Outline:

1、  统计数据

2、  学习方法总结

3、  所学内容回顾

4、  不足之处和展望

 

一、统计数据

起止时间:8.16-10.19(两个月)

会议次数:10次(每个星期一次)

各小组作的报告次数统计:

 

帧间编码小组

帧内编码小组

变换量化小组

熵编码小组

次数

10

4

3

5

报告次数总计:22(平均每次会议两个报告)

 

二、所用学习方法总结

1、分组

我们参加H.264学习的共有8人,分成四个小组,每个小组两人,四个小组分别是:帧间编码小组,帧内预测小组,变换量化小组及熵编码小组。分小组的目的是减少工作量,促进交流。

2、每周一次讨论会

       我们基本上是每周一次会议,每周的时间原则上是固定的,但根据实际情况会有变动,我们主要是处于让尽量多的成员参加会议。我们的讨论会采用一人准备材料主讲,下面的成员可以随时提问,一次会议可以有多人主讲。我们的会议一般持续两个小时左右。

3、分两个阶段

       我们对H.264的学习分成两个阶段,第一个阶段是学习H.264的新特性,第二个阶段学习H.264校验模型JM8.5。这样做的原因是因为大部分成员都是初次接触H.264,而且H.264的确也包含了很多新技术,所以我们有必要先对H.264有个大致的了解,再对之进行深入学习。

4H.264新特性的学习方法

       我们先从H.264的综述类文章入手,使得各成员对H.264有个初步的了解。然后每个小组再分别对自己组所对应的新特性,找到相关的参考文献,进行深入学习。

5H.264校验模型的学习方法

       校验模型的学习主要是校验模型代码和标准文档的结合学些为主,在遇到标准文档无详细描述的情况下,找相关的文献进行参考。

       校验模型的学习主要有三个目的。首先,是要熟悉校验模型的程序框架;然后,是要弄明白各个模块之间的相互调用的关系,以及各个重要模块所操作的全局变量;另外就是参考各个新特性在校验模型中的具体实现,一方面是对这些新特性有个更深入的了解,另一方面还可以解决前阶段学习新特性时遗留下来的问题。所以,我们采用的学习策略就是先看编码器,再看解码器,先学整体框架,再深入到各个模块。

6、数据共享

       我们开设了一个FTP,供各个成员在上面交流资源。这些资源主要是每次会议主讲者的报告和相应的参考文献,或者其它一些H.264相关的文献,校验模型等等。

 

三、所学内容回顾

1H.264新特性学习阶段

       首先,我们学习的weigand的那篇关于H.264 overview的经典文献,这篇文献对H.264的新特性大部分都有讲到。之后,我们共开展三次会议来分组深入地学习H.264的各个新特性。

帧间编码小组主讲的内容有:高精度运动估计,分析了H.264的半象素点插值预测和1/4象素点插值预测,同时还分析了H.263的半象素点的插值预测以作比较。多参考帧和7种宏块模式,分析它们的基本原理,并列举了一些快速算法。B帧,讲解了B帧的新特性,同时详细讲述了B帧独有的两种宏块模式direct modemultihypothesis mode

帧内编码小组主讲的内容有:讲解了16×16块和4×4块的帧内预测的原理,并讲述了相关的一些优化问题,包括:预测模式的编码,并行优化问题,预测模式的快速选择的策略问题。

变换量化小组主讲的内容有:H.264中采用的去块滤波的深入介绍。H.264中的整数变换和量化的原理。

熵编码小组主讲的内容有:UVLC&CAVLC,哥伦布码的编码方法,CAVLC的具体过程并做了编码的具体说明。CABAC,整个过程的介绍,包括二进制化,上下文建模,算术编码。

由于大部分成员是初次接触到H.264的这些新特性,所以我们这阶段的学习过程中遗留了很多的问题,所幸的是我们在每次会议时都对前次会议遗留下来的问题进行讨论解决。

另外,我们最后还加了一讲,一是对这阶段的工作作个总结,以改正一些不好的学习方法。另外,就是对下一阶段的工作作个计划。

2H.264校验模型学习阶段

       校验模型的学习我们分编码器学习阶段和解码器学习阶段,其中编码器是我们的重点,开展了四次会议,而解码器部分只作了一次会议。

       编码器部分我们首先讲解整个编码器的程序框架,特别将程序主线上的一些重要函数进行了重点分析讲解。然后就是我们各个小组对各自的部分进行深入的学习。

帧间编码小组主讲的内容有:率失真优化问题,主要讲解了基于拉格朗日乘数法的率失真优化策略,并对设计到率失真优化的相关程序段进行了分析。多参考帧问题,分析了多参考帧涉及到的重要的数据结构和全局变量,并讲解了多参考帧保存,参考帧列表初始化,参考帧选择等相关的代码。7种宏块模式,分析了宏块级和亚宏块级的运动估计在校验模型中的实现。高精度运动估计,首先分析了整个运动估计的过程,然后在分析了亚象素点插值预测的代码段。

帧内编码小组主讲的内容有:帧内预测,在结合帧内预测的系统框架的基础上对帧内预测的实现作了深入分析。FMOPAFF&MBAFF,分别分析了FMOPAFF&MBAFF的基本原理和程序实现。

变换量化小组主讲的内容有:去块滤波的程序实现。变换量化,讲解了其中用到的一些核心函数,同时也分析了相应的接口以及所用到的全局变量。

熵编码小组主讲的内容有: UVLC的程序实现。CABAC中三块内容的实现代码片断分析。

解码器部分,我们只花了一讲,首先讲解了H.264的码流结构,然后分析了解码器的程序主线,并和编码器的程序主线进行了比较。

在校验模型的学习阶段,我们一方面对上阶段所学的H.264的新特性有了更深刻的理解,同时还发现并学习了一些上阶段没有学过的新特性,如rdopt,fmo,mbaff等。

 

四、不足之处及展望

1、不足之处

a、  参加学习的成员不够多

b、  会后交流不够

c、  对于文献的阅读心得没有一个好的共享平台

 

2、展望

       虽然我们H.264学习小组共同学习的任务到此就算完成了,但我们每个成员都会进行继续地学习,我希望大家以后能继续交流。

你可能感兴趣的:(数据结构,框架,优化,工作,文档,h.264)