From f1ddcf355c4434c0c70c1a903590e176d46f8dd3 Mon Sep 17 00:00:00 2001 From: wiiiii123 Date: Wed, 13 May 2026 02:43:38 +0700 Subject: [PATCH] fix(export): improve cuda compositor resampling --- .../bin/win32-x64/helpers-manifest.json | 6 +- .../recordly-nvidia-cuda-compositor.exe | Bin 459776 -> 516608 bytes .../native/nvidia-cuda-compositor/src/main.cu | 327 ++++++++++++++---- 3 files changed, 268 insertions(+), 65 deletions(-) diff --git a/electron/native/bin/win32-x64/helpers-manifest.json b/electron/native/bin/win32-x64/helpers-manifest.json index bbcef557..ccea1d3a 100644 --- a/electron/native/bin/win32-x64/helpers-manifest.json +++ b/electron/native/bin/win32-x64/helpers-manifest.json @@ -26,10 +26,10 @@ }, "recordly-nvidia-cuda-compositor": { "binaryName": "recordly-nvidia-cuda-compositor.exe", - "binarySha256": "a787531c07142de7c292d1726e0339c97dbce5073d9a0853d539a725265fd945", + "binarySha256": "d974a16ddf45891e3aca19fbb79539c547968cc4dab89a2762bdd738a4dcc9f3", "sourceDir": "electron/native/nvidia-cuda-compositor", - "sourceFingerprint": "528b599e9d576d81ec087d0d4dc93a79af1bbf30fdb969f44f773bef90146135", - "updatedAt": "2026-05-07T20:14:13.794Z" + "sourceFingerprint": "2782dae39e51f2dec6d64ca8307e0ec628d9b245b77beec31bb44103fa1323f4", + "updatedAt": "2026-05-12T19:26:46.482Z" } } } diff --git a/electron/native/bin/win32-x64/recordly-nvidia-cuda-compositor.exe b/electron/native/bin/win32-x64/recordly-nvidia-cuda-compositor.exe index 0fd5f273232f39d5080fe19b034b66e9bbd3a056..652713477ffbccb6cd0881cb8c45c176422510ea 100644 GIT binary patch delta 136336 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

rhK5c@$H^B#L_z38_^yE%4rFUEeWu2ZeGIBAT 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

?*NZ$D5=c@U3u<|B9dqgy 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 )&C(XKjw|{ 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 diff --git a/electron/native/nvidia-cuda-compositor/src/main.cu b/electron/native/nvidia-cuda-compositor/src/main.cu index 6adcbcf7..356593f4 100644 --- a/electron/native/nvidia-cuda-compositor/src/main.cu +++ b/electron/native/nvidia-cuda-compositor/src/main.cu @@ -975,6 +975,37 @@ std::unique_ptr createWebcamStreamDecoder(CUcontext context return std::make_unique(context, options); } +__device__ unsigned char clampByteDevice(int value); + +__device__ float mapScaledCoordinate(float dstCoordinate, int srcSize, int dstSize); + +__device__ unsigned char samplePlaneBilinear( + const unsigned char* plane, + int pitch, + int width, + int height, + float x, + float y); + +__device__ unsigned char samplePlaneCubic( + const unsigned char* plane, + int pitch, + int width, + int height, + float x, + float y); + +__device__ void sampleNv12UvBilinear( + const unsigned char* src, + int srcPitch, + int srcSurfaceHeight, + int srcWidth, + int srcHeight, + float lumaX, + float lumaY, + unsigned char* outU, + unsigned char* outV); + __global__ void copyNv12Kernel( const unsigned char* src, int srcPitch, @@ -992,17 +1023,24 @@ __global__ void copyNv12Kernel( return; } - const int sx = min(srcWidth - 1, (x * srcWidth) / dstWidth); - const int sy = min(srcHeight - 1, (y * srcHeight) / dstHeight); - dst[y * dstPitch + x] = src[sy * srcPitch + sx]; + const float sx = mapScaledCoordinate(static_cast(x), srcWidth, dstWidth); + const float sy = mapScaledCoordinate(static_cast(y), srcHeight, dstHeight); + dst[y * dstPitch + x] = samplePlaneCubic(src, srcPitch, srcWidth, srcHeight, sx, sy); if ((x % 2) == 0 && (y % 2) == 0) { - const int suvX = min(srcWidth - 2, ((x * srcWidth) / dstWidth) & ~1); - const int suvY = min((srcHeight / 2) - 1, (y * srcHeight / dstHeight) / 2); - const unsigned char* srcUv = src + srcPitch * srcSurfaceHeight + suvY * srcPitch + suvX; unsigned char* dstUv = dst + dstChromaOffset + (y / 2) * dstPitch + x; - dstUv[0] = srcUv[0]; - dstUv[1] = srcUv[1]; + const float suvX = mapScaledCoordinate(static_cast(x + 1), srcWidth, dstWidth); + const float suvY = mapScaledCoordinate(static_cast(y + 1), srcHeight, dstHeight); + sampleNv12UvBilinear( + src, + srcPitch, + srcSurfaceHeight, + srcWidth, + srcHeight, + suvX, + suvY, + &dstUv[0], + &dstUv[1]); } } @@ -1061,6 +1099,135 @@ __device__ bool isInsideRoundedRect( return dx * dx + dy * dy <= radius * radius; } +__device__ float mapScaledCoordinate(float dstCoordinate, int srcSize, int dstSize) { + return ((dstCoordinate + 0.5f) * static_cast(srcSize) / + static_cast(max(1, dstSize))) - + 0.5f; +} + +__device__ unsigned char samplePlaneBilinear( + const unsigned char* plane, + int pitch, + int width, + int height, + float x, + float y) { + if (width <= 1 || height <= 1) { + const int sx = max(0, min(width - 1, static_cast(floorf(x)))); + const int sy = max(0, min(height - 1, static_cast(floorf(y)))); + return plane[sy * pitch + sx]; + } + + const float clampedX = fminf(static_cast(width - 1), fmaxf(0.0f, x)); + const float clampedY = fminf(static_cast(height - 1), fmaxf(0.0f, y)); + const int x0 = max(0, min(width - 1, static_cast(floorf(clampedX)))); + const int y0 = max(0, min(height - 1, static_cast(floorf(clampedY)))); + const int x1 = min(width - 1, x0 + 1); + const int y1 = min(height - 1, y0 + 1); + const float tx = clampedX - static_cast(x0); + const float ty = clampedY - static_cast(y0); + + const float v00 = static_cast(plane[y0 * pitch + x0]); + const float v10 = static_cast(plane[y0 * pitch + x1]); + const float v01 = static_cast(plane[y1 * pitch + x0]); + const float v11 = static_cast(plane[y1 * pitch + x1]); + const float top = v00 + (v10 - v00) * tx; + const float bottom = v01 + (v11 - v01) * tx; + return clampByteDevice(static_cast(top + (bottom - top) * ty + 0.5f)); +} + +__device__ float cubicWeight(float x) { + const float ax = fabsf(x); + if (ax <= 1.0f) { + return (1.5f * ax - 2.5f) * ax * ax + 1.0f; + } + if (ax < 2.0f) { + return ((-0.5f * ax + 2.5f) * ax - 4.0f) * ax + 2.0f; + } + return 0.0f; +} + +__device__ unsigned char samplePlaneCubic( + const unsigned char* plane, + int pitch, + int width, + int height, + float x, + float y) { + if (width <= 2 || height <= 2) { + return samplePlaneBilinear(plane, pitch, width, height, x, y); + } + + const float clampedX = fminf(static_cast(width - 1), fmaxf(0.0f, x)); + const float clampedY = fminf(static_cast(height - 1), fmaxf(0.0f, y)); + const int baseX = static_cast(floorf(clampedX)); + const int baseY = static_cast(floorf(clampedY)); + float total = 0.0f; + float weightTotal = 0.0f; + + for (int oy = -1; oy <= 2; ++oy) { + const int sy = max(0, min(height - 1, baseY + oy)); + const float wy = cubicWeight(clampedY - static_cast(baseY + oy)); + for (int ox = -1; ox <= 2; ++ox) { + const int sx = max(0, min(width - 1, baseX + ox)); + const float weight = wy * cubicWeight(clampedX - static_cast(baseX + ox)); + total += static_cast(plane[sy * pitch + sx]) * weight; + weightTotal += weight; + } + } + + if (weightTotal > 0.0001f) { + total /= weightTotal; + } + return clampByteDevice(static_cast(total + 0.5f)); +} + +__device__ void sampleNv12UvBilinear( + const unsigned char* src, + int srcPitch, + int srcSurfaceHeight, + int srcWidth, + int srcHeight, + float lumaX, + float lumaY, + unsigned char* outU, + unsigned char* outV) { + const int chromaWidth = max(1, srcWidth / 2); + const int chromaHeight = max(1, srcHeight / 2); + const float chromaX = fminf( + static_cast(chromaWidth - 1), + fmaxf(0.0f, (lumaX - 0.5f) * 0.5f)); + const float chromaY = fminf( + static_cast(chromaHeight - 1), + fmaxf(0.0f, (lumaY - 0.5f) * 0.5f)); + const int x0 = max(0, min(chromaWidth - 1, static_cast(floorf(chromaX)))); + const int y0 = max(0, min(chromaHeight - 1, static_cast(floorf(chromaY)))); + const int x1 = min(chromaWidth - 1, x0 + 1); + const int y1 = min(chromaHeight - 1, y0 + 1); + const float tx = chromaX - static_cast(x0); + const float ty = chromaY - static_cast(y0); + const unsigned char* uvPlane = src + srcPitch * srcSurfaceHeight; + + const int x0Byte = x0 * 2; + const int x1Byte = x1 * 2; + const int y0Offset = y0 * srcPitch; + const int y1Offset = y1 * srcPitch; + const float u00 = static_cast(uvPlane[y0Offset + x0Byte]); + const float u10 = static_cast(uvPlane[y0Offset + x1Byte]); + const float u01 = static_cast(uvPlane[y1Offset + x0Byte]); + const float u11 = static_cast(uvPlane[y1Offset + x1Byte]); + const float v00 = static_cast(uvPlane[y0Offset + x0Byte + 1]); + const float v10 = static_cast(uvPlane[y0Offset + x1Byte + 1]); + const float v01 = static_cast(uvPlane[y1Offset + x0Byte + 1]); + const float v11 = static_cast(uvPlane[y1Offset + x1Byte + 1]); + const float uTop = u00 + (u10 - u00) * tx; + const float uBottom = u01 + (u11 - u01) * tx; + const float vTop = v00 + (v10 - v00) * tx; + const float vBottom = v01 + (v11 - v01) * tx; + *outU = clampByteDevice(static_cast(uTop + (uBottom - uTop) * ty + 0.5f)); + *outV = clampByteDevice(static_cast(vTop + (vBottom - vTop) * ty + 0.5f)); +} + __global__ void overlayContentRectNv12Kernel( const unsigned char* src, int srcPitch, @@ -1096,19 +1263,30 @@ __global__ void overlayContentRectNv12Kernel( const int cropHeight = max(1, min(sourceCropHeight > 0 ? sourceCropHeight : srcHeight, srcHeight - sourceCropY)); const int cropX = max(0, min(sourceCropX, srcWidth - 1)); const int cropY = max(0, min(sourceCropY, srcHeight - 1)); - const int srcX = min(srcWidth - 1, cropX + (localX * cropWidth) / contentWidth); - const int srcY = min(srcHeight - 1, cropY + (localY * cropHeight) / contentHeight); - dst[y * dstPitch + x] = src[srcY * srcPitch + srcX]; + const float srcX = static_cast(cropX) + + mapScaledCoordinate(static_cast(localX), cropWidth, contentWidth); + const float srcY = static_cast(cropY) + + mapScaledCoordinate(static_cast(localY), cropHeight, contentHeight); + dst[y * dstPitch + x] = samplePlaneCubic(src, srcPitch, srcWidth, srcHeight, srcX, srcY); if ((x % 2) == 0 && (y % 2) == 0) { const int localUvX = max(0, min(contentWidth - 1, localX + 1)); const int localUvY = max(0, min(contentHeight - 1, localY + 1)); - const int srcUvX = min(srcWidth - 2, (cropX + ((localUvX * cropWidth) / contentWidth)) & ~1); - const int srcUvY = min((srcHeight / 2) - 1, (cropY + ((localUvY * cropHeight) / contentHeight)) / 2); - const unsigned char* srcUv = src + srcPitch * srcSurfaceHeight + srcUvY * srcPitch + srcUvX; unsigned char* dstUv = dst + dstChromaOffset + (y / 2) * dstPitch + x; - dstUv[0] = srcUv[0]; - dstUv[1] = srcUv[1]; + const float srcUvLumaX = static_cast(cropX) + + mapScaledCoordinate(static_cast(localUvX), cropWidth, contentWidth); + const float srcUvLumaY = static_cast(cropY) + + mapScaledCoordinate(static_cast(localUvY), cropHeight, contentHeight); + sampleNv12UvBilinear( + src, + srcPitch, + srcSurfaceHeight, + srcWidth, + srcHeight, + srcUvLumaX, + srcUvLumaY, + &dstUv[0], + &dstUv[1]); } } @@ -1166,9 +1344,9 @@ __global__ void overlayContentTransformNv12Kernel( fminf(static_cast(contentHeight - 1), fmaxf(0.0f, layoutYf - contentY)); const int cropX = max(0, min(sourceCropX, srcWidth - 1)); const int cropY = max(0, min(sourceCropY, srcHeight - 1)); - const int sx = min(srcWidth - 1, cropX + __float2int_rd(localContentX * srcScaleX)); - const int sy = min(srcHeight - 1, cropY + __float2int_rd(localContentY * srcScaleY)); - dst[y * dstPitch + x] = src[sy * srcPitch + sx]; + const float sx = static_cast(cropX) + (localContentX + 0.5f) * srcScaleX - 0.5f; + const float sy = static_cast(cropY) + (localContentY + 0.5f) * srcScaleY - 0.5f; + dst[y * dstPitch + x] = samplePlaneCubic(src, srcPitch, srcWidth, srcHeight, sx, sy); if ((x % 2) == 0 && (y % 2) == 0 && x + 1 < dstWidth && y + 1 < dstHeight) { const float uvLayoutXf = (static_cast(x + 1) - zoomX) * invZoomScale; @@ -1187,14 +1365,19 @@ __global__ void overlayContentTransformNv12Kernel( fminf(static_cast(contentWidth - 1), fmaxf(0.0f, uvLayoutXf - contentX)); const float uvLocalContentY = fminf(static_cast(contentHeight - 1), fmaxf(0.0f, uvLayoutYf - contentY)); - const int suvX = - min(srcWidth - 2, (cropX + __float2int_rd(uvLocalContentX * srcScaleX)) & ~1); - const int suvY = - min((srcHeight / 2) - 1, (cropY + __float2int_rd(uvLocalContentY * srcScaleY)) / 2); - const unsigned char* srcUv = src + srcPitch * srcSurfaceHeight + suvY * srcPitch + suvX; unsigned char* dstUv = dst + dstChromaOffset + (y / 2) * dstPitch + x; - dstUv[0] = srcUv[0]; - dstUv[1] = srcUv[1]; + const float suvX = static_cast(cropX) + (uvLocalContentX + 0.5f) * srcScaleX - 0.5f; + const float suvY = static_cast(cropY) + (uvLocalContentY + 0.5f) * srcScaleY - 0.5f; + sampleNv12UvBilinear( + src, + srcPitch, + srcSurfaceHeight, + srcWidth, + srcHeight, + suvX, + suvY, + &dstUv[0], + &dstUv[1]); } } } @@ -1536,9 +1719,9 @@ __global__ void compositeStaticNv12Kernel( if (inside) { const float localX = fminf(static_cast(contentWidth - 1), fmaxf(0.0f, layoutXf - contentX)); const float localY = fminf(static_cast(contentHeight - 1), fmaxf(0.0f, layoutYf - contentY)); - const int sx = min(srcWidth - 1, cropX + static_cast((localX * cropWidth) / contentWidth)); - const int sy = min(srcHeight - 1, cropY + static_cast((localY * cropHeight) / contentHeight)); - outY = src[sy * srcPitch + sx]; + const float sx = static_cast(cropX) + mapScaledCoordinate(localX, cropWidth, contentWidth); + const float sy = static_cast(cropY) + mapScaledCoordinate(localY, cropHeight, contentHeight); + outY = samplePlaneCubic(src, srcPitch, srcWidth, srcHeight, sx, sy); } else { const bool shadowInside = shadowIntensityPct > 0 && @@ -1558,10 +1741,10 @@ __global__ void compositeStaticNv12Kernel( if (webcam && isInsideRoundedRect(x, y, webcamX, webcamY, webcamSize, webcamSize, webcamRadius)) { const int localX = max(0, min(webcamSize - 1, x - webcamX)); const int localY = max(0, min(webcamSize - 1, y - webcamY)); - const int sampleX = min(webcamFrameWidth - 1, (localX * webcamFrameWidth) / webcamSize); - const int sampleY = min(webcamFrameHeight - 1, (localY * webcamFrameHeight) / webcamSize); - const int mirroredX = webcamMirror ? webcamFrameWidth - 1 - sampleX : sampleX; - outY = webcam[sampleY * webcamFrameWidth + mirroredX]; + const float sampleX = mapScaledCoordinate(static_cast(localX), webcamFrameWidth, webcamSize); + const float sampleY = mapScaledCoordinate(static_cast(localY), webcamFrameHeight, webcamSize); + const float mirroredX = webcamMirror ? static_cast(webcamFrameWidth - 1) - sampleX : sampleX; + outY = samplePlaneCubic(webcam, webcamFrameWidth, webcamFrameWidth, webcamFrameHeight, mirroredX, sampleY); } unsigned char cursorYValue = 0; unsigned char cursorUValue = 128; @@ -1639,13 +1822,18 @@ __global__ void compositeStaticNv12Kernel( if (uvInside) { const float localX = fminf(static_cast(contentWidth - 1), fmaxf(0.0f, uvLayoutXf - contentX)); const float localY = fminf(static_cast(contentHeight - 1), fmaxf(0.0f, uvLayoutYf - contentY)); - const int suvX = - min(srcWidth - 2, (cropX + static_cast((localX * cropWidth) / contentWidth)) & ~1); - const int suvY = - min((srcHeight / 2) - 1, (cropY + static_cast(localY * cropHeight / contentHeight)) / 2); - const unsigned char* srcUv = src + srcPitch * srcSurfaceHeight + suvY * srcPitch + suvX; - dstUv[0] = srcUv[0]; - dstUv[1] = srcUv[1]; + const float suvX = static_cast(cropX) + mapScaledCoordinate(localX, cropWidth, contentWidth); + const float suvY = static_cast(cropY) + mapScaledCoordinate(localY, cropHeight, contentHeight); + sampleNv12UvBilinear( + src, + srcPitch, + srcSurfaceHeight, + srcWidth, + srcHeight, + suvX, + suvY, + &dstUv[0], + &dstUv[1]); } else { if (background) { const unsigned char* bgUv = background + dstWidth * dstHeight + (y / 2) * dstWidth + x; @@ -1667,15 +1855,19 @@ __global__ void compositeStaticNv12Kernel( webcamRadius)) { const int localX = max(0, min(webcamSize - 1, x + 1 - webcamX)); const int localY = max(0, min(webcamSize - 1, y + 1 - webcamY)); - const int sampleX = min(webcamFrameWidth - 1, (localX * webcamFrameWidth) / webcamSize); - const int sampleY = min(webcamFrameHeight - 1, (localY * webcamFrameHeight) / webcamSize); - const int mirroredX = webcamMirror ? webcamFrameWidth - 1 - sampleX : sampleX; - const int webcamUvX = min(webcamFrameWidth - 2, mirroredX & ~1); - const int webcamUvY = min((webcamFrameHeight / 2) - 1, sampleY / 2); - const unsigned char* webcamUv = - webcam + webcamFrameWidth * webcamFrameHeight + webcamUvY * webcamFrameWidth + webcamUvX; - dstUv[0] = webcamUv[0]; - dstUv[1] = webcamUv[1]; + const float sampleX = mapScaledCoordinate(static_cast(localX), webcamFrameWidth, webcamSize); + const float sampleY = mapScaledCoordinate(static_cast(localY), webcamFrameHeight, webcamSize); + const float mirroredX = webcamMirror ? static_cast(webcamFrameWidth - 1) - sampleX : sampleX; + sampleNv12UvBilinear( + webcam, + webcamFrameWidth, + webcamFrameHeight, + webcamFrameWidth, + webcamFrameHeight, + mirroredX, + sampleY, + &dstUv[0], + &dstUv[1]); } unsigned char cursorUvY = 0; unsigned char cursorUvU = 128; @@ -1770,26 +1962,37 @@ __global__ void overlayWebcamNv12Kernel( if (isInsideRoundedRect(x, y, webcamX, webcamY, webcamSize, webcamSize, webcamRadius)) { const int webcamLocalX = max(0, min(webcamSize - 1, x - webcamX)); const int webcamLocalY = max(0, min(webcamSize - 1, y - webcamY)); - const int sampleX = min(webcamFrameWidth - 1, (webcamLocalX * webcamFrameWidth) / webcamSize); - const int sampleY = min(webcamFrameHeight - 1, (webcamLocalY * webcamFrameHeight) / webcamSize); - const int mirroredX = webcamMirror ? webcamFrameWidth - 1 - sampleX : sampleX; - dst[y * dstPitch + x] = webcam[sampleY * webcamFrameWidth + mirroredX]; + const float sampleX = + mapScaledCoordinate(static_cast(webcamLocalX), webcamFrameWidth, webcamSize); + const float sampleY = + mapScaledCoordinate(static_cast(webcamLocalY), webcamFrameHeight, webcamSize); + const float mirroredX = webcamMirror ? static_cast(webcamFrameWidth - 1) - sampleX : sampleX; + dst[y * dstPitch + x] = + samplePlaneCubic(webcam, webcamFrameWidth, webcamFrameWidth, webcamFrameHeight, mirroredX, sampleY); } if ((x % 2) == 0 && (y % 2) == 0 && x + 1 < dstWidth && y + 1 < dstHeight && isInsideRoundedRect(x + 1, y + 1, webcamX, webcamY, webcamSize, webcamSize, webcamRadius)) { const int uvLocalX = max(0, min(webcamSize - 1, x + 1 - webcamX)); const int uvLocalY = max(0, min(webcamSize - 1, y + 1 - webcamY)); - const int uvSampleX = min(webcamFrameWidth - 1, (uvLocalX * webcamFrameWidth) / webcamSize); - const int uvSampleY = min(webcamFrameHeight - 1, (uvLocalY * webcamFrameHeight) / webcamSize); - const int uvMirroredX = webcamMirror ? webcamFrameWidth - 1 - uvSampleX : uvSampleX; - const int webcamUvX = min(webcamFrameWidth - 2, uvMirroredX & ~1); - const int webcamUvY = min((webcamFrameHeight / 2) - 1, uvSampleY / 2); - const unsigned char* webcamUv = - webcam + webcamFrameWidth * webcamFrameHeight + webcamUvY * webcamFrameWidth + webcamUvX; unsigned char* dstUv = dst + dstChromaOffset + (y / 2) * dstPitch + x; - dstUv[0] = webcamUv[0]; - dstUv[1] = webcamUv[1]; + const float uvSampleX = + mapScaledCoordinate(static_cast(uvLocalX), webcamFrameWidth, webcamSize); + const float uvSampleY = + mapScaledCoordinate(static_cast(uvLocalY), webcamFrameHeight, webcamSize); + const float uvMirroredX = webcamMirror + ? static_cast(webcamFrameWidth - 1) - uvSampleX + : uvSampleX; + sampleNv12UvBilinear( + webcam, + webcamFrameWidth, + webcamFrameHeight, + webcamFrameWidth, + webcamFrameHeight, + uvMirroredX, + uvSampleY, + &dstUv[0], + &dstUv[1]); } }