ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Mail_Android_Video_SW_DDK_Intergration_Guide_And_Codec_User_Manual中文翻译【chapter1】

2021-05-12 09:58:09  阅读:251  来源: 互联网

标签:Intergration 中文翻译 驱动程序 driver Manual OpenMAX device Android ARM


Chapter 1 Introduction
第一章 引言

this chapter gives an overview of the user and kernel space driver
components of the Mali Video Processor Android DDK. It contains the
following sections:
1.1 About the driver on page 1-11
1.2 Linux kernel device driver on page 1-12
1.3 User-space driver on page 1-14
1.4 Instrumentation on page 1-15
1.5 Additional information on page 1-16

本章概述了Mali视频处理器Android DDK的用户和内核空间驱动程序组件,包含以下部分:
1.1 关于驱动 1-11 页
1.2 linux 内核设备驱动 1-12 页
1.3 用户空间驱动 1-14 页
1.4 仪器 1-15 页
1.5 附加信息 1-16 页

1.1 About the driver
The Mali Video Processor Android DDK contains the Linux kernel device driver and OpenMAX components that support video
decode and encode.The DDK also contains integration tests to verify
correct integration.

1.1 关于驱动
Mali视频处理器Android DDK包含Linux内核设备驱动程序和支持视频解码和编码的OpenMAX组件。DDK还包含集成测试,以验证是否正确集成。

1.2 Linux kernel device driver
The supplied device can be integrated with a new Linux kernel or Android platform if the differences between your plateform and the supplied implementation are restricted.
Integration is simple if your platform differences are restricted to the following list:
The Linux kernel version.
The interrupt line assigned to the Mali video processor hardware The physical addresses assigned to the Mali video processor hardware.
To integrate the device driver with a platform,you must perform these tasks:
1.Configure the supplied device driver for Mali video processor hardware in your device and the Linux kernel you are using.
2.Build and test the device driver on your plateform.
If your platform is different from the reference implementation in ways that are not listed above , it might be necessary to modify the device driver or provide your own full port of the driver. The process for porting a new device driver is hardware and OS-specific.
1.2 Linux 内核设备驱动程序
如果你的平台和提供的实现之间的差异受到限制,那么提供的设备可以与一个新的 linux 内核或 android 平台集成。
如果您的平台差异限于以下列表,则集成很简单:
1.Linux内核版本
2.分配给Mali视频处理器硬件的中断线
3.分配给Mali视频处理器硬件的物理地址
要将设备驱动程序与平台集成,必须执行以下任务:
1.在设备和正在使用的Linux内核中为Mali视频处理器硬件配置提供的设备驱动程序
2.在平台上构建并测试设备驱动程序。
如果您的平台在以上未列出的方式上与参考实现不同,则可能有必要修改设备驱动程序或提供您自己的驱动程序完整端口。移植新设备驱动程序的过程是特定于硬件和特定于操作系统的。

1.2.1 Device driver architecture
The device driver consists of two kernel objects, base and resource. The base kernel object contains all functionality that is individual for each session. Examples are Memory Management Unit (MMU) table management, and input/output message queue management.The base also contains the implementation of the device driver interface that userspace applications use to interact with the device driver. Userspace interacts with the kernel drivers using ioctl messages. The resource kernel object encapsulates all functional entities that only have a single instance.Examples are register access functionality,IRQ handling,and the session scheduler.The following figure shows the two kernel objects and their sub modules.
The driver supports user space allocated input and output buffers.The following allocators are supported:
1.Valloc
2.Malloc
3.Gralloc
4.DMA-buffer
If your Gralloc implementation does not use DMA-buffer or ashmem as memory allocator,you must add support for your allocator by implementing the interface defined by mve_buffer.h The driver has been tested with the reference Gralloc implementation that is part of Android, and with the Gralloc implementation from ARM.

1.2.1设备驱动架构
设备驱动程序由两个内核对象组成:基础对象和资源。基本内核对象包含每个会话各自的所有功能。示例包括内存管理单元(MMU)表管理和输入/输出消息队列管理。该库还包含用户空间应用程序用来与设备驱动程序进行交互的设备驱动程序接口的实现。用户空间使用ioctl消息与内核驱动程序进行交互。资源内核对象封装了只有一个实例的所有功能实体,例如寄存器访问功能,IRQ处理和会话调度程序。下图显示了两个内核对象及其子模块。
驱动程序支持用户空间分配的输入和输出缓冲器。
支持以下分配器:
1.Valloc
2.Malloc
3.Gralloc
4.DMA-buffer
如果您的Gralloc实现未使用DMA缓冲区或ashmem作为内存分配器,则必须通过实现mve_buffer.h定义的接口来添加对分配器的支持。该驱动程序已使用参考Gralloc实现进行了测试,该实现是Android的一部分,并通过来自ARM的Gralloc实现。

在这里插入图片描述

1.3 User-space driver
The user-space driver consists of OpenMAX decoder and encoder components.These components act as a layer between the client applications and the kernel driver.
OpenMAX works by connecting components together using input and output ports.The output port of a component is connected to the input port of the next component in the chain.For efficient buffer usage,the output buffer of a component is used directly as input buffer of the next component.The OpenMAX components,supplied by ARM, support buffer sharing if the buffers are allocated by:
1.Valloc or malloc
2.Gralloc,and the memory backend allocator is DMA-buffer or ashmem.
The client application creates the OpenMAX components using an OpenMAX core.The core is responsible for exposing the components to client applications and allowing components to be instantiated.The client communicates directly with the component when it has been instantiated.For more information about OpenMAX,refer to
https://www.khronos.org/registry/omxil/
1.3 用户空间
用户空间驱动程序由OpenMAX解码器和编码器组件组成,这些组件充当客户端应用程序和内核驱动程序之间的一层。
OpenMAX通过使用输入和输出端口将组件连接在一起来工作。组件的输出端口连接到链中下一个组件的输入端口。为了有效地使用缓冲区,组件的输出缓冲区直接用作下一个组件的输入缓冲区 。ARM提供的OpenMAX组件,如果通过以下方式分配缓冲区,则支持缓冲区共享:
1.Valloc or malloc
2.Gralloc,and the memory backend allocator is DMA-buffer or ashmem.
客户端应用程序使用OpenMAX内核创建OpenMAX组件。该内核负责将组件公开给客户端应用程序,并允许实例化组件。实例化后,客户端直接与组件进行通信。有关OpenMAX的更多信息,请参阅
到https://www.khronos.org/registry/omxil/

1.4 Instrumentation
You can use ARM DS-5 Streamline to collect counters and events from the Mali Android Video software driver.This has been tested on version 5.19 of ARM DS-5 Streamline.
1.4 仪器
您可以使用ARM DS-5 Streamline从Mali Android Video软件驱动程序收集计数器和事件。这已在ARM DS-5 Streamline 5.19版上进行了测试。

1.5 Additional information
ARM does not support or provide patches to the Android framework to extend the set of Android features.
ARM has codecs for VC1 and RealVideo.Android does not currently include any file parsers offering support for these types of streams.If you want to be able to play VC1 to RealVideo encoded streams,you must download the binaries for the codecs from http://connect.arm.com and write the extensions to the relevant Android frameworks yourself.
ARM provides a libjpeg implementation that uses the video processor to accelerate decoding and encoding of JPEG streams .This implementation is a proof of concept and must not be used as a production quality component.
1.5 附加信息
ARM不支持或不提供Android框架补丁来扩展Android功能集。
ARM具有用于VC1和RealVideo的编解码器。Android目前不包含任何支持这些类型的流的文件解析器。如果要能够将VC1播放到RealVideo编码的流,则必须从http://connect.arm.com下载该编解码器的二进制文件,然后将扩展名自己写入相关的Android框架。
ARM提供了一个libjpeg实现,该实现使用视频处理器来加速JPEG流的解码和编码。此实现是概念证明,不能用作生产质量组件。

标签:Intergration,中文翻译,驱动程序,driver,Manual,OpenMAX,device,Android,ARM
来源: https://blog.csdn.net/z373248439/article/details/116662555

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有