Độ trễ là một thước đo hiệu suất hệ thống quan trọng. Mặc dù tồn tại nhiều loại chỉ số độ trễ âm thanh , một chỉ số hữu ích và được hiểu rõ là độ trễ khứ hồi , được định nghĩa là thời gian cần thiết để tín hiệu âm thanh đi vào đầu vào của thiết bị di động và được xử lý bởi một ứng dụng chạy trên ứng dụng đó. bộ xử lý và thoát khỏi đầu ra.
Trang này cung cấp số đo độ trễ âm thanh khứ hồi cho một số thiết bị Nexus/Pixel và phiên bản nền tảng Android.
Tại sao chúng tôi đo độ trễ
Google đo lường và báo cáo độ trễ để các nhà phát triển ứng dụng Android có được dữ liệu họ cần để đưa ra quyết định sáng suốt về độ trễ hiện có trên thiết bị thực tế. Bằng cách chia sẻ số liệu về độ trễ cho một số thiết bị Nexus và Pixel, chúng tôi hy vọng sẽ khuyến khích toàn bộ cộng đồng Android đo lường, xuất bản và giảm độ trễ trên tất cả các thiết bị Android. Hãy cùng chúng tôi thực hiện cam kết giảm độ trễ âm thanh!
Tác động của ứng dụng đến độ trễ
Xử lý tín hiệu có thể thêm các loại độ trễ sau vào độ trễ:
- Thuật toán . Độ trễ này là cố hữu và không thay đổi tùy theo CPU. Một ví dụ là độ trễ được thêm vào bởi bộ lọc đáp ứng xung hữu hạn (FIR).
- Tính toán . Độ trễ này liên quan đến số chu kỳ CPU cần thiết. Ví dụ: việc suy giảm tín hiệu thường được thực hiện bằng phép nhân có số chu kỳ khác nhau tùy thuộc vào CPU.
Cách chúng tôi đo lường
Chúng tôi đã thực hiện các phép đo được liệt kê trên trang này bằng cách sử dụng khóa vòng lặp âm thanh của Tiến sĩ Rick O'Rang và thử nghiệm phản hồi âm thanh (hiệu ứng Larsen) . Các phép đo giả định việc xử lý tín hiệu ứng dụng thêm độ trễ thuật toán bằng 0 và độ trễ tính toán gần như bằng 0.
Chúng tôi đo độ trễ khứ hồi thông qua đầu nối tai nghe vì một số lý do:
- Các ứng dụng âm nhạc quan trọng (chẳng hạn như ghi-ta và xử lý giọng nói) đều sử dụng đầu nối tai nghe.
- Việc đo độ trễ khứ hồi của micrô và loa trên thiết bị có thể phức tạp vì rất khó để giữ cho vòng phản hồi trong không khí mở không bị dao động không kiểm soát được.
- Bộ chuyển đổi trên thiết bị có kích thước nhỏ và hy sinh đáp ứng tần số để đạt được kích thước nhỏ. Để bù lại, quá trình xử lý tín hiệu số được áp dụng nhưng làm tăng độ trễ thuật toán cho đường dẫn trên thiết bị.
Có những trường hợp độ trễ của micrô và loa trên thiết bị đóng vai trò quan trọng nhưng chúng thường dành cho một hướng chứ không phải khứ hồi. Các kỹ thuật đo độ trễ một chiều được mô tả tại Đo độ trễ đầu ra và Đo độ trễ đầu vào .
Các phép đo ví dụ
Các phép đo được liệt kê bên dưới dành riêng cho số bản dựng . Các thiết bị được liệt kê theo thứ tự gần đúng của lần phát hành đầu tiên và theo phiên bản nền tảng; bạn cũng có thể xem độ trễ trong biểu đồ . Ứng dụng thử nghiệm sử dụng API âm thanh gốc của Android dựa trên OpenSL ES.
Người mẫu | Nền tảng phiên bản | Xây dựng con số | Tỷ lệ mẫu (Hz) | Kích thước bộ đệm (khung) | Kích thước bộ đệm (bệnh đa xơ cứng) | Khứ hồi độ trễ (ms) ± một bộ đệm |
---|---|---|---|---|---|---|
Nexus Một | 2.3.6 | GRK39F | 44100 | 768 | 17,4 | 345 |
Nexus S | 2.3.6 | GRK39F | 44100 | 1024 | 23,2 | 260 |
Nexus S | 4.0.4 | IMM76D | 44100 | 1024 | 23,2 | 260 |
Nexus S | 4.1.2 | JZO54K | 44100 | 880 | 20 | 210 |
Galaxy Nexus | 4.0.1 | ITL41D | 44100 | 976 | 22.1 | 270 |
Galaxy Nexus | 4.3 | JWR66Y | 44100 | 144 | 3.3 | 130 |
Nexus 4 | 4.2.2 | JDQ39E | 48000 | 240 | 5 | 195 |
Nexus 4 | 5.1 | LMY47O | 48000 | 240 | 5 | 58 |
Nexus 10 | 5.0.2 | LRX22G | 44100 | 256 | 5,8 | 36 |
Nexus 10 | 5.1 | LMY47D | 44100 | 256 | 5,8 | 35 |
Nexus 7 2013 | 4.3 | JSR78D | 48000 | 240 | 5 | 149 |
Nexus 7 2013 | 4.4 | KRT16S | 48000 | 240 | 5 | 85 |
Nexus 7 2013 | 5.0.2 | LRX22G | 48000 | 240 | 5 | 64 |
Nexus 7 2013 | 5.1 | LMY47O | 48000 | 240 | 5 | 55 |
Nexus 7 2013 | 6.0 | MRA58K | 48000 | 240 | 5 | 55 |
Nexus 5 | 4.4.4 | KTU84P | 48000 | 240 | 5 | 95 |
Nexus 5 | 5.0.0 | LRX21O | 48000 | 240 | 5 | 47 |
Nexus 5 | 5.1 | LMY47I | 48000 | 240 | 5 | 42 |
Nexus 5 | 6.0 | MRA58K | 48000 | 192 | 4 | 38 |
Nexus 9 | 5.0.0 | LRX21L | 48000 | 256 | 5.3 | 35 |
Nexus 9 | 5.0.1 | LRX22C | 48000 | 256 | 5.3 | 38 |
Nexus 9 | 5.1.1 | LMY47X | 48000 | 256 | 5.3 | 32 |
Nexus 9 | 6.0 | MRA58K | 48000 | 128 | 2.6 | 15 |
Nexus 6 | 5.0.1 | LRX22C | 48000 | 240 | 5 | 65 |
Nexus 6 | 5.1 | LMY47I | 48000 | 240 | 5 | 42 |
Nexus 6 | 6.0 | MRA58K | 48000 | 192 | 4 | 33 |
Nexus 5X | 6.0 | MDA89E | 48000 | 192 | 4 | 18 |
Nexus 5X | 8.0.0 | OPR4.170623.020 | 48000 | 192 | 4 | 18 |
Nexus 5X | 8.1.0 | OPM2.171019.029.C1 | 48000 | 192 | 4 | 18 |
Nexus 6P | 6.0 | MDA89D | 48000 | 192 | 4 | 18 |
Nexus 6P | 8.0.0 | OPR5.170623.014 | 48000 | 192 | 4 | 18 |
Nexus 6P | 8.1.0 | OPM5.171019.019 | 48000 | 192 | 4 | 18 |
Pixel | 7.1.2 | NHG47L | 48000 | 192 | 4 | 18 |
Pixel | 8.0.0 | OPR3.170623.013 | 48000 | 192 | 4 | 18 |
Pixel | 8.1.0 | OPM1.171019.021 | 48000 | 192 | 4 | 18 |
Pixel XL | 7.1.2 | NHG47L | 48000 | 192 | 4 | 18 |
Pixel XL | 8.0.0 | OPR3.170623.013 | 48000 | 192 | 4 | 18 |