Pages

Thứ Bảy, 6 tháng 2, 2016

Android Marshmallow sẽ cải tiến hạn chế độ trễ âm thanh, hỗ trợ tốt hơn ứng dụng làm nhạc

Mặc dù hiện có nhiều mẫu điện thoại Android được giới thiệu với phần cứng rất mạnh, đặc biệt là phần cứng audio chuyên biệt, nhưng vấn đề độ trễ trong quá trình xử lý tín hiệu âm thanh vẫn còn tồn tại trên bản thân hệ điều hành Android khiến cho các lập trình viên lo ngại khi phát triển các ứng dụng âm thanh chuyên nghiệp cho nền tảng này. Tuy nhiên có vẻ như điều này đã được khắc phục trên phiên bản mới nhất của Android Marshmallow, từ đó hỗ trợ được nhiều ứng dụng xử lý âm thanh chuyên nghiệp.
Việc giảm cỡ đệm sẽ dẫn tới giảm độ trễ trong lúc đi qua ALSA (Advanced Linux Sound Architecture - một hệ thống con của nhân Linux, chứa trình điều khiển của sound card, thiết bị nhạc điện tử, thư viện giao tiếp với mixer,...), đồng thời kết hợp với hệ điều hành AudioFlinger (được đưa vào từ Android Lollipop, hỗ trợ lấy mẫu ở độ phân giải cao) cho cả ngõ vào lẫn ngõ ra, dẫn tới cải thiện đáng kể thời gian round trip. Bên dưới đây là kết quả đo đạc đường đi của tín hiệu audio và thời gian ghi được trên chiếc máy tính bảng Nexus 9.

Android-Marshmallow-Audio-Path-Latency-Superpowered-Audio. Android-Marshmallow-Audio-Path-Latency-Superpowered-Audio-1.
Bên trái Nexus 9 chạy hệ điều hành cũ, bên phải là chạy Android 6. cho thời gian trễ thấp hơn rất nhiều khi tín hiệu đi qua 2 tầng ALSA cà AudioFlinger.

Trong hàm API của Android Marshmallow Google đã bổ sung thêm flag FEATURE_AUDIO_PRO để các lập trình viên có thể tìm được cách giảm bộ đệm để đạt thời gian trễ thấp nhất có thể. Trong văn bản của hãng phát hành đã chỉ ra rằng các thiết bị sử dụng flag này phải đạt được độ trễ toàn vòng dưới 20 mili giây và thậm chí là hướng tới 10ms. Các thiết bị USB cũng hỗ trợ chế độ USB host và do đó, người ta có thể tạo ra các add-on để giảm trễ cho USB. Thêm vào đó, điều này còn cho phép hỗ trợ thêm MIDI như một phần trong gói âm thanh chuyên nghiệp của Android. Mặc dù, quá trình xử lý không phải ở tầng native, nhưng người ta tin rằng việc trang bị flag mới sẽ cải thiện rất nhiều quá trình xử lý âm thanh chuyên nghiệp so với flag FEATURE_AUDIO_LOW_LATENCY trang bị từ thời Android Gingerbread với trễ thấp nhất chỉ đạt 50 mili giây.

Tuy nhiên, cần chú ý là các thử nghiệm lần này chỉ dựa trên 2 thiết bị là Nexus 9 và Nexus 6P nên vẫn chưa có kết quả cho các thiết bị khác cũng chạy Android 6.0. Bên cạnh đó Google cũng chỉ ra rằng chỉ có Nexus 5X, 6P và 9 là những thiết bị Pro Audio của hãng, và do đó, người ta nghi ngờ rằng ngoài cải thiện về mặt thuật toán xử lý âm thanh thì đòi hỏi phải có cải tiến về mặt phần cứng để đạt được mức độ trễ thấp như trên.

Được biết thì Samsung cũng đã công bố bộ SDK của họ với tên gọi Samsung Professional Audio SDK 3.0, nhắm tới chiếc điện thoại cao cấp nhất của họ là Galaxy S7, cũng với mục đích giảm thời gian trễ, một dấu hiệu đáng mừng cho thấy Android có khả năng sẽ trở thành một nền tảng hữu dụng cho các ứng dụng âm thanh thời gian thực trong tương lai.

Tham khảo Superpowerd, AA