标准学习方法(2007年6月写)
这是我之前写的,今天才分享出来
一:标准理解的程度等级:
标准的理解分为3个部分:
系统级理解:了解标准的概括,提炼流程图,
算法级理解:分析各个算法的原理,算法的在标准中的实现步骤。一般地说,算法是一个公式(如量化,变换等)或一种方法(如huffman,golomb编码等)。
实现级理解:软件优化和硬件实现。
软件优化:算法优化级,汇编级,处理器结构级,代码级优化。
算法级主要是包括对复杂函数(如指数函数,log函数等)在误差允许的情况下使用泰勒展开式或者查表法进行逼近(常见论文上都有),以及对算法公式利用算法本身的特性对算法进行优化,如利DCT/IMDCT/FFT的对称性,周期性,可分解性(针对2维)进行优化(常见论文上都有)。
汇编优化主要是减少不必要的指令操作以及利用处理器的增强指令级。但要熟悉处理器结构和汇编语言。
处理器结构级是利用处理器结构的特点如cache使用,进行优化带宽性能。
代码级优化主要是针对编译原理对代码进行整理,如if语句最好要放在for外边等。
硬件实现:
最基本的使用硬件实现出来,其次要对硬件特性加以要求,如利用流水或是并行的方法提高时钟周期。减少对ram的消耗等。
内容较多,未系统总结好,略。
二:算法级理解的执行步骤。
Step1.首先要有这个标准所在领域的基础。如没有,要恶补。
Step2.其次了解该标准的编码部分,从编码流程图开始。逐个部分理解每个部分内容的概况。输入输出,作了那些处理。目的是什么。但不分析算法步骤。只讲算法原理。(注意算法原理和算法步骤是有区别的,算法步骤是算法原理在一个标准中的具体实现)。
Step3.搭建参考代码调试平台。
Step4.该标准的码流结构和解析方法。
拆分码流,类似从stream → frame → block 的分析。抓紧for循环。
Step5.算法在码流中的体现
如果关注编码。
就分析编码算法是如何应用到标准中的。分析算法的步骤。参考软件(C或M代码)实现,该算法用了哪几个标志位。如何体现在码流中。算法的流程。性能分析。
如果关注解码
就分析解码算法是如何应用到标准中的。分析算法的步骤,参考软件(C或M代码)实现,该算法用了哪几个标志位。如何体现在码流中。算法的流程。性能分析。
Step6.算法的软件优化或硬件实现。
软件优化提议,硬件实现建议。其他论文的观点。
Step7.编写文档。(step6会穿插在step2,3,4,5中进行)
有以下几类文档:(可能包括,根据工作内容确定)
第一. 标准理解文档
第二. 算法分析文档
第三. 算法软件优化文档(注意图表分析法:RD曲线或RD图表,算法优化-失真度分析图表或图表等文档)。
第四. 算法硬件实现文档。结构说明。包括门级数的统计。Ram使用分析。功耗分析等。
抓住三方资料:
标准,代码,论文。
紧扣码流结构,码流结构是标准组织的灵魂。一定要以码流结构为主线。