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

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

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

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

คุณลักษณะของเครื่องสุ่มตัวอย่างสามารถแสดงได้โดยใช้หน่วยเมตริก ได้แก่:

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

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

Android มีรีแซมเปลอร์เสียงที่หลากหลาย เพื่อให้สามารถดำเนินการประนีประนอมได้อย่างเหมาะสม โดยขึ้นอยู่กับกรณีการใช้งานและโหลดของแอปพลิเคชัน Resampler ที่มีอยู่จะอธิบายไว้ใน การใช้งาน Resampler

การใช้งาน Resampler

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

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

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

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