อ่าน 8 นาที
วีดีพียู
Video Decode and Presentation API for Unix ( VDPAU ) เป็น อินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน (API) ที่ไม่มีค่าลิขสิทธิ์รวมถึงการใช้งานในรูปแบบ ไลบรารีโอ เพนซอร์สฟรี ( libvdpau...
วีดีพียู
| วีดีพียู | |
|---|---|
| ผู้เขียนต้นฉบับ | เอ็นดีวีดี |
| นักพัฒนา | ฟรีเดสก์ท็อป.org |
| ปล่อย | 17 กันยายน พ.ศ. 2552 [ 1 ] |
| เวอร์ชันเสถียร | |
| เขียนเป็น | ซี , ซี++ |
| ระบบปฏิบัติการ | ข้ามแพลตฟอร์ม |
| พิมพ์ | |
| ใบอนุญาต | ใบอนุญาต MIT |
| เว็บไซต์ | www |
Video Decode and Presentation API for Unix ( VDPAU ) เป็น อินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน (API) ที่ไม่มีค่าลิขสิทธิ์รวมถึงการใช้งานในรูปแบบไลบรารีโอเพนซอร์สฟรี ( libvdpau ) ที่เผยแพร่ภายใต้ใบอนุญาต MIT [ 1 ] VDPAU ยังได้รับการสนับสนุนจากNvidia อีก ด้วย [ 3 ]
อินเทอร์เฟซ VDPAU จะถูกนำไปใช้งานโดยไดรเวอร์อุปกรณ์เช่นไดรเวอร์ Nvidia GeForce , nouveauหรือamdgpuเพื่อให้ซอฟต์แวร์สำหรับผู้ใช้ปลายทาง เช่นโปรแกรมเล่นมีเดีย VLCหรือGStreamerสามารถเข้าถึง ฮาร์ดแวร์เร่งความเร็ว การบีบอัดวิดีโอ ที่มีอยู่ได้อย่างเป็นมาตรฐาน ในรูปแบบของ บล็อก วงจรรวมเฉพาะแอปพลิเคชัน (ASIC) บนหน่วยประมวลผลกราฟิก (GPU) เช่นPureVideo ของ Nvidia หรือUnified Video Decoder ของ AMDและใช้งานได้
VDPAU มุ่งเป้าไปที่ระบบปฏิบัติการที่คล้าย Unix (รวมถึงLinux , FreeBSDและSolaris ) [ 4 ] [ 5 ] [ 6 ]
ช่วงการทำงานของอินเทอร์เฟซ
VDPAU อนุญาตให้โปรแกรมวิดีโอเข้าถึง ASIC ถอดรหัสวิดีโอเฉพาะบน GPU เพื่อถ่ายโอนส่วนต่าง ๆ ของ กระบวนการ ถอดรหัสวิดีโอและการประมวลผลวิดีโอภายหลังจากCPUไปยัง GPU [ 7 ]
ปัจจุบัน ส่วนต่างๆ ที่สามารถถ่ายโอนโดย VDPAU ไปยัง GPU ได้แก่การชดเชยการเคลื่อนไหว (mo comp), การแปลงโคไซน์แบบไม่ต่อเนื่องผกผัน (iDCT), VLD (การถอดรหัสความยาวตัวแปร)และการลดบล็อกสำหรับวิดีโอที่เข้ารหัส MPEG-1 , MPEG-2 , MPEG-4 ASP (MPEG-4 Part 2) , H.264/MPEG-4 AVCและVC-1 , WMV3 / WMV9 [ 4 ]ตัวแปลงสัญญาณเฉพาะใดบ้างที่สามารถถ่ายโอนไปยัง GPU ได้นั้นขึ้นอยู่กับรุ่นของฮาร์ดแวร์ GPU
ประวัติศาสตร์
VDPAU ได้รับการออกแบบโดย Nvidia สำหรับบล็อก PureVideo SIPที่มีอยู่ในGeForce 8 seriesและ GPU รุ่นต่อมา[ 8 ]
เมื่อวันที่ 9 มีนาคม 2558 Nvidia ได้ออก VDPAU เวอร์ชัน 1.0 ซึ่งรองรับ การถอดรหัส High Efficiency Video Coding (HEVC) สำหรับโปรไฟล์ Main, Main 4:4:4, Main Still Picture, Main 10 และ Main 12 [ 9 ]
ไดรเวอร์อุปกรณ์และตัวควบคุมวิดีโอที่ใช้ VDPAU
VDPAU ถูกนำไปใช้ในไดรเวอร์อุปกรณ์ซอฟต์แวร์X11แต่ต้องอาศัยคุณสมบัติการเร่งความเร็วใน GPU ฮาร์ดแวร์ การ์ดกราฟิก Nvidia ทั้งหมดที่ไดรเวอร์ใช้ VDPAU จะแสดงอยู่ในNvidia PureVideo [ 10 ] S3 Graphicsได้เพิ่ม VDPAU ลงในไดรเวอร์ Linux ของการ์ดวิดีโอChrome 400 ของพวกเขา ตั้งแต่เวอร์ชัน 14.02.17 ของไดรเวอร์อุปกรณ์ Linux VDPAU สามารถใช้งานได้กับฮาร์ดแวร์ S3 Chrome 430 GT, S3 Chrome 440 GTX, S3 Chrome 530 GT และ S3 Chrome 540 GTX [ 11 ] ATI/AMDได้ปล่อยไดรเวอร์โอเพนซอร์สสำหรับการ์ดกราฟิก Radeon HD 4000+ ที่มีการเร่งความเร็ว VDPAU [ 12 ] [ 13 ] [ 14 ] Intelไม่ได้เสนอไดรเวอร์ VDPAU พวกเขาสนับสนุนเฉพาะVA-API ของพวกเขาเท่านั้น อย่างไรก็ตาม เป็นไปได้ที่จะใช้ไดรเวอร์ VA-API ของ Intel ผ่านทางlibvdpau-va- gl Nvidia หวังว่านักออกแบบ GPU รายอื่นจะทำให้ผลิตภัณฑ์ของตนเข้ากันได้กับไลบรารี VDPAU แบบโอเพนซอร์ส และจัดหาไดรเวอร์ที่มีการเร่งความเร็ว VDPAU โดยกล่าวถึงชื่อตัวอย่างของไดรเวอร์เฉพาะฮาร์ดแวร์สำหรับ Intel และ ATI: libvdpau_intel.so และ libvdpau_ati.so [ 15 ] Intel ระบุว่าพวกเขากำลังพิจารณา VDPAU [ 16 ] SoCของ sunxi ( Allwinner ) มีการใช้งาน VDPAU แบบทดลอง[ 17 ] Mesaเวอร์ชัน 8.0 มี VDPAU สำหรับการ์ดแสดงผลที่ใช้ Gallium3D
ไดรเวอร์ VDPAU ทั่วไป
ณ ปลายปี 2013 มีไดรเวอร์แบ็กเอนด์ที่พัฒนาโดยอิสระซึ่งใช้OpenGL (สำหรับการวาดและการปรับขนาด) และ VA-API หากมี (สำหรับการถอดรหัส) [ 18 ]มีรายงานว่าใช้งานได้กับกราฟิก Intel บางรุ่น และAdobe Flash Player [ 19 ]
การปรับขนาดภาพแบบเร่งความเร็วด้วยฟังก์ชัน OpenGL เพียงอย่างเดียวมีความจำเป็นส่วนใหญ่เนื่องจาก Flash Player ซึ่งใช้การปรับขนาดภาพแบบไม่เร่งความเร็วหาก VDPAU ไม่พร้อมใช้งาน ซอฟต์แวร์วิดีโออื่นๆ เกือบทั้งหมดที่ทำงานบน Linux หรือFreeBSDรองรับXvสิ่งนี้มีความสำคัญอย่างยิ่งสำหรับวิดีโอแบบเต็มหน้าจอในคอมพิวเตอร์ที่มีประสิทธิภาพต่ำกว่าและไม่มีการรองรับ VDPAU ในตัว
การแปลง VDPAU เป็น VA-API สำหรับการถอดรหัสฮาร์ดแวร์นั้นมีประโยชน์สำหรับฮาร์ดแวร์กราฟิก Intel รุ่นใหม่ๆ เนื่องจากซอฟต์แวร์บางตัวรองรับการถอดรหัสฮาร์ดแวร์ผ่าน VDPAU แต่ไม่รองรับ VA-API
ซอฟต์แวร์ที่รองรับ VDPAU
- Avidemuxเวอร์ชัน 2.6
- บ็อกซี[ 20 ]
- FFmpeg
- GStreamer [ 21 ]
- ฟลูเอนโด
- เอ็มพีเลเยอร์
- MythTV [ 22 ]
- Kodi (เดิมชื่อ XBMC) [ 23 ] [ 24 ] [ 25 ] [ 26 ]
- ซีน[ 27 ] [ 28 ]
- MLT [ 29 ]
- Adobe Flash 10.2 Stage Videoและเวอร์ชันที่ใหม่กว่า[ 30 ]
- VLC media player 2.1
- mpv [ 31 ]
VDPAU ยังสามารถใช้เป็นแบ็กเอนด์สำหรับVA-APIและOpenMAX ILซึ่งครอบคลุมความสามารถย่อยของ VDPAU ดังนั้นซอฟต์แวร์ใดๆ ที่ใช้ VA-API หรือ OpenMAX IL ก็สามารถใช้ VDPAU ได้บางส่วนเช่นกัน (เช่น โปรแกรมเล่นมีเดีย VLC) [ 32 ]
ชุดคุณสมบัติ Nvidia VDPAU
ชุดคุณสมบัติ Nvidia VDPAU [ 33 ]คือ GPU รุ่นฮาร์ดแวร์ที่แตกต่างกันซึ่งรองรับความสามารถในการถอดรหัสฮาร์ดแวร์ (Nvidia PureVideo) ในระดับต่างๆ สำหรับชุดคุณสมบัติ A, B และ C ความกว้างและความสูงของวิดีโอสูงสุดคือ 2048 พิกเซล ความกว้างและความสูงต่ำสุดคือ 48 พิกเซล และตัวแปลงสัญญาณทั้งหมดในปัจจุบันถูกจำกัดไว้ที่ มาโครบล็อกสูงสุด 8192 บล็อก (8190 สำหรับ VC-1/WMV9) การเร่งความเร็วบางส่วนหมายความว่า การถอดรหัส VLD (บิตสตรีม) จะดำเนินการบน CPU โดยที่ GPU จะดำเนินการเฉพาะIDCTการชดเชยการเคลื่อนไหวและการลดการบล็อก เท่านั้น การเร่งความเร็วอย่างสมบูรณ์หมายความว่า GPU จะดำเนินการ VLD, IDCT, การชดเชยการเคลื่อนไหว และการลดการบล็อกทั้งหมด
- ชุดคุณสมบัติ A
- รองรับการเร่งความเร็วแบบเต็มรูปแบบสำหรับH.264 และการเร่งความเร็วบางส่วนสำหรับMPEG-1 , MPEG-2 , VC-1 / WMV9
- ชุดคุณสมบัติ B
- รองรับการเร่งความเร็วอย่างสมบูรณ์สำหรับ MPEG-1, MPEG-2, VC-1/WMV9 และ H.264
- โปรดทราบว่าฮาร์ดแวร์ Feature Set B ทั้งหมดไม่สามารถถอดรหัส H.264 สำหรับความกว้างต่อไปนี้ได้: 769-784, 849-864, 929-944, 1009-1024, 1793-1808, 1873-1888, 1953-1968, 2033-2048 พิกเซล
- ชุดคุณสมบัติ C
- รองรับการเร่งความเร็วอย่างสมบูรณ์สำหรับ MPEG-1, MPEG-2, MPEG-4 Part 2 (หรือที่รู้จักในชื่อ MPEG-4 ASP) , VC-1/WMV9 และ H.264
- ระบบชดเชยการเคลื่อนไหวทั่วโลกและการแบ่งพาร์ติชันข้อมูลไม่ได้รับการสนับสนุนสำหรับ MPEG-4 Part 2
- ชุดคุณสมบัติ D
- คล้ายกับชุดคุณสมบัติ C แต่เพิ่มการรองรับการถอดรหัส H.264 ที่ความละเอียดสูงสุด 4032 × 4080 พิกเซล และ MPEG-1/MPEG-2 ที่ความละเอียดสูงสุด 4032 × 4048 พิกเซล
- ชุดคุณสมบัติ E
- คล้ายกับชุดคุณสมบัติ D แต่เพิ่มการรองรับการถอดรหัส H.264 ด้วยความละเอียดสูงสุด 4096 × 4096 และ MPEG-1/MPEG-2 ด้วยความละเอียดสูงสุด 4080 × 4080 พิกเซล GPU ที่มีชุดคุณสมบัติ VDPAU E รองรับโหมดการปกปิดข้อผิดพลาดที่ได้รับการปรับปรุง ซึ่งให้การจัดการข้อผิดพลาดที่แข็งแกร่งยิ่งขึ้นเมื่อถอดรหัสสตรีมวิดีโอที่เสียหาย[ 34 ]
- ชุดคุณสมบัติ F
- แนะนำ การถอดรหัสวิดีโอ HEVC Main (8 บิต), Main 10 (10 บิต) และ VP9 Profile 0 (8 บิต) เฉพาะสำหรับความละเอียดสูงสุด 4096 × 2304 พิกเซล[ 35 ]
- ชุดคุณสมบัติ G
- เพิ่มการสนับสนุนฮาร์ดแวร์สำหรับการถอดรหัสวิดีโอ HEVC Main 12 (12 บิต) และ VP9 Profile 2 (12 บิต) [ 35 ]
- ชุดคุณสมบัติ H
- ชุดคุณสมบัติ H สามารถถอดรหัสสตรีมวิดีโอ H.265/HEVC ขนาด 8192x8192 (ความละเอียด 8k) ด้วยการเร่งความเร็วฮาร์ดแวร์ได้[ 36 ]
- ชุดคุณสมบัติ I
- คล้ายกับชุดคุณลักษณะ H [ 35 ]
- ชุดคุณสมบัติ J
- ชุดคุณสมบัติ J เพิ่มการรองรับการถอดรหัส HEVC 444 [ 35 ]
- ชุดคุณสมบัติ K
- ชุดคุณสมบัติ K สามารถถอดรหัสสตรีมวิดีโอ AV1 MAIN Profile ขนาด 8192x8192 (ความละเอียด 8k) โดยใช้ฮาร์ดแวร์เร่งความเร็วได้[ 35 ]
libvdpau ไลบรารี VDPAU แบบสแตนด์อโลน
ไลบรารี VDPAU แบบสแตนด์อโลน libvdpau ถูกแจกจ่ายโดย Nvidia อย่างอิสระจากไดรเวอร์กราฟิก Linux ที่เป็นกรรมสิทธิ์ของพวกเขา เพื่อช่วยให้ผู้ที่อยู่นอก Nvidia สามารถนำ VDPAU ไปใช้ได้ ไลบรารีโอเพนซอร์สนี้ประกอบด้วยไลบรารี wrapper และไลบรารี debugging ซึ่งช่วยให้ผู้ผลิตรายอื่นสามารถนำ VDPAU ไปใช้ในไดรเวอร์อุปกรณ์ของตนได้[ 8 ] [ 37 ] [ 38 ] [ 39 ]
ดูเพิ่มเติม
- เพียววิดีโอ
- ตัวถอดรหัสวิดีโอแบบรวม
- DirectX Video Acceleration (DXVA) – API ที่เทียบเท่ากับ VDPAU สำหรับระบบปฏิบัติการMicrosoft Windows
- Video Acceleration API (VA API) – API ทางเลือกสำหรับการเร่งความเร็ววิดีโอสำหรับระบบปฏิบัติการ Linux/UNIX
- X-Video Bitstream Acceleration (XvBA) – API ทางเลือกสำหรับการเร่งความเร็ววิดีโอสำหรับระบบปฏิบัติการ Linux/UNIX
- X-Video Motion Compensation (XvMC) API – API เร่งความเร็ววิดีโอทางเลือกและเก่าแก่ที่สุดสำหรับระบบปฏิบัติการ Linux/UNIX
- Distributed Codec Engine (libcde)คือ API ของ Texas Instrumentsสำหรับกลไกการแปลงสัญญาณวิดีโอในระบบฝังตัวที่ใช้OMAP
- Video Decode Acceleration Frameworkคือ API ของ Apple Inc.สำหรับการถอดรหัส H.264 ด้วยการเร่งความเร็วฮาร์ดแวร์บนMac OS X
- VideoToolboxเป็น API จากApple Inc.สำหรับการถอดรหัสแบบเร่งความเร็วด้วยฮาร์ดแวร์บนApple TVและMac OS X [ 40 ]
- OpenMAX IL (Open Media Acceleration Integration Layer) - API สำหรับการประมวลผลสื่อข้ามแพลตฟอร์มแบบไม่เสียค่าลิขสิทธิ์ จากKhronos Group
ลิงก์ภายนอก
- VDPAU (Video Decode and Presentation API for Unix) โดย Nvidia
- ผลการทดสอบประสิทธิภาพ NVIDIA VDPAU
- ส่วนหลังของ NVIDIA VDPAU สำหรับ VA-API ของ Intel
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ วีดีพียู
Video Decode and Presentation API for Unix ( VDPAU ) เป็น อินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน (API) ที่ไม่มีค่าลิขสิทธิ์รวมถึงการใช้งานในรูปแบบ ไลบรารีโอ เพนซอร์สฟรี ( libvdpau...
ช่วงการทำงานของอินเทอร์เฟซ
VDPAU อนุญาตให้โปรแกรมวิดีโอเข้าถึง ASIC ถอดรหัสวิดีโอเฉพาะบน GPU เพื่อถ่ายโอนส่วนต่าง ๆ ของ กระบวนการ ถอดรหัสวิดีโอ และ การประมวลผลวิดีโอภายหลัง จาก CPU ไปยัง GPU [ 7 ]
ประวัติศาสตร์
VDPAU ได้รับการออกแบบโดย Nvidia สำหรับ บล็อก PureVideo SIP ที่มีอยู่ใน GeForce 8 series และ GPU รุ่นต่อมา [ 8 ]
ไดรเวอร์อุปกรณ์และตัวควบคุมวิดีโอที่ใช้ VDPAU
VDPAU ถูกนำไปใช้ใน ไดรเวอร์อุปกรณ์ ซอฟต์แวร์ X11 แต่ต้องอาศัยคุณสมบัติการเร่งความเร็วใน GPU ฮาร์ดแวร์ การ์ดกราฟิก Nvidia ทั้งหมดที่ไดรเวอร์ใช้ VDPAU จะแสดงอยู่ใน Nvidia PureVideo [ 10 ] S3 Graphics ได้เพิ่ม VDPAU ลงในไดรเวอร์ Linux ของการ์ด วิดีโอ Chrome 400...