123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- #include <cuda_runtime.h>
- #include <device_functions.h>
- #include <cuda.h>
- #include <device_launch_parameters.h>
- #include <stdio.h>
- #include <opencv2/core/cuda.hpp>
- #define IPAD 2
- #define SHARED_MEMORY_SIZE 32
- #define SHARED_MEMORY_SIZE_Y 32
- #define BLOCK_SIZE SHARED_MEMORY_SIZE
- namespace YUVTailorAndBlender {
- enum COLORSPACE
- {
- RGB = 0x0000,
- I420 = 0x0001,
- NV12 = 0x0002,
- NV21 = 0x0003,
- YV12 = I420,
- YCbCr = NV12,
- };
- extern __host__ void TurnNV12ToI420Classics(unsigned char* pNV12, int nWidth, int nHeight,
- unsigned char* pI420, int nPitch);
- extern __host__ void TurnNV12ToI420Dissociative(unsigned char* pNV12, int nWidth, int nHeight,
- unsigned char* pI420, int nPitch);
- extern __host__ void TurnCUDAFormatToI420(unsigned char* dataY, unsigned char* dataUV, size_t pitchY, size_t pitchUV, unsigned char* dstImage, int width, int height,CUstream* pStream = nullptr);
- extern __host__ void CopyPlane(
- unsigned char* pSrc, int nSrcWidth, int nSrcHeight, int nSrcPitch,
- unsigned char* pDst, int nDstWidth, int nDstHeight, int nDstPitch,
- int nCopyWidth, int nCopyHeight,
- int nCopyStartX, int nCopyStartY,
- unsigned int Type,
- CUstream* pStream
- );
- extern __host__ void CropI420(
- unsigned char* pSrcY, int nSrcYPitch,
- unsigned char* pSrcU, int nSrcUPitch,
- unsigned char* pSrcV, int nSrcVPitch,
- unsigned char* pDstY, int nDstYPitch,
- unsigned char* pDstU, int nDstUPitch,
- unsigned char* pDstV, int nDstVPitch,
- int nCropWidth, int nCropHeight,
- int nCropStartX, int nCropStartY
- );
- extern __host__ void GradientBlenderYUV(
- unsigned char* pRelateY, int YRelateStride,
- unsigned char* pRelateU, int URelateStride,
- unsigned char* pRelateV, int VRelateStride,
- unsigned char* pTargetY, int YTargetStride,
- unsigned char* pTargetU, int UTargetStride,
- unsigned char* pTargetV, int VTargetStride,
- int width, int height,
- float* pRelateMask, float* pTargetMask, int MaskStride,
- unsigned char* pDstY, int DstYStride,
- unsigned char* pDstU, int DstUStride,
- unsigned char* pDstV, int DstVStride,
- int DstWidth, int DstHeight
- );
- void __global__ TurnNV12ToI420ClassicsKernal(unsigned char* pNV12, int nWidth, int nHeight,
- unsigned char* pI420, int nPitch);
- void __global__ CopyPlaneKernal(unsigned char* pNV12Y, int nWidth, int nHeight,
- unsigned char* pI420Y, int nPitch);
- void __global__ _CopyPlaneKernal(
- unsigned char* pSrc, int nSrcWidth, int nSrcHeight, int nSrcPitch,
- unsigned char* pDst, int nDstWidth, int nDstHeight, int nDstPitch,
- int nCopyWidth, int nCopyHeight,
- int nCopyStartX, int nCopyStartY,
- int nChannel);
- void __global__ TurnNV12ToI420DissociativeKernalUV(unsigned char* pNV12UV, int nWidth, int nHeight,
- unsigned char* pI420UV, int nPitch);
- void __global__ TurnCUDAFormatToI420Kernal(unsigned char* dataY, unsigned char* dataUV, size_t pitchY, size_t pitchUV, unsigned char* I420, int width, int height);
- void __global__ GradientBlenderYUVKernal(
- unsigned char* pRelateY, int YRelateStride,
- unsigned char* pRelateU, int URelateStride,
- unsigned char* pRelateV, int VRelateStride,
- unsigned char* pTargetY, int YTargetStride,
- unsigned char* pTargetU, int UTargetStride,
- unsigned char* pTargetV, int VTargetStride,
- int width, int height,
- float* pRelateMask, float* pTargetMask, int MaskStride,
- unsigned char* pDstY, int DstYStride,
- unsigned char* pDstU, int DstUStride,
- unsigned char* pDstV, int DstVStride
- );
- void __global__ CropI420Kernel(
- unsigned char* pRelateY, int YRelateStride,
- unsigned char* pRelateU, int URelateStride,
- unsigned char* pRelateV, int VRelateStride,
- unsigned char* pTargetY, int YTargetStride,
- unsigned char* pTargetU, int UTargetStride,
- unsigned char* pTargetV, int VTargetStride,
- int nCropWidth, int nCropHeight,
- int nCropX,int nCropY,
- int DstWidth, int DstHeight
- );
- cudaError_t setColorSpace2(float hue);
- }
|