Le parole chiave DEVE, NON DEVE, DOVREBBE e FORTEMENTE CONSIGLIATO in questa pagina devono essere interpretate come descritto nella RFC 2119.
Sistema guest (immagine VM)
I requisiti di questa sezione si applicano al sistema guest.
Memoria
Il sistema DEVE fornire un minimo di 2 GB di memoria per VM.
Interfacce binarie dell'applicazione
Implementazioni del dispositivo:
- DEVE essere compatibile con una o più ABI NDK di Android definite.
- DEVE utilizzare la stessa ABI NDK Android per tutte le immagini VM sullo stesso dispositivo.
- DEVE essere compatibile con l'origine (ad esempio, con l'intestazione) e con il formato binario (per l'ABI) con ogni libreria richiesta nel seguente elenco.
DEVE rendere disponibili alle app Software Defined Vehicle (SDV) tutte le seguenti librerie, che forniscono API native:
libc(libreria C)libdl(linker dinamico)libdrm.so(libreria userspace di Direct Rendering Manager)libgbm.so(gestione generica del buffer)libEGL.so(gestione nativa delle superfici OpenGL)libGLESv1_CM.so(OpenGL ES 1.x)libGLESv2.so(OpenGL ES 2.0)libGLESv3.so(OpenGL ES 3.x)liblog(registrazione Android)libtinyalsav2.so(registrazione e riproduzione audio)libvulkan.so(Vulkan)
NON DEVE aggiungere o rimuovere le funzioni pubbliche per le librerie native precedenti.
DEVE esportare tutti i simboli di funzione OpenGL ES 3.1 e Android Extension Pack, come definiti nell'NDK, tramite la libreria libGLESv3.so. Tieni presente che, sebbene TUTTI i simboli DEBBANO essere presenti, OpenGL ES descrive in modo più dettagliato i requisiti per quando è prevista l'implementazione completa di ogni funzione corrispondente.
DEVE esportare i simboli delle funzioni principali di Vulkan 1.1, nonché le estensioni
VK_KHR_surface,VK_KHR_swapchain,VK_KHR_maintenance1eVK_KHR_get_physical_device_properties2tramite la librerialibvulkan.so. Tieni presente che, sebbene TUTTI i simboli DEBBANO essere presenti, Vulkan descrive in modo più dettagliato i requisiti per quando è prevista l'implementazione completa di ogni funzione corrispondente.DEVE essere creato utilizzando il codice sorgente e i file di intestazione disponibili nel progetto Android Open Source upstream.
Grafica
Il sistema DEVE utilizzare virtio-gpu per la grafica con accelerazione hardware. Il driver
lato ospite DEVE utilizzare gfxstream per il rendering.
Input
Il sistema guest DEVE includere il supporto per gli eventi di input inoltrati dal sistema host utilizzando virtio-input.
OpenGL ES
Implementazioni del dispositivo:
- DEVE identificare correttamente le versioni OpenGL ES supportate (1.1, 2.0, 3.0, 3.1, 3.2) tramite le API native.
- DEVE includere il supporto per tutte le API native corrispondenti per ogni versione di OpenGL ES supportata.
- DEVE supportare sia OpenGL ES 1.1 sia 2.0.
- È VIVAMENTE CONSIGLIATO supportare OpenGL ES 3.1.
- DEVE supportare OpenGL ES 3.2.
- DEVONO segnalare utilizzando le API OpenGL ES gestite e le API native qualsiasi altra estensione OpenGL ES che hanno implementato e, viceversa, NON DEVONO segnalare stringhe di estensione che non supportano.
- DEVE supportare le seguenti estensioni:
EGL_EXT_image_dma_buf_importEGL_EXT_image_dma_buf_import_modifiersEGL_KHR_fence_syncEGL_KHR_image_baseEGL_KHR_wait_syncGL_OES_EGL_image
È FORTEMENTE CONSIGLIATO che le implementazioni dei dispositivi implementino OpenGL ES utilizzando la libreria ANGLE con il backend Vulkan.
Vulkan
Implementazioni del dispositivo:
- È FORTEMENTE CONSIGLIATO includere il supporto di Vulkan 1.3.
- NON DEVE supportare una versione variante di Vulkan (ovvero la parte variante della versione core di Vulkan DEVE essere zero).
- DEVE supportare le seguenti estensioni:
VK_ANDROID_external_memory_android_hardware_bufferVK_EXT_external_memory_dma_bufVK_EXT_queue_family_foreignVK_KHR_external_memory_fdVK_KHR_external_semaphore_fd
Compatibilità multimediale
Le implementazioni del dispositivo DEVONO consentire la riproduzione di contenuti audio non elaborati con le seguenti caratteristiche:
- Formati sorgente:PCM lineare, 16 bit, 8 bit, virgola mobile
- Canali: mono, stereo, configurazioni multicanale valide con un massimo di otto canali
- Frequenze di campionamento (in Hz):
- 8000, 11025, 16000, 22050, 24000, 32000, 44100, 48000 nelle configurazioni dei canali elencate in precedenza
- 96000 in mono e stereo
Le implementazioni dei dispositivi DEVONO consentire l'acquisizione di contenuti audio non elaborati. Come minimo, le implementazioni dei dispositivi DEVONO supportare le seguenti caratteristiche:
- Formato:PCM lineare, 16 bit
- Frequenze di campionamento: 8000, 11025, 16000, 44100, 48000 Hz
- Canali: mono
Le implementazioni del dispositivo DEVONO consentire l'acquisizione di contenuti audio non elaborati con le seguenti caratteristiche:
- Formato:PCM lineare, 16 bit e 24 bit
- Frequenze di campionamento: 8000, 11025, 16000, 22050, 24000, 32000, 44100, 48000 Hz
- Canali: tanti canali quanti sono i microfoni sul dispositivo
Le implementazioni del dispositivo DEVONO fornire supporto per la riproduzione e l'acquisizione audio tramite l'API
libtinyalsav2.so, utilizzando il dispositivovirtio-soundper l'accesso hardware e DEVONO supportare l'API ALSA.I codificatori e decodificatori video DEVONO supportare almeno un formato colore YUV420 8:8:8 planare o semiplanare.
I decoder e i codificatori video DEVONO supportare il codec H.264 AVC.
Le implementazioni del dispositivo DEVONO supportare il profilo principale H.264 di livello 3.1 e il profilo di baseline. Il supporto per l'ordinamento arbitrario delle sezioni (ASO), l'ordinamento flessibile dei macroblocchi (FMO) e le sezioni ridondanti (RS) è facoltativo.
Codificatori video:
- DEVE supportare i profili di codifica video in definizione standard (SD) nella tabella seguente.
DEVE supportare i profili di codifica video in alta definizione (HD) come indicato nella tabella seguente.
SD (bassa qualità) SD (alta qualità) HD 720p HD 1080p Risoluzione video 320 x 240 px 720 x 480 px 1280 x 720 px 1920 x 1080 px Frequenza fotogrammi video 20 fps 30 fps 30 fps 30 fps Velocità in bit video 384 kbps 2 Mbps 4 Mbps 10 Mbps
Decoder video:
- DEVE supportare i profili di decodifica video HD 720p nella tabella seguente.
DEVE supportare i profili di decodifica video HD 1080p nella tabella seguente.
SD (bassa qualità) SD (alta qualità) HD 720p HD 1080p Risoluzione video 320 x 240 px 720 x 480 px 1280 x 720 px 1920 x 1080 px Frequenza fotogrammi video 30 fps 30 fps 60 fps 30 fps Velocità in bit video 800 kbps 2 Mbps 8 Mbps 20 Mbps
Le implementazioni dei dispositivi DEVONO fornire supporto per i codec multimediali utilizzando l'API Video4Linux.
Le implementazioni del dispositivo DEVONO fornire l'accesso a un decodificatore video hardware utilizzando l'API Video4Linux.
Tutti i codificatori video e immagini con accelerazione hardware DEVONO supportare la codifica dei frame delle videocamere hardware. Le implementazioni dei dispositivi DEVONO fornire l'accesso hardware per la codifica e la decodifica video tramite
virtio-media.Le implementazioni del dispositivo DEVONO fornire l'accesso a una videocamera utilizzando l'API Video4Linux.
Sistema host (hypervisor e hardware)
I requisiti di questa sezione si applicano al sistema host e all'ambiente dell'hypervisor.
Virtualizzazione
- Oltre ai dispositivi
virtiorichiesti dal profilo di base, il sistema host DEVE fornire quanto segue:virtio-gpu: Per GPU virtuale e displayvirtio-input: Per l'inoltro di eventi di input (ad esempio, tocco, tastiera)virtio-sound: per i dispositivi audio virtualivirtio-videoovirtio-media: per i dispositivi codec video virtuali
Input
- Il dispositivo DEVE supportare i dispositivi di input e inoltrare gli eventi ai sistemi guest
utilizzando
virtio-input. Il dispositivo DEVE supportare gli input di puntatore, pulsante e controller rotativo.