add and bless AV1 video encoding/decoding package #998
Labels
No labels
CI
all
basisu
blog
bug
build
contributor-friendly
core
correctness
deferred
dev
direct3d-headers
docs
driver-os-issue
duplicate
dxcompiler
editor
examples
experiment
feature-idea
feedback
flac
freetype
gamemode
gkurve
glfw
gpu
gpu-dawn
harfbuzz
help welcome
in-progress
infrastructure
invalid
libmach
linux-audio-headers
long-term
mach
mach.gfx
mach.math
mach.physics
mach.testing
model3d
needs-triage
object
opengl-headers
opus
os/linux
os/macos
os/wasm
os/windows
package-manager
priority
proposal
proposal-accepted
question
roadmap
slipped
stability
sysaudio
sysgpu
sysjs
validating-fix
vulkan-zig-generated
wayland-headers
website
wontfix
wrench
www
x11-headers
xcode-frameworks
zig-update
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
hexops/mach#998
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Similar to how we have mach-flac and mach-opus, which are going to be our blessed audio formats, we should have bindings for encoding and decoding AV1 video as our blessed video format.
Do we support hardware encode/decode? Zero-copy when done on the GPU (dma-buf)?
Other interesting compression news. Perhaps AI can be used to achieve a much higher compression ratio than AV1 and other traditional codecs.
https://hexus.net/tech/news/software/146086-nvidia-uses-ai-reduce-video-conferencing-data-use-10x/
When generating video from tools like blender we have the option of creating some compact vector based format that do not need further compression. Simply by not having pre-rendered video and instead rendering it while playing.
It could also be possible to use AI to deconstruct rendered video into a compact vector based format.
Probably we'll go with https://gitlab.com/AOMediaCodec/SVT-AV1 - it looks quite good, C99, has an encoder and decoder, seems fast (built by Intel and Netflix), etc.
Other options either don't offer an encoder (we need one), or would require a C++ and/or Rust compiler.
Most libraries for this I think are software-only currently, AV1 hardware support is not widespread yet. There exist extensions for Vulkan, Metal, and d3d12 that we can leverage long-term, but this will need to be done in sysgpu as an extension/optional feature until hardware support is broad enough.