1 คะแนน โดย GN⁺ 3 시간 전 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • dav2d คือดีโคเดอร์ความเร็วสูงสำหรับ AV2 ที่พัฒนาโดยชุมชน VideoLAN โดยมีเป้าหมายเป็นอิมพลีเมนเทชันที่พร้อมใช้งานได้ทันทีในแอป เบราว์เซอร์ และระบบปฏิบัติการ
  • AV2 คือโคเดกแบบปลอดค่าลิขสิทธิ์รุ่นถัดจาก AV1 ซึ่งพบว่าช่วยเพิ่มประสิทธิภาพได้ราว 25% แต่มีความซับซ้อนในการถอดรหัสสูงกว่า AV1 ประมาณ 5 เท่า
  • เช่นเดียวกับที่ dav1d เคยทำหน้าที่เป็นซอฟต์แวร์ดีโคเดอร์ความเร็วสูงในช่วงแรกของการเผยแพร่ AV1 ตอนนี้ dav2d ก็ถูกเตรียมให้เป็น ดีโคเดอร์คุณภาพพร้อมใช้งานจริงในโปรดักชัน ตั้งแต่ช่วงต้นของสเปก
  • ขณะนี้ tree ปัจจุบันทำ AVM v15 decoder ได้ครบเชิงฟังก์ชันแล้ว และรองรับทั้ง 8 บิตและ 10 บิต โดยกำลังมุ่งเน้นที่ความถูกต้อง ความสอดคล้องตามสเปก และการปรับแต่งประสิทธิภาพ
  • มีการปรับแต่งตามสถาปัตยกรรมอย่างรวดเร็วและปลอดภัยผ่าน x86 AVX2, ARM NEON, งานระยะเริ่มต้นบน RISC-V และการตรวจสอบด้วย checkasm

เป้าหมายและที่มาของ dav2d

  • dav2d คือดีโคเดอร์ความเร็วสูงสำหรับโคเดก AV2 ตัวใหม่ ที่พัฒนาโดยสมาชิกชุมชน VideoLAN
  • มีการเปิดเผย repository เมื่อไม่กี่สัปดาห์ก่อน และได้ประกาศเป้าหมายกับสถานะของโครงการในช่วงที่ AV2 ออกสเปกทางการฉบับแรก
  • dav2d เป็นโครงการต่อยอดจาก dav1d ซึ่งเป็นดีโคเดอร์ AV1
  • เป้าหมายคือการมอบ ดีโคเดอร์ขนาดเล็ก เร็ว พกพาได้ และแม่นยำ ที่สามารถใช้งานได้จริงในแอปพลิเคชัน เครื่องเล่นสื่อ เบราว์เซอร์ เครื่องมือทดสอบ และระบบปฏิบัติการ
  • จากมุมมองที่ว่า “โคเดกจะยังไม่มีตัวตนจริง จนกว่าทุกคนจะถอดรหัสมันได้” สิ่งสำคัญจึงไม่ใช่แค่สเปก แต่รวมถึงอิมพลีเมนเทชันที่ build, test, benchmark และนำไปผสานรวมได้จริงด้วย

AV2 และความยากของการถอดรหัส

  • AV2 คือโคเดกวิดีโอแบบปลอดค่าลิขสิทธิ์รุ่นล่าสุดของ Alliance for Open Media และเป็นรุ่นถัดจาก AV1
  • สเปกของ AV2 เปิดเผยต่อสาธารณะแล้ว
  • AV1 ได้ข้อสรุปในปี 2018 และกลายเป็นโคเดกวิดีโอที่ถูกใช้อย่างแพร่หลายในเบราว์เซอร์ อุปกรณ์พกพา ระบบปฏิบัติการ ทีวี บริการสตรีมมิง และแอปวิดีโอ
  • AV2 ยังคงปรับปรุงประสิทธิภาพการบีบอัดต่อไป โดยเพิ่มเครื่องมือเข้ารหัสใหม่ในส่วนของการทำนาย การแปลง การเข้ารหัสเอนโทรปี การกรอง และการจัดการโครมา
  • แม้ผลจะแตกต่างกันตามเงื่อนไขการทดสอบ แต่โดยทั่วไปมักพบว่าดีขึ้นจาก AV1 ราว 25% และบางการประเมินก็ได้ผลดีกว่านั้น
  • การถอดรหัส AV2 มีความซับซ้อนกว่า AV1 ราว 5 เท่า ทำให้การถอดรหัสแบบเรียลไทม์ด้วยซอฟต์แวร์เพียงอย่างเดียวบนฮาร์ดแวร์ปัจจุบันจำเป็นต้องมีการปรับแต่งตามสถาปัตยกรรม
  • ด้วยความซับซ้อนนี้ การพัฒนา dav2d จึงเริ่มต้นตั้งแต่เนิ่น ๆ โดยไม่รอให้สเปกนิ่งสมบูรณ์ก่อน

เส้นทางจาก dav1d สู่ dav2d

  • จุดเริ่มต้นของ dav2d มาจากประสบการณ์ในช่วงแรกของ dav1d
  • ตอนที่ AV1 ได้ข้อสรุปนั้น มีความเป็นไปได้สูงว่าฮาร์ดแวร์ถอดรหัสเฉพาะทางจะยังไม่แพร่หลายไปยังอุปกรณ์จำนวนมากได้เร็วพอ จึงจำเป็นต้องมีซอฟต์แวร์ดีโคเดอร์ความเร็วสูง
  • ในเวลานั้น คนบางส่วนในชุมชน AOM มองว่าฮาร์ดแวร์อิมพลีเมนเทชันและ reference decoder ก็เพียงพอแล้ว แต่เบราว์เซอร์ เครื่องเล่นสื่อ ระบบปฏิบัติการ และอุปกรณ์พกพา ต้องการ ดีโคเดอร์คุณภาพพร้อมใช้งานจริงในโปรดักชัน ตั้งแต่ก่อนที่ฮาร์ดแวร์เฉพาะทางจะแพร่หลาย
  • หลังจากนั้น AOM เองก็สนับสนุนการพัฒนาช่วงแรกบางส่วน และสมาชิกบางรายของ Alliance ก็เข้าร่วม ทำให้เกิด dav1d ขึ้น
  • ความต้องการซอฟต์แวร์ดีโคเดอร์ความเร็วสูงมีมากกว่าที่คาด และปัจจุบัน dav1d ก็กลายเป็น AV1 software decoder ที่ถูกใช้งานแพร่หลายที่สุด
  • dav1d ถูกใช้งานใน VLC, FFmpeg, mpv, Firefox, Chrome, Safari, Android, Windows, Linux และอีกหลากหลายแอปพลิเคชันกับแพลตฟอร์ม
  • สำหรับนักพัฒนาจำนวนมากที่ทำงานด้านการเผยแพร่ การทดสอบ และการปรับแต่ง AV1 นั้น dav1d ยังถูกใช้เป็นอิมพลีเมนเทชันอ้างอิงของ AV1 decoder อีกด้วย
  • ประวัติของ dav1d ถูกรวบรวมไว้ใน Introducing dav1d, the road to the first release, First release, dav1d 1.2, 1.5 “Sonic”
  • สำหรับ AV2 ตอนนี้กำลังเตรียมบทบาทแบบเดียวกันตั้งแต่ช่วงเวลาที่เร็วกว่านั้น

สถานะการพัฒนาปัจจุบัน

  • ตอนนี้ tree ของ dav2d ทำ AVM v15 decoder ได้ครบเชิงฟังก์ชันแล้ว และรองรับทั้งการถอดรหัส 8 บิตและ 10 บิต
  • องค์ประกอบหลักของโคเดกส่วนใหญ่ถูกอิมพลีเมนต์แล้ว และกำลังก้าวเข้าสู่ขั้นตอนการปรับแต่งประสิทธิภาพ
    • การแยกวิเคราะห์บิตสตรีม
    • ส่วนหัวของเฟรมและซีเควนซ์
    • การถอดรหัสเอนโทรปีและการจัดการ CDF
    • intra prediction
    • inter prediction และ reference motion vector
    • การแปลง
    • CCTX และ CfL
    • deblocking
    • CDEF
    • Wiener filtering
    • การสังเคราะห์ film grain
  • แม้ ecosystem ของ AV2 จะยังอยู่ในช่วงเริ่มต้น แต่ dav2d ก็เป็นดีโคเดอร์ที่ใช้งานได้แล้ว และไปไกลกว่าการเป็นเพียง repository ที่เปิดไว้เพื่อประกาศโครงการ
  • งานส่วนสำคัญในตอนนี้มุ่งเน้นไปที่ ความถูกต้อง ความสอดคล้องตามสเปก การปรับแต่งประสิทธิภาพ และการรองรับแพลตฟอร์ม
  • เหตุที่ dav2d พัฒนาได้รวดเร็วมาจากประสบการณ์ที่สั่งสมจาก dav1d ในด้าน threading, การจัดวาง SIMD, การทดสอบ, ความสามารถในการพกพา และการออกแบบ API
  • แม้ AV2 จะต้องใช้โค้ดดีโคเดอร์ใหม่จำนวนมาก แต่ประสบการณ์จำนวนมากจากการพัฒนา dav1d ก็สามารถนำมาปรับใช้กับ dav2d ได้โดยตรง

การปรับแต่งประสิทธิภาพและการตรวจสอบ

  • บน x86 มีโค้ด AVX2 สำหรับ inverse transform หลายขนาดแล้ว และกำลังทำงานกับ path ที่เกี่ยวข้องกับ CCTX, deblock, intra prediction และ CfL
  • บน ARM งาน AArch64 NEON กำลังถูกนำไปใช้กับ entropy decoding, SAD, intra prediction, palette prediction, DC predictor, smooth predictor และฟังก์ชันที่เกี่ยวข้องกับ motion
  • งานบน arm32 ก็เริ่มไปบางส่วนแล้ว
  • งานบน RISC-V ยังอยู่ในระยะเริ่มต้น โดยกำลังมุ่งไปที่การเปิดใช้งานและปรับจูน assembly เดิมสำหรับ intra prediction และ motion compensation
  • ลำดับการปรับแต่งประสิทธิภาพคล้ายกับใน dav1d
    • เริ่มจากสร้างอิมพลีเมนเทชัน C ที่สะอาด
    • สร้างโครงสร้างพื้นฐานสำหรับการตรวจสอบ
    • เพิ่มโค้ดปรับแต่งเฉพาะสถาปัตยกรรมใน hot path ที่สำคัญ
  • checkasm ซึ่งถูกสร้างขึ้นระหว่างการพัฒนา dav1d เป็นเฟรมเวิร์กที่ใช้ตรวจสอบและ benchmark อิมพลีเมนเทชันที่ปรับแต่งแล้วโดยเทียบกับอิมพลีเมนเทชัน C
  • dav2d ใช้โครงสร้างพื้นฐานนี้มาตั้งแต่วันแรก ทำให้พัฒนาได้เร็วกว่า dav1d ในช่วงพัฒนาที่ใกล้เคียงกัน
  • tree ปัจจุบันมี checkasm coverage สำหรับโค้ด inverse transform, motion compensation, film grain, CfL และ reference motion vector แล้ว

รูปแบบการพัฒนาโอเพนซอร์สและขั้นตอนถัดไป

  • dav2d ถูกพัฒนาเป็น โครงการโอเพนซอร์ส เช่นเดียวกับ dav1d
  • ดีโคเดอร์เผยแพร่ภายใต้ไลเซนส์สไตล์ BSD แบบเดียวกับ dav1d ทำให้นำไปรวมเข้ากับทั้งแอปพลิเคชันโอเพนซอร์สและซอฟต์แวร์ปิดได้ง่าย
  • เช่นเดียวกับโครงการส่วนใหญ่ของ VideoLAN การพัฒนาดำเนินไปอย่างเปิดเผยต่อสาธารณะตั้งแต่วันแรก
  • อิมพลีเมนเทชันแบบเปิดนี้ช่วยสนับสนุนการทำงานร่วมกันระหว่างระบบ การตรวจสอบสเปกอย่างเป็นอิสระ การทดลองที่ง่ายขึ้น และการสร้างฐานร่วมสำหรับ ecosystem
  • ต่อจากนี้ยังต้องมีการติดตามสเปก AV2 ปรับปรุงความสอดคล้องตามสเปก ขยาย test coverage เพิ่มการปรับแต่งบน x86 และ ARM รวมถึงเดินหน้างานบน RISC-V
  • ยังเหลืองานด้านการปรับปรุงประสิทธิภาพสำหรับ bit depth สูง การปรับปรุง threading การลดการใช้หน่วยความจำ และการเตรียมพร้อมสำหรับ release ในอนาคต
  • เช่นเดียวกับที่ dav1d ทำให้ AV1 ใช้งานได้จริงก่อนที่การรองรับด้วยฮาร์ดแวร์จะแพร่หลาย dav2d ก็มีเป้าหมายจะทำหน้าที่เดียวกันสำหรับ AV2

1 ความคิดเห็น

 
GN⁺ 3 시간 전
ความเห็นจาก Hacker News
  • Too Many Requests
    ดูฉบับเก็บถาวรได้ที่นี่:
    https://web.archive.org/web/20260531130034/https://jbkempf.com/blog/2026/dav2d/
    https://archive.md/ln5UE

    • ดูเหมือนว่า HN จะส่งทราฟฟิกไปมากเกินไป
      มีข้อความ Too Many Requests ขึ้นมา พร้อมข้อความว่าผู้เป็นเจ้าของไฟล์ใช้ขีดจำกัดแบนด์วิดท์ระยะสั้นเกินแล้ว และบอกว่าเกิน ขีดจำกัดการดำเนินการ 160000 ครั้งต่อวัน
  • แม้แต่ การถอดรหัส AV1 แบบซอฟต์แวร์ ก็หนักมากอยู่แล้ว ดังนั้นเบนช์มาร์กการถอดรหัส AV2 น่าจะเป็นสิ่งที่ทั้งน่าสนใจมากหรือน่ากลัวมากเป็นอย่างต่อไป

    • Arc dGPU ของ Intel ค่อนข้างน่าสนใจมากสำหรับการเข้ารหัสและถอดรหัส AV1 โดยเฉพาะ และยิ่งดีเข้าไปอีกเพราะบางการ์ดมีขนาดเล็ก
      เลยสามารถเสียบเป็นการ์ดเสริมในพีซีสำหรับงานบันทึกและเข้ารหัสด้วย OBS ได้
      ก็น่าจะดีถ้าผลิตภัณฑ์รุ่นถัดไปที่รองรับ AV2 มีตัวเลือกแบบนี้ออกมาเหมือนกัน และช่วงนี้การทำวิดีโอและสตรีมมิงก็ได้รับความนิยมมากจริง ๆ เลยยิ่งดูจำเป็น
    • จนกว่าจะมีฮาร์ดแวร์ที่แพร่หลายและราคาย่อมเยามารองรับโคเด็กปี 2018 ได้ทัน โคเด็กใหม่ตระกูล AV ก็คงยังเป็นได้แค่ตลาดเฉพาะกลุ่มหรือมากกว่านั้นเพียงเล็กน้อย
    • เรื่องนี้น่าจะติดตามดูได้สนุก
  • สเปกของโคเด็กจะถือว่าเสร็จจริงก็ต่อเมื่อมีดีโคเดอร์ที่พัฒนาสำหรับใช้งานจริงอย่างน้อยหนึ่งตัว กล่าวคือ ต้องมี reference implementation + implementation อีก 1 ตัว และหลายครั้ง implementation ที่ใช้จริงก็มักกลายเป็นสเปกโดยพฤตินัย
    ตอนเป็นเด็กในยุค 90 ผมอ่านสเปก MPEG1 แล้วได้เปิดหูเปิดตาเรื่องวิธีกำหนดระบบที่ซับซ้อน
    ในมาตรฐานการเข้ารหัสสื่อ เวลาส่วนใหญ่หมดไปกับการอธิบายว่าจะตีความไบต์ที่ถูกเข้ารหัสมาอย่างไร ซึ่งผมรู้สึกว่ามันยอดเยี่ยมมาก
    การถอดรหัสกำหนดแบบพรรณนาได้ และไม่จำเป็นต้องบังคับขั้นตอนการเข้ารหัสอย่างตายตัว
    ความคิดสร้างสรรค์สามารถไปอยู่ฝั่งการเข้ารหัสได้ แต่ต้องมีวิธีที่ทำให้ทุกคนเข้าใจไบต์ที่ถูกเข้ารหัสร่วมกันได้เสมอ

  • ดูเหมือนจะโดน HN hug of death เข้าให้แล้ว

  • ผมไม่แน่ใจว่า การลดขนาดลง 25% จะคุ้มถึงขั้นทำให้อุปกรณ์ทั้งหมดที่มีตัวถอดรหัส AV1 แบบฮาร์ดแวร์กลายเป็นของล้าสมัยโดยพฤตินัยหรือไม่ เพราะการถอดรหัส AV2 น่าจะหนักเกินไปสำหรับอุปกรณ์เหล่านั้น

    • บริการวิดีโอสมัยใหม่เข้ารหัสไว้หลายโคเด็ก หลายบิตเรต และหลายขนาดภาพ แล้วส่งฟอร์แมตที่เหมาะสมที่สุดซึ่งอุปกรณ์ฝั่งไคลเอนต์ถอดรหัสได้
      YouTube มีรูปแบบย่อยอยู่หลายร้อยแบบ:
      https://gist.github.com/MartinEesmaa/2f4b261cb90a47e9c41ba115a011a4aa
      อุปกรณ์ที่ถอดรหัส AV1 ด้วยฮาร์ดแวร์ได้แม้จะยังไม่มาก แต่ก็คงไม่ล้าสมัยเร็ว
    • ถ้าคุณโฮสต์วิดีโอที่มียอดดูเกือบ 1.7 หมื่นล้านครั้ง คุณก็คงอยากสตรีมมันด้วยจำนวนบิตให้น้อยที่สุดเท่าที่ทำได้:
      https://www.youtube.com/watch?v=XqZsoesa55w
      ส่วนเพิ่มอีก 25% นั้นก็มีค่า
      ไม่มีอะไรล้าสมัยหรอก AV1 จะยังอยู่อีกนาน และ YouTube ก็ยังมีไฟล์เข้ารหัส H.264 ไว้รองรับอุปกรณ์เก่าอยู่
  • ดูเหมือนจะมี HN hug of death อีกรอบ และขึ้นข้อผิดพลาด 429

  • ตอนแรกนึกว่าหมายถึง Dave2D

    • ดูเหมือนจะตั้งชื่อตาม dav1d แต่ถึงอย่างนั้นก็ดูเป็น ชื่อชนกัน ที่ค่อนข้างโชคร้าย
  • ดูเหมือนบล็อกจะโดน HN hug of death เล่นงาน
    มีข้อความ Actioning this file would cause "jbkempf.com//blog/2026/dav2d/" to exceed the per-day file actions limit of 160000 actions, try again later ขึ้นมา มีสำเนาที่ไหนไหม?

  • ผมไม่ค่อยเข้าใจว่าคำว่า ดีขึ้นราว 25% เมื่อเทียบกับ AV1 กับคำที่ว่า การถอดรหัส AV2 ซับซ้อนกว่า AV1 ราว 5 เท่า หมายถึงอะไรแต่ละอย่าง และสองอย่างนี้เอามาเทียบกันได้หรือเปล่า

    • ผมเข้าใจว่าหมายถึงการบีบอัดดีขึ้น 25%
      คือคุณภาพที่ AV1 ให้ได้ที่ 10Mbps, AV2 จะให้ได้ที่ 8Mbps
      แต่ต้องใช้กำลังประมวลผลมากขึ้น 5 เท่าเพื่อแลกกับกำไร 25% นั้น
    • AV2 ประหยัด แบนด์วิดท์ 25% โดยแลกกับความซับซ้อนในการถอดรหัสที่เพิ่มขึ้น 5 เท่า
    • ไฟล์เล็กลง แต่ถอดรหัสยากขึ้น
  • บทความที่เกี่ยวข้อง: The AV2 Video Standard Has Released (Final v1.0 Specification)
    https://news.ycombinator.com/item?id=48340910