Scalable encoder project
Go to file
2023-10-28 00:50:59 +02:00
build Added Load to /status, change Dockerfile build 2023-10-22 03:42:09 +02:00
cli Frame pool, benchmark y4m decoder 2023-10-28 00:50:59 +02:00
color Implemented encode server 2023-10-21 23:00:19 +02:00
decoder Frame pool, benchmark y4m decoder 2023-10-28 00:50:59 +02:00
encoder Properly close dav1d decoder, clone settings map on aom 2023-10-26 07:07:23 +02:00
frame Frame pool, benchmark y4m decoder 2023-10-28 00:50:59 +02:00
testdata Frame pool, benchmark y4m decoder 2023-10-28 00:50:59 +02:00
utilities Frame pool, benchmark y4m decoder 2023-10-28 00:50:59 +02:00
.dockerignore Cleanup and add samples for tests, decode .y4m.xz streams 2023-08-10 12:44:17 +02:00
.drone.yml Update dependencies, bump libaom/dav1d on CI and Dockerfile 2023-10-21 19:02:29 +02:00
.gitignore Initial commit: utilities, y4m parser, x264 encoder 2022-09-14 21:43:20 +02:00
go.mod VFR aware Y4M decoder and encoders 2023-10-26 06:44:41 +02:00
go.sum VFR aware Y4M decoder and encoders 2023-10-26 06:44:41 +02:00
LICENSE Initial commit: utilities, y4m parser, x264 encoder 2022-09-14 21:43:20 +02:00
README.md Test monochrome encoding 2023-08-10 19:01:39 +02:00

Supported

  • y4m pipes
  • Frame tested support for 4:4:4, 4:2:2, 4:2:0. Probably 4:0:0 as well, untested.
  • Frame tested support for 8, 10, 12 bit depth. Probably 14 and 16 as well, untested.
  • VMAF tools
  • IVF reader
  • Frameserver
  • TODO: make list per encoder and decoder.

Bitdepth / subsampling Frame support matrix

Depth/Sampling 4:0:0 4:2:0 4:2:2 4:4:4
8-bit
10-bit ⚠️ ⚠️
12-bit ⚠️ ⚠️ ⚠️
14-bit
16-bit

Legend:

= supported, tested regularly

⚠️ = supported, tested sparsely/manually

= probably supported, not tested

= unsupported

Formats supported

Format Decoder Encoder Notes
YUV4MPEG2 Supports most bitdepth and chroma subsampling. Library limited, not format limited.
Decoding via S.O.N.G/Ignite
H.264 Supports 8-bit and 10-bit; 4:0:0, 4:2:0, 4:2:2, 4:4:4 chroma subsampling.
Encoding via x264 into .h264 bitstream.
H.265
VP9
AV1 Supports 8-bit, 10-bit and 12-bit; 4:0:0, 4:2:0, 4:2:2, 4:4:4 chroma subsampling.
Decoding via dav1d from .ivf bitstream
Encoding via libaom-av1 into .ivf bitstream.

TODO

  • No SAR/PAR handling.
  • No color primary / transfer / matrix coefficients handling.

Build tags

Several Golang build tags exist to change which features are included in the project.

disable_library_[library]

This tag disables support for the specified library dependencies.

Current implemented [library]: libdav1d, libaom, libx264, libvmaf.