论文部分内容阅读
随着移动终端设备的快速发展,人们对于终端设备上多媒体应用的需求不断增加,用户对多媒体服务提供的质量要求也越来越高,尤其是对数字视频服务。在移动终端设备上,传统的由CPU进行视频解码的方法,只能播放分辨率较低的视频文件。这已经满足不了人们对视觉的要求。由于硬件芯片技术的发展,现在很多处理器芯片都带有了硬件解码功能。硬件解码技术大大降低了CPU的占用率,提高了视频解码速度。当下,google推出的Android操作系统在手机领域发展迅速,但是其应用并不仅局限于手机,在普通嵌入式设备上的应用也日趋广泛。Android凭借其开源、易开发等特点吸引着众多用户。但是Android系统下的视频解码技术并不成熟,其自带的是软件解码,对CPU的处理能力要求较高。这样导致Android移植到一般嵌入式平台上去后只能支持分辨率较低的视频文件。由于现在很多处理器芯片都直接带有硬件解码部件,如何能够在Android上更便易地利用该硬件解码功能,从而提高解码速率,支持更高分辨率视频是一个现有实际问题。加之这方面的深入研究资料不多,这给开发者在不同处理器、不同嵌入式平台上对视频开发带来了很大难度。基于上述情况,本文提出了在Android系统的多媒体引擎下进行支持视频硬件解码的OpenMax组件的研究与设计。重点包括以下几方面:(1)研究分析Android系统架构及其多媒体引擎的层次结构,从而提出了本文的最优设计方法。(2)以三星S3C6410处理器为核心的开发板作为研究平台,研究与设计能够支持硬件解码部件的底层驱动程序。与以往的字符设备驱动程序设计不同,本文提出了利用更简单方便的杂项设备驱动程序设计方法来对MFC驱动程序进行设计。(3)对Android系统内部OpenMax IL层进行研究与分析,并在对其接口,实现方法进行研究的基础上,提出设计一个新的支持硬件解码的OpenMax组件。(4)在以上设计的基础上,利用Android上层应用程序开发的便捷性,研究与设计一款视频播放器。最后,本文将驱动程序、OpenMax组件以及上层java应用程序置于嵌入式开发平台上进行测试,通过播放器来直观的验证设计的驱动与组件的合理性,可靠性。