BLTsville API Overview          Revision 1.0    For External Distribution          17 May 2012
Vivante BLTsville API OverviewLegal Notices     COPYRIGHT INFORMATION     This document contains proprietary information o...
Vivante BLTsville API OverviewTable of ContentsLEGAL NOTICES ................................................................
Vivante BLTsville API Overview1 INTRODUCTION  BLTsville is an open-source application programming interface (API) develope...
Vivante BLTsville API Overview2 Overview of BLTsville Features   Functions and features described in this section are deri...
Vivante BLTsville API Overview•   Scalable screen size and resolution support     o Supports Quad HD (4Kx2K) and higher   ...
Vivante BLTsville API Overview3 Document Revision History     Version   Date         Compatible product   Notes         1....
Upcoming SlideShare
Loading in …5
×

BLTsville API Overview

1,206 views

Published on

BLTsville API Note for OMAP4 and OMAP5 based on Vivante composition GPU.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,206
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
25
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

BLTsville API Overview

  1. 1. BLTsville API Overview Revision 1.0 For External Distribution 17 May 2012
  2. 2. Vivante BLTsville API OverviewLegal Notices COPYRIGHT INFORMATION This document contains proprietary information of Vivante Corporation. The information contained herein is not to be used by or disclosed to the third parties without the express written permission of an officer of Vivante Corporation. Vivante Corporation reserves the right to make changes to any products herein at any time without notice. Vivante Corporation does not assume any responsibility or liability arising out of the application or use of any product described herein, except as expressly agreed to in writing by Vivante Corporation; nor does the purchase or use of a product from Vivante Corporation convey a license under any patent rights, copyrights, trademark rights, or any other of the intellectual property rights of Vivante Corporation or third parties. TRADEMARK ACKNOWLEDGMENT Vivante Corporation and the Vivante Corporation logo design are the trademarks or the registered trademarks of Vivante Corporation. All other brand and product names may be trademarks of their respective companies. For our current distributors, sales offices, design resource centers, and product information, visit our web page located at http://www.vivantecorp.com. For technical support, please email support@vivantecorp.com. Vivante Corporation Confidential, Copyright ©2012 by Vivante Corporation, All rights reserved. Page 2 of 7 Rev. 1.0 / May 2012
  3. 3. Vivante BLTsville API OverviewTable of ContentsLEGAL NOTICES .................................................................................................................................. 2TABLE OF CONTENTS .......................................................................................................................... 31 INTRODUCTION ..................................................................................................................... 42 OVERVIEW OF BLTSVILLE FEATURES ....................................................................................... 5 2.1 STANDARD FEATURES AND FUNCTIONS ......................................................................................................... 5 2.2 VIVANTE-SPECIFIC FEATURES AND OPTIMIZATIONS .......................................................................................... 53 DOCUMENT REVISION HISTORY.............................................................................................. 7 Page 3 of 7 Rev. 1.0 / May 2012
  4. 4. Vivante BLTsville API Overview1 INTRODUCTION BLTsville is an open-source application programming interface (API) developed and maintained by Texas Instruments to support their OMAP applications processors. The implementation, code base, and optimizations were developed around Vivante’s composition graphics processing unit (CGPU). There is a software fallback mechanism for systems without a Vivante CGPU or partial acceleration of standard API features using a GPU. The momentum behind the development of BLTsville goes beyond creating an open source API to accelerate the next generation of optimized 2D graphics. The Vivante CGPU created a new rendering paradigm that goes beyond 2D and 3D graphics. The CGPU is a composition accelerator that merges, blends, and processes different layers to “compose” for final viewing. Other than composition, 2D graphics is a subset of features natively built into the CGPU. The processor can also perform 3D animation effects through multi-surface blending. Optimized API features for 2D and composition take full advantage of CGPU hardware. Features like BLT batching and merging are used for super-efficient data transfers and processing. Multiple formats (YUV/RGB) are supported to allow processing in native color formats and inputs from any source (video, image, webcam, etc.). Programmable filters and user selectable dithering modes enable users to select the algorithm, quality, and speed to create transitional or high quality images. These are only a few of the compelling API features. New product implementations taking advantage of these functions will see significant performance gains and quality in composition and 2D using BLTsville CGPU hardware. Users can download the entire API source code (kernel/user mode drivers) for commercial use if they follow the license terms and conditions set forth by BLTsville. The source code and API is licensed under the Creative Commons Attribution-NoDerivs 3.0 Unported License which can be reviewed at http://creativecommons.org/licenses/by-nd/3.0/. Page 4 of 7 Rev. 1.0 / May 2012
  5. 5. Vivante BLTsville API Overview2 Overview of BLTsville Features Functions and features described in this section are derived from the main BLTsville webpage. For updated information, access to the BLTsville Wiki page or FAQs, please visit the following link: http://graphics.github.com/bltsville/. This is a partial list of features and optimizations supported by the API. For additional details on the API, feature set, implementation, or programming best practices, please refer to the BLTsville website. All functions listed below are supported in Vivante GC cores.2.1 Standard Features and Functions • Bit BLT o Includes stretch BLT (stretch/shrink) o YUV alpha blending, color key and ROP2/3/4 o FilterBlit • Line drawing o ROP2/4 • Rectangle fill (fast shape fill), clear, and clipping o One clipping rectangle for all primitives o ROP 2/4 • Full featured Sprite Engine o ROP2, ROP3 and ROP4 with full alpha blending and transparency o Fill, move, copy, blend on a per-pixel and image level o Enables animations, drag-and-drop, user drawn overlays, transitions, fancy icons, and others • Transparency o Monochrome mask, chroma key and pattern mask o Overlays for layered menus, titles, control bars, widgets o 256 levels of transparency o Color blending/bleeding for effects like fading in/out o Alpha blending including Java 2 Porter-Duff compositing blending rules o Pre-defined Porter-Duff and DirectFB blending o Extensible blends • Monochrome expansion for text rendering (hardware accelerated bitmap text)2.2 Vivante-Specific Features and Optimizations • Multi-source composition and blending o Optimized for bandwidth and minimal memory transactions o Single-Pass, multi-surface composition/blending o Multi-planar and non-planar YUV output o Non-planar to planer YUV conversion output o Enables features like alpha blended GUIs (3D effects), PiP/PoP, and multi-zone displays • Programmable Filter Engine o 1x1 to 9x9 filter kernels o Up to 9-tap, 32-phase for image/video scaling beyond 1080p o Supports Bicubic (smooth/sharp), bilinear, and nearest neighbor filtering o Used for image previews, PiP, zoom/re-sizing, scaling o Convolution effects for image blurring, softening/sharpening, mood effects, and others o Image processing for special effects like mosaic, aging, silhouettes, and others Page 5 of 7 Rev. 1.0 / May 2012
  6. 6. Vivante BLTsville API Overview• Scalable screen size and resolution support o Supports Quad HD (4Kx2K) and higher o 32K x 32K coordinate system• Rotation Support o 90 / 180 / 270 / X-Flip / Y-Flip / Mirror Rotation / Source Rotation for all primitives o Automatic horizontal and vertical screen scaling and adjustment• Programmable format support (RGB, YUV, etc.) and conversions o YUV-to-RGB color space conversion (BT.601 and BT.709) o Engine can process and support all standard color formats o Stretch/Shrink of composite image and video o Extensive color format support: - RGB/RGBA and swizzle formats (ex. BGR, ARGB, RGBA, ABGR, BGRA) - YCbCr (YUV) – subsamples, packed, planar, and U/V Swap - sRGB (RGB24)• Support for stereoscopic 3D (3D video, games, and displays) content and displays o Fast, scalable pixel processing engine to support high bandwidth stereo 3D o Pixel interleaving on pixel/sub-pixel level• High speed video scalar for clean, crisp and vivid screen details (expand/shrink)• Batching processing o BLT coalescing/merging into group that can be handled more efficiently by implementations o Character BLTs o Multi-layer blending o ROP/Blend combination with specified ordering o Delta BLTs• Dithering o Quality based choice o Speed based choice o Image type based choice o Specific dither type choice o Extensible dither type• Zero and Low CPU Overhead o Minimize CPU wait states o Synchronous operations o Asynchronous operation through DMA command stream o CPU does not need to wait for 2D engine to complete execution before changing states or issuing new commands (CPU can work on other system tasks instead of servicing GPU core) o Command batching/grouping to minimize CPU utilization and increase throughput o Improves system performance while running applications o Improves system performance by increasing battery life• Choice of scaling algorithm based on: o Quality o Speed o Image type o User defined Page 6 of 7 Rev. 1.0 / May 2012
  7. 7. Vivante BLTsville API Overview3 Document Revision History Version Date Compatible product Notes 1.0 2012-05-17 CGPU Initial version for release Page 7 of 7 Rev. 1.0 / May 2012

×