Android 스크린샷의 HDR

HDR (High Dynamic Range) 동영상이 도입된 이후 스트리밍 서비스는 전체 화면 환경에 중점을 두고 HDR 동영상 스트리밍을 시작했습니다. 최근 소셜 미디어 앱에서 HDR 동영상 및 Ultra HDR 지원을 출시하여 다양한 앱에서 HDR 채택에 대한 관심이 증가하고 있음을 보여줍니다.

HDR을 위한 Android 지원

다음은 지난 몇 년간 Android에서 HDR 기술을 지원한 주요 기록입니다.

Android 7

  • HDR 동영상 디코딩 및 디스플레이에 대한 초기 지원
  • HDR 기능의 지속적인 개선

Android 13

  • HDR 동영상 캡처, 인코딩, 디스플레이를 위한 엔드 투 엔드 지원
  • SDR과 HDR 간에 표시 가능한 다양한 휘도 범위를 정의하는 SDR 및 HDR 혼합 구성을 도입했습니다.

Android 14

HDR을 사용한 스크린샷 지원도 지난 몇 년 동안 발전했으며 여러 번 변경되었습니다.

HDR 스크린샷 기능 개선

이 섹션에서는 최근 Android 업데이트에서 HDR 스크린샷 기능의 진행 상황을 추적합니다.

Android 9

Android의 그래픽 컴포저인 SurfaceFlinger에 HDR 동영상 지원이 도입되었습니다. HDR 동영상 및 스크린샷의 GPU 렌더링은 복잡한 다항식 색조 매퍼로 지원됩니다. 이 색조 매핑 곡선은 디스플레이 색조 매퍼와 항상 일치하지 않으므로 스크린샷은 화면 콘텐츠와 다릅니다.

Android 13

톤 매핑 플러그인이 SurfaceFlinger의 GPU 렌더링 블록에 추가되어 OEM이 디스플레이의 톤 매핑 곡선에 맞는 GPU 셰이더를 제공할 수 있습니다. 스크린샷은 화면에 표시되는 내용과 거의 일치하지만 다음과 같은 차이점이 있습니다.

  • 스크린샷은 SDR 형식으로 유지됩니다. 따라서 HDR 장면과 함께 보면 스크린샷 내 HDR 영역이 더 어둡게 보입니다.
  • SDR 휘도가 관리되지 않아 스크린샷 내 SDR 콘텐츠가 HDR 콘텐츠처럼 밝게 표시됩니다.

즉, 스크린샷으로 캡처된 HDR 동영상은 SDR 동영상으로 변환됩니다.

Android 14

울트라 HDR은 스크린샷을 찍는 데 상당한 어려움을 야기합니다. 동영상과 달리 이미지는 일반적으로 UI 프레임버퍼 내에서 렌더링되며, 이는 두 가지 주요 의미를 갖습니다.

  • 이미지에 주변 UI와 다른 이미지 처리(예: 색조 매핑)를 적용할 수 없습니다.
  • 앱은 UI를 렌더링할 때 소스 기반 색조 매핑을 담당합니다.

이 문제를 완화하기 위해 다음과 같은 세 가지 스크린샷 구현이 가능합니다.

  • 울트라 HDR 이미지의 HDR 세부정보를 보존하여 스크린샷에서 앱 UI가 어두워집니다.
  • 앱 UI 세부정보를 보존하여 울트라 HDR 이미지가 잘립니다.
  • HDR 하이라이트를 자르면서 앱 UI를 밝게 하여 타협합니다.

Android 14는 앱 UI를 밝게 하고 HDR 하이라이트를 자르는 세 번째 접근 방식을 구현합니다.

Android 15-QPR1

SurfaceFlinger에는 스크린샷을 위한 로컬 톤 매핑 알고리즘이 포함되어 있습니다. 이 프로세스에는 다음이 포함됩니다.

  • 입력 이미지를 더 작은 이미지로 분할합니다.
  • 각 이미지의 최대 밝기를 계산하고 각 섹션 내에서 낮은 밝기 값을 삭제합니다.
  • 흐리게 처리 및 리샘플링을 통해 계산된 밝기를 보간합니다.
  • 보간된 밝기 값을 기반으로 매개변수가 지정된 Reinhard 색조 매퍼를 입력 이미지에 적용합니다.

이 알고리즘은 다음 예와 같이 Android 14와 Android 15-QPR1 간에 스크린샷이 크게 개선되었음을 보여줍니다.

  • 예 1은 울트라 HDR이 포함된 Chrome 페이지 위에 겹쳐진 HDR 동영상의 스크린샷입니다. UI 색상은 새 구현에서 대부분 보존되며 이미지가 더 이상 잘리지 않습니다.

    Android 14 Android 15-QPR1
    Android 14의 예 1 Android 15qpr의 예 1

    그림 1. 예 1의 Android 14와 Android 15-QPR1 비교

  • 예 2는 설정 위에 겹쳐진 HDR 동영상의 스크린샷과 후속 스크린샷입니다. Android 14에서는 스크린샷 색상이 점점 더 어두워집니다. Android 15-QPR1에서는 톤 매퍼가 UI 색상을 올바르게 복제하고 보존합니다.

    Android 14 Android 15-QPR1
    Android 14의 예 2 Android 15qpr의 예 2

    그림 2. 예 2의 Android 14와 Android 15-QPR1 비교