以前都不知道這些名詞到底在幹嘛,只知道要裝 XXOO 畫面才會正常,花了點時間記錄一下這些東東到底是什麼。
Graphic Computing API
OpenGL
OpenGL Window System Interface
- GLX: X Window System
- WGL: Windows
- AGL: Apple
- EGL: Embeded System
Vulkan
取代 OpenGL 的下一代 API
DirectX
Microsoft Windows 專用
Metal
Apple iOS & macOS 專用
Video/Image Encoding
AV1 壓縮效率血虐 AVC、JPEG 和 PNG,軟解函式庫已經成熟,硬解的 GPU 逐漸普及,五大平台瀏覽器都支援,YouTube 新影片也開始採用 AV1 編碼,不知道選哪種編碼就選香香的 AV1 與 AVIF 吧!
Advanced Video Coding (AVC)
aka H.264 aka MPEG-4 Part 10
High Efficiency Video Coding (HEVC)
aka H.265 aka MPEG-H Part 2
取代 AVC
VP9
Google 推出的視訊編碼,取代 HEVC
AOMedia Video 1 (AV1)
開放、免授權費的視訊編碼,取代 VP9
JPEG
熟悉到不用說明了吧 :)
PNG
熟悉到不用說明了吧 :)
WebP
Google 推出的影像編碼,取代 JPEG 與 PNG
HEIC
HEVC 影像版,Apple 愛用
AVIF
AV1 影像版
Video Acceleration API
- Video Acceleration API (VA-API)
Intel - Video Decode and Presentation API for Unix (VAPDU)
Nvidia - Advanced Media Framework (AMF)
AMD 專用 - Nvidia NVENC/NVDEC
Nvidia 專用 - DirectX Video Acceleration (DXVA)
Microsoft Windows 專用
實作
Mesa
實作一大堆 API 的大雜燴
- OpenGL
- OpenCL
- OpenMax
- OpenGL ES
- Vulkan
- VA-API
- VAPDU
Zink
Vulkan 的 OpenGL 相容層
視窗系統協定
X Window System
Client-server 架構的視窗系統
Wayland
- Client-side rendering: 渲染、繪製改由 client 負責
- Window Isolation: 視窗不能存取其它視窗(e.g. 在 A 視窗按下鍵盤,B 視窗不會收到)
Xwayland
以 Wayland 實作的 X window system 相容層