การแปลงอัตราการสุ่มตัวอย่าง

บทความนี้อธิบายการเปลี่ยนอัตราตัวอย่างหรือที่เรียกว่าการปรับขนาดตัวอย่างภายใน Android ดูคำศัพท์ที่เกี่ยวข้องกับการเปลี่ยนอัตราตัวอย่างได้ที่คำศัพท์

การแปลงอัตราตัวอย่างคือกระบวนการเปลี่ยนสตรีมตัวอย่างแบบไม่ต่อเนื่องจากอัตราตัวอย่างหนึ่งเป็นสตรีมอื่นที่มีอัตราตัวอย่างอื่น ตัวแปลงอัตราตัวอย่างหรือตัวแปลงเป็นรูปแบบใหม่คือโมดูลที่ใช้อัตราตัวอย่างแปลง สตรีมต้นฉบับเรียกว่า "สัญญาณต้นทาง" ส่วนสตรีมที่แปลงเป็นรูปแบบใหม่เรียกว่า "สัญญาณปลายทาง"

ระบบใช้โปรแกรมเปลี่ยนรูปแบบหลายแห่งใน Android ตัวอย่างเช่น ไฟล์ MP3 อาจได้รับการเข้ารหัสที่อัตราการสุ่มตัวอย่าง 44.1 kHz แต่ต้องเล่นในอุปกรณ์ Android ที่รองรับเสียง 48 kHz ภายใน ในกรณีนี้ ระบบจะใช้โปรแกรมเปลี่ยนอัตราการสุ่มตัวอย่างเพื่อเพิ่มอัตราการสุ่มตัวอย่างเสียงเอาต์พุต MP3 จากอัตราการสุ่มตัวอย่างแหล่งที่มา 44.1 kHz เป็นอัตราการสุ่มตัวอย่างที่ส่ง 48 kHz ซึ่งใช้ในอุปกรณ์ Android

คุณแสดงลักษณะของโปรแกรมเปลี่ยนอัตราตัวอย่างได้โดยใช้เมตริกต่างๆ ซึ่งรวมถึง

  • ระดับการคงไว้ของระดับความกว้างโดยรวมของสัญญาณ
  • ระดับการคงแบนด์วิดท์ความถี่ของสัญญาณไว้ ซึ่งขึ้นอยู่กับข้อจำกัดของอัตราตัวอย่างของที่เก็บ
  • เวลาในการตอบสนองโดยรวมผ่านตัวแปลง
  • เฟสและการหน่วงเวลาของกลุ่มที่สอดคล้องกับความถี่
  • ความซับซ้อนในการประมวลผลที่แสดงเป็นรอบของ CPU หรือปริมาณการใช้พลังงาน
  • อัตราส่วนอัตราตัวอย่างของแหล่งที่มาและปลายทางที่อนุญาต
  • ความสามารถในการเปลี่ยนอัตราส่วนอัตราการสุ่มตัวอย่างแบบไดนามิก
  • รูปแบบไฟล์ตัวอย่างเสียงแบบดิจิทัลที่รองรับ

ตัวแปลงสัญญาณที่เหมาะควรจะรักษาแอมพลิจูดและความถี่ของแบนด์วิดท์ของสัญญาณต้นทางไว้อย่างถูกต้อง (ขึ้นอยู่กับข้อจำกัดของอัตราการสุ่มตัวอย่างของปลายทาง) มีความล่าช้าน้อยที่สุดและสอดคล้องกัน มีความซับซ้อนในการคำนวณน้อยที่สุด อนุญาตให้ใช้อัตราส่วนการเปลี่ยนรูปแบบแบบกำหนดเองและแบบไดนามิก และรองรับรูปแบบตัวอย่างเสียงดิจิทัลทั่วไปทั้งหมด ในทางปฏิบัติแล้ว โปรแกรมเปลี่ยนอัตราตัวอย่างที่เหมาะที่สุดนั้นไม่มีอยู่จริง เนื่องจากโปรแกรมเปลี่ยนอัตราตัวอย่างจริงเป็นการประนีประนอมระหว่างลักษณะเหล่านี้ เช่น เป้าหมายด้านคุณภาพที่ยอดเยี่ยมขัดแย้งกับเวลาในการตอบสนองที่สั้นและความซับซ้อนต่ำ

Android มีโปรแกรมเปลี่ยนรูปแบบข้อมูลเสียงที่หลากหลายเพื่อให้สามารถประนีประนอมได้อย่างเหมาะสมตาม Use Case และภาระงานของแอปพลิเคชัน คุณสามารถดูคำอธิบายเกี่ยวกับโปรแกรมเปลี่ยนรูปแบบข้อมูลที่มีได้ในการใช้งานโปรแกรมเปลี่ยนรูปแบบข้อมูล

การใช้งานโปรแกรมเปลี่ยนรูปแบบ

การติดตั้งใช้งานตัวแปลงตัวอย่างที่ใช้ได้มีการเปลี่ยนแปลงอยู่บ่อยครั้ง และ OEM อาจปรับแต่งได้ ตัวแปลงอัตราตัวอย่างเริ่มต้นตามลําดับจากมากไปน้อยของการบิดเบือนสัญญาณและลําดับจากน้อยไปมากของความซับซ้อนในการคํานวณ ได้แก่

  • เชิงเส้น
  • ลูกบาศก์
  • sinc ที่มีค่าสัมประสิทธิ์เดิม
  • sinc ที่มีค่าสัมประสิทธิ์ที่แก้ไขแล้ว

โดยทั่วไปแล้ว ตัวแปลงตัวอย่างแบบ sinc เหมาะสําหรับการเล่นเพลงที่มีคุณภาพสูงขึ้น ส่วนตัวแปลงตัวอย่างอื่นๆ ควรสงวนไว้สําหรับกรณีที่คุณภาพมีความสำคัญน้อยกว่า (เช่น "การคลิกแป้นพิมพ์" หรือคล้ายกัน)

การใช้งานตัวแปลงตัวอย่างที่เฉพาะเจาะจงที่เลือกจะขึ้นอยู่กับกรณีการใช้งาน ภาระ และค่าของพร็อพเพอร์ตี้ของระบบ af.resampler.quality ดูรายละเอียดได้ที่ซอร์สโค้ดตัวแปลงตัวอย่างเสียงใน AudioFlinger