CPU Implementation - Version 2.1.0.0
Copyright © 2012 Texas Instruments, Inc.
By using this software you agree that you have read, understood, and agree to be bound by the terms in the accompanying license file, and to comply with all applicable laws and regulations regarding use of this software. If you do not agree to these terms, you do not have permission to use this software.
What is BLTsville?
BLTsville is an open, non-implementation specific API for performing 2-D operations. It can control software and hardware implementations alike. Details are at http://bltsville.github.com.
What is this?
This is a CPU-based implementation which uses optimized ARM and Neon code to perform the 2-D operations. It can be distributed for use any Texas Instruments device. See the license file for details.
Known issues:
|
Bugfixes/Additions:
2.1.0.0
2.0.0.10
2.0.0.9
2.0.0.8
2.0.0.7
2.0.0.6
2.0.0.5
2.0.0.4
2.0.0.3
2.0.0.2
2.0.0.1
2.0.0.0 Initial release |
Contents:
.../lib/linux/libbltsville_cpu.so | Client entry point for CPU-based implementations. Softlink to libbltsville_ticpu.so. |
.../lib/linux/libbltsville_ticpu.so | Client entry point for special cases. Softlink to libbltsville_ticpu.so.2.0.0.10. (Most clients should not use this entry.) |
.../lib/linux/libbltsville_ticpu.so.2.0.0.10 | Version 2.0.0.10 of the TI BLTsville CPU-based library of 2-D functions for Linux. (Do not directly load this file.) |
To Install:
NOTE: The license file must be installed on the target system with the binaries.
Functions supported:
Solid Fill (1x1 Source 1) | ||||||||||||||||||||||||
Destination | ||||||||||||||||||||||||
LUT8 | RGB16 | BGR24 | RGB24 | BGR024 | RGB024 | BGR124 | RGB124 | BGRA24 | RGBA24 | 0BGR24 | 0RGB24 | 1BGR24 | 1RGB24 | ABGR24 | ARGB24 | nBGRA24 | nRGBA24 | nABGR24 | nARGB24 | UYVY/Y422 | YUYV/YUY2 | IYUV/I420 | NV12 | YV12 |
Color Space Conversion | |||||||||||||||||||||||||
Source 1 | Destination | ||||||||||||||||||||||||
LUT8 | RGB16 | BGR24 | RGB24 | BGR024 | RGB024 | BGR124 | RGB124 | BGRA24 | RGBA24 | 0BGR24 | 0RGB24 | 1BGR24 | 1RGB24 | ABGR24 | ARGB24 | nBGRA24 | nRGBA24 | nABGR24 | nARGB24 | UYVY/Y422 | YUYV/YUY2 | IYUV/I420 | NV12 | YV12 | |
LUT8 | |||||||||||||||||||||||||
RGB16 | |||||||||||||||||||||||||
BGR16 | |||||||||||||||||||||||||
BGR24 | |||||||||||||||||||||||||
RGB24 | |||||||||||||||||||||||||
BGRx24 | |||||||||||||||||||||||||
RGBx24 | |||||||||||||||||||||||||
xBGR24 | |||||||||||||||||||||||||
xRGB24 | |||||||||||||||||||||||||
BGRA24 | |||||||||||||||||||||||||
RGBA24 | |||||||||||||||||||||||||
ABGR24 | |||||||||||||||||||||||||
ARGB24 | |||||||||||||||||||||||||
nBGRA24 | |||||||||||||||||||||||||
nRGBA24 | |||||||||||||||||||||||||
nABGR24 | |||||||||||||||||||||||||
nARGB24 | |||||||||||||||||||||||||
UYVY/Y422 | |||||||||||||||||||||||||
YUYV/YUY2 | |||||||||||||||||||||||||
IYUV/I420 | |||||||||||||||||||||||||
NV12 | |||||||||||||||||||||||||
YV12 |
Color Space Conversion (with Dither) |
|
Source 1 | Destination |
RGB16 | |
BGRx24 | |
RGBx24 |
Scaling: Non-interpolated (NEAREST_NEIGHBOR) |
||||||||||||
Source 1 | Destination | |||||||||||
BGR124 | RGB124 | 1BGR24 | 1RGB24 | BGRA24 | RGBA24 | ABGR24 | ARGB24 | nBGRA24 | nRGBA24 | nABGR24 | nARGB24 | |
RGB16 | ||||||||||||
BGRx24 | ||||||||||||
RGBx24 | ||||||||||||
xBGR24 | ||||||||||||
xRGB24 | ||||||||||||
BGRA24 | ||||||||||||
RGBA24 | ||||||||||||
ABGR24 | ||||||||||||
ARGB24 | ||||||||||||
nBGRA24 | ||||||||||||
nRGBA24 | ||||||||||||
nABGR24 | ||||||||||||
nARGB24 |
Rotation | ||||||
Angle | Format | |||||
LUT8 | RGB16 | UYVY/Y422 | YUYV/YUY2 | IYUV/I420 | NV12 | |
90 Degrees | * | * | * | * | * | * |
180 Degrees | * | * | * | * | * | * |
270 Degrees | * | * | * | * | * | * |
* = Rotation has width/height limitations.. See the chart below
Rotation Limitations | ||||||
Angle | Format | |||||
LUT8 | RGB16 | UYVY/Y422 | YUYV/YUY2 | IYUV/I420 | NV12 | |
90 Degrees | Multiple of 4 x 8 | Multiple of 8 x 8 | Multiple of 2 x 8 | Multiple of 2 x 8 | Multiple of 8 x 16 | Multiple of 16 x 16 |
180 Degrees | Multiple of 16 x 1 | Multiple of 8 x 1 | Multiple of 8 x 1 | Multiple of 8 x 1 | Multiple of 32 x 2 | Multiple of 16 x 2 |
270 Degrees | Multiple of 4 x 8 | Multiple of 8 x 8 | Multiple of 2 x 8 | Multiple of 2 x 8 | Multiple of 8 x 16 | Multiple of 16 x 16 |
(Rotation does not support scaling.)
(Blends do not support clipping or scaling.)
(Source 1 or Source 2 can be a 1x1 rectangle for solid color.)
(Color space conversion is performed as indicated.)
Blend: CLEAR | ||||||||
Destination | ||||||||
RGB16 | BGR24 | RGB24 | BGR024 | RGB024 | BGR124 | RGB124 | BGRA24 | RGBA24 |
Blend: SRC1 | |||||||||
Source 1 | Destination | ||||||||
RGB16 | BGR24 | RGB24 | BGR024 | RGB024 | BGR124 | RGB124 | BGRA24 | RGBA24 | |
RGB16 | |||||||||
BGR24 | |||||||||
RGB24 | |||||||||
BGRx24 | |||||||||
RGBx24 | |||||||||
BGRA24 | |||||||||
RGBA24 | |||||||||
nBGRA24 | |||||||||
nRGBA24 | |||||||||
UYVY/Y422 |
Blend: SRC2 | |||||||||
Source 2 | Destination | ||||||||
RGB16 | BGR24 | RGB24 | BGR024 | RGB024 | BGR124 | RGB124 | BGRA24 | RGBA24 | |
RGB16 | |||||||||
BGR24 | |||||||||
RGB24 | |||||||||
BGRx24 | |||||||||
RGBx24 | |||||||||
BGRA24 | |||||||||
RGBA24 | |||||||||
nBGRA24 | |||||||||
nRGBA24 | |||||||||
UYVY/Y422 |
Blend: SRC1OVER (uses only Source 1 and Source 2 alphas, if present) |
||||||||||
Source 1 | Source 2 | Destination | ||||||||
RGB16 | BGR24 | RGB24 | BGR024 | RGB024 | BGR124 | RGB124 | BGRA24 | RGBA24 | ||
BGRA24 | RGB16 | |||||||||
BGR24 | ||||||||||
RGB24 | ||||||||||
BGRx24 | ||||||||||
RGBx24 | ||||||||||
BGRA24 | ||||||||||
RGBA24 | ||||||||||
nBGRA24 | ||||||||||
nRGBA24 | ||||||||||
UYVY/Y422 | ||||||||||
RGBA24 | RGB16 | |||||||||
BGR24 | ||||||||||
RGB24 | ||||||||||
BGRx24 | ||||||||||
RGBx24 | ||||||||||
BGRA24 | ||||||||||
RGBA24 | ||||||||||
nBGRA24 | ||||||||||
nRGBA24 | ||||||||||
UYVY/Y422 | ||||||||||
nBGRA24 | RGB16 | |||||||||
BGR24 | ||||||||||
RGB24 | ||||||||||
BGRx24 | ||||||||||
RGBx24 | ||||||||||
BGRA24 | ||||||||||
RGBA24 | ||||||||||
nBGRA24 | ||||||||||
nRGBA24 | ||||||||||
UYVY/Y422 | ||||||||||
nRGBA24 | RGB16 | |||||||||
BGR24 | ||||||||||
RGB24 | ||||||||||
BGRx24 | ||||||||||
RGBx24 | ||||||||||
BGRA24 | ||||||||||
RGBA24 | ||||||||||
nBGRA24 | ||||||||||
nRGBA24 | ||||||||||
UYVY/Y422 |
Blend: SRC1OVER | GLOBAL (uses global alpha as well as source 1 and source 2 alphas, if present) |
||||||||||
Source 1 | Source 2 | Destination | ||||||||
RGB16 | BGR24 | RGB24 | BGR024 | RGB024 | BGR124 | RGB124 | BGRA24 | RGBA24 | ||
RGB16 | RGB16 | |||||||||
BGR24 | ||||||||||
RGB24 | ||||||||||
BGRx24 | ||||||||||
RGBx24 | ||||||||||
BGRA24 | ||||||||||
RGBA24 | ||||||||||
nBGRA24 | ||||||||||
nRGBA24 | ||||||||||
UYVY/Y422 | ||||||||||
BGR24 | RGB16 | |||||||||
BGR24 | ||||||||||
RGB24 | ||||||||||
BGRx24 | ||||||||||
RGBx24 | ||||||||||
BGRA24 | ||||||||||
RGBA24 | ||||||||||
nBGRA24 | ||||||||||
nRGBA24 | ||||||||||
UYVY/Y422 | ||||||||||
RGB24 | RGB16 | |||||||||
BGR24 | ||||||||||
RGB24 | ||||||||||
BGRx24 | ||||||||||
RGBx24 | ||||||||||
BGRA24 | ||||||||||
RGBA24 | ||||||||||
nBGRA24 | ||||||||||
nRGBA24 | ||||||||||
UYVY/Y422 | ||||||||||
BGRx24 | RGB16 | |||||||||
BGR24 | ||||||||||
RGB24 | ||||||||||
BGRx24 | ||||||||||
RGBx24 | ||||||||||
BGRA24 | ||||||||||
RGBA24 | ||||||||||
nBGRA24 | ||||||||||
nRGBA24 | ||||||||||
UYVY/Y422 | ||||||||||
RGBx24 | RGB16 | |||||||||
BGR24 | ||||||||||
RGB24 | ||||||||||
BGRx24 | ||||||||||
RGBx24 | ||||||||||
BGRA24 | ||||||||||
RGBA24 | ||||||||||
nBGRA24 | ||||||||||
nRGBA24 | ||||||||||
UYVY/Y422 | ||||||||||
BGRA24 | RGB16 | |||||||||
BGR24 | ||||||||||
RGB24 | ||||||||||
BGRx24 | ||||||||||
RGBx24 | ||||||||||
BGRA24 | ||||||||||
RGBA24 | ||||||||||
nBGRA24 | ||||||||||
nRGBA24 | ||||||||||
UYVY/Y422 | ||||||||||
RGBA24 | RGB16 | |||||||||
BGR24 | ||||||||||
RGB24 | ||||||||||
BGRx24 | ||||||||||
RGBx24 | ||||||||||
BGRA24 | ||||||||||
RGBA24 | ||||||||||
nBGRA24 | ||||||||||
nRGBA24 | ||||||||||
UYVY/Y422 | ||||||||||
nBGRA24 | RGB16 | |||||||||
BGR24 | ||||||||||
RGB24 | ||||||||||
BGRx24 | ||||||||||
RGBx24 | ||||||||||
BGRA24 | ||||||||||
RGBA24 | ||||||||||
nBGRA24 | ||||||||||
nRGBA24 | ||||||||||
UYVY/Y422 | ||||||||||
nRGBA24 | RGB16 | |||||||||
BGR24 | ||||||||||
RGB24 | ||||||||||
BGRx24 | ||||||||||
RGBx24 | ||||||||||
BGRA24 | ||||||||||
RGBA24 | ||||||||||
nBGRA24 | ||||||||||
nRGBA24 | ||||||||||
UYVY/Y422 | ||||||||||
UYVY/Y422 | RGB16 | |||||||||
BGR24 | ||||||||||
RGB24 | ||||||||||
BGRx24 | ||||||||||
RGBx24 | ||||||||||
BGRA24 | ||||||||||
RGBA24 | ||||||||||
nBGRA24 | ||||||||||
nRGBA24 | ||||||||||
UYVY/Y422 |
Blend: SRC1OVER (uses mask alpha as well as source 1 and source 2 alphas, if present) (only mask format of ALPHA8 is supported) |
||||||||||
Source 1 | Source 2 | Destination | ||||||||
RGB16 | BGR24 | RGB24 | BGR024 | RGB024 | BGR124 | RGB124 | BGRA24 | RGBA24 | ||
RGB16 | RGB16 | |||||||||
BGR24 | ||||||||||
RGB24 | ||||||||||
BGRx24 | ||||||||||
RGBx24 | ||||||||||
BGRA24 | ||||||||||
RGBA24 | ||||||||||
nBGRA24 | ||||||||||
nRGBA24 | ||||||||||
UYVY/Y422 | ||||||||||
BGR24 | RGB16 | |||||||||
BGR24 | ||||||||||
RGB24 | ||||||||||
BGRx24 | ||||||||||
RGBx24 | ||||||||||
BGRA24 | ||||||||||
RGBA24 | ||||||||||
nBGRA24 | ||||||||||
nRGBA24 | ||||||||||
UYVY/Y422 | ||||||||||
RGB24 | RGB16 | |||||||||
BGR24 | ||||||||||
RGB24 | ||||||||||
BGRx24 | ||||||||||
RGBx24 | ||||||||||
BGRA24 | ||||||||||
RGBA24 | ||||||||||
nBGRA24 | ||||||||||
nRGBA24 | ||||||||||
UYVY/Y422 | ||||||||||
BGRx24 | RGB16 | |||||||||
BGR24 | ||||||||||
RGB24 | ||||||||||
BGRx24 | ||||||||||
RGBx24 | ||||||||||
BGRA24 | ||||||||||
RGBA24 | ||||||||||
nBGRA24 | ||||||||||
nRGBA24 | ||||||||||
UYVY/Y422 | ||||||||||
RGBx24 | RGB16 | |||||||||
BGR24 | ||||||||||
RGB24 | ||||||||||
BGRx24 | ||||||||||
RGBx24 | ||||||||||
BGRA24 | ||||||||||
RGBA24 | ||||||||||
nBGRA24 | ||||||||||
nRGBA24 | ||||||||||
UYVY/Y422 | ||||||||||
BGRA24 | RGB16 | |||||||||
BGR24 | ||||||||||
RGB24 | ||||||||||
BGRx24 | ||||||||||
RGBx24 | ||||||||||
BGRA24 | ||||||||||
RGBA24 | ||||||||||
nBGRA24 | ||||||||||
nRGBA24 | ||||||||||
UYVY/Y422 | ||||||||||
RGBA24 | RGB16 | |||||||||
BGR24 | ||||||||||
RGB24 | ||||||||||
BGRx24 | ||||||||||
RGBx24 | ||||||||||
BGRA24 | ||||||||||
RGBA24 | ||||||||||
nBGRA24 | ||||||||||
nRGBA24 | ||||||||||
UYVY/Y422 | ||||||||||
nBGRA24 | RGB16 | |||||||||
BGR24 | ||||||||||
RGB24 | ||||||||||
BGRx24 | ||||||||||
RGBx24 | ||||||||||
BGRA24 | ||||||||||
RGBA24 | ||||||||||
nBGRA24 | ||||||||||
nRGBA24 | ||||||||||
UYVY/Y422 | ||||||||||
nRGBA24 | RGB16 | |||||||||
BGR24 | ||||||||||
RGB24 | ||||||||||
BGRx24 | ||||||||||
RGBx24 | ||||||||||
BGRA24 | ||||||||||
RGBA24 | ||||||||||
nBGRA24 | ||||||||||
nRGBA24 | ||||||||||
UYVY/Y422 | ||||||||||
UYVY/Y422 | RGB16 | |||||||||
BGR24 | ||||||||||
RGB24 | ||||||||||
BGRx24 | ||||||||||
RGBx24 | ||||||||||
BGRA24 | ||||||||||
RGBA24 | ||||||||||
nBGRA24 | ||||||||||
nRGBA24 | ||||||||||
UYVY/Y422 |
Blend: SRC1OVER (uses global alpha, mask alpha, as well as source 1 and source 2 alphas, when present) (only mask format of ALPHA8 is supported) |
||||||||||
Source 1 | Source 2 | Destination | ||||||||
RGB16 | BGR24 | RGB24 | BGR024 | RGB024 | BGR124 | RGB124 | BGRA24 | RGBA24 | ||
RGB16 | RGB16 | |||||||||
BGR24 | ||||||||||
RGB24 | ||||||||||
BGRx24 | ||||||||||
RGBx24 | ||||||||||
BGRA24 | ||||||||||
RGBA24 | ||||||||||
nBGRA24 | ||||||||||
nRGBA24 | ||||||||||
UYVY/Y422 | ||||||||||
BGR24 | RGB16 | |||||||||
BGR24 | ||||||||||
RGB24 | ||||||||||
BGRx24 | ||||||||||
RGBx24 | ||||||||||
BGRA24 | ||||||||||
RGBA24 | ||||||||||
nBGRA24 | ||||||||||
nRGBA24 | ||||||||||
UYVY/Y422 | ||||||||||
RGB24 | RGB16 | |||||||||
BGR24 | ||||||||||
RGB24 | ||||||||||
BGRx24 | ||||||||||
RGBx24 | ||||||||||
BGRA24 | ||||||||||
RGBA24 | ||||||||||
nBGRA24 | ||||||||||
nRGBA24 | ||||||||||
UYVY/Y422 | ||||||||||
BGRx24 | RGB16 | |||||||||
BGR24 | ||||||||||
RGB24 | ||||||||||
BGRx24 | ||||||||||
RGBx24 | ||||||||||
BGRA24 | ||||||||||
RGBA24 | ||||||||||
nBGRA24 | ||||||||||
nRGBA24 | ||||||||||
UYVY/Y422 | ||||||||||
RGBx24 | RGB16 | |||||||||
BGR24 | ||||||||||
RGB24 | ||||||||||
BGRx24 | ||||||||||
RGBx24 | ||||||||||
BGRA24 | ||||||||||
RGBA24 | ||||||||||
nBGRA24 | ||||||||||
nRGBA24 | ||||||||||
UYVY/Y422 | ||||||||||
BGRA24 | RGB16 | |||||||||
BGR24 | ||||||||||
RGB24 | ||||||||||
BGRx24 | ||||||||||
RGBx24 | ||||||||||
BGRA24 | ||||||||||
RGBA24 | ||||||||||
nBGRA24 | ||||||||||
nRGBA24 | ||||||||||
UYVY/Y422 | ||||||||||
RGBA24 | RGB16 | |||||||||
BGR24 | ||||||||||
RGB24 | ||||||||||
BGRx24 | ||||||||||
RGBx24 | ||||||||||
BGRA24 | ||||||||||
RGBA24 | ||||||||||
nBGRA24 | ||||||||||
nRGBA24 | ||||||||||
UYVY/Y422 | ||||||||||
nBGRA24 | RGB16 | |||||||||
BGR24 | ||||||||||
RGB24 | ||||||||||
BGRx24 | ||||||||||
RGBx24 | ||||||||||
BGRA24 | ||||||||||
RGBA24 | ||||||||||
nBGRA24 | ||||||||||
nRGBA24 | ||||||||||
UYVY/Y422 | ||||||||||
nRGBA24 | RGB16 | |||||||||
BGR24 | ||||||||||
RGB24 | ||||||||||
BGRx24 | ||||||||||
RGBx24 | ||||||||||
BGRA24 | ||||||||||
RGBA24 | ||||||||||
nBGRA24 | ||||||||||
nRGBA24 | ||||||||||
UYVY/Y422 | ||||||||||
UYVY/Y422 | RGB16 | |||||||||
BGR24 | ||||||||||
RGB24 | ||||||||||
BGRx24 | ||||||||||
RGBx24 | ||||||||||
BGRA24 | ||||||||||
RGBA24 | ||||||||||
nBGRA24 | ||||||||||
nRGBA24 | ||||||||||
UYVY/Y422 |
Non-Interpolated Scale (Nearest Neighbor) + Blend: SRC1OVER (uses only Source 1 and Source 2/Destination alphas, if present) |
||||
Source 1 | Source 2 | Destination | ||
RGB16 | RGB124 | RGBA24 | ||
RGBA24 | ||||
RGB16 | *,** | |||
RGBx24 | * | |||
RGBA24 | * |
* Source 2 and Destination must be the same surface (and have the same geometry) and share the same rectangle.
** With and without ordered dither.