Bài viết này mô tả chuyển đổi tốc độ mẫu, còn được gọi là lấy mẫu lại , trong Android. Để biết thuật ngữ liên quan đến chuyển đổi tốc độ mẫu, hãy xem Thuật ngữ .
Chuyển đổi tốc độ mẫu là quá trình thay đổi một luồng mẫu riêng biệt từ tốc độ mẫu này sang luồng khác ở tốc độ mẫu khác. Bộ chuyển đổi tốc độ mẫu hoặc bộ lấy mẫu lại là một mô-đun thực hiện chuyển đổi tốc độ mẫu. Đối với bộ lấy mẫu lại, luồng gốc được gọi là tín hiệu nguồn và luồng được lấy mẫu lại được gọi là tín hiệu chìm.
Bộ lấy mẫu lại được sử dụng ở một số nơi trong Android. Ví dụ: tệp MP3 có thể được mã hóa ở tốc độ mẫu 44,1 kHz nhưng cần được phát lại trên thiết bị Android hỗ trợ âm thanh 48 kHz bên trong. Trong trường hợp đó, bộ lấy mẫu lại sẽ được sử dụng để nâng cấp âm thanh đầu ra MP3 từ tốc độ lấy mẫu nguồn 44,1 kHz lên tốc độ lấy mẫu chìm 48 kHz được sử dụng trong thiết bị Android.
Các đặc điểm của bộ lấy mẫu lại có thể được thể hiện bằng các số liệu, bao gồm:
- mức độ bảo toàn biên độ tổng thể của tín hiệu
- Mức độ bảo toàn băng thông tần số của tín hiệu, tùy thuộc vào giới hạn của tốc độ mẫu chìm
- độ trễ tổng thể thông qua bộ lấy mẫu lại
- pha nhất quán và độ trễ nhóm liên quan đến tần số
- độ phức tạp tính toán, được biểu thị bằng chu kỳ CPU hoặc mức tiêu thụ điện năng
- tỷ lệ cho phép của tốc độ lấy mẫu nguồn và chìm
- khả năng thay đổi linh hoạt tỷ lệ tốc độ mẫu
- định dạng mẫu âm thanh kỹ thuật số nào được hỗ trợ
Bộ lấy mẫu lại lý tưởng sẽ bảo toàn chính xác biên độ và băng thông tần số của tín hiệu nguồn (tuân theo các giới hạn của tốc độ mẫu chìm), có độ trễ tối thiểu và nhất quán, độ phức tạp tính toán tối thiểu, cho phép tỷ lệ chuyển đổi động và tùy ý, đồng thời hỗ trợ tất cả các định dạng mẫu âm thanh kỹ thuật số phổ biến . Trong thực tế, các bộ lấy mẫu lại lý tưởng không tồn tại vì các bộ lấy mẫu lại thực tế là sự dung hòa giữa các đặc điểm này. Ví dụ, mục tiêu của chất lượng lý tưởng xung đột với độ trễ ngắn và độ phức tạp thấp.
Android bao gồm nhiều bộ lấy mẫu âm thanh khác nhau để có thể thực hiện các thỏa hiệp thích hợp tùy thuộc vào trường hợp sử dụng và tải của ứng dụng. Các bộ lấy mẫu lại có sẵn được giải thích trong phần triển khai Bộ lấy mẫu lại.
Triển khai bộ lấy mẫu lại
Việc triển khai bộ lấy mẫu lại có sẵn thay đổi thường xuyên và có thể được tùy chỉnh bởi các OEM. Các bộ lấy mẫu mặc định, theo thứ tự giảm dần của độ méo tín hiệu và thứ tự tăng dần về độ phức tạp tính toán, bao gồm:
- tuyến tính
- khối
- sinc với các hệ số ban đầu
- sinc với hệ số sửa đổi
Nói chung, bộ lấy mẫu lại chân thành phù hợp hơn để phát lại nhạc chất lượng cao hơn và các bộ lấy mẫu lại khác nên được dành riêng cho những trường hợp chất lượng ít quan trọng hơn (ví dụ có thể là "nhấp chuột" hoặc tương tự).
Việc triển khai bộ lấy mẫu lại cụ thể được chọn tùy thuộc vào trường hợp sử dụng, tải và giá trị của thuộc tính hệ thống af.resampler.quality
. Để biết chi tiết, hãy tham khảo mã nguồn của bộ lấy mẫu lại âm thanh trong AudioFlinger .