Status: Untriaged
Owner: ----
CC:
pe...@chromium.org,
mca...@chromium.org
Labels: Type-Bug Pri-2 Cr-Blink-WebRTC OS-All
New issue 341452 by
mca...@chromium.org: Change video capture transport
colorspace from YUV420 to YV12
http://code.google.com/p/chromium/issues/detail?id=341452
Version: 248706
OS: All
The current video capture colorspace pipeline features an yuv420 (a.k.a
yu12)
[0] transport colorspace, hardcoded in video_capture_controller.cc (VCC).
The
destination of the video frames (the "sink") is either libjingle+libwebrtc
and
ultimately vp8 encoder, or a local <video> compositing . Vp8 encoder is
happy with yu12 whereas compositing uses yv12 [1]. It so happens that
libjingle needs to copy incoming frames and produce some processing on
them.
The proposal would be to use yv12 as default transport colorspace, and
convert yv12->yuv420 in libjingle for the vp8 case. This would also shift
the colorspace conversion CPU cycles to renderer side, relieving the
browser.
Typical android video capture produces yv12 frames, hence one conversion
less in this platform.
Note that the difference between yuv420 and yv12 is just the ordering of
the chroma planes.
Some current colorspace scenarios in video capture follow:
* Typical video camera capturing yuv422, local compositing
camera[yuv422]->browser, convert to yuv420->renderer-><video>, converts to
yv12
* Normal video camera capturing yuv422, vp8 encoding
camera[yuv422]->browser, convert to yuv420->renderer->libjingle copy frame
-> vp8
* Typical android video camera yv12, local compositing.
camera[yv12]->browser, convert to yuv420->renderer-><video> tag, converts
to yv12 again!
With the proposed change:
* Typical video camera capturing yuv422, local compositing
camera[yuv422]->browser, convert to yv12->renderer-><video>, no conversion
needed
* Normal video camera capturing yuv422, vp8 encoding
camera[yuv422]->browser, convert to yv12->renderer->libjingle convert frame
to yuv420 -> vp8
* Typical android video camera yv12, local compositing.
camera[yv12]->browser, no conversion->renderer-><video> tag, converts to
yv12 !
[0]
http://www.fourcc.org/yuv.php#IYUV
[1]
http://www.fourcc.org/yuv.php#YV12
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings