ตัวถอดรหัสวิดีโอ H.264 ใหม่ที่เรียกว่า Edge264 ได้เกิดขึ้น โดยมุ่งเป้าไปที่การปรับปรุงสมรรถนะสำหรับระบบ ALLWINNER และอ้างว่าใช้แนวทางแบบมินิมอล อย่างไรก็ตาม โปรเจกต์นี้ได้รับปฏิกิริยาที่หลากหลายจากชุมชนนักพัฒนา โดยผู้เชี่ยวชาญตั้งคำถามเกี่ยวกับตัวเลือกการออกแบบและการอ้างสมรรถนะบางประการ
การขาดข้อมูลขนาดโค้ดทำให้เกิดคำถาม
แม้จะอ้างตัวเองว่าเป็นแบบมินิมอล แต่ Edge264 กลับถูกตรวจสอบอย่างใกล้ชิดเพราะไม่ได้ให้ข้อมูลสำคัญเกี่ยวกับขนาดโค้ดจริง การละเลยนี้ทำให้นักพัฒนาที่คาดหวังตัวชี้วัดพื้นฐานดังกล่าวจากโปรเจกต์ใดๆ ที่อ้างความมีประสิทธิภาพรู้สึกแปลกใจ การขาดการเปรียบเทียบขนาดที่ชัดเจนทำให้ยากต่อการตรวจสอบการอ้างแบบมินิมอล โดยเฉพาะเมื่อแข่งขันกับโซลูชันที่มีชื่อเสียงแล้วอย่าง libavcodec
การใช้งานที่ซับซ้อนขัดแย้งกับการอ้างความเรียบง่าย
เอกสารทางเทคนิคเผยให้เห็นสถาปัตยกรรมที่ซับซ้อนอย่างน่าประหลาดใจสำหรับตัวถอดรหัสที่ควรจะเป็นแบบมินิมอล Edge264 ใช้เทคนิคการปรับปรุงขั้นสูงจำนวนมาก รวมถึงไฟล์ส่วนหัวเดียว อัลกอริทึมการวนซ้ำแบบต้นไม้ ตัวจัดการบริบทส่วนกลาง และการสร้างโค้ดแบบไม่มีการแยกสาขา แม้ว่าเทคนิคเหล่านี้สามารถปรับปรุงสมรรถนะได้ แต่ก็เพิ่มความซับซ้อนให้กับโค้ดเบสอย่างมาก โปรเจกต์นี้ระบุเทคนิคการเขียนโปรแกรม 14 แบบที่แตกต่างกัน ซึ่งดูเหมือนจะขัดแย้งกับปรัชญาแบบมินิมอลที่ส่งเสริม
ตัวแปรการกำหนดค่าการ Build:
VARIANTS
- เปิดใช้งานการปรับแต่งคำสั่งเฉพาะสำหรับ x86_64TARGET
- ระบุสถาปัตยกรรม (x86_64/x86/arm/aarch64)FORCEDDEBUG
- เปิดใช้งานการ debug ARM สำหรับ Visual StudioSHA2_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