diff -r 951a5db380a0 -r d87d32eab1a9 videoeditorengine/vedengine/GenManip/inc/DCIetd.h --- a/videoeditorengine/vedengine/GenManip/inc/DCIetd.h Fri Jan 29 14:08:33 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,122 +0,0 @@ -/* -* Copyright (c) 2010 Ixonos Plc. -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of the "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - Initial contribution -* -* Contributors: -* Ixonos Plc -* -* Description: -* -*/ - - -//----IMAAMI---- -//************************************************************************* -//CDCIETD.h -// -//Version 2.00 -// -//Contains: -// CDCIETD -// Display specific color contrast enhancement, -// Image Enhancement for Transflective Displays version 2, -// IETD 2. -// -// The class implements the following image enhancements algorithms: -// - Histogram guided contrast stretch -// - Color saturation increase -// -// Usage: -// - First an instance of this class is created by factory functions NewL() or NewLC. -// - All settings and configurations can be done by calling function SetParams(). -// Current parameters can be checked by calling function GetParams(). -// - Then the The Analyze() function is called with CFbsBitmap as an argumet. -// This function have to be called at least once before ProcessL(). -// - Then the The ProcessL() function is called with CFbsBitmap as an argumet. -// The bitmap is handled in place so this function modifies the given bitmap. -// -//History: -// 23.10.2003 version 2.00 created using existing IMAAMI IETD -//************************************************************************* - -#ifndef __DCIetd_H__ -#define __DCIetd_H__ - -// INCLUDES - -#ifndef __E32STD_H__ -#include // for Fundamental Types -#endif // __E32STD_H__ - -#ifndef __E32BASE_H__ -#include // for CBase -#endif // __E32BASE_H__ - -//Default parameters -#include "DCInit.h" - - -//------------------- -// CLASS DEFINITIONS -// CDCIetd - The one and ony class to contain all required methods -// to implement DCIetd functionality. -class CDCIetd : public CBase - { - public: - - //Parameter struct - struct DCIetdParameters - { - TUint8 aWhitePixels; //Percentage of pixels stretched to maximum value - TUint8 aBlackPixels; //Percentage of pixels stretched to minimum value - TUint8 aStretchLimit; //Narrowest histogram to be stretched to full range - TUint8 aSaturationGain; //Saturation increase gain - TUint8 aBitLimit; //Minimum number of color values for full gain - TUint8 aWBC; //White balance correction limit - TUint8 aDBC; //Dark balance correction limit - }; - - CDCIetd(); // Constructor - static CDCIetd* NewL(); // Factory function NewL - static CDCIetd* NewLC();// Factory function NewLC - ~CDCIetd(); // Destructor - void ConstructL(); // Second Phase contructor (may leave) - - // Analyze image referenced by aBPtr - void Analyze(CFbsBitmap& aBPtr); - - // Process and store image referenced by aBPtr - void ProcessL(CFbsBitmap& aBPtr); - - // Parameter exchange - void SetParams(DCIetdParameters* parameters); - void GetParams(DCIetdParameters* parameters); - - private: - - void GatherHistograms(const CFbsBitmap& aBPtr); // Construct the R, G, and B Histograms - void MakeMappings(); // Calculate the mapping LUTs - - // Limit integer value to byte [0,255] - static inline TUint8 Limit255(TInt i) {return (TUint8)(i<0?0:(i>255?255:i));} - - TUint iHistogram[3][256]; // Histogram data - TUint8 iMap[3][256]; // Color component mapping funtions - HBufC8* iScanLineBuffer; // Scan line buffer - - TUint8 iReducedStretchLimit[3]; //Stretch limits for each component - - DCIetdParameters iParameters; //Parameters - }; - -#endif // __DCIetd_H__ - -// End of File -//----IMAAMI----