Yêu cầu về nội dung nghe nhìn SDV

Các từ khoá PHẢI, KHÔNG ĐƯỢC, NÊN và RẤT NÊN trên trang này được diễn giải như mô tả trong RFC 2119.

Hệ thống khách (hình ảnh máy ảo)

Các yêu cầu trong phần này áp dụng cho hệ thống khách.

Bộ nhớ

Hệ thống PHẢI cung cấp tối thiểu 2 GB bộ nhớ cho mỗi VM.

Giao diện nhị phân của ứng dụng

Triển khai thiết bị:

  • PHẢI tương thích với một hoặc nhiều ABI Android NDK đã xác định.
  • PHẢI sử dụng cùng một ABI NDK Android cho tất cả các hình ảnh máy ảo trên cùng một thiết bị.
  • PHẢI tương thích với nguồn (ví dụ: tương thích với tiêu đề) và tương thích với tệp nhị phân (đối với ABI) với từng thư viện bắt buộc trong danh sách sau.
  • PHẢI cung cấp tất cả các thư viện sau đây (cung cấp API gốc) cho các ứng dụng Xe được xác định bằng phần mềm (SDV):

    • libc (Thư viện C)
    • libdl (trình liên kết động)
    • libdrm.so (Thư viện không gian người dùng của Trình quản lý kết xuất trực tiếp)
    • libgbm.so (quản lý vùng đệm chung)
    • libEGL.so (quản lý nền tảng OpenGL gốc)
    • libGLESv1_CM.so (OpenGL ES 1.x)
    • libGLESv2.so (OpenGL ES 2.0)
    • libGLESv3.so (OpenGL ES 3.x)
    • liblog (Ghi nhật ký trên Android)
    • libtinyalsav2.so (ghi âm và phát âm thanh)
    • libvulkan.so (Vulkan)
  • KHÔNG ĐƯỢC thêm hoặc xoá các hàm công khai cho các thư viện gốc trước đó.

  • PHẢI xuất tất cả các biểu tượng hàm OpenGL ES 3.1 và Gói tiện ích Android (như được xác định trong NDK) thông qua thư viện libGLESv3.so. Lưu ý rằng mặc dù tất cả các biểu tượng ĐỀU PHẢI có mặt, OpenGL ES mô tả chi tiết hơn các yêu cầu về thời điểm dự kiến triển khai đầy đủ từng hàm tương ứng.

  • PHẢI xuất các biểu tượng hàm Vulkan 1.1 cốt lõi, cũng như các tiện ích VK_KHR_surface, VK_KHR_swapchain, VK_KHR_maintenance1VK_KHR_get_physical_device_properties2 thông qua thư viện libvulkan.so. Xin lưu ý rằng mặc dù tất cả các biểu tượng ĐỀU PHẢI có mặt, Vulkan mô tả chi tiết hơn các yêu cầu về thời điểm dự kiến triển khai đầy đủ từng hàm tương ứng.

  • NÊN được tạo bằng mã nguồn và tệp tiêu đề có trong Dự án nguồn mở Android ở nguồn trên.

Đồ hoạ

Hệ thống PHẢI sử dụng virtio-gpu cho đồ hoạ được tăng tốc phần cứng. Trình điều khiển phía khách PHẢI sử dụng gfxstream để kết xuất.

Đầu vào

Hệ thống khách PHẢI hỗ trợ các sự kiện đầu vào được chuyển tiếp từ hệ thống máy chủ lưu trữ bằng cách sử dụng virtio-input.

OpenGL ES

Triển khai thiết bị:

  • PHẢI xác định chính xác các phiên bản OpenGL ES được hỗ trợ (1.1, 2.0, 3.0, 3.1, 3.2) thông qua các API gốc.
  • PHẢI hỗ trợ tất cả các API gốc tương ứng cho mọi phiên bản OpenGL ES mà chúng hỗ trợ.
  • PHẢI hỗ trợ cả OpenGL ES 1.1 và 2.0.
  • NÊN HỖ TRỢ OpenGL ES 3.1.
  • NÊN hỗ trợ OpenGL ES 3.2.
  • PHẢI báo cáo bằng cách sử dụng các API được quản lý OpenGL ES và API gốc cho mọi tiện ích OpenGL ES khác mà họ đã triển khai, và ngược lại, KHÔNG ĐƯỢC báo cáo các chuỗi tiện ích mà họ không hỗ trợ.
  • PHẢI hỗ trợ các phần mở rộng sau:
    • EGL_EXT_image_dma_buf_import
    • EGL_EXT_image_dma_buf_import_modifiers
    • EGL_KHR_fence_sync
    • EGL_KHR_image_base
    • EGL_KHR_wait_sync
    • GL_OES_EGL_image

CÁC PHƯƠNG THỨC TRIỂN KHAI THIẾT BỊ NÊN triển khai OpenGL ES bằng thư viện ANGLE với phần phụ trợ Vulkan.

Vulkan

Triển khai thiết bị:

  • NÊN CÓ tính năng hỗ trợ Vulkan 1.3.
  • KHÔNG ĐƯỢC hỗ trợ phiên bản biến thể Vulkan (tức là phần biến thể của phiên bản lõi Vulkan PHẢI bằng 0).
  • PHẢI hỗ trợ các phần mở rộng sau:
    • VK_ANDROID_external_memory_android_hardware_buffer
    • VK_EXT_external_memory_dma_buf
    • VK_EXT_queue_family_foreign
    • VK_KHR_external_memory_fd
    • VK_KHR_external_semaphore_fd

Khả năng tương thích với nội dung đa phương tiện

  • Các hoạt động triển khai thiết bị PHẢI cho phép phát nội dung âm thanh thô có các đặc điểm sau:

    • Định dạng nguồn: PCM tuyến tính, 16 bit, 8 bit, dấu phẩy động
    • Kênh: Đơn âm, âm thanh nổi, cấu hình đa kênh hợp lệ với tối đa 8 kênh
    • Tốc độ lấy mẫu (tính bằng Hz):
      • 8000, 11025, 16000, 22050, 24000, 32000, 44100, 48000 trong các cấu hình kênh được liệt kê trước đó
      • 96000 ở chế độ đơn âm và âm thanh nổi
  • Các hoạt động triển khai thiết bị PHẢI cho phép ghi lại nội dung âm thanh thô. Tối thiểu, quá trình triển khai thiết bị PHẢI hỗ trợ các đặc điểm sau:

    • Định dạng: PCM tuyến tính, 16 bit
    • Tốc độ lấy mẫu: 8000, 11025, 16000, 44100, 48000 Hz
    • Kênh: Đơn âm
  • Các hoạt động triển khai thiết bị PHẢI cho phép ghi lại nội dung âm thanh thô với các đặc điểm sau:

    • Định dạng: PCM tuyến tính, 16 bit và 24 bit
    • Tốc độ lấy mẫu: 8000, 11025, 16000, 22050, 24000, 32000, 44100, 48000 Hz
    • Số kênh: Bằng số lượng micrô trên thiết bị
  • Các hoạt động triển khai thiết bị PHẢI hỗ trợ việc phát và ghi âm thanh thông qua API libtinyalsav2.so, sử dụng thiết bị virtio-sound để truy cập vào phần cứng và PHẢI hỗ trợ API ALSA.

  • Bộ mã hoá và giải mã video PHẢI hỗ trợ ít nhất một định dạng màu YUV420 8:8:8 phẳng hoặc bán phẳng.

  • Bộ giải mã và bộ mã hoá video PHẢI hỗ trợ bộ mã hoá và giải mã H.264 AVC.

  • Các chế độ triển khai thiết bị PHẢI hỗ trợ Cấp độ 3.1 của Cấu hình chính H.264 và Hồ sơ cơ sở. Bạn không bắt buộc phải hỗ trợ tính năng sắp xếp các lát tuỳ ý (ASO), sắp xếp linh hoạt các khối macro (FMO) và các lát dư thừa (RS).

  • Bộ mã hoá video:

    • PHẢI hỗ trợ các hồ sơ mã hoá video ở độ phân giải chuẩn (SD) trong bảng sau.
    • NÊN hỗ trợ các hồ sơ mã hoá video có độ phân giải cao (HD) như được nêu trong bảng sau.

      SD (chất lượng thấp) SD (chất lượng cao) HD 720p HD 1080p
      Độ phân giải video 320 x 240 px 720 x 480 px 1280 x 720 px 1920 x 1080 pixel
      Tốc độ khung hình video 20 khung hình/giây 30 khung hình/giây 30 khung hình/giây 30 khung hình/giây
      Tốc độ bit của video 384 Kb/giây 2 Mb/giây 4 Mb/giây 10 Mb/giây
  • Trình giải mã video:

    • PHẢI hỗ trợ các cấu hình giải mã video HD 720p trong bảng sau.
    • PHẢI hỗ trợ các cấu hình giải mã video HD 1080p trong bảng sau.

      SD (chất lượng thấp) SD (chất lượng cao) HD 720p HD 1080p
      Độ phân giải video 320 x 240 px 720 x 480 px 1280 x 720 px 1920 x 1080 pixel
      Tốc độ khung hình video 30 khung hình/giây 30 khung hình/giây 60 khung hình/giây 30 khung hình/giây
      Tốc độ bit của video 800 Kb/giây 2 Mb/giây 8 Mb/giây 20 Mb/giây
  • Các hoạt động triển khai thiết bị PHẢI hỗ trợ các bộ mã hoá và giải mã nội dung nghe nhìn bằng API Video4Linux.

  • Các hoạt động triển khai thiết bị PHẢI cung cấp quyền truy cập vào bộ giải mã video phần cứng bằng Video4Linux API.

  • Tất cả bộ mã hoá video và hình ảnh tăng tốc phần cứng ĐỀU PHẢI hỗ trợ mã hoá các khung hình từ camera phần cứng. Các chế độ triển khai thiết bị PHẢI cung cấp quyền truy cập phần cứng để mã hoá và giải mã video thông qua virtio-media.

  • Các phương thức triển khai thiết bị PHẢI cung cấp quyền truy cập vào camera quay video bằng Video4Linux API.

Hệ thống máy chủ (trình điều khiển ảo hoá và phần cứng)

Các yêu cầu trong phần này áp dụng cho hệ thống máy chủ và môi trường trình điều khiển ảo hoá.

Ảo hóa

  • Ngoài các thiết bị virtio mà hồ sơ cốt lõi yêu cầu, hệ thống máy chủ lưu trữ PHẢI cung cấp những thiết bị sau:
    • virtio-gpu: Đối với GPU và màn hình ảo
    • virtio-input: Để chuyển tiếp các sự kiện đầu vào (ví dụ: thao tác chạm, bàn phím)
    • virtio-sound: Đối với thiết bị âm thanh ảo
    • virtio-video hoặc virtio-media: Đối với các thiết bị bộ mã hoá và giải mã video ảo

Đầu vào

  • Thiết bị PHẢI hỗ trợ các thiết bị đầu vào và chuyển tiếp các sự kiện đến hệ thống khách bằng cách sử dụng virtio-input. Thiết bị PHẢI hỗ trợ thao tác nhập bằng con trỏ, nút và bộ điều khiển xoay.