【IT168技术】本文主要个大家介绍OMAP平台OpenMax IL的硬件实现过程。其中包括TI OpenMax IL实现的结构和机制,TI OpenMax IL的核心和公共内容,一个TI OpenMax IL组件的实现三个部分。
Android的开源代码中,已经包含了TI的OpenMax IL层的实现代码,其路径如下所示:
hardware/ti/omap3/omx/
其中包含的主要目录如下所示。
system:OpenMax核心和公共部分
audio:音频处理部分的OpenMax IL组件
video:视频处理部分OpenMax IL组件
image:图像处理部分OpenMax IL组件
TI OpenMax IL实现的结构如图18-7所示。
在TI OpenMax IL实现中,最上面的内容是OpenMax的管理者用于管理和初始化,中间层是各个编解码单元的OpenMax IL标准组件,下层是LCML层,供各个OpenMax IL标准组件所调用。
TI OpenMax IL实现的公共部分在system/src/openmax_il/目录中,主要的内容如下所示。
omx_core/src:OpenMax IL的核心,生成动态库libOMX_Core.so
lcml/:LCML的工具库,生成动态库libLCML.so
TI OpenMax IL的视频(Video)相关的组件在video/src/openmax_il/目录中,主要的内容如下所示。
prepost_processor:Video数据的前处理和后处理,生成动态库libOMX.TI.VPP.so
video_decode:Video解码器,生成动态库libOMX.TI.Video.Decoder.so
video_encode:Video编码器,生成动态库libOMX.TI.Video.encoder.so
▲图18-7 TI OpenMax IL实现的结构
TI OpenMax IL的音频(Audio)相关的组件在audio/src/openmax_il/目录中,主要的内容如下所示。
g711_dec:G711解码器,生成动态库libOMX.TI.G711.decode.so
g711_enc:G711编码器,生成动态库libOMX.TI.G711.encode.so
g722_dec:G722解码器,生成动态库libOMX.TI.G722.decode.so
g722_enc:G722编码器,生成动态库libOMX.TI.G722.encode.so
g726_dec:G726解码器,生成动态库libOMX.TI.G726.decode.so
g726_enc:G726编码器,生成动态库libOMX.TI.G726.encode.so
g729_dec:G729解码器,生成动态库libOMX.TI.G729.decode.so
g729_enc:G720编码器,生成动态库libOMX.TI.G729.encode.so
nbamr_dec:AMR窄带解码器,生成动态库libOMX.TI.AMR.decode.so
nbamr_enc:AMR窄带编码器,生成动态库libOMX.TI.AMR.encode.so
wbamr_dec:AMR宽带解码器,生成动态库libOMX.TI.WBAMR.decode.so
wbamr_enc:AMR宽带编码器,生成动态库libOMX.TI.WBAMR.encode.so
mp3_dec:MP3解码器,生成动态库libOMX.TI.MP3.decode.so
aac_dec:AAC解码器,生成动态库libOMX.TI.AAC.decode.so
aac_enc:AAC编码器,生成动态库libOMX.TI.AAC.encode.so
wma_dec:WMA解码器,生成动态库libOMX.TI.WMA.decode.so
TI OpenMax IL的图像(Image)相关的组件在image/src/openmax_il/目录中,主要的内
容如下所示。
jpeg_enc:JPEG编码器,生成动态库libOMX.TI.JPEG.Encoder.so
jpeg_dec:JPEG解码器,生成动态库libOMX.TI.JPEG.decoder.so