Mail_Android_Video_SW_DDK_Intergration_Guide_And_Codec_User_Manual中文翻译【chapter1】

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流的解码和编码。此实现是概念证明,不能用作生产质量组件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
DDKWizard is a so-called project creation wizard that allows you to create projects that use the DDKBUILD scripts from OSR (also available in the download section from this site). The wizard will give you several options to configure your project prior to the creation. Have a look at figure 1. Figure 2: Project creation dialog (click to enlarge) Instead of forcing you to use a subset of options and specific DDKs this wizard lets you choose what you want. Of course the template files are predefined and so is the content of the project(s) within certain limits. However, I tried to choose the best options that I could think of and provide a way to create quickly and easily the DDKBUILD project you want. This means that I tried to leave out those things that may limit your choice lateron and add other options that will give you the flexibility to change options quickly long after the project was created. DDKWizard adds a new subfolder in the project creation wizard - see figure 2 - and presents all supported project types there. Currently these are Driver, Empty Driver, Native Application, Win32 console application and Win32 DLL. In either case you just choose the type of project to create, give the name of the project and/or solution as well as other options (at the bottom) and you are being presented the wizard dialog (see figure 1). From the wizard dialog you choose the DDKBUILD script you want to use, the DDK or multiple DDKs as well as the other options. If you are curious about the Property Sheet feature, please download the manual and read the respective section there. Compatibility DDKWizard (1.2.0a) has been tested on the following configurations: Visual Studio Professional .NET with WNET DDK and DDKBUILD.CMD on Windows 2003 Server R2 Standard Visual Studio Professional .NET 2003 with WNET DDK and DDKBUILD.CMD on Windows 2003 Server R2 Standard Visual C++ 2005 Express with WNET DDK and DDKBUILD.CMD on Windows 2003 Server R2 Standard Visual Studio 2005 Professional with WNET DDK and DDKBUILD.CMD on Windows 2003 Server R2 Standard Visual Studio 2008 Professional with WNET DDK and DDKBUILD.CMD on Windows XP From this list one can deduce that it is supposed to also run if you got the respective "non-Express" Visual C++ version. Also if there has been some Visual C++ .NET 2003 Express DDKWizard is prepared for it. Download You could go watch the demo or download right away: Manual: contains the detailed description of how to configure DDKBUILD and use DDKWizard. If you are unsure whether you should download and install DDKWizard grab this file and skim over it. Download: ddkwiz_manual.pdf (~513kB, 2009-12-05@20-11-55, downloaded 31666 times) Installer (incl. manual) of DDKWizard 1.3.0a: this is the setup program which will install DDKWizard along with the manual on your computer and register it with Visual Studio. Download: ddkwizard_setup.exe (~557kB, 2009-12-05@20-12-37, downloaded 72787 times) DDKBUILD.CMD: Stable version 7.4/r60 of OSRs DDKBUILD NT script version. Feedback for this version can be sent to me directly. Download: ddkbuild_cmd.zip (~12kB, 2009-11-28@04-38-36, downloaded 20707 times) DDKBUILD.BAT (obsoleted by the above!): Version 6.12 of OSRs DDKBUILD batch script version. Download: ddkbuild_bat.zip (~6kB, 2008-03-21@15-59-07, downloaded 17226 times) Trunk version of DDKBUILD.CMD The version from trunk is available as well. Please note that this is not necessarily the same version as offered in the ZIP archive above. It may be in a better shape (e.g. reported bugs fixed) or slightly worse (e.g. new feature that is not yet stable). So use this version only if you want to test the latest development version and are able to provide feedback. Here is the link to the prettier ViewVC URL: ddkbuild/trunk - SVN clients get read-only access here. License All projects created by DDKWizard can be put under whatever license you like to put them. The scripts and HTML files which contain the DDKWizard logic are subject to the zlib license starting with version 1.2.0, before it was released under the GPL v2 from 1991. The zlib license is a lot more liberal and allows just about any kind of use for the script and "user interface" part of DDKWizard. The DDKBUILD scripts are mirrored with the permission of OSR. I will try to keep it synchronized at all times. Everything else Contact me here and also visit my blog and my website. Note that I usually announce new versions of DDKWizard and DDKBUILD on my blog - you also might want to subscribe to the RSS feed for DDKWizard and DDKBUILD. This page will be extended whenever I deem it necessary.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

水笙赵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值