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.
Đầu tiên hãy nói về vấn đề độ trễ round trip latency (tạm dịch là Thời gain trễ trọn vòng) - một chỉ tiêu rất quan trọng đối với các ứng dụng xử lý âm thanh thời gian thực và người dùng không bao giờ muốn phải đối mặt với vấn đề độ trễ quá lớn khi ghi âm, chỉnh sửa hoặc chơi nội dung âm thanh. Điều này có liên quan tới thời gian cần để âm thanh đi vào hệ thống, đi vào phần mềm xử lý và sau đó là đưa trở ra loa hoặc jack cắm tai nghe. Con người không nhận thức được độ trễ ở dưới mức 20 mili giây, nên độ trễ của bất kỳ hệ thống thời gian thực nào cũng phải dưới mức này và ở mức 10ms được nhận thức là tức thời.Các thử nghiệm trước đây trên thiết bị chạy Android KitKat và Lillopop cho thấy độ trễ nói trên đạt tới mức hàng trăm mili giây, tạo ra độ trễ rõ rệt và khiến cho hệ thống không thể đáp ứng được nhu cầu của các ứng dụng thời gian thực. Thậm chí những thiết bị Android được cho là cao cấp nhất vẫn gặp khó khăn khi đảm bảo độ trễ dưới mức 40 mili giây. Tuy nhiên, trên phiên bản Android 6.0 Marshmallow thì người ta phát hiện ra rằng Google đã khắc phục được hiện tượng này, cho phép đạt độ trễ ở dưới mức 20 mili giây. Cụ thể trong bài test mới nhất của Superpowered, xung nhịp của Nexus 6P đạt mức 18 mili giây, trong khi Nexus 9 là 15 mili giây.
Để đạt được điều đó, hãng đã nâng cấp ở 2 điểm đáng chú ý là: sử dụng buffer size (cỡ bộ đệm - trong thu âm thì cái này càng nhỏ thì độ trễ càng thấp) nhỏ hơn và các cờ (flag) xử lý âm thanh chuyên nghiệp mới nhất. Cỡ buffer được giảm xuống một nửa, chỉ còn 128 mẫu. Một bộ đệm có nhiệm vụ lưu trữ các mẫu được chọn sẵn trước khi tất cả được cùng nhau gởi vào hệ thống. Cỡ bộ đệm nhỏ hơn đồng nghĩa với việc toàn bộ hệ thống sẽ được cập nhật các mẫu mới nhanh hơn. Kỹ thuật tạo bộ đệm và xử lý hàng loạt thường sẽ hiệu quả hơn so với việc chuyển từng mẫu và xử lý.
Bấm để mở rộng...
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.
Không có nhận xét nào:
Đăng nhận xét