17c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* 27c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Copyright (C) 2011 The Android Open Source Project 37c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * 47c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Licensed under the Apache License, Version 2.0 (the "License"); 57c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * you may not use this file except in compliance with the License. 67c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * You may obtain a copy of the License at 77c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * 87c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * http://www.apache.org/licenses/LICENSE-2.0 97c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * 107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Unless required by applicable law or agreed to in writing, software 117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * distributed under the License is distributed on an "AS IS" BASIS, 127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * See the License for the specific language governing permissions and 147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * limitations under the License. 157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */ 167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @file M4VIFI_FiltersAPI.h 197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief External API and Data definitions for the video filter library 207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note This file defines and declares data common to the video filter library: 217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * -# data types 227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * -# error codes 237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * -# external API's 247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * -# API level structure definition 257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifndef _M4VIFI_FILTERSAPI_H_ 297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define _M4VIFI_FILTERSAPI_H_ 317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef __cplusplus 337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargiextern "C" { 357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* __cplusplus */ 377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** 397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *********************************************************** 407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Data types definition 417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *********************************************************** 427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */ 437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi typedef unsigned char M4VIFI_UInt8; 457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi typedef char M4VIFI_Int8; 467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi typedef unsigned short M4VIFI_UInt16; 477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi typedef unsigned long M4VIFI_UInt32; 487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi typedef short M4VIFI_Int16; 497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi typedef long M4VIFI_Int32; 507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi typedef float M4VIFI_Float; 517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi typedef double M4VIFI_Double; 527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi typedef unsigned char M4VIFI_ErrorCode; 537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *********************************************************** 567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Error codes definition 577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *********************************************************** 587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_OK 0 607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_INVALID_PARAM 7 617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_ILLEGAL_FRAME_HEIGHT 8 627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_ILLEGAL_FRAME_WIDTH 9 637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *********************************************************** 667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Other basic definitions 677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *********************************************************** 687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define CNST const 707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define EXTERN extern 717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifndef NULL 737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define NULL 0 747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif 767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifndef FALSE 777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define FALSE 0 787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define TRUE !FALSE 797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif 817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *********************************************************** 847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Structures definition 857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *********************************************************** 867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * structure M4VIFI_ImagePlane 917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief Texture (YUV) planes structure 927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note This structure details the image planes for the output textures: 937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * sizes (in pixels) are luma plane sizes, the 3 pointers point 947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * to the Y, U and V buffers which store data in planar format. 957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi typedef struct 997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi { 1007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt32 u_width; /**< Width of luma in pixel unit */ 1017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt32 u_height; /**< Height of luma in pixel unit */ 1027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt32 u_topleft; /**< Pointer to first texture active pixel */ 1037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt32 u_stride; /**< Stride value */ 1047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 *pac_data; /**< Pointer to the data */ 1057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi } M4VIFI_ImagePlane; 1067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 1087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * structure M4VIFI_FramingData 1107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief Data necessary to add an overlay on an image 1117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note This structure details the position and the data of the overlay 1127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 1147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi typedef struct 1157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi { 1167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt32 1177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi m_xPosStep; /**< X positioning of the overlay vs main picture. 1187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi X positioning is expressed in percentage vs the main 1197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi picture width. 1207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi m_xPosStep must be expressed by step of 1% and between 1217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi -50/+50%. 1227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 0% means overlay is centered vs main picture on 1237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi X abscissa. */ 1247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt32 1257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi m_yPosStep; /**< Y positioning of the overlay vs main picture. 1267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi Y positioning is expressed in percentage vs the main 1277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi picture width. 1287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi m_xPosStep must be expressed by step of 1% and between 1297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi -50/+50%. 1307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 0% means overlay is centered vs main picture on 1317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi Y abscissa. */ 1327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane 1347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * 1357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi m_imagePlane; /**< Pointer to the framing image with alpha channel */ 1367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi } M4VIFI_FramingData; 1377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 1397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * structure M4VIFI_HLSoffset 1417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief HLS offset structure 1427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note This structure have the hue, saturation and lightness value 1437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * for quality enhancement. Range of values neccessarily be 1447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * hue = -360 to 360, sat = 0 to 100 and light = 0 t0 100 1457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 1477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi typedef struct 1487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi { 1497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_Int16 hue; /**< Hue offset */ 1507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_Int16 sat; /**< Saturation offset */ 1517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_Int16 light; /**< Light offset */ 1527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi } M4VIFI_HLSoffset; 1537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 1557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * structure M4VIFI_Tranformation 1577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief Image Tranformation Structure 1587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note Image Tranformation Request 1597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * rotation : 1 -> +90deg Rotation 1607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * -1 -> -90deg Rotation 1617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * 0 -> No Rotation 1627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 1647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi typedef struct 1657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi { 1667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_Int32 i32_rotation; /**< Rotation Flag */ 1677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi } M4VIFI_Tranformation; 1687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 1707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * structure M4VIFI_pContext 1727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief New Structures 1737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note -# Structure of M4VIFI_HLSoffset 1747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 1767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi typedef struct 1777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi { 1787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_HLSoffset hlsOffset; /**< HLS offset structure */ 1797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi } M4VIFI_pContext; 1807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* 1827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ***************************************************** 1837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * External API functions 1847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ***************************************************** 1857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */ 1867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /**< Effect filters */ 1887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_SepiaYUV420toYUV420(void *pUserData, 1897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 1907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_GrayscaleYUV420toYUV420(void *pUserData, 1917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 1927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ContrastYUV420toYUV420(void *pUserData, 1937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 1947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_NegativeYUV420toYUV420(void *pUserData, 1957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 1967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_FlipYUV420toYUV420(void *pUserData, 1977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 1987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_MirrorYUV420toYUV420(void *pUserData, 1997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 2007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_Rotate180YUV420toYUV420(void *pUserData, 2017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 2027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_Rotate90RightYUV420toYUV420(void *pUserData, 2037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 2047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_Rotate90LeftYUV420toYUV420(void *pUserData, 2057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 2067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ColorRYUV420toYUV420(void *pUserData, 2077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 2087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ColorGYUV420toYUV420(void *pUserData, 2097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 2107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ColorBYUV420toYUV420(void *pUserData, 2117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 2127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_FramingRGB565toYUV420(void *pUserData, 2137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 2147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_FramingYUV420(void *pUserData, 2157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 2167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_SetHueInYUV420(void *pUserData, 2177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 2187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ColdYUV420toYUV420(void *pUserData, 2197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 2207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_WarmYUV420toYUV420(void *pUserData, 2217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 2227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* ADS Compiler */ 2247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* Generic ARM assembly functions */ 2267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#if defined ADS_ARM 2277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Apply grayscale effect RGB565toRGB565 */ 2297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_GrayscaleRGB565toRGB565(void *pUserData, 2317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 2327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Resize Bilinear RGB888toRGB888 */ 2347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearRGB888toRGB888(void *pUserData, 2357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 2367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Resize Bilinear RGB565toRGB565 */ 2387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearRGB565toRGB565(void *pUserData, 2397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 2407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Resize Bilinear YUV420toYUV420 */ 2427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toYUV420(void *pUserData, 2437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 2447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** RGB565 to YUV420 */ 2467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_RGB565toYUV420AdsArm(void *pUserData, 2477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 2487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** BGR565 to YUV420 */ 2497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_BGR565toYUV420AdsArm(void *pUserData, 2507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 2517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** YUV422 to YUV420 */ 2537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_UYVYtoYUV420AdsArm(void *pUserData, 2547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 2557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** YUV420 to RGB565 */ 2577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_YUV420toRGB565AdsArm(void *pUserData, 2587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 2597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** YUV420 to BGR565 */ 2607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_YUV420toBGR565AdsArm(void *pUserData, 2617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 2627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Resize Bilinear YUV420toRGB565 */ 2647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toRGB565AdsArm(void *pUserData, 2657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 2667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Resize Bilinear YUV420toBGR565 */ 2677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toBGR565AdsArm(void *pUserData, 2687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 2697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Resize Bilinear YUV420toRGB565 with rotation +90 or -90 */ 2707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toRGB565RotatedRightAdsArm( 2717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi void *pUserData, 2727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 2737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toRGB565RotatedLeftAdsArm( 2747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi void *pUserData, 2757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 2767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Resize Bilinear YUV420toBGR565 with rotation +90 or -90 */ 2777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toBGR565RotatedRightAdsArm( 2787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi void *pUserData, 2797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 2807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toBGR565RotatedLeftAdsArm( 2817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi void *pUserData, 2827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 2837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Modify HLS in RGB565 */ 2847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_SetHLSinRGB565AdsArm(void *pUserData, 2857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 2867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Modify HLS in BGR565 */ 2877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_SetHLSinBGR565AdsArm(void *pUserData, 2887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 2897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_RGB565toYUV420 M4VIFI_RGB565toYUV420AdsArm 2917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_BGR565toYUV420 M4VIFI_BGR565toYUV420AdsArm 2927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_UYVYtoYUV420 M4VIFI_UYVYtoYUV420AdsArm 2937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_YUV420toRGB565 M4VIFI_YUV420toRGB565AdsArm 2947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_YUV420toBGR565 M4VIFI_YUV420toBGR565AdsArm 2957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_ResizeBilinearYUV420toRGB565 \ 2967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ResizeBilinearYUV420toRGB565AdsArm 2977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_ResizeBilinearYUV420toBGR565 \ 2997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ResizeBilinearYUV420toBGR565AdsArm 3007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_ResizeBilinearYUV420toRGB565RotatedRight \ 3027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ResizeBilinearYUV420toRGB565RotatedRightAdsArm 3037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_ResizeBilinearYUV420toRGB565RotatedLeft \ 3057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ResizeBilinearYUV420toRGB565RotatedLeftAdsArm 3067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_ResizeBilinearYUV420toBGR565RotatedRight \ 3087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ResizeBilinearYUV420toBGR565RotatedRightAdsArm 3097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_ResizeBilinearYUV420toBGR565RotatedLeft \ 3117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ResizeBilinearYUV420toBGR565RotatedLeftAdsArm 3127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_SetHLSinRGB565 M4VIFI_SetHLSinRGB565AdsArm 3147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_SetHLSinBGR565 M4VIFI_SetHLSinBGR565AdsArm 3157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* ARM9E assembly functions */ 3177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#elif defined ADS_ARM9E 3187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Apply grayscale effect RGB565toRGB565 */ 3207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_GrayscaleRGB565toRGB565(void *pUserData, 3227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 3237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Resize Bilinear YUV888toYUV888 */ 3257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearRGB888toRGB888(void *pUserData, 3267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 3277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Resize Bilinear YUV565toYUV565 */ 3297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearRGB565toRGB565(void *pUserData, 3307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 3317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Resize Bilinear YUV420toYUV420 */ 3327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toYUV420(void *pUserData, 3337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 3347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** RGB565 to YUV420 */ 3367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_RGB565toYUV420AdsArm9E(void *pUserData, 3377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 3387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** BGR565 to YUV420 */ 3397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_BGR565toYUV420AdsArm9E(void *pUserData, 3407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 3417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** YUV422 to YUV420 */ 3437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_UYVYtoYUV420AdsArm9E(void *pUserData, 3447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 3457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** YUV420 to RGB565 */ 3477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_YUV420toRGB565AdsArm9E(void *pUserData, 3487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 3497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** YUV420 to BGR565 */ 3507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_YUV420toBGR565AdsArm9E(void *pUserData, 3517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 3527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Resize Bilinear YUV420toRGB565 */ 3547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toRGB565AdsArm9E(void *pUserData, 3557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 3567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Resize Bilinear YUV420toBGR565 */ 3577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toBGR565AdsArm9E(void *pUserData, 3587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 3597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Resize Bilinear YUV420toRGB565 with rotation +90 or -90 */ 3607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toRGB565RotatedRightAdsArm9E( 3617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi void *pUserData, 3627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 3637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toRGB565RotatedLeftAdsArm9E( 3647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi void *pUserData, 3657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 3667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Resize Bilinear YUV420toBGR565 with rotation +90 or -90 */ 3677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toBGR565RotatedRightAdsArm9E( 3687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi void *pUserData, 3697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 3707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toBGR565RotatedLeftAdsArm9E( 3717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi void *pUserData, 3727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 3737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Modify HLS in RGB565 */ 3747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_SetHLSinRGB565AdsArm9E(void *pUserData, 3757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 3767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Modify HLS in BGR565 */ 3777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_SetHLSinBGR565AdsArm9E(void *pUserData, 3787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 3797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Resize YUV420toYUV420 from QCIF to QVGA*/ 3817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_YUV420QCIFtoYUV420QVGAAdsArm9E(void *pUserData, 3827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 3837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /**Resize YUV420toRGB565 from QCIF to QVGA*/ 3847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_YUV420QCIFtoRGB565QVGAAdsArm9E(void *pUserData, 3857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 3867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /**Resize YUV420toRGB565 from QCIF to QVGA with rotation +90*/ 3877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_YUV420QCIFtoRGB565QVGA_RRAdsArm9E(void *pUserData, 3887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 3897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /**Resize YUV420toRGB565 from QCIF to QVGA with rotation -90*/ 3907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_YUV420QCIFtoRGB565QVGA_RLAdsArm9E(void *pUserData, 3917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 3927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** Resizes YUV420 Planar Image and stores in YUV420 Linear format with/without +or-90 rotation*/ 3937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_YUV420PlanartoYUV420LinearAdsArm9E(void *pUserData, 3947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 3957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 3967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_RGB565toYUV420 M4VIFI_RGB565toYUV420AdsArm9E 3977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_BGR565toYUV420 M4VIFI_BGR565toYUV420AdsArm9E 3987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_UYVYtoYUV420 M4VIFI_UYVYtoYUV420AdsArm9E 3997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_YUV420toRGB565 M4VIFI_YUV420toRGB565AdsArm9E 4007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_YUV420toBGR565 M4VIFI_YUV420toBGR565AdsArm9E 4017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_ResizeBilinearYUV420toRGB565 \ 4027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ResizeBilinearYUV420toRGB565AdsArm9E 4037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_ResizeBilinearYUV420toBGR565 \ 4047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ResizeBilinearYUV420toBGR565AdsArm9E 4057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_ResizeBilinearYUV420toRGB565RotatedRight \ 4067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ResizeBilinearYUV420toRGB565RotatedRightAdsArm9E 4077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_ResizeBilinearYUV420toRGB565RotatedLeft \ 4087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ResizeBilinearYUV420toRGB565RotatedLeftAdsArm9E 4097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_ResizeBilinearYUV420toBGR565RotatedRight \ 4107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ResizeBilinearYUV420toBGR565RotatedRightAdsArm9E 4117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_ResizeBilinearYUV420toBGR565RotatedLeft \ 4127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ResizeBilinearYUV420toBGR565RotatedLeftAdsArm9E 4137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_SetHLSinRGB565 M4VIFI_SetHLSinRGB565AdsArm9E 4147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_SetHLSinBGR565 M4VIFI_SetHLSinBGR565AdsArm9E 4157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_YUV420QCIFtoYUV420QVGA M4VIFI_YUV420QCIFtoYUV420QVGAAdsArm9E 4167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_YUV420QCIFtoRGB565QVGA M4VIFI_YUV420QCIFtoRGB565QVGAAdsArm9E 4177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_YUV420QCIFtoRGB565QVGA_RR M4VIFI_YUV420QCIFtoRGB565QVGA_RRAdsArm9E 4187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_YUV420QCIFtoRGB565QVGA_RL M4VIFI_YUV420QCIFtoRGB565QVGA_RLAdsArm9E 4197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_YUV420PlanartoYUV420Linear M4VIFI_YUV420PlanartoYUV420LinearAdsArm9E 4207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* GCC Compiler */ 4217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* Generic ARM assembly functions */ 4227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 4237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#elif defined GCC_ARM 4247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 4257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Apply grayscale effect RGB565toRGB565 */ 4267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 4277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_GrayscaleRGB565toRGB565(void *pUserData, 4287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 4297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 4307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Resize Bilinear YUV888toYUV888 */ 4317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearRGB888toRGB888(void *pUserData, 4327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 4337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 4347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Resize Bilinear YUV565toYUV565 */ 4357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearRGB565toRGB565(void *pUserData, 4367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 4377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 4387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Resize Bilinear YUV420toYUV420 */ 4397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toYUV420(void *pUserData, 4407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 4417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 4427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** RGB565 to YUV420 */ 4437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_RGB565toYUV420GccArm(void *pUserData, 4447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 4457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** BGR565 to YUV420 */ 4467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_BGR565toYUV420GccArm(void *pUserData, 4477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 4487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 4497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** YUV420 to RGB565 */ 4507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_YUV420toRGB565GccArm(void *pUserData, 4517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 4527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** YUV420 to BGR565 */ 4537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_YUV420toBGR565GccArm(void *pUserData, 4547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 4557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 4567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Resize Bilinear YUV420toRGB565 */ 4577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toRGB565GccArm(void *pUserData, 4587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 4597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 4607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Resize Bilinear YUV420toBGR565 */ 4617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toBGR565GccArm(void *pUserData, 4627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 4637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 4647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Resize Bilinear YUV420toRGB565 with rotation +90 or -90 */ 4657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toRGB565RotatedRightGccArm( 4667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi void *pUserData, 4677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 4687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toRGB565RotatedLeftGccArm( 4697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi void *pUserData, 4707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 4717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 4727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Resize Bilinear YUV420toBGR565 with rotation +90 or -90 */ 4737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toBGR565RotatedRightGccArm( 4747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi void *pUserData, 4757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 4767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toBGR565RotatedLeftGccArm( 4777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi void *pUserData, 4787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 4797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 4807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Modify HLS in RGB565 */ 4817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_SetHLSinRGB565GccArm(void *pUserData, 4827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 4837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 4847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Modify HLS in BGR565 */ 4857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_SetHLSinBGR565GccArm(void *pUserData, 4867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 4877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 4887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_RGB565toYUV420 M4VIFI_RGB565toYUV420GccArm 4897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_BGR565toYUV420 M4VIFI_BGR565toYUV420GccArm 4907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_YUV420toRGB565 M4VIFI_YUV420toRGB565GccArm 4917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_YUV420toBGR565 M4VIFI_YUV420toBGR565GccArm 4927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_ResizeBilinearYUV420toRGB565 \ 4937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ResizeBilinearYUV420toRGB565GccArm 4947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_ResizeBilinearYUV420toBGR565 \ 4957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ResizeBilinearYUV420toBGR565GccArm 4967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_ResizeBilinearYUV420toRGB565RotatedRight \ 4977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ResizeBilinearYUV420toRGB565RotatedRightGccArm 4987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_ResizeBilinearYUV420toRGB565RotatedLeft \ 4997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ResizeBilinearYUV420toRGB565RotatedLeftGccArm 5007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_ResizeBilinearYUV420toBGR565RotatedRight \ 5017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ResizeBilinearYUV420toBGR565RotatedRightGccArm 5027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_ResizeBilinearYUV420toBGR565RotatedLeft \ 5037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ResizeBilinearYUV420toBGR565RotatedLeftGccArm 5047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_SetHLSinRGB565 M4VIFI_SetHLSinRGB565GccArm 5057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_SetHLSinBGR565 M4VIFI_SetHLSinBGR565GccArm 5067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 5077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* ARM9E assembly functions */ 5087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#elif defined GCC_ARM9E 5097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 5107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Apply grayscale effect RGB565toRGB565 */ 5117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 5127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_GrayscaleRGB565toRGB565(void *pUserData, 5137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 5147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 5157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Resize Bilinear YUV888toYUV888 */ 5167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearRGB888toRGB888(void *pUserData, 5177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 5187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 5197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Resize Bilinear YUV565toYUV565 */ 5207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearRGB565toRGB565(void *pUserData, 5217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 5227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 5237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Resize Bilinear YUV420toYUV420 */ 5247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toYUV420(void *pUserData, 5257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 5267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 5277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** RGB565 to YUV420 */ 5287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_RGB565toYUV420GccArm9E(void *pUserData, 5297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 5307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** BGR565 to YUV420 */ 5317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_BGR565toYUV420GccArm9E(void *pUserData, 5327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 5337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 5347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** YUV420 to RGB565 */ 5357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_YUV420toRGB565GccArm9E(void *pUserData, 5367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 5377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** YUV420 to BGR565 */ 5387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_YUV420toBGR565GccArm9E(void *pUserData, 5397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 5407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 5417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Resize Bilinear YUV420toRGB565 */ 5427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toRGB565GccArm9E(void *pUserData, 5437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 5447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Resize Bilinear YUV420toBGR565 */ 5457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toBGR565GccArm9E(void *pUserData, 5467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 5477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 5487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Resize Bilinear YUV420toRGB565 with rotation +90 or -90 */ 5497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toRGB565RotatedRightGccArm9E( 5507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi void *pUserData, 5517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 5527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toRGB565RotatedLeftGccArm9E( 5537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi void *pUserData, 5547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 5557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 5567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Resize Bilinear YUV420toBGR565 with rotation +90 or -90 */ 5577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toBGR565RotatedRightGccArm9E( 5587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi void *pUserData, 5597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 5607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toBGR565RotatedLeftGccArm9E( 5617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi void *pUserData, 5627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 5637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Modify HLS in RGB565 */ 5647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_SetHLSinRGB565GccArm9E(void *pUserData, 5657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 5667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Modify HLS in BGR565 */ 5677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_SetHLSinBGR565GccArm9E(void *pUserData, 5687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 5697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 5707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_RGB565toYUV420 M4VIFI_RGB565toYUV420GccArm9E 5717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_BGR565toYUV420 M4VIFI_BGR565toYUV420GccArm9E 5727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_YUV420toRGB565 M4VIFI_YUV420toRGB565GccArm9E 5737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_YUV420toBGR565 M4VIFI_YUV420toBGR565GccArm9E 5747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_ResizeBilinearYUV420toRGB565 \ 5757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ResizeBilinearYUV420toRGB565GccArm9E 5767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_ResizeBilinearYUV420toBGR565 \ 5777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ResizeBilinearYUV420toBGR565GccArm9E 5787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_ResizeBilinearYUV420toRGB565RotatedRight \ 5797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ResizeBilinearYUV420toRGB565RotatedRightGccArm9E 5807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_ResizeBilinearYUV420toRGB565RotatedLeft \ 5817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ResizeBilinearYUV420toRGB565RotatedLeftGccArm9E 5827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_ResizeBilinearYUV420toBGR565RotatedRight \ 5837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ResizeBilinearYUV420toBGR565RotatedRightGccArm9E 5847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_ResizeBilinearYUV420toBGR565RotatedLeft \ 5857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ResizeBilinearYUV420toBGR565RotatedLeftGccArm9E 5867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_SetHLSinBGR565 M4VIFI_SetHLSinBGR565GccArm9E 5877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_SetHLSinRGB565 M4VIFI_SetHLSinRGB565GccArm9E 5887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 5897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* TI CCS assembly files */ 5907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#elif defined TI411_ARM9E 5917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 5927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Apply grayscale effect RGB565toRGB565 */ 5937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 5947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_GrayscaleRGB565toRGB565(void *pUserData, 5957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 5967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 5977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Resize Bilinear YUV888toYUV888 */ 5987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearRGB888toRGB888(void *pUserData, 5997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 6007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 6017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Resize Bilinear YUV565toYUV565 */ 6027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearRGB565toRGB565(void *pUserData, 6037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 6047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 6057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Resize Bilinear YUV420toYUV420 */ 6067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toYUV420(void *pUserData, 6077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 6087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 6097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** YUV420 (Planar) to RGB565 */ 6107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_YUV420toRGB565(void *pUserData, 6117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 6127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** YUV420 (Planar) to Resized RGB565 */ 6137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toRGB565(void *pUserData, 6147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 6157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** YUV420 (Planar) to Resized RGB888 */ 6167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toRGB888(void *pUserData, 6177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 6187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** YUV420(Planar) to Resized and Rotated (-90) RGB565 */ 6197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toRGB565RotatedLeft(void *pUserData, 6207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 6217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 6227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** YUV420(Planar) to Resized and Rotated (+90) RGB565 */ 6237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toRGB565RotatedRight( 6247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi void *pUserData, 6257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 6267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 6277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** YUV420(Planar) to Resized YUV420(Planar) */ 6287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_YUV420QCIFtoYUV420QVGA(void *pUserData, 6297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 6307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 6317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Resize YUV420(Planar) of QCIF to RGB565 of QVGA resolution */ 6327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_YUV420QCIFtoRGB565QVGA(void *pUserData, 6337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 6347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 6357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** Resize YUV420(Planar) of QCIF to RGB565 of QVGA resolution with rotation(-90) */ 6367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_YUV420QCIFtoRGB565QVGA_RL(void *pUserData, 6377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 6387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 6397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** Resize YUV420(Planar) of QCIF to RGB565 of QVGA resolution with rotation(+90) */ 6407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_YUV420QCIFtoRGB565QVGA_RR(void *pUserData, 6417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 6427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 6437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_YUV420toRGB565 M4VIFI_YUV420toRGB565Ti411Arm9E 6447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_ResizeBilinearYUV420toRGB565 \ 6457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ResizeBilinearYUV420toRGB565Ti411Arm9E 6467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_ResizeBilinearYUV420toRGB565RotatedLeft \ 6477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ResizeBilinearYUV420toRGB565RotatedLeftTi411Arm9E 6487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_ResizeBilinearYUV420toRGB565RotatedRight \ 6497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ResizeBilinearYUV420toRGB565RotatedRightTi411Arm9E 6507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 6517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_YUV420QCIFtoYUV420QVGA M4VIFI_YUV420QCIFtoYUV420QVGATi411Arm9E 6527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_YUV420QCIFtoRGB565QVGA M4VIFI_YUV420QCIFtoRGB565QVGATi411Arm9E 6537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_YUV420QCIFtoRGB565QVGA_RL M4VIFI_YUV420QCIFtoRGB565QVGA_RLTi411Arm9E 6547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4VIFI_YUV420QCIFtoRGB565QVGA_RR M4VIFI_YUV420QCIFtoRGB565QVGA_RRTi411Arm9E 6557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 6567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* ANSI C Functions */ 6577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#else 6587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 6597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Apply grayscale effect RGB565toRGB565 */ 6607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 6617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_GrayscaleRGB565toRGB565(void *pUserData, 6627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 6637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 6647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Resize Bilinear YUV888toYUV888 */ 6657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearRGB888toRGB888(void *pUserData, 6667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 6677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 6687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Resize Bilinear YUV565toYUV565 */ 6697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearRGB565toRGB565(void *pUserData, 6707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 6717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 6727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Resize Bilinear YUV420toYUV420 */ 6737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toYUV420(void *pUserData, 6747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 6757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 6767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** RGB565 to YUV420 */ 6777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_RGB565toYUV420(void *pUserData, 6787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 6797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** BRG565 to YUV420 */ 6807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_BGR565toYUV420(void *pUserData, 6817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 6827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** BRG888 to YUV420 */ 6837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_BGR888toYUV420(void *pUserData, 6847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *PlaneIn, M4VIFI_ImagePlane PlaneOut[3]); 6857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** RGB888 to YUV420 */ 6867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_RGB888toYUV420(void *pUserData, 6877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *PlaneIn, M4VIFI_ImagePlane PlaneOut[3]); 6887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 6897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** YUV422 to YUV420 */ 6907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_UYVYtoYUV420(void *pUserData, 6917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 6927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 6937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** YUV420 to RGB565 */ 6947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_YUV420toRGB565(void *pUserData, 6957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 6967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** YUV420 to BGR565 */ 6977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_YUV420toBGR565(void *pUserData, 6987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 6997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** YUV420 to BGR565 */ 7007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_YUV420toBGR565RotatedLeft(void *pUserData, 7017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 7027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** YUV420 to BGR565 */ 7037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_YUV420toBGR565RotatedRight(void *pUserData, 7047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 7057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** YUV420 to BGR24 */ 7067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_YUV420toBGR24(void *pUserData, 7077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 7087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** YUV420 to RGB24 */ 7097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_YUV420toRGB24(void *pUserData, 7107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 7117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Resize Bilinear YUV420toYUV420 */ 7127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toYUV420(void *pUserData, 7137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 7147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Resize Bilinear YUV420toRGB565 */ 7157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toRGB565(void *pUserData, 7167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 7177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toRGB888(void *pUserData, 7187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 7197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Resize Bilinear YUV420toBGR565 */ 7207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toBGR565(void *pUserData, 7217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 7227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Resize Bilinear YUV420toRGB565 with rotation +90 or -90 */ 7237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toRGB565RotatedRight( 7247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi void *pUserData, 7257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 7267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toRGB565RotatedLeft(void *pUserData, 7277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 7287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Resize Bilinear YUV420toBGR565 with rotation +90 or -90 */ 7297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toBGR565RotatedRight( 7307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi void *pUserData, 7317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 7327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_ResizeBilinearYUV420toBGR565RotatedLeft(void *pUserData, 7337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 7347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Modify HLS in RGB565 */ 7357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_SetHLSinRGB565(void *pUserData, 7367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 7377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** Modify HLS in BGR565 */ 7387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_SetHLSinBGR565(void *pUserData, 7397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *PlaneOut); 7407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /**Resize YUV420toYUV420 from QCIF to QVGA*/ 7417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_YUV420QCIFtoYUV420QVGA(void *pUserData, 7427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 7437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /**Resize YUV420toRGB565 from QCIF to QVGA*/ 7447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_YUV420QCIFtoRGB565QVGA(void *pUserData, 7457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 7467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /**Resize YUV420toRGB565 from QCIF to QVGA with rotation +90*/ 7477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_YUV420QCIFtoRGB565QVGA_RR(void *pUserData, 7487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 7497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /**Resize YUV420toRGB565 from QCIF to QVGA with rotation -90*/ 7507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_YUV420QCIFtoRGB565QVGA_RL(void *pUserData, 7517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 7527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** Resizes YUV420 Planar Image and stores in YUV420 Linear format with/without +or-90 rotation*/ 7537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_YUV420PlanartoYUV420Linear(void *pUserData, 7547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 7557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 7567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** Resizes YUV420 Planar Image and stores in YUV422 Interleaved format 7577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi with/without +or-90 rotation*/ 7587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_YUV420PlanartoYUV422Interleaved(void *pUserData, 7597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *pPlaneIn, M4VIFI_ImagePlane *pPlaneOut); 7607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif 7617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 7627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** definition of the converter function types */ 7637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 7647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi typedef M4VIFI_UInt8 M4VIFI_PlanConverterFunctionType(void 7657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *pContext, M4VIFI_ImagePlane* in, M4VIFI_ImagePlane* out); 7667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 7677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /** definition of the preprocessing function types */ 7687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi typedef M4VIFI_UInt8 M4VIFI_PreprocessFunctionType(void 7697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *pContext, M4VIFI_ImagePlane* in, M4VIFI_ImagePlane* out); 7707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 7717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_YUV420toYUV420(void *user_data, 7727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *PlaneIn, M4VIFI_ImagePlane *PlaneOut); 7737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_YUV420PlanarToYUV420Semiplanar(void *user_data, 7747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *PlaneIn, M4VIFI_ImagePlane *PlaneOut); 7757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_UInt8 M4VIFI_SemiplanarYUV420toYUV420(void *user_data, 7767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4VIFI_ImagePlane *PlaneIn, M4VIFI_ImagePlane *PlaneOut); 7777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef __cplusplus 7787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 7797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} 7807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 7817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* __cplusplus */ 7827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 7837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* _M4VIFI_FILTERSAPI_H_ */ 7847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 7857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* End of file M4VIFI_FiltersAPI.h */ 786