ปรับปรุงคุณภาพเสียงด้วยการแก้ไขสแตกบลูทูธ
- ผู้ใช้หูฟังไร้สายมักพบกับคุณภาพเสียงต่ำและเสียงย่านสูงที่ไม่เพียงพอเมื่อใช้โค้ดек SBC มาตรฐานของบลูทูธ
- วิธีแก้ที่พบบ่อยคือซื้ออุปกรณ์ที่รองรับโค้ดेक aptX หรือ LDAC แต่โค้ดेकเหล่านี้มีค่าไลเซนส์ ทำให้อุปกรณ์มีราคาแพงขึ้น
- ปัจจุบันคุณภาพต่ำของ SBC เกิดจากข้อจำกัดที่ถูกกำหนดขึ้นโดยสแตกบลูทูธและตัวหูฟังเอง ซึ่งสามารถหลบเลี่ยงได้บนทุกอุปกรณ์ด้วยการแก้ไขซอฟต์แวร์เพียงอย่างเดียว
โค้ดेक SBC
- SBC มีพารามิเตอร์หลากหลายที่เจรจากันในขั้นตอนตั้งค่าการเชื่อมต่อ: ประเภทและจำนวนช่องสัญญาณเสียง, จำนวนย่านความถี่, จำนวนบล็อกเสียงต่อแพ็กเก็ต, อัลกอริทึมการจัดสรรบิตสำหรับการควอนไทซ์, และค่า bitpool สูงสุดกับต่ำสุดที่ใช้ในกระบวนการควอนไทซ์
- โดยทั่วไปสแตกบลูทูธในปัจจุบันจะเจรจาชุดตัวเลือกเป็น Joint Stereo, 8 ย่าน, 16 บล็อก, Loudness, bitpool 2..53
- ค่า bitpool เป็นพารามิเตอร์ที่ใช้เปลี่ยนอัตราบิตในการเข้ารหัส โดยค่ายิ่งสูง อัตราบิตและคุณภาพก็ยิ่งดีขึ้น
การแก้ไขสแตกบลูทูธ
- สแตกบลูทูธที่เข้ากันได้กับ A2DP ทั้งหมดต้องรองรับโหมด Dual Channel แต่ไม่มีวิธีบังคับใช้โหมดนี้
- มีการสร้างแพตช์สำหรับ Android 8.1 และ 9 เพื่อเพิ่มโหมด Dual Channel ในเมนูนักพัฒนา และจะแสดงเป็นโค้ดेक "HD Audio" ในการตั้งค่าอุปกรณ์ Bluetooth
- แพตช์นี้ถูกรวมเข้าไปในเฟิร์มแวร์ทางเลือกอย่าง LineageOS, Resurrection Remix และ crDroid
ที่มาของ 551 และ 452 kbps
- เทคโนโลยีแบ่งช่วงเวลาของบลูทูธถูกออกแบบมาเพื่อส่งแพ็กเก็ตขนาดคงที่ขนาดใหญ่ได้อย่างมีประสิทธิภาพ
- การส่งข้อมูลเกิดขึ้นผ่านสล็อต และ 5 สล็อตคือจำนวนสูงสุดที่ส่งได้ในการส่งหนึ่งครั้ง
- ใน 5 สล็อต สามารถส่งข้อมูลได้สูงสุด 679 ไบต์ที่ความเร็ว 2Mbps และสูงสุด 1021 ไบต์ที่ความเร็ว 3Mbps
ทำไมทั้งหมดนี้จึงจำเป็น?
- ตรงกันข้ามกับความเชื่อทั่วไปเกี่ยวกับคุณภาพเสียงของ aptX ในบางกรณี SBC อาจให้คุณภาพเสียงที่แย่กว่าบิตเรตมาตรฐาน 328k
- SBC จะจัดสรรบิตสำหรับการควอนไทซ์ให้กับย่านความถี่แบบไดนามิก ขณะที่ aptX จะควอนไทซ์ย่านความถี่ด้วยจำนวนบิตคงที่
- หากใช้ SBC บิตเรตสูง จะได้คุณภาพเสียงที่ดีกว่า aptX ในกรณีส่วนใหญ่ และในหูฟังที่รองรับ EDR 3 Mb/s ก็ให้คุณภาพเสียงใกล้เคียง aptX HD มาก
ไปได้ไกลกว่านี้อีกไหม?
- ชุดแพตช์ Android มีตัวเลือกเพิ่มเติมที่สามารถเพิ่มบิตเรตของอุปกรณ์ EDR 2 mbps จาก 452 kbps เป็น 595 kbps ได้
- สามารถเปิดใช้งานบิตเรตที่สูงขึ้นได้โดยตั้งค่าตัวแปร
persist.bluetooth.sbc_hd_higher_bitrateเป็น 1
ความเข้ากันได้กับอุปกรณ์
- SBC Dual Channel รองรับโดยหูฟัง ลำโพง และเฮดยูนิตในรถยนต์แทบทั้งหมด
- อุปกรณ์ที่มีปัญหาจากโหมดนี้พบได้น้อยมาก แต่ข้อมูลความเข้ากันได้โดยละเอียดสามารถหาได้จาก 4pda และ xda-developers
การเปรียบเทียบคุณภาพเสียง
- มีการสร้างเว็บเซอร์วิสที่เข้ารหัสเสียงเป็น SBC แบบเรียลไทม์ในเบราว์เซอร์ (รวมถึง aptX และ aptX HD) เพื่อให้สามารถเปรียบเทียบคุณภาพเสียงของโปรไฟล์ SBC และโค้ดेकต่าง ๆ ได้
การติดต่อกับนักพัฒนา Android
- มีการขอให้นักพัฒนาสแตกบลูทูธของ Google รวมแพตช์นี้เข้า AOSP แต่ยังไม่ได้รับคำตอบ
- แม้แต่ในระบบรีวิวโค้ด Gerrit ก็ยังไม่ได้รับความคิดเห็นใด ๆ จากผู้ที่เกี่ยวข้องกับการพัฒนา
บทสรุป
- ผู้ใช้เฟิร์มแวร์ LineageOS, Resurrection Remix และ crDroid สามารถปรับปรุงคุณภาพเสียงบลูทูธได้ด้วยการเลือกช่องทำเครื่องหมายในการตั้งค่าอุปกรณ์ Bluetooth
- ผู้ใช้ Linux ก็สามารถติดตั้งแพตช์ของ Pali Rohár เพื่อให้ได้ SBC บิตเรตที่สูงขึ้นเช่นกัน
ความเห็นของ GN⁺
ประเด็นสำคัญที่สุดของบทความนี้คือ คุณภาพเสียงบลูทูธที่มีอยู่เดิมสามารถปรับปรุงได้ด้วยการแก้ไขซอฟต์แวร์เพียงอย่างเดียว นี่เป็นทางออกที่น่าสนใจเพราะทำให้สามารถสัมผัสเสียงคุณภาพสูงบนอุปกรณ์เดิมได้โดยไม่ต้องซื้ออุปกรณ์ใหม่ที่รองรับโค้ดेकซึ่งมีต้นทุนสูง โดยเฉพาะสำหรับผู้ใช้ที่ใช้เฟิร์มแวร์โอเพนซอร์ส การที่สามารถปรับแต่งเช่นนี้ได้ถือเป็นความก้าวหน้าที่น่าสนใจซึ่งช่วยเพิ่มการเข้าถึงเทคโนโลยี และทำให้ผู้ใช้ควบคุมอุปกรณ์ของตนเองได้มากขึ้น
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ชื่นชมการรองรับอย่างกว้างขวางและความสามารถในการขยายต่ออย่างเป็นธรรมชาติของ SBC
วิเคราะห์เชิงลึกเกี่ยวกับบั๊กใน Bluetooth stack ของ Android และชี้ให้เห็นความหลากหลายของฮาร์ดแวร์
แชร์ประสบการณ์การปรับพารามิเตอร์ SBC และการใช้งาน AAC, aptX, LDAC ผ่าน 'Alternative A2DP Driver' บน Windows
กล่าวถึงความเป็นไปได้ในการเปิดใช้เสียงบิตเรตสูงขึ้นด้วย SBC XQ และการปรับปรุงคุณภาพเสียงเฮดเซ็ตด้วย mSBC บน Linux
เสนอความจำเป็นของฟีเจอร์ที่อนุญาตให้บัฟเฟอร์ล่วงหน้าได้นานในโปรไฟล์เสียง Bluetooth
กล่าวถึงประสบการณ์ใช้งานฟีเจอร์ส่งสัญญาณเสียงคุณภาพสูงบน LineageOS และความจำเป็นในการปรับปรุงประสบการณ์ผู้ใช้
กล่าวถึงความจำเป็นในการเพิ่มปี (2019) ในชื่อเรื่อง และระบุว่ามีการนำไปใช้แล้วใน PulseAudio และ PipeWire
มุมมองเชิงสงสัยต่อผลของความแตกต่างของบิตเรตระหว่าง Dual Channel กับ Joint Stereo ที่มีต่อคุณภาพเสียงจริง
ถามถึงวิธีปรับปรุงคุณภาพ HFP บน MacOS และแชร์ประสบการณ์การใช้ mSBC บน Linux
เล่าประสบการณ์ที่ไม่รู้ว่าตัวเองใช้งาน SBC อยู่ และแสดงความขอบคุณต่อโพสต์นี้