ตัวถอดรหัส Edge264 H.264 ใหม่อ้างว่ามีการออกแบบแบบมินิมอล แต่กลับจุดประกายการถกเถียงในชุมชนเกี่ยวกับการอ้างสมรรถนะ

ทีมชุมชน BigGo
ตัวถอดรหัส Edge264 H.264 ใหม่อ้างว่ามีการออกแบบแบบมินิมอล แต่กลับจุดประกายการถกเถียงในชุมชนเกี่ยวกับการอ้างสมรรถนะ

ตัวถอดรหัสวิดีโอ H.264 ใหม่ที่เรียกว่า Edge264 ได้เกิดขึ้น โดยมุ่งเป้าไปที่การปรับปรุงสมรรถนะสำหรับระบบ ALLWINNER และอ้างว่าใช้แนวทางแบบมินิมอล อย่างไรก็ตาม โปรเจกต์นี้ได้รับปฏิกิริยาที่หลากหลายจากชุมชนนักพัฒนา โดยผู้เชี่ยวชาญตั้งคำถามเกี่ยวกับตัวเลือกการออกแบบและการอ้างสมรรถนะบางประการ

การขาดข้อมูลขนาดโค้ดทำให้เกิดคำถาม

แม้จะอ้างตัวเองว่าเป็นแบบมินิมอล แต่ Edge264 กลับถูกตรวจสอบอย่างใกล้ชิดเพราะไม่ได้ให้ข้อมูลสำคัญเกี่ยวกับขนาดโค้ดจริง การละเลยนี้ทำให้นักพัฒนาที่คาดหวังตัวชี้วัดพื้นฐานดังกล่าวจากโปรเจกต์ใดๆ ที่อ้างความมีประสิทธิภาพรู้สึกแปลกใจ การขาดการเปรียบเทียบขนาดที่ชัดเจนทำให้ยากต่อการตรวจสอบการอ้างแบบมินิมอล โดยเฉพาะเมื่อแข่งขันกับโซลูชันที่มีชื่อเสียงแล้วอย่าง libavcodec

การใช้งานที่ซับซ้อนขัดแย้งกับการอ้างความเรียบง่าย

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

ตัวแปรการกำหนดค่าการ Build:

  • VARIANTS - เปิดใช้งานการปรับแต่งคำสั่งเฉพาะสำหรับ x86_64
  • TARGET - ระบุสถาปัตยกรรม (x86_64/x86/arm/aarch64)
  • FORCEDDEBUG - เปิดใช้งานการ debug ARM สำหรับ Visual Studio
  • SHA2_TOOLS - สลับการคอมไพล์ edge264.c (ค่าเริ่มต้น: yes)

การถกเถียงเรื่องการถอดรหัสด้วยฮาร์ดแวร์เทียบกับซอฟต์แวร์

การอภิปรายในชุมชนได้เน้นคำถามสำคัญเกี่ยวกับคุณค่าในทางปฏิบัติของตัวถอดรหัส โดยเฉพาะสำหรับอุปกรณ์ Apple Silicon โปรเซสเซอร์สมัยใหม่ โดยเฉพาะในระบบนิเวศของ Apple มีตัวถอดรหัส H.264 ฮาร์ดแวร์ที่มีประสิทธิภาพสูงในตัวซิลิคอนอยู่แล้ว สิ่งนี้ทำให้เกิดคำถามเกี่ยวกับเวลาและเหตุผลที่นักพัฒนาจะเลือกใช้ตัวถอดรหัสซอฟต์แวร์แทนโซลูชันฮาร์ดแวร์ที่มีอยู่ ปัจจุบันโปรเจกต์รองรับ Windows และ Linux บนแพลตฟอร์ม x86/x64 และ ARM แต่ขาดการรองรับ macOS แม้จะเป็นไปได้ทางเทคนิค

แพลตฟอร์มที่รองรับ:

  • Windows x86, x64
  • Linux x86, x64, armv8a
  • รองรับ v4l2 USB
  • สิ่งที่น่าสังเกต: ไม่รองรับ macOS แม้ว่าจะสามารถทำได้ในทางเทคนิค

เทคนิคการปรับปรุงสมรรถนะอยู่ระหว่างการทบทวน

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

จากคนที่เคยทำงานเกี่ยวกับการถอดรหัส H.264 และทำการปรับปรุง assembly บ้าง: นี่เป็นงานที่ซับซ้อนอย่างไม่น่าเชื่อและเป็นความพยายามอย่างมาก ขอชื่นชมผู้เขียน

คุณสมบัติหลัก:

  • รองรับ Progressive Scan และ MVC 3D sources ได้ถึงระดับ 4.2
  • รองรับความละเอียด UHD
  • เอาต์พุต YUV แบบ 8-bit G1-Decoder
  • ความสามารถในการประมวลผลแบบหลายเธรด (แบบ slice และ frame-based)
  • รองรับ Long term reference frames

ภูมิทัศน์สิทธิบัตรให้โอกาส

การเปิดตัว Edge264 ตรงกับการหมดอายุของสิทธิบัตร H.264 ในส่วนใหญ่ของโลก ทำให้เกิดโอกาสใหม่สำหรับการใช้งานโอเพนซอร์ส สภาพแวดล้อมที่ปราศจากสิทธิบัตรนี้ช่วยให้นักพัฒนาทดลองกับการถอดรหัส H.264 โดยไม่ต้องกังวลเรื่องกฎหมาย ซึ่งอาจอธิบายการเกิดขึ้นของโปรเจกต์ใหม่อย่าง Edge264 สถานะสิทธิบัตรที่หมดอายุแล้วขจัดอุปสรรคสำคัญที่เคยจำกัดการพัฒนาตัวถอดรหัส H.264 แบบโอเพนซอร์ส

โปรเจกต์ Edge264 แสดงถึงความพยายามที่ทะเยอทะยานในการสร้างตัวถอดรหัส H.264 เฉพาะทาง แต่ความสำเร็จจะขึ้นอยู่กับการส่งมอบการปรับปรุงสมรรถนะที่วัดได้เมื่อเทียบกับโซลูชันที่มีอยู่ แม้ว่าความซับซ้อนทางเทคนิคที่เกี่ยวข้องในการถอดรหัส H.264 สมควรได้รับการยอมรับ แต่โปรเจกต์จำเป็นต้องให้เกณฑ์มาตรฐานและตัวชี้วัดขนาดที่ชัดเจนกว่านี้เพื่อสนับสนุนการอ้างแบบมินิมอลและสมรรถนะ ชุมชนนักพัฒนายังคงสนใจอย่างระมัดระวัง แต่คาดหวังหลักฐานที่เป็นรูปธรรมมากขึ้นเกี่ยวกับข้อได้เปรียบของตัวถอดรหัสในสถานการณ์จริง

อ้างอิง: edge264