xpra icon
Bug tracker and wiki

Opened 11 months ago

Last modified 4 months ago

#1310 assigned enhancement

vpx 10-bit colour encoding support

Reported by: Antoine Martin Owned by: Antoine Martin
Priority: major Milestone: 3.0
Component: encodings Version: trunk
Keywords: 10-bit colour vpx Cc:

Description

Follow up from #909, we may want to wait for vp10 to come out too.
The API documentation is very limited but both gstreamer and ffmpeg have support for it - which we could re-use via the enc_ffmpeg encoder (#1107).

Change History (3)

comment:1 Changed 6 months ago by Antoine Martin

libvpx needs to be compiled with --enable-vp9-highbitdepth, CONFIG_VP9_HIGHBITDEPTH should be set and the image formats we can use are "Image uses 16bit framebuffer":

VPX_IMG_FMT_I42016    = VPX_IMG_FMT_I420 | VPX_IMG_FMT_HIGHBITDEPTH
VPX_IMG_FMT_I42216    = VPX_IMG_FMT_I422 | VPX_IMG_FMT_HIGHBITDEPTH
VPX_IMG_FMT_I44416    = VPX_IMG_FMT_I444 | VPX_IMG_FMT_HIGHBITDEPTH
VPX_IMG_FMT_I44016    = VPX_IMG_FMT_I440 | VPX_IMG_FMT_HIGHBITDEPTH

I believe those formats store the the YUV channels in the high 10/12 bits of each 16bit value. Wasting quite a bit of space and requiring a CSC step to go from R210 to this format.. sigh.

Note: vpx now also supports alpha channel: VPX_IMG_FMT_HAS_ALPHA.

Also worth considering colorspace bits (#1155): enum vpx_color_space.

Last edited 6 months ago by Antoine Martin (previous) (diff)

comment:2 Changed 6 months ago by Antoine Martin

Milestone: 3.02.1

Somewhat blocked by rpath issues: #1405

comment:3 Changed 4 months ago by Antoine Martin

Milestone: 2.13.0
Status: newassigned

re-scheduling - the 16-bit per channel reformatting constraint is costly.

Note: See TracTickets for help on using tickets.