다음을 통해 공유


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

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

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

RDP는 다양한 기능과 기술을 사용하여 사무실 생산성, 비디오 재생 및 게임과 같은 다양한 시나리오에 적합한 그래픽 데이터를 처리하고 전송합니다. 이러한 기능 및 기술은 다음과 같습니다.

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

    • 하드웨어 가속 인코딩: 개별 GPU를 사용하여 원격 가상 머신에서 CPU에서 GPU로 그래픽 인코딩 처리를 오프로드합니다. GPU는 3D 모델링 또는 고화질 비디오 편집과 같은 그래픽 집약적 애플리케이션에 더 나은 성능을 제공합니다.

    • 소프트웨어 인코딩: 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에 대한 크로마 하위 샘플링 지원

색도 값은 인코딩에 사용되는 색 공간을 결정합니다. 기본적으로 색도 값은 4:2:0으로 설정되어 이미지 품질과 네트워크 대역폭 간에 적절하게 균형을 맞춥니다. AVC/H.264를 사용하는 경우 크로마 값을 4:4:4로 늘려 이미지 품질을 향상시킬 수 있지만 네트워크 대역폭도 증가합니다. GPU 가속을 사용하여 크로마 값을 변경할 필요가 없습니다.

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