Capture Speed

애플리케이션에서 중요한 요소 중 하나는 속도입니다. 애플리케이션의 작동 속도를 추정하려면 각 구성 요소에 걸리는 시간을 알아야 합니다. Zivid에 필요한 시간을 추정하는 데 중요한 두 가지 측정 기준은 다음과 같습니다.

CaptureFunctionReturnTime

capture API를 실행하는 데 걸리는 시간입니다. API가 반환되면 카메라의 FOV를 차단하거나 카메라를 이동해도 안전합니다. Zivid Studio 에서 CaptureFunctionReturnTime은 Acquisition Time으로 표시됩니다.

CaptureTime

capture API를 호출한 후부터 GPU에서 포인트 클라우드를 사용할 수 있을 때까지 걸리는 시간입니다. GPU 메모리에서 시스템 메모리로 데이터를 복사하는 시간은 포함되지 않습니다.

CopyTime

This is the time it takes to copy a specific point cloud data type from GPU memory to system memory. It is measured for each data type individually, so that you can estimate the cost of only copying what your application needs.

캡처 프로세스는 Point Cloud Capture Process 에서 더 자세히 설명되어 있습니다.

Zivid는 다양한 하드웨어, high-end or low-end 에서 모든 프리셋을 벤치마크합니다. 이러한 벤치마크는 시간이 지남에 따라 변동될 수 있으며, 대부분의 경우 최신 SDK 버전으로 전환됨에 따라 개선됩니다. 관련 수치를 확인하려면 사용 중인 SDK 버전에 해당하는 이 문서 버전을 선택하세요.

Zivid Studio 와 SDK를 통해 획득 및 캡처 시간을 확인할 수 있습니다.

소스로 이동

소스

const auto frame = camera.capture2D3D(settings);
const auto frameInfo = frame.info();
std::cout << "Acquisition time:" << std::endl;
std::cout << std::chrono::duration_cast<std::chrono::milliseconds>(
                 frameInfo.metrics().acquisitionTime().value())
                 .count()
          << " ms" << std::endl;
std::cout << "Capture time:" << std::endl;
std::cout
    << std::chrono::duration_cast<std::chrono::milliseconds>(frameInfo.metrics().captureTime().value()).count()
    << " ms" << std::endl;
소스로 이동

소스

using (var frame = camera.Capture2D3D(settings))
{
    var frameInfo = frame.Info;
    Console.WriteLine("Acquisition time:");
    Console.WriteLine(frameInfo.Metrics.AcquisitionTime.Milliseconds + " ms");
    Console.WriteLine("Capture time:");
    Console.WriteLine(frameInfo.Metrics.CaptureTime.Milliseconds + " ms");
소스로 이동

소스

frame = camera.capture_2d_3d(settings)
frame_info = frame.info
print("Acquisition time:")
print(f"{frame_info.metrics.acquisition_time.total_seconds() * 1000:.0f} ms")
print("Capture time:")
print(f"{frame_info.metrics.capture_time.total_seconds() * 1000:.0f} ms")

C++ 샘플 ZividBenchmark.cpp 를 실행하여 새로운 하드웨어에서 직접 벤치마킹할 수도 있습니다.

Copy Speed

After capture, the point cloud resides on the GPU. Copying data from GPU memory to system (CPU) memory takes time that must be accounted for in throughput-sensitive applications.

PointXYZ

3D position in millimeters (X, Y, Z). 12 bytes per pixel. Use when you need 3D coordinates only.

PointXYZW

3D position plus a homogeneous W coordinate (X, Y, Z, W). 16 bytes per pixel. W is padded to align data for efficient GPU memory access.

ColorRGBA

Color per pixel (red, green, blue, alpha). 4 bytes per pixel.

SNR

Signal-to-Noise Ratio per pixel. 4 bytes per pixel. Indicates depth measurement confidence: higher SNR means lower noise. See SNR Value.

Combinations (e.g. PointXYZ+ColorRGBA+SNR)

Multiple data types copied in a single SDK call. More efficient than separate calls when your application needs more than one type.