Scalable encoder project
Go to file
2023-08-11 04:01:35 +02:00
build Enable static builds, go1.21 2023-08-10 04:46:39 +02:00
cli/encode-libaom support y4m.xz on frameserver, accept external csv with frames 2023-08-11 04:01:35 +02:00
color Cleanup and add samples for tests, decode .y4m.xz streams 2023-08-10 12:44:17 +02:00
decoder Test monochrome encoding 2023-08-10 19:01:39 +02:00
encoder x264: add build 2023-08-10 19:23:26 +02:00
frame support y4m.xz on frameserver, accept external csv with frames 2023-08-11 04:01:35 +02:00
testdata Test monochrome encoding 2023-08-10 19:01:39 +02:00
utilities support y4m.xz on frameserver, accept external csv with frames 2023-08-11 04:01:35 +02:00
.dockerignore Cleanup and add samples for tests, decode .y4m.xz streams 2023-08-10 12:44:17 +02:00
.drone.yml Enable static builds, go1.21 2023-08-10 04:46:39 +02:00
.gitignore Initial commit: utilities, y4m parser, x264 encoder 2022-09-14 21:43:20 +02:00
go.mod Cleanup and add samples for tests, decode .y4m.xz streams 2023-08-10 12:44:17 +02:00
go.sum Cleanup and add samples for tests, decode .y4m.xz streams 2023-08-10 12:44:17 +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.