다음을 통해 공유


원격 데스크톱 프로토콜을 통한 그래픽 인코딩

원격 세션의 그래픽 데이터는 RDP(원격 데스크톱 프로토콜)를 통해 로컬 디바이스로 전송됩니다. 이 프로세스에는 로컬 디바이스로 보내기 전에 원격 가상 머신에서 그래픽 데이터를 인코딩하는 작업이 포함됩니다. 각 프레임은 콘텐츠에 따라 처리되어 이미지 프로세서, 분류자 및 코덱을 통과한 후 RDP의 그래픽 전송을 사용하여 로컬 디바이스에 전달됩니다.

그래픽 데이터를 인코딩하고 전송하는 목적은 디바이스를 로컬로 사용하는 것과 동일한 환경을 통해 최적의 성능과 품질을 제공하는 것입니다. 이 프로세스는 사용자가 원격으로 작업할 때 고품질 환경을 기대하는 Azure Virtual Desktop, Windows 365 클라우드 PC 및 Microsoft Dev Box를 사용할 때 중요합니다.

RDP는 다양한 기능과 기술을 사용하여 사무실 생산성, 비디오 제작, 디자인 및 비디오 재생과 같은 광범위한 시나리오에 적합한 그래픽 데이터를 처리하고 전송합니다. 이러한 기능 및 기술에는 다음이 포함됩니다.

  • 하드웨어 및 소프트웨어 기반 인코딩: CPU 또는 GPU를 사용하여 그래픽 데이터를 인코딩합니다.

    • 하드웨어 가속 인코딩: CPU에서 GPU로 그래픽 인코딩의 처리를 캡탭 가능한 GPU가 장착된 원격 가상 머신의 GPU로 오프로드합니다. GPU는 3D 모델링 또는 고화질 비디오 편집과 같은 그래픽 집약적 애플리케이션에 더 나은 성능을 제공합니다. 호환되는 GPU에는 RDP가 세션 콘텐츠를 인코딩하는 데 활용할 수 있는 특수 비디오 인코딩 엔진도 포함됩니다.

    • 소프트웨어 인코딩: CPU를 사용하여 저렴한 비용으로 그래픽 데이터를 인코딩합니다. 소프트웨어 인코딩은 개별 GPU 없이 원격 가상 머신에서 사용되는 기본 인코딩 프로필입니다.

  • 혼합 모드: 다양한 코덱을 사용하여 텍스트, 이미지 및 비디오 인코딩을 구분하여 검색된 각 콘텐츠 유형에 대해 최상의 품질과 최저 인코딩 비용을 제공합니다. 혼합 모드는 소프트웨어 인코딩에서만 사용할 수 있습니다.

  • 적응형 그래픽: 사용 가능한 대역폭 및 화면 내용에 따라 인코딩 품질을 조정합니다.

  • 전체 화면 비디오 인코딩: 이미지/비디오 콘텐츠가 높은 시나리오에서 더 높은 프레임 속도와 더 나은 사용자 환경을 제공합니다.

  • 델타 검색 및 캐싱: 전송해야 하는 데이터의 양을 줄입니다.

  • 여러 코덱 지원: 로컬 디바이스에서 하드웨어 디코더를 사용합니다. 코덱에는 H.264라고도 하는 AVC(Advanced Video Coding) 비디오 코덱과 H.265라고도 하는 HEVC(고효율 비디오 코딩) 비디오 코덱이 포함됩니다. HEVC/H.265 지원에는 호환되는 GPU 지원 원격 가상 머신이 필요합니다.

  • 4:2:0 및 4:4:4 크로마 하위 샘플링: 이미지 품질과 대역폭 사용 간의 균형을 제공합니다.

원격 세션, 로컬 디바이스 및 네트워크의 사용 가능한 리소스에 따라 이러한 기능과 기술의 조합을 사용하여 제공하려는 사용자 환경을 제공할 수 있습니다.

이 문서에서는 이러한 기능 및 기술 중 일부를 사용하여 RDP를 통해 그래픽 데이터를 인코딩하고 전달하는 프로세스를 설명합니다.

가능한 경우 멀티미디어 리디렉션을 사용하여 비디오 재생을 로컬 디바이스로 리디렉션하는 것이 좋습니다. 멀티미디어 리디렉션은 비디오 데이터의 비트스트림을 화면의 올바른 위치에 디코딩하고 렌더링하는 로컬 디바이스로 전송하여 비디오 재생을 위한 더 나은 사용자 환경을 제공합니다. 또한 이 메서드는 인코딩 구성에 관계없이 원격 가상 머신의 처리 비용을 낮춥니다. 자세한 내용은 원격 세션에서 비디오 재생 및 통화에 대한 멀티미디어 리디렉션을 참조하세요.

혼합 모드

기본적으로 그래픽 데이터는 콘텐츠에 따라 구분됩니다. 텍스트, 이미지 및 비디오는 소프트웨어 인코딩만 사용할 때 다양한 콘텐츠 형식에서 최적의 인코딩 성능을 달성하기 위해 코덱의 혼합을 사용하여 인코딩됩니다. 이 프로세스를 혼합 모드라고 합니다.

평균적으로 원격 세션에 대한 그래픽 데이터의 약 80%가 텍스트입니다. 가장 낮은 인코딩 비용과 최상의 텍스트 품질을 제공하기 위해 RDP는 텍스트에 최적화된 사용자 지정 코덱을 사용합니다. 이미지 콘텐츠를 효과적으로 인코딩하는 것이 더 어렵기 때문에 사용 가능한 비트 전송률에 잘 적응하는 코덱을 사용하는 것이 중요합니다.

나머지 콘텐츠는 이미지 및 비디오로 구분됩니다.

  • 이미지는 로컬 디바이스의 기능에 따라 AVC/H.264 또는 RemoteFX 그래픽으로 인코딩된 소프트웨어입니다. 검색된 이미지 콘텐츠의 기본 인코딩은 세션 엔드포인트 구성에서 지원되는 경우 AVC/H.264를 사용합니다.

  • 비디오는 AVC/H.264로 인코딩된 소프트웨어입니다.

AVC/H.264는 이미지에 대한 압축 비율이 양호하고, 점진적 인코딩이 가능하며, 비트 전송률에 따라 품질을 조정할 수 있는 널리 지원되는 코덱입니다. 최신 디바이스에서 널리 지원되는 로컬 디바이스의 하드웨어 디코더에 의존합니다. 로컬 디바이스에서 하드웨어 디코더를 사용하면 로컬 디바이스의 CPU 사용량이 줄어들고 사용자 환경이 향상됩니다. 디바이스 제조업체에 문의하여 AVC/H.264 하드웨어 디코딩을 지원하는지 확인합니다.

다음 다이어그램에서는 소프트웨어 인코딩 시나리오에서 혼합 모드를 사용하여 RDP를 통해 그래픽 데이터를 인코딩하고 제공하는 프로세스를 보여 줍니다.

혼합 모드를 사용하여 RDP를 통해 그래픽 데이터를 인코딩하고 전달하는 프로세스를 보여 주는 다이어그램

이 프로세스는 다음과 같이 설명됩니다.

  1. 프레임 비트맵은 비디오가 포함되어 있는지 여부를 감지하여 먼저 처리됩니다. 비디오가 포함된 경우 프레임은 비디오 코덱으로 전송됩니다. 이 코덱은 소프트웨어 기반 시나리오에서 AVC/H.264로 인코딩된 다음 프레임이 그래픽 채널로 전달됩니다.

  2. 프레임에 비디오가 포함되지 않은 경우 이미지 프로세서는 델타 변경 내용이 있는지, 동작이 감지되었는지 또는 캐시에서 콘텐츠를 사용할 수 있는지 여부를 결정합니다. 콘텐츠가 특정 조건과 일치하면 프레임이 그래픽 채널로 전달됩니다.

  3. 프레임에 추가 처리가 필요한 경우 이미지 분류자는 텍스트 또는 이미지가 포함되어 있는지 여부를 결정합니다.

  4. 텍스트 및 이미지는 다양한 코덱을 사용하여 인코딩되어 각 유형의 콘텐츠에 대해 최상의 품질과 가장 낮은 인코딩 비용을 제공합니다. 인코딩되면 프레임이 그래픽 채널로 전달됩니다.

혼합 모드의 텍스트 및 이미지에 두 개의 별도 코덱을 사용하는 대신 전체 화면 비디오 인코딩을 사용하도록 설정하여 AVC/H.264 비디오 코덱을 사용하여 모든 화면 콘텐츠를 처리할 수 있습니다.

전체 화면 비디오 인코딩

전체 화면 비디오 인코딩은 화면 콘텐츠가 주로 이미지 기반이며 혼합 모드의 대안으로 사용되는 시나리오에 유용합니다. 전체 화면 비디오 인코딩은 AVC/H.264 또는 HEVC/H.265를 사용하여 모든 그래픽 데이터를 처리합니다. 결과적으로 화면 콘텐츠가 주로 텍스트 기반일 때 혼합 모드 인코딩보다 성능이 더 나쁩니다.

전체 화면 비디오 프로필은 더 높은 프레임 속도와 더 나은 사용자 환경을 제공하지만 원격 가상 머신과 로컬 디바이스 모두에서 더 많은 네트워크 대역폭과 리소스를 사용합니다. 3D 모델링, CAD/CAM 또는 비디오 재생 및 편집과 같은 애플리케이션의 이점을 누릴 수 있습니다.

HEVC/H.265 및 AVC/H.264 하드웨어 가속을 모두 사용하도록 설정하지만 로컬 디바이스에서 HEVC/H.265를 사용할 수 없는 경우 AVC/H.264가 대신 사용됩니다. HEVC/H.265는 AVC/H.264에 비해 동일한 비디오 품질 또는 향상된 품질에서 동일한 비트 전송률로 25-50%의 데이터 압축을 허용합니다.

GPU 가속 없이도 AVC/H.264로 전체 화면 비디오 인코딩을 사용하도록 설정할 수 있지만 HEVC/H.265에는 호환되는 GPU 지원 원격 가상 머신이 필요합니다.

자세한 내용은 Azure Virtual Desktop에 GPU 가속 사용을 참조하세요.

하드웨어 GPU 가속

Azure Virtual Desktop, Windows 365 클라우드 PC 및 Microsoft Dev Box는 RDP(원격 데스크톱 프로토콜)를 사용하여 향상된 앱 성능 및 확장성을 위해 렌더링 및 인코딩에서 GPU(그래픽 처리 장치) 가속을 지원합니다. GPU 가속은 그래픽 디자이너, 비디오 편집기, 3D 모델러, 데이터 분석가 또는 시각화 전문가가 사용하는 것과 같은 그래픽 집약적 애플리케이션에 매우 중요합니다.

GPU 가속에는 사용자 환경을 개선하기 위해 함께 작동하는 두 가지 구성 요소가 있습니다.

  • GPU 가속 애플리케이션 렌더링: GPU를 사용하여 원격 세션에서 그래픽을 렌더링합니다.

  • GPU 가속 프레임 인코딩: RDP는 로컬 디바이스로 전송하기 위해 렌더링된 모든 그래픽을 인코딩합니다. 화면의 일부가 자주 업데이트되면 AVC/H.264로 인코딩됩니다.

워크로드의 화면 콘텐츠가 대부분 이미지 기반인 경우 전체 화면 비디오 인코딩을 사용하도록 설정하여 모든 화면 콘텐츠를 처리하여 더 높은 프레임 속도와 더 나은 사용자 환경을 제공할 수도 있습니다.

자세한 내용은 GPU 가속 사용을 참조하세요.

4:2:0 및 4:4:4에 대한 크로마 하위 샘플링 지원

chroma 값은 인코딩에 사용되는 색 공간을 결정합니다. 기본적으로 chroma 값은 4:2:0으로 설정되므로 이미지 품질과 네트워크 대역폭 간에 적절한 균형을 제공합니다. 이미지 품질을 개선하기 위해 AVC/H.264 전체 화면 인코딩을 사용하도록 설정하고 그룹 정책을 통해 이미지 품질을 높음으로 설정하여 크로마 값을 4:4:4로 늘릴 수 있습니다. GPU 가속을 사용하여 크로마 값을 변경할 필요는 없습니다. 그러나 4:4:4 chroma 값은 4:2:0을 사용하여 동일한 프레임에 대해 더 많은 대역폭을 사용합니다.

자세한 내용은 AVC(Advanced Video Coding) 비디오 코덱을 사용하여 chroma 값을 4:4:4로 늘리기를 참조하세요.