Share via


암호화 지원

비디오 디코딩에 사용되는 데이터는 다음 구조 및 데이터 형식에 대해 암호화할 수 있습니다.

  • Macroblock 컨트롤 명령 구조

  • 잔차 블록 구조체

  • 비트 스트림 버퍼

호스트 디코더가 암호화를 사용하려면 가속기가 지원하는 암호화 유형을 결정해야 합니다. 가속기에서 지원하는 암호화 유형에 대한 정보는 호스트에 비디오 가속기 형식 GUID로 제공되는 암호화 형식 GUID 목록에 포함되어 있습니다. 비디오 가속기 형식 GUID에 대한 자세한 내용은 Microsoft Windows SDK 설명서를 참조하세요.

참고 모든 DirectX VA 가속기는 암호화를 사용하지 않고 작동할 수 있어야 합니다. 따라서 암호화 없이 작동에 대한 지원을 선언할 필요가 없으며 DXVA_NoEncrypt "암호화 없음" GUID는 비디오 가속기 형식 GUID 목록에 전송되어서는 안 됩니다.

호스트는 적용할 암호화 프로토콜 유형을 선택하고 GUID를 가속기로 전송하여 이 선택을 나타냅니다. 일반적인 암호화 시나리오에서는 암호화된 데이터를 성공적으로 전송하기 전에 두 가지 단계를 더 수행합니다.

  1. 호스트 디코더는 가속기가 데이터를 수신할 권한이 있는지 확인해야 할 수 있습니다. 이 확인은 가속기가 서명된 구조를 호스트에 전달하여 권한이 부여된 공개/프라이빗 키 쌍을 보유하고 있음을 증명하도록 함으로써 제공할 수 있습니다.

  2. 그런 다음 호스트 디코더는 암호화된 콘텐츠 키를 가속기로 보냅니다.

암호화 프로토콜을 초기화하는 정확한 단계는 사용 중인 암호화 유형 및 구현 방법에 따라 달라집니다.

필요한 암호화 초기화 매개 변수를 전달하기 위해 호스트와 가속기 간에 교환되는 각 데이터 집합은 암호화 프로토콜 형식 GUID를 통해 접두사를 지정해야 합니다. 이 GUID는 한 유형의 암호화 데이터를 다른 유형의 데이터와 구분합니다. 이는 하나의 DirectX VA 버퍼에 한 가지 유형의 암호화를 사용할 수 있고 다른 유형의 암호화를 다른 DirectX VA 버퍼에 사용할 수 있기 때문에 필요합니다.

DXVA_EncryptProtocolHeader 구조는 암호화 프로토콜과 사용 중인 암호화 유형을 나타내는 데 사용됩니다.