Apple Video Decode 드라이버, 리눅스 커널 업스트림 검토용 제출
요약
Sofus Forstreuter가 Apple Video Decoder(AVD) 드라이버의 14개 패치를 리눅스 커널에 제출하여 검토를 받고 있습니다. 이 오픈 소스 드라이버는 M1, M2, M3 Mac에서 H.264, H.265, VP9 및 AV1 하드웨어 비디오 디코딩을 가능하게 합니다. 이 드라이버는 V4L2 API를 구현하며, 향후 SoC 모델에서도 확장될 예정입니다.
핵심 포인트
- M1/M2/M3 Mac에서 AVD 하드웨어 디코딩 지원
- H.264, H.265, VP9 및 AV1 코덱 지원
- 리눅스 커널 업스트림 검토를 통해 도입 추진 중
- Cortex-M3 코프로세서가 IRQ 처리의 핵심 역할 수행
Apple Video Decode 드라이버, 리눅스 커널 업스트림 검토용 제출

Sofus Forstreuter가 오늘 14개의 패치를 리눅스 커널 메일링 리스트에 게시하여 Apple Video Decoder를 위한 AVD 드라이버 도입을 검토받게 했습니다. 이 리버스 엔지니어링된 오픈 소스 드라이버는 Apple M1, M2, M3 Mac에서 하드웨어 비디오 디코딩을 작동시킵니다. Apple Video Decoder는 H.264, H.265, VP9를 지원하며, Apple M3 및 그 이후 모델에서는 AV1도 지원합니다.
향후 AVD Linux 드라이버가 M4, M5, M6, Neo SoC에서도 작동하도록 확장될 것으로 예상되며, 새로운 하드웨어를 지원하기 위한 펌웨어 개발 작업이 이미 진행 중입니다. Asahi Linux는 이 저장소를 통해 필요한 AVD 펌웨어를 호스팅하고 있습니다.
이 AVD Linux 드라이버는 리버스 엔지니어링 작업을 포함하여 수년간 준비되어 왔습니다. 이 드라이버는 Video 4 Linux 2 (V4L2) M2M stateless decoder API를 구현합니다.
Apple Video Decoder의 하드웨어 설계에 대해 Sofus는 패치 시리즈 커버 레터에서 다음과 같이 언급했습니다:
"AVD는 비디오 디코더이자 Apple Silicon SoC상의 IP 블록으로서 다소 독특합니다. 일반적인 '각 파라미터마다 하나의 레지스터'를 따르기보다는, AVD는 단일 레지스터를 통해 프로그래밍됩니다. 이는 쓰기 순서가 중요하다는 것을 의미하지만, 하드웨어가 처리할 수 있는 속도보다 빠르게 쓰지 않도록 보장하는 것도 중요합니다. 이 문제를 해결하기 위해 드라이버는 '명령어(instructions)'를 '세그먼트(segments)' 목록에 작성합니다. 그리고 공유 함수가 이를 하드웨어에 제출하면서, 매번 하드웨어가 뒤처지지 않도록 기다리는 작업을 수행합니다."
이 블록에는 부호 없는 코드를 수락하는 Cortex-M3 코프로세서도 포함됩니다. CM3는 필수는 아니지만, 디코드 상태 IRQ를 얻을 유일한 방법입니다. 현재 CM3는 디코드 가능한 설정만 처리하고 모든 IRQ를 AP로 전달합니다 [1]. 미래에는 명령어 제출까지 처리하도록 확장될 것이며, 이는 전력 소비 감소를 가져올 가능성이 높고, 초기 테스트에서는 약간 더 빠른 디코드 시간까지 시사합니다.
AVD 패치는 이제 미디어 서브시스템 트리를 통해 향후 커널 버전에 포함될 수 있도록 Linux 커널 메일링 리스트에서 검토 중입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Phoronix의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기