2025년 3월 27일부터 AOSP를 빌드하고 기여하려면 aosp-main
대신 android-latest-release
를 사용하는 것이 좋습니다. 자세한 내용은 AOSP 변경사항을 참고하세요.
울트라 HDR
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
Android 14에서는 JPEG_R
이미지 형식을 사용하여 울트라 HDR 압축 이미지 캡처를 지원합니다. 이 형식은 SDR JPEG 이미지와 하위 호환되며 콘텐츠의 HDR 렌더링을 지원합니다.
울트라 HDR 형식 사양에 관한 자세한 내용은 울트라 HDR 이미지 형식 v1.0을 참고하세요.
구현
이 섹션에서는 울트라 HDR 기능을 구현하는 방법을 설명합니다.
참조 구현
AOSP 카메라 프레임워크 및 카메라 서비스에는 참조 울트라 HDR 구현이 포함되어 있습니다.
카메라 프레임워크의 참조 기능 외에도 카메라 HAL 내에서 울트라 HDR을 구현하고 다른 카메라 HAL 출력 스트림과 동일한 방식으로 JPEG_R
출력 지원을 알릴 수 있습니다. 이 시나리오에서 카메라 HAL은 필요한 복구 맵과 울트라 HDR 사양에 정의된 최종 JPEG_R
이미지를 생성해야 합니다.
기기 하드웨어와 소프트웨어 기능에 따라 최종 출력을 최적화하고 조정할 수 있습니다.
구현 옵션
기기 제조업체는 기기 울트라 HDR 지원을 다음 수준으로 결정할 수 있습니다.
- 최소: 이 구성에서 카메라 서비스 복합 스트림 기능을 통한 울트라 HDR 출력은 기본적으로 사용 중지됩니다.
JpegRCompositeStream
참조 구현을 사용 설정하려면 ro.camera.enableCompositeAPI0JpegR
시스템 속성을 true
로 설정하세요. 모든 프로세스와 인코딩이 소프트웨어에서 실행되므로 이 옵션으로 지연 시간이 늘어나고 성능이 저하될 수 있습니다.
- 보통: 이 옵션을 통해
JpegRCompositeStream
구현은 HAL 제공 SDR JPEG를 기본 이미지 및 P010 프레임으로 사용하여 복구 맵을 계산합니다. 이 옵션은 데이터 경로 내의 소프트웨어 처리를 포함하지만 최소 옵션에 비해 상대적으로 미미합니다.
- 광범위: 카메라 HAL이
JPEG_R
출력 스트림을 직접 알리고 지원합니다. 이 옵션을 통해 기기 제조업체는 기기별 최적화를 구현할 수 있고 이미지 품질이 크게 개선될 수 있습니다.
JpegRCompositeStream
구현을 사용 중지하려면 ro.camera.disableJpegR
빌드 속성을 true
로 설정하세요. 이 빌드 속성이 설정되지 않거나 false
로 설정되는 경우 10비트 출력 기능과 동시 10비트 및 8비트 캡처를 지원하는 기기에서 JpegRCompositeStream
을 통해 울트라 HDR이 기본적으로 사용 설정됩니다.
유효성 검사
기기에서 울트라 HDR 기능을 검증하려면 다음 테스트를 실행하세요.
CTS 테스트
ITS 테스트
수동 테스트
수동 테스트를 실행하려면 JPEG_R
이미지 형식을 사용하여 울트라 HDR 구성 및 캡처를 지원하는 울트라 HDR 이미지 캡처 샘플 구현을 사용하세요.
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2025-07-26(UTC)
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-07-26(UTC)"],[],[],null,["# Ultra HDR\n\nAndroid 14 provides support for capturing Ultra HDR\ncompressed images using the\n[`JPEG_R`](https://developer.android.com/reference/kotlin/android/graphics/ImageFormat#jpeg_r)\nimage format. This format is backward compatible with SDR JPEG images and\nsupports HDR rendering of content.\nFor details about the Ultra HDR format specification, see\n[Ultra HDR Image Format v1.0](https://developer.android.com/guide/topics/media/hdr-image-format).\n\nImplementation\n--------------\n\nThis section describes how to implement the Ultra HDR feature.\n\n### Reference implementation\n\nThe AOSP camera framework and camera service includes a reference Ultra HDR\nimplementation.\n\nIn addition to the reference functionality in the camera framework, you can\nimplement Ultra HDR within the camera HAL and advertise support for `JPEG_R`\noutput in the same way as other camera HAL output streams. In this scenario,\nthe camera HAL must generate the necessary recovery map and the final `JPEG_R`\nimage as defined by the\n[Ultra HDR specification](https://developer.android.com/guide/topics/media/hdr-image-format#introduction).\nYou can optimize and tune the final output depending on the device hardware\nand software capabilities.\n\n### Implementation options\n\nDevice manufacturers can decide on the following levels of Ultra HDR support for\ntheir devices:\n\n- **Minimal:** In this configuration, Ultra HDR output through the camera service composite stream functionality is disabled by default. To enable the `JpegRCompositeStream` reference implementation, set the `ro.camera.enableCompositeAPI0JpegR` system property to `true`. Because all processes and encoding is performed in software, this option can result in increased latency and decreased performance.\n- **Moderate:** With this option, the `JpegRCompositeStream` implementation uses a HAL-provided SDR JPEG file as a base image and a P010 frame to calculate a recovery map. This option involves software processing within the data path but is relatively minor compared to the minimal option.\n- **Extensive:** The camera HAL advertises and supports the `JPEG_R` output stream directly. This option lets device manufacturers implement device-specific optimizations and can provide significant image quality improvements.\n\nTo disable the `JpegRCompositeStream` implementation, set the\n`ro.camera.disableJpegR` build property to `true`. If this build property isn't\nset or is set to `false`, Ultra HDR is enabled by default through\n`JpegRCompositeStream` on devices supporting\n[10-bit output capability](https://developer.android.com/reference/android/hardware/camera2/CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT)\nand\n[concurrent 10 and 8-bit capture](https://developer.android.com/reference/android/hardware/camera2/params/DynamicRangeProfiles#getProfileCaptureRequestConstraints(long)).\n\nValidation\n----------\n\nTo validate the Ultra HDR feature on your device, run the following tests.\n\n### CTS tests\n\n- [`ImageReaderTest.java#testImageReaderBuilderWithBLOBAndJpegR`](https://android.googlesource.com/platform/cts/+/refs/heads/android16-release/tests/camera/src/android/hardware/camera2/cts/ImageReaderTest.java#815)\n- [`ImageReaderTest.java#testJpegR`](https://android.googlesource.com/platform/cts/+/refs/heads/android16-release/tests/camera/src/android/hardware/camera2/cts/ImageReaderTest.java#503)\n- [`ImageReaderTest.java#testJpegRDisplayP3`](https://android.googlesource.com/platform/cts/+/refs/heads/android16-release/tests/camera/src/android/hardware/camera2/cts/ImageReaderTest.java#526)\n- [`PerformanceTest.java#testSingleCapture`](https://android.googlesource.com/platform/cts/+/refs/heads/android16-release/tests/camera/src/android/hardware/camera2/cts/PerformanceTest.java#313)\n- [`StillCaptureTest.java# testJpegRCapture`](https://android.googlesource.com/platform/cts/+/refs/heads/android16-release/tests/camera/src/android/hardware/camera2/cts/StillCaptureTest.java#192)\n\n### ITS tests\n\n- [`scene4#test_aspect_ratio_and_crop`](https://android.googlesource.com/platform/cts/+/refs/heads/android16-release/apps/CameraITS/tests/scene4/test_aspect_ratio_and_crop.py)\n\n### Manual tests\n\nTo perform manual tests, use the\n[sample implementation for Ultra HDR image capture](https://github.com/android/platform-samples/pull/56),\nwhich includes support for the configuration and capture of Ultra HDR using the\n`JPEG_R` image format."]]