⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 umc_color_space_converter.h

📁 这是在PCA下的基于IPP库示例代码例子,在网上下了IPP的库之后,设置相关参数就可以编译该代码.
💻 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 + -