NVIDIA Video Codec SDK 13.1: ก้าวล้ำการเข้ารหัสวิดีโอด้วย Zero-Copy, AV1 B-Frames และ Frame-Accurate Seek

ความต้องการวิดีโอคุณภาพสูงเพิ่มขึ้นอย่างต่อเนื่องในทุกอุตสาหกรรม ตั้งแต่ประสบการณ์สตรีมมิ่งที่สมจริงไปจนถึงเครื่องมือสร้างสรรค์สื่อด้วย AI และการส่งมอบคอนเทนต์ขนาดใหญ่ เบื้องหลังประสบการณ์เหล่านี้คือความต้องการที่เพิ่มขึ้นสำหรับไปป์ไลน์วิดีโอที่เร็วขึ้น มีประสิทธิภาพมากขึ้น และสามารถจัดการกับรูปแบบและเวิร์กโหลดที่ซับซ้อนขึ้นเรื่อยๆ NVIDIA Video Codec SDK คือเครื่องมือสำคัญที่ช่วยให้นักพัฒนาตอบสนองความท้าทายเหล่านี้ได้ ด้วยการเข้าถึงการเข้ารหัสและถอดรหัสวิดีโอที่เร่งความเร็วด้วย GPU ผ่านฮาร์ดแวร์วิดีโอเฉพาะของ NVIDIA

ล่าสุด NVIDIA Video Codec SDK 13.1 ได้เปิดตัวพร้อมฟีเจอร์ใหม่ที่น่าสนใจมากมาย ซึ่งจะช่วยยกระดับประสิทธิภาพและความยืดหยุ่นในการทำงานกับวิดีโอของคุณ

ฟีเจอร์ใหม่ที่น่าจับตาใน SDK 13.1

SDK 13.1 นำเสนอการปรับปรุงที่สำคัญหลายประการ ดังนี้

  • AV1 Hierarchical Reference Mode พร้อม B-frames สูงสุด 31 เฟรม: เพิ่มคุณภาพการเข้ารหัส AV1 ได้อย่างมีนัยสำคัญ
  • UHQ tuning info ผสานกับการเข้ารหัสแบบวนซ้ำ (Iterative Encoding): เพื่อการปรับปรุงคุณภาพและประสิทธิภาพที่ดียิ่งขึ้น
  • สถิติแบบต่อมาโครบล็อก (Per-macroblock statistics) สำหรับการถอดรหัส H.264 และ HEVC: ช่วยในการวิเคราะห์วิดีโอด้วย GPU
  • ข้อมูลมุมมอง (View information) ระหว่างการถอดรหัส MV-HEVC: รองรับการจัดการวิดีโอสเตอริโอที่ดียิ่งขึ้น
  • การค้นหาเฟรมแม่นยำ (Seek to a specific frame): เข้าถึงเฟรมที่ต้องการได้อย่างรวดเร็วและแม่นยำ
  • CUarray ที่จัดสรรโดยแอปพลิเคชันเป็นอินพุต NVENC และเอาต์พุต NVDEC: รองรับ Zero-Copy Transcode
  • ตัวอย่าง Transcoder ที่ออกแบบใหม่: ด้วยสถาปัตยกรรมแบบโมดูลาร์และคิวเบส
  • สภาพแวดล้อมการพัฒนาอย่างเป็นทางการบน Docker: ช่วยให้การติดตั้งและใช้งานง่ายขึ้น

เหตุผลที่ AV1 Hierarchical Reference Mode สำคัญ

การใช้ B-frames เป็นเฟรมอ้างอิงช่วยเพิ่มคุณภาพการเข้ารหัส และ Hierarchical Reference Mode ก็ช่วยยกระดับคุณภาพนั้นไปอีกขั้น ด้วยการจัดเรียง B-frames ในโครงสร้างแบบต้นไม้ (Tree-like reference structure) ทำให้ NVENC สามารถเพิ่มจำนวน B-frames สูงสุดจาก 7 เป็น 31 เฟรม ซึ่งช่วยให้การเข้ารหัสใช้ประโยชน์จากความซ้ำซ้อนของเวลา (Temporal redundancy) ได้ดียิ่งขึ้น และปรับปรุงคุณภาพโดยรวม โดยที่ ไม่มีผลกระทบต่อประสิทธิภาพ แต่จะมีการใช้หน่วยความจำวิดีโอสูงขึ้น

SDK 13.1 รองรับ Hierarchical Reference Mode สำหรับ AV1 โดยสามารถตั้งค่า B-frames ได้ 1, 3, 7, 15 และ 31 เฟรม ซึ่งโหมดนี้จะมีประสิทธิภาพสูงสุดเมื่อใช้ B-frames ตั้งแต่ 7 เฟรมขึ้นไป และมีผลกระทบต่อประสิทธิภาพน้อยมาก

UHQ tuning info ผสานกับ Iterative Encoding

Iterative encoding ที่มีมาตั้งแต่ SDK 12.1 ช่วยให้นักพัฒนาสามารถเข้ารหัสเฟรมเดียวกันใหม่ด้วยพารามิเตอร์ที่แตกต่างกันได้ ในขณะที่ UHQ tuning info (มีมาตั้งแต่ SDK 12.2) จะรวมเอา lookahead level และ temporal filtering เข้าด้วยกัน เพื่อให้ได้สมดุลระหว่างคุณภาพและประสิทธิภาพที่ดีที่สุดสำหรับการเข้ารหัสที่ยอมรับความหน่วงได้ (Latency-tolerant encoding)

การผสาน UHQ tuning info เข้ากับ iterative encoding ในเวอร์ชัน 13.1 นี้ ทำให้ lookahead level และ temporal filtering สามารถทำงานร่วมกับการเข้ารหัสใหม่ในแต่ละรอบได้ดียิ่งขึ้น

สถิติแบบต่อมาโครบล็อกสำหรับการถอดรหัส

NVDECODE API ใน SDK 13.1 สามารถดึงข้อมูลสถิติแบบละเอียดต่อมาโครบล็อก (16x16 บล็อก) สำหรับเฟรมที่ถอดรหัส H.264 และ HEVC ได้ ข้อมูลเหล่านี้รวมถึง Luma quantization parameter (QP), ประเภทของ Coding Unit (Intra, Inter, Skip, PCM) และ Motion vectors สูงสุดสองตัว โดยข้อมูลเหล่านี้ถูกดึงออกมาโดยอัตโนมัติจากการถอดรหัสด้วยฮาร์ดแวร์ โดยไม่มีภาระเพิ่มเติมต่อ CPU

สถิติเหล่านี้เปิดโอกาสให้เวิร์กโฟลว์การวิเคราะห์วิดีโอที่เร่งความเร็วด้วย GPU ซึ่งก่อนหน้านี้ต้องอาศัยการแยกวิเคราะห์บิตสตรีมบน CPU Motion vectors สามารถนำไปใช้ในการตรวจจับการเปลี่ยนแปลงฉาก (Scene-change detection), การติดตามวัตถุ (Object tracking) และการวิเคราะห์ขอบเขตช็อต (Shot-boundary analysis) ส่วนค่า QP จะแสดงภาพคุณภาพการเข้ารหัสในแต่ละบล็อกเพื่อการปรับปรุง bitrate แบบปรับอัตโนมัติ (Adaptive bitrate optimization) และการตรวจสอบคุณภาพ

การค้นหาเฟรมแม่นยำ (Frame-Accurate Seek)

สำหรับเวิร์กโฟลว์ AI เช่น การอนุมาน (Inference) สำหรับการตรวจจับวัตถุ การกลั่นกรองเนื้อหา หรือการสรุปวิดีโอ รวมถึงการเตรียมข้อมูลสำหรับการฝึกฝนโมเดล AI มักต้องการเฟรมที่เฉพาะเจาะจง ไม่ใช่การถอดรหัสตามลำดับ การตัดต่อวิดีโอและการผลิตหลังการถ่ายทำแบบไม่เป็นเชิงเส้น (Non-linear post-production) ก็มีความต้องการในลักษณะเดียวกัน

NVIDIA Video Codec SDK 13.1 ได้เพิ่ม API ที่ครอบคลุมสำหรับการค้นหาและการเข้าถึงเฟรมแบบสุ่ม (Random-frame-access) ผ่านคลาส NvVideoDecoder ทำให้การเข้าถึงเฟรมที่แม่นยำทำได้ง่ายเหมือนการเข้าถึงข้อมูลในอาร์เรย์ โดยจะดึงเฉพาะเฟรมที่คุณต้องการเท่านั้น

สถาปัตยกรรม GOP

ขอบคุณ แหล่งข้อมูล
https://developer.nvidia.com/blog/nvidia-video-codec-sdk-13-1-zero-copy-transcode-av1-b-frames-and-frame-accurate-seek/

NVIDIA Video Codec SDK 13.1: ก้าวล้ำการเข้ารหัสวิดีโอด้วย Zero-Copy, AV1 B-Frames และ Frame-Accurate Seekความต้องการวิดีโอคุณภาพสูงเพิ่มขึ้นอย่างต่อเนื่องในทุกอุตสาหกรรม ตั้งแต่ประสบการณ์สตรีมมิ่งที่สมจริงไปจนถึงเครื่องมือสร้างสรรค์สื่อด้วย AI และการส่งมอบคอนเทนต์ขนาดใหญ่ เบื้องหลังประสบการณ์เหล่านี้คือความต้องการที่เพิ่มขึ้นสำหรับไปป์ไลน์วิดีโอที่เร็วขึ้น มีประสิทธิภาพมากขึ้น และสามารถจัดการกับรูปแบบและเวิร์กโหลดที่ซับซ้อนขึ้นเรื่อยๆ NVIDIA Video Codec SDK คือเครื่องมือสำคัญที่ช่วยให้นักพัฒนาตอบสนองความท้าทายเหล่านี้ได้ ด้วยการเข้าถึงการเข้ารหัสและถอดรหัสวิดีโอที่เร่งความเร็วด้วย GPU ผ่านฮาร์ดแวร์วิดีโอเฉพาะของ NVIDIAล่าสุด NVIDIA Video Codec SDK 13.1 ได้เปิดตัวพร้อมฟีเจอร์ใหม่ที่น่าสนใจมากมาย ซึ่งจะช่วยยกระดับประสิทธิภาพและความยืดหยุ่นในการทำงานกับวิดีโอของคุณฟีเจอร์ใหม่ที่น่าจับตาใน SDK 13.1SDK 13.1 นำเสนอการปรับปรุงที่สำคัญหลายประการ ดังนี้AV1 Hierarchical Reference Mode พร้อม B-frames สูงสุด 31 เฟรม: เพิ่มคุณภาพการเข้ารหัส AV1 ได้อย่างมีนัยสำคัญUHQ tuning info ผสานกับการเข้ารหัสแบบวนซ้ำ (Iterative Encoding): เพื่อการปรับปรุงคุณภาพและประสิทธิภาพที่ดียิ่งขึ้นสถิติแบบต่อมาโครบล็อก (Per-macroblock statistics) สำหรับการถอดรหัส H.264 และ HEVC: ช่วยในการวิเคราะห์วิดีโอด้วย GPUข้อมูลมุมมอง (View information) ระหว่างการถอดรหัส MV-HEVC: รองรับการจัดการวิดีโอสเตอริโอที่ดียิ่งขึ้นการค้นหาเฟรมแม่นยำ (Seek to a specific frame): เข้าถึงเฟรมที่ต้องการได้อย่างรวดเร็วและแม่นยำCUarray ที่จัดสรรโดยแอปพลิเคชันเป็นอินพุต NVENC และเอาต์พุต NVDEC: รองรับ Zero-Copy Transcodeตัวอย่าง Transcoder ที่ออกแบบใหม่: ด้วยสถาปัตยกรรมแบบโมดูลาร์และคิวเบสสภาพแวดล้อมการพัฒนาอย่างเป็นทางการบน Docker: ช่วยให้การติดตั้งและใช้งานง่ายขึ้นเหตุผลที่ AV1 Hierarchical Reference Mode สำคัญการใช้ B-frames เป็นเฟรมอ้างอิงช่วยเพิ่มคุณภาพการเข้ารหัส และ Hierarchical Reference Mode ก็ช่วยยกระดับคุณภาพนั้นไปอีกขั้น ด้วยการจัดเรียง B-frames ในโครงสร้างแบบต้นไม้ (Tree-like reference structure) ทำให้ NVENC สามารถเพิ่มจำนวน B-frames สูงสุดจาก 7 เป็น 31 เฟรม ซึ่งช่วยให้การเข้ารหัสใช้ประโยชน์จากความซ้ำซ้อนของเวลา (Temporal redundancy) ได้ดียิ่งขึ้น และปรับปรุงคุณภาพโดยรวม โดยที่ ไม่มีผลกระทบต่อประสิทธิภาพ แต่จะมีการใช้หน่วยความจำวิดีโอสูงขึ้นSDK 13.1 รองรับ Hierarchical Reference Mode สำหรับ AV1 โดยสามารถตั้งค่า B-frames ได้ 1, 3, 7, 15 และ 31 เฟรม ซึ่งโหมดนี้จะมีประสิทธิภาพสูงสุดเมื่อใช้ B-frames ตั้งแต่ 7 เฟรมขึ้นไป และมีผลกระทบต่อประสิทธิภาพน้อยมากUHQ tuning info ผสานกับ Iterative EncodingIterative encoding ที่มีมาตั้งแต่ SDK 12.1 ช่วยให้นักพัฒนาสามารถเข้ารหัสเฟรมเดียวกันใหม่ด้วยพารามิเตอร์ที่แตกต่างกันได้ ในขณะที่ UHQ tuning info (มีมาตั้งแต่ SDK 12.2) จะรวมเอา lookahead level และ temporal filtering เข้าด้วยกัน เพื่อให้ได้สมดุลระหว่างคุณภาพและประสิทธิภาพที่ดีที่สุดสำหรับการเข้ารหัสที่ยอมรับความหน่วงได้ (Latency-tolerant encoding)การผสาน UHQ tuning info เข้ากับ iterative encoding ในเวอร์ชัน 13.1 นี้ ทำให้ lookahead level และ temporal filtering สามารถทำงานร่วมกับการเข้ารหัสใหม่ในแต่ละรอบได้ดียิ่งขึ้นสถิติแบบต่อมาโครบล็อกสำหรับการถอดรหัสNVDECODE API ใน SDK 13.1 สามารถดึงข้อมูลสถิติแบบละเอียดต่อมาโครบล็อก (16x16 บล็อก) สำหรับเฟรมที่ถอดรหัส H.264 และ HEVC ได้ ข้อมูลเหล่านี้รวมถึง Luma quantization parameter (QP), ประเภทของ Coding Unit (Intra, Inter, Skip, PCM) และ Motion vectors สูงสุดสองตัว โดยข้อมูลเหล่านี้ถูกดึงออกมาโดยอัตโนมัติจากการถอดรหัสด้วยฮาร์ดแวร์ โดยไม่มีภาระเพิ่มเติมต่อ CPUสถิติเหล่านี้เปิดโอกาสให้เวิร์กโฟลว์การวิเคราะห์วิดีโอที่เร่งความเร็วด้วย GPU ซึ่งก่อนหน้านี้ต้องอาศัยการแยกวิเคราะห์บิตสตรีมบน CPU Motion vectors สามารถนำไปใช้ในการตรวจจับการเปลี่ยนแปลงฉาก (Scene-change detection), การติดตามวัตถุ (Object tracking) และการวิเคราะห์ขอบเขตช็อต (Shot-boundary analysis) ส่วนค่า QP จะแสดงภาพคุณภาพการเข้ารหัสในแต่ละบล็อกเพื่อการปรับปรุง bitrate แบบปรับอัตโนมัติ (Adaptive bitrate optimization) และการตรวจสอบคุณภาพการค้นหาเฟรมแม่นยำ (Frame-Accurate Seek)สำหรับเวิร์กโฟลว์ AI เช่น การอนุมาน (Inference) สำหรับการตรวจจับวัตถุ การกลั่นกรองเนื้อหา หรือการสรุปวิดีโอ รวมถึงการเตรียมข้อมูลสำหรับการฝึกฝนโมเดล AI มักต้องการเฟรมที่เฉพาะเจาะจง ไม่ใช่การถอดรหัสตามลำดับ การตัดต่อวิดีโอและการผลิตหลังการถ่ายทำแบบไม่เป็นเชิงเส้น (Non-linear post-production) ก็มีความต้องการในลักษณะเดียวกันNVIDIA Video Codec SDK 13.1 ได้เพิ่ม API ที่ครอบคลุมสำหรับการค้นหาและการเข้าถึงเฟรมแบบสุ่ม (Random-frame-access) ผ่านคลาส NvVideoDecoder ทำให้การเข้าถึงเฟรมที่แม่นยำทำได้ง่ายเหมือนการเข้าถึงข้อมูลในอาร์เรย์ โดยจะดึงเฉพาะเฟรมที่คุณต้องการเท่านั้นสถาปัตยกรรม GOPhttps://developer.nvidia.com/blog/nvidia-video-codec-sdk-13-1-zero-copy-transcode-av1-b-frames-and-frame-accurate-seek/
Shared content
DEVELOPER.NVIDIA.COM
NVIDIA Video Codec SDK 13.1: Zero-Copy Transcode, AV1 B-Frames, and Frame-Accurate Seek
The demand for high-quality video continues to accelerate across industries, powering everything from immersive streaming experiences to remote collaboration, generative AI media tools…
7 Comments 0 Shares 207 Views 0 Reviews