| 摘要 | 第1-5页 |
| ABSTRACT | 第5-11页 |
| 第一章 概述 | 第11-13页 |
| ·研究背景 | 第11页 |
| ·本论文所完成的工作 | 第11-13页 |
| ·H.264解码库的移植 | 第12页 |
| ·智能手机播放器的实现 | 第12页 |
| ·H.264解码库的优先 | 第12-13页 |
| 第二章 移动终端视频解码关键技术 | 第13-32页 |
| ·视频编解码技术 | 第13-18页 |
| ·JPEG | 第13页 |
| ·MPEG系列 | 第13-14页 |
| ·H.26x系列 | 第14-16页 |
| ·Windows Media | 第16-17页 |
| ·RealVideo、RealAudio可扩展视频技术 | 第17-18页 |
| ·H.264简介 | 第18-22页 |
| ·H.264编码结构的分层处理 | 第19页 |
| ·差错恢复和码率控制 | 第19-20页 |
| ·VCL层压缩性能的提升 | 第20页 |
| ·多种更好的运动估计 | 第20-21页 |
| ·统一的VLC | 第21-22页 |
| ·NAL层的无缝集成性能 | 第22页 |
| ·移动智能终端技术 | 第22-26页 |
| ·Windows Mobile的发展 | 第24-25页 |
| ·Linux OS简介 | 第25-26页 |
| ·Palm OS简介 | 第26页 |
| ·Symbian操作系统 | 第26页 |
| ·SYMBIAN操作系统 | 第26-32页 |
| 第三章 H.264解码库的移植 | 第32-37页 |
| ·从标准C++到SYMBIAN C++ | 第32-34页 |
| ·静态/全局可写变量(Writable static data) | 第32-33页 |
| ·模板与标准模板库 | 第33页 |
| ·C++异常处理 | 第33-34页 |
| ·从标准C的移植 | 第34-35页 |
| ·C和C++的混合编程 | 第34页 |
| ·C标准库的使用 | 第34页 |
| ·数据类型的对应与转换 | 第34-35页 |
| ·代码移植实例 | 第35-37页 |
| ·基本数据类型的转换 | 第35-36页 |
| ·char与TDesC的转换 | 第36页 |
| ·全局变量的处理 | 第36-37页 |
| 第四章 智能手机播放器的实现 | 第37-45页 |
| ·智能手机上应用开发流程 | 第37-42页 |
| ·Symbian OS应用程序开发的基本知识 | 第37-39页 |
| ·基于Symbian的应用程序开发 | 第39-40页 |
| ·Symbian的应用程序框架类 | 第40-42页 |
| ·H.264播放器在智能手机上的实现 | 第42-45页 |
| ·视频解码在智能手机上的实现 | 第42-45页 |
| 第五章 H.264视频解码库的优化 | 第45-54页 |
| ·适当调整代码的顺序、结构,充分利用ARM处理器的流水线 | 第45-47页 |
| ·消除流水线互锁,改变代码的执行顺序 | 第45-46页 |
| ·修改分支指令,调整代码结构 | 第46-47页 |
| ·高效利用寄存器 | 第47-49页 |
| ·尽量引导编译器使用寄存器存储程序所用的变量 | 第47-48页 |
| ·局部变量的定义:尽量使用32位数据类型 | 第48页 |
| ·局部变量数目的控制 | 第48页 |
| ·函数参数的问题 | 第48-49页 |
| ·优化内存读写 | 第49-50页 |
| ·循环体的优化 | 第50-51页 |
| ·对于for循环,采用减计数至零的终止条件 | 第50页 |
| ·减计数至零循环应使用i!=0的形式作为循环结束的条件。 | 第50页 |
| ·循环展开 | 第50-51页 |
| ·利用SYMBIAN平台技术的优化 | 第51-54页 |
| ·双缓冲技术 | 第51-52页 |
| ·直接屏幕访问(Direct Screen Access,DSA) | 第52页 |
| ·目标代码的生成 | 第52-54页 |
| 第六章 结论 | 第54-59页 |
| ·测试结果 | 第54页 |
| ·不足及下一步研究方向 | 第54-59页 |
| ·浮点运算定点化 | 第55-56页 |
| ·针对ARM指令集的优化 | 第56-57页 |
| ·使用汇编指令 | 第57-59页 |
| 参考文献 | 第59-61页 |
| 致谢 | 第61页 |