以前都不知道這些名詞到底在幹嘛,只知道要裝 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 相容層