📄 umc_color_space_converter.h
字号:
/*//// INTEL CORPORATION PROPRIETARY INFORMATION// This software is supplied under the terms of a license agreement or// nondisclosure agreement with Intel Corporation and may not be copied// or disclosed except in accordance with the terms of that agreement.// Copyright (c) 2003-2005 Intel Corporation. All Rights Reserved.//*/#ifndef __COLOR_SPACE_CONVERTER_H#define __COLOR_SPACE_CONVERTER_H#include "umc_base_color_space_converter.h"namespace UMC{#undef DECLARE_CONVERTION_MEMBER#define DECLARE_CONVERTION_MEMBER(type_in, type_out) \ void ConvertFrom_##type_in##_To_##type_out(ColorConversionParams &ConvertParam);#undef DECLARE_CONVERTION_MEMBERS#define DECLARE_CONVERTION_MEMBERS(type_in) \ DECLARE_CONVERTION_MEMBER(type_in, YV12) \ DECLARE_CONVERTION_MEMBER(type_in, NV12) \ DECLARE_CONVERTION_MEMBER(type_in, YCbCr) \ DECLARE_CONVERTION_MEMBER(type_in, CbYCr) \ DECLARE_CONVERTION_MEMBER(type_in, YUV411) \ DECLARE_CONVERTION_MEMBER(type_in, YUV420) \ DECLARE_CONVERTION_MEMBER(type_in, YUV420M) \ DECLARE_CONVERTION_MEMBER(type_in, RGB32) \ DECLARE_CONVERTION_MEMBER(type_in, RGB24) \ DECLARE_CONVERTION_MEMBER(type_in, RGB565) \ DECLARE_CONVERTION_MEMBER(type_in, RGB555) \ DECLARE_CONVERTION_MEMBER(type_in, RGB444)class ColorSpaceConverter : public BaseColorSpaceConverter{public: // Default constructor ColorSpaceConverter(); // Destructor virtual ~ColorSpaceConverter(); // Initialize space converter virtual Status Init(ColorConversionInfo &InitParam); // Begin color conversion virtual Status BeginFrame(ColorConversionParams *lpConvertParam); // Convert image(s) virtual Status ConvertFrame(ColorConversionParams *lpConvertParam); // Convert slice of image(s) virtual Status ConvertSlice(ColorConversionParams *lpConvertParam, vm_var32 lSliceNum); // End color conversion virtual Status CloseFrame(ColorConversionParams *lpConvertParam); // Initialize space converter virtual Status Close(void);protected: // Allocate primary internal buffer bool AllocateInternalBuffer(size_t lSize){return AllocateInternalBuffer(lSize, m_lBufferSize, m_lpvBuffer);}; // Allocate internal buffer bool AllocateInternalBuffer(size_t lSize, size_t &lBufferSize, void * &lpvBuffer); // Check parameter(s) Status CheckParameters(ColorConversionParams &Param); // Perform convert frame and deinterlace Status ConvertFrameAndDeinterlace(ColorConversionParams &Param); // Deinterlace converted frame void DeinterlaceFrame(ColorConversionParams &ConvertParam); void *m_lpvBuffer; // (void *) pointer to internal buffer size_t m_lBufferSize; // (size_t) size of internal buffer void *m_lpvAdditional; // (void *) pointer to additional internal buffer size_t m_lAdditionalSize; // (size_t) size of additional internal buffer void *m_lpvDeinterlace; // (void *) pointer to deinterlace internal buffer size_t m_lDeinterlaceSize; // (size_t) size of deinterlace internal buffer // Declare convertion to YV12 format (planar) DECLARE_CONVERTION_MEMBERS(YV12) // Declare convertion to NV12 format (planar, U & V merged) DECLARE_CONVERTION_MEMBERS(NV12) // Declare convertion to YUY2 format (interleaved) DECLARE_CONVERTION_MEMBERS(YCbCr) // Declare convertion to UYVY format (interleaved) DECLARE_CONVERTION_MEMBERS(CbYCr) // Declare convertion to YCbCr411 format (planar) DECLARE_CONVERTION_MEMBERS(YUV411) // Functions to return internal buffer (special trained people use only) DECLARE_CONVERTION_MEMBERS(YUV420) // Functions to return internal buffer (special trained people use only) DECLARE_CONVERTION_MEMBERS(YUV420M) // Declare convertion to BGRA format (interleaved) DECLARE_CONVERTION_MEMBERS(RGB32) // Declare convertion to BGR format (interleaved) DECLARE_CONVERTION_MEMBERS(RGB24) // Declare convertion to BGR format (interleaved) DECLARE_CONVERTION_MEMBERS(RGB565) // Declare convertion to BGR format (interleaved) DECLARE_CONVERTION_MEMBERS(RGB555) // Declare convertion to BGRA format (interleaved) DECLARE_CONVERTION_MEMBERS(RGB444) // some custom conversions not exist in IPP libraries void ResizeRGB24(ColorConversionParams &ConvertParam); void ResizeYV12(ColorConversionParams &ConvertParam); void ResizeNV12(ColorConversionParams &ConvertParam); void ResizeCbYCr(ColorConversionParams &ConvertParam); void ResizeYCbCr(ColorConversionParams &ConvertParam);};#undef DECLARE_CONVERTION_MEMBERS#undef DECLARE_CONVERTION_MEMBER} // end namepsace UMC#endif // __COLOR_SPACE_CONVERTER_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -