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

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

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

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

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

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

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

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

การใช้งาน Resampler

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

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

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

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