Bài viết này mô tả chuyển đổi tỷ lệ 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ỷ lệ mẫu, hãy xem Thuật ngữ .
Chuyển đổi tốc độ mẫu là quá trình thay đổi dòng mẫu rời rạc từ tốc độ mẫu này sang dòng khác với 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.
Trình lấy mẫu đượ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 đó, một bộ lấy mẫu lại sẽ được sử dụng để lấy mẫu âm thanh đầu ra MP3 từ tốc độ mẫu nguồn 44,1 kHz lên tốc độ mẫu chìm 48 kHz được sử dụng trong thiết bị Android.
Các đặc điểm của trình lấy mẫu lại có thể được thể hiện bằng cách sử dụng các chỉ số, 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 các giới hạn của tốc độ lấy mẫu chìm
- độ trễ tổng thể thông qua trình lấy mẫu lại
- giai đoạn nhất quán và độ trễ nhóm liên quan đến tần số
- độ phức tạp tính toán, được thể hiện bằng chu kỳ CPU hoặc mức tiêu thụ điện năng
- tỷ lệ cho phép của tỷ lệ nguồn và tỷ lệ mẫu chìm
- khả năng thay đổi động tỷ lệ tỷ lệ 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 (tùy thuộc vào các giới hạn của tốc độ lấy mẫu chìm), có độ trễ tối thiểu và nhất quán, có độ phức tạp tính toán tối thiểu, cho phép tỷ lệ chuyển đổi tùy ý và động, đồ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ế, bộ lấy mẫu lý tưởng không tồn tại vì bộ lấy mẫu thực tế là một sự thỏa hiệp giữa các đặc điểm này. Ví dụ, các mục tiêu có 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 lại âm thanh, do đó 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 ứng dụng. Các bộ lấy lại mẫu có sẵn được giải thích trong phần triển khai Bộ lấy mẫu lại.
Triển khai trình lấy mẫu lại
Việc triển khai trình 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 OEM. Các bộ lấy mẫu lại 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
- hình khối
- sinc với hệ số ban đầu
- sinc với các hệ số sửa đổi
Nói chung, các bộ lấy mẫu lại sinc thích hợp hơn để phát lại nhạc chất lượng cao hơn và các bộ lấy lại mẫu khác nên dành riêng cho các trường hợp chất lượng kém quan trọng hơn (ví dụ có thể là "các lần bấm phím" hoặc tương tự).
Việc triển khai trình lấy mẫu lại cụ thể được chọn phụ 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 trình lấy lại mẫu âm thanh trong AudioFlinger .