📄 umc_color_space_converter_deinterlace.cpp
字号:
/*//// 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.//*/#include <ippi.h>#include <ippvc.h>#include <ippcc.h>#include "umc_color_space_converter.h"namespace UMC{void ColorSpaceConverter::DeinterlaceFrame(ColorConversionParams &ConvertParam){ // check applicable format(s) if ((YUY2 == ConvertParam.ConversionInit.FormatDest) || (UYVY == ConvertParam.ConversionInit.FormatDest) || (RGB24 == ConvertParam.ConversionInit.FormatDest) || (RGB32 == ConvertParam.ConversionInit.FormatDest)) { vm_var32 lWidth; switch (ConvertParam.ConversionInit.FormatDest) { case YUY2: case UYVY: lWidth = ConvertParam.ConversionInit.SizeSource.width * 2; break; case RGB24: lWidth = ConvertParam.ConversionInit.SizeSource.width * 3; break; case RGB32: lWidth = ConvertParam.ConversionInit.SizeSource.width * 4; break; default: lWidth = ConvertParam.ConversionInit.SizeSource.width; break; }; IppiSize roi = {lWidth, ConvertParam.ConversionInit.SizeDest.height}; ippiDeinterlaceFilterTriangle_8u_C1R(ConvertParam.lpSource0, ConvertParam.PitchSource0, ConvertParam.lpDest0, ConvertParam.PitchDest0, roi, 128, IPP_LOWER | IPP_UPPER | IPP_CENTER); } else if (YV12 == ConvertParam.ConversionInit.FormatDest) { IppiSize roiLuma = {ConvertParam.ConversionInit.SizeDest.width, ConvertParam.ConversionInit.SizeDest.height}; IppiSize roiChroma = {ConvertParam.ConversionInit.SizeDest.width / 2, ConvertParam.ConversionInit.SizeDest.height / 2}; ippiDeinterlaceFilterTriangle_8u_C1R(ConvertParam.lpSource0, ConvertParam.PitchSource0, ConvertParam.lpDest0, ConvertParam.PitchDest0, roiLuma, 128, IPP_LOWER | IPP_UPPER | IPP_CENTER); ippiDeinterlaceFilterTriangle_8u_C1R(ConvertParam.lpSource1, ConvertParam.PitchSource1, ConvertParam.lpDest1, ConvertParam.PitchDest1, roiChroma, 128, IPP_LOWER | IPP_UPPER | IPP_CENTER); ippiDeinterlaceFilterTriangle_8u_C1R(ConvertParam.lpSource2, ConvertParam.PitchSource2, ConvertParam.lpDest2, ConvertParam.PitchDest2, roiChroma, 128, IPP_LOWER | IPP_UPPER | IPP_CENTER); } else if (NV12 == ConvertParam.ConversionInit.FormatDest) { IppiSize roiLuma = {ConvertParam.ConversionInit.SizeDest.width, ConvertParam.ConversionInit.SizeDest.height}; IppiSize roiChroma = {ConvertParam.ConversionInit.SizeDest.width, ConvertParam.ConversionInit.SizeDest.height / 2}; ippiDeinterlaceFilterTriangle_8u_C1R(ConvertParam.lpSource0, ConvertParam.PitchSource0, ConvertParam.lpDest0, ConvertParam.PitchDest0, roiLuma, 128, IPP_LOWER | IPP_UPPER | IPP_CENTER); ippiDeinterlaceFilterTriangle_8u_C1R(ConvertParam.lpSource1, ConvertParam.PitchSource1, ConvertParam.lpDest1, ConvertParam.PitchDest1, roiChroma, 128, IPP_LOWER | IPP_UPPER | IPP_CENTER); };} // void ColorSpaceConverter::DeinterlaceFrame(ColorConversionParams &ConvertParam)} // end namespace UMC
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -