1. Libargus는 이미징 애플리케이션에 사용되는 멀티미디어 API의 일부입니다.
2. Argus sample
  - jetpack_downloads의 Tegra Multimedia API 패키지에서 libargus를 찾을 수 있습니다.
 
  - 빌드방법
     1) Tegra Multimedia API 패키지를 Xavier 파일 시스템에 복사합니다.
 
     2) 다음 명령어를 통해 패키지를 설치합니다.
       $ sudo apt-get install build-essential pkg-config libx11-dev libgtk-3-dev libjpeg-dev libegl1-mesa-dev libgles2-mesa-dev libgstreamer1.0-dev
 

     3) Argus를 빌드합니다.

        

        cd tegra_multimedia_api/argus/
        mkdir build
        cd build
        cmake ..
        make

 

3. 샘플 설명

  

    00_video_decode   
    로컬 파일에서 H.264 / H.265 / VP9 비디오를 디코딩 한 다음 파일로 저장하거나 표시합니다.

    01_video_encode   
    로컬 파일에서 비디오를 디코딩 한 다음 H.264 / H.265 비디오 파일로 인코딩합니다.

    02_video_dec_cuda   
    로컬 파일에서 H.264 / H.265 비디오를 디코딩 한 다음 CUDA와 YUV 버퍼를 공유하여 왼쪽 모서리에 블랙 박스를 그립니다.

    03_video_cuda_enc   
    CUDA를 사용하여 YUV 버퍼에 블랙 박스를 그린 다음이를 비디오 인코더로 공급하여 H.264 / H.265 비디오 파일을 생성합니다.

    04_video_dec_trt   
    간단한 TensorRT 호출을 사용하여 경계 상자 정보를 파일에 저장합니다.

    05_jpeg_encode   
    libjpeg-8b API를 사용하여 소프트웨어 할당 버퍼에서 JPEG 이미지를 인코딩합니다.

    06_jpeg_decode   
    libjpeg-8b API를 사용하여 소프트웨어 할당 버퍼에서 JPEG 이미지를 디코딩합니다.

    07_video_convert   
    V4L2 API를 사용하여 비디오 형식 변환 및 비디오 스케일링을 수행합니다.

    08_video_dec_drm   
    NVIDIA® Tegra® Direct Rendering Manager (DRM)를 사용하여 비디오 스트림 또는 UI를 렌더링합니다.

    09_camera_jpeg_capture   
    Libargus API를 동시에 사용하여 카메라 스트림을 미리보고 libjpeg-8b API를 사용하여 JPEG 이미지를 인코딩합니다.

    10_camera_recording   
    Libargus API에서 실시간 카메라 스트림을 가져 와서이를 비디오 인코더에 공급하여 H.264 / H.265 비디오 파일을 생성합니다.

    12_camera_v4l2_cuda   
    V4L2 카메라에서 이미지를 캡처하고 CUDA 엔진과 스트림을 공유하여 왼쪽 상단 모서리에 블랙 박스를 그립니다.

    13_multi_camera   
    여러 대의 카메라를 캡처하여 하나의 프레임으로 합성합니다.

    Backend
    온칩 디코더를 사용한 디코딩 프로세스, 온칩 스칼라를 사용한 비디오 스케일링 및 GPU 컴퓨팅을 통해 4 개의 동시 비디오 스트림에 대한 지능형 비디오 분석을 수행합니다.

    Frontend   
    카메라에서 직접 오는 4 가지 다른 해상도의 비디오 캡처에 대해 독립적인 처리를 수행합니다.
 
    v4l2cuda (capture-cuda)   
    CUDA 형식 변환으로 V4L2 이미지 캡처를 사용합니다.

+ Recent posts