2025년 3월 27일부터 AOSP를 빌드하고 기여하려면 aosp-main
대신 android-latest-release
를 사용하는 것이 좋습니다. 자세한 내용은 AOSP 변경사항을 참고하세요.
메타데이터 및 컨트롤
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
Android 프레임워크를 통한 RAW 이미지 파일 저장을 지원하려면 센서의 특성에 관한 상당량의 메타데이터가 필요합니다. 여기에는 색상 공간, 렌즈 음영 기능과 같은 정보가 포함됩니다.
이 정보의 대부분은 카메라 하위 시스템의 정적 속성이므로 출력 파이프라인을 구성하거나 요청을 제출하기 전에 쿼리할 수 있습니다. 새로운 카메라 API는 getCameraInfo()
메서드에서 제공하는 정보를 크게 확장하여 이 정보를 앱에 제공합니다.
또한 카메라 하위 시스템을 수동으로 제어하려면 여러 기기에서 현재 상태에 관한 피드백이 필요하고 특정 프레임 캡처에 사용되는 실제 매개변수가 있어야 합니다. 하드웨어에서 실제로 사용하는 컨트롤의 실제 값(노출 시간, 프레임 지속 기간, 감도)이 출력 메타데이터에 포함되어야 합니다. 이렇게 해야 클램핑 또는 라운딩이 발생할 때 앱에서 알 수 있으며, 앱이 이미지 캡처에 사용되는 실제 설정을 보완할 수 있기 때문에 이 내용은 중요합니다.
예를 들어 앱이 요청에서 프레임 지속 기간을 0으로 설정하면 HAL은 요청에서 프레임 지속 기간을 실제 최소 프레임 지속 기간으로 고정해야 하며, 출력 결과 메타데이터에 고정된 최소 지속 기간을 보고해야 합니다.
따라서 앱이 맞춤 3A 루틴을 구현해야 하는 경우 (예: HDR 버스트를 위해 적절히 측정하는 것) 앱은 다음 요청에 필요한 설정을 업데이트하기 위해 수신한 최신 결과 세트를 캡처하는 데 사용하는 설정을 알아야 합니다. 따라서 새 카메라 API는 캡처된 각 프레임에 상당량의 동적 메타데이터를 추가합니다. 여기에는 캡처에 사용되는 요청된 매개변수와 실제 매개변수뿐 아니라 타임스탬프, 통계 생성기 출력과 같은 추가 프레임당 메타데이터가 포함됩니다.
설정별 컨트롤
대부분의 설정은 출력 프레임 스트림에 심각한 끊김 또는 지연을 발생시키지 않으면서 프레임마다 설정을 변경할 수 있습니다.
이상적으로 출력 프레임 속도는 캡처 요청의 프레임 지속 기간 필드에서만 제어해야 하며 처리 블록의 구성에 적용되는 변경사항의 영향을 받으면 안 됩니다. 실제로 일부 특정 컨트롤은 변경 속도가 느립니다. 여기에는 카메라 파이프라인의 출력 해상도, 출력 형식 및 실제 기기에 영향을 미치는 컨트롤(예: 렌즈 초점 거리)이 포함됩니다. 각 컨트롤 세트에 관한 정확한 요구사항은 나중에 자세히 설명합니다.
원시 센서 데이터 지원
새로운 API의 경우 이전 API에서 지원하는 픽셀 형식 외에도 원시 센서 데이터(Bayer RAW) 지원을 위한 요청사항이 추가되며, 두 가지 모두 고급 카메라 앱용으로 RAW 이미지 파일을 지원합니다.
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2025-03-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-03-26(UTC)"],[],[],null,["# Metadata and controls\n\nMetadata support\n----------------\n\nTo support the saving of raw image files by the Android framework, substantial\nmetadata is required about the sensor's characteristics. This includes\ninformation such as color spaces and lens shading functions.\n\nMost of this information is a static property of the camera subsystem and can\ntherefore be queried before configuring any output pipelines or submitting any\nrequests. The new camera APIs greatly expand the information provided by the\n`getCameraInfo()` method to provide this information to the\napp.\n\nIn addition, manual control of the camera subsystem requires feedback from the\nassorted devices about their current state, and the actual parameters used in\ncapturing a given frame. The actual values of the controls (exposure time, frame\nduration, and sensitivity) as actually used by the hardware must be included in\nthe output metadata. This is essential so that apps know when either\nclamping or rounding took place, and so that the app can compensate for\nthe real settings used for image capture.\n\nFor example, if an app sets frame duration to 0 in a request, the HAL\nmust clamp the frame duration to the real minimum frame duration for that\nrequest, and report that clamped minimum duration in the output result metadata.\n\nSo if an app needs to implement a custom 3A routine (for example, to\nproperly meter for an HDR burst), it needs to know the settings used to capture\nthe latest set of results it has received to update the settings for\nthe next request. Therefore, the new camera API adds a substantial amount of\ndynamic metadata to each captured frame. This includes the requested and actual\nparameters used for the capture, as well as additional per-frame metadata such\nas timestamps and statistics generator output.\n\nPer-setting control\n-------------------\n\nFor most settings, the expectation is that they can be changed every frame,\nwithout introducing significant stutter or delay to the output frame stream.\nIdeally, the output frame rate should solely be controlled by the capture\nrequest's frame duration field, and be independent of any changes to processing\nblocks' configuration. In reality, some specific controls are known to be slow\nto change; these include the output resolution and output format of the camera\npipeline, as well as controls that affect physical devices, such as lens focus\ndistance. The exact requirements for each control set are detailed later.\n\nRaw sensor data support\n-----------------------\n\nIn addition to the pixel formats supported by\nthe old API, the new API adds a requirement for support for raw sensor data\n(Bayer RAW), both for advanced camera apps as well as to support raw\nimage files."]]