Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(117)

Issue 2400033004: cc: custom bilinear filtering for YUV quad.

Created:
4 years, 2 months ago by dshwang
Modified:
4 years, 1 month ago
CC:
chromium-reviews, posciak+watch_chromium.org, cc-bugs_chromium.org
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

cc: custom bilinear filtering for YUV quad. YUV quad needs a custom bilinear filter because U plane can be smaller than Y plane. For example, look at the following figures. When the current fragment samples the middle point of (2, 2) texel of Y texture, it points out upper left of (1, 1) texel of U texture. The default GL_LINEAR samples 4 texels of U plane, while it samples only (2, 2) texel of Y plane. TextureLookupBilinear() samples U plane with Y plane fraction to sample like Y plane. Y 4x4 U 2x2 U sampling by GL_LINEAR +-+-+-+-+ +--+--+ +--+--+ | | | | | | | | | | | +-------+ | | | | +--++ | | | | | +-----+ +-----| +-------+ | |· | | ||·|| | | |·| | | | | | +--+| +-------+ +--+--+ +-----+ | | | | | +-+-+-+-+ BUG=445071, 622133, 660368 TEST=existing cc_unittests. CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel

Patch Set 1 #

Patch Set 2 : fix SAMPLER_TYPE_2D_RECT logic #

Unified diffs Side-by-side diffs Delta from patch set Stats (+195 lines, -26 lines) Patch
M cc/output/gl_renderer.cc View 1 5 chunks +21 lines, -6 lines 0 comments Download
M cc/output/gl_renderer_unittest.cc View 1 1 chunk +17 lines, -1 line 0 comments Download
M cc/output/renderer_pixeltest.cc View 1 2 chunks +14 lines, -7 lines 0 comments Download
M cc/output/shader.h View 1 4 chunks +11 lines, -1 line 0 comments Download
M cc/output/shader.cc View 1 7 chunks +94 lines, -11 lines 0 comments Download
M cc/test/data/intersecting_blue_green_squares_video.png View Binary file 0 comments Download
M cc/test/data/yuv_stripes.png View Binary file 0 comments Download
M cc/test/data/yuv_stripes_alpha.png View Binary file 0 comments Download
M cc/test/data/yuv_stripes_clipped.png View Binary file 0 comments Download
A cc/test/data/yuv_stripes_clipped_highbit.png View Binary file 0 comments Download
A cc/test/data/yuv_stripes_highbit.png View Binary file 0 comments Download
M cc/test/data/yuv_stripes_offset.png View Binary file 0 comments Download
M third_party/WebKit/LayoutTests/TestExpectations View 1 1 chunk +38 lines, -0 lines 0 comments Download

Messages

Total messages: 23 (13 generated)
dshwang
I found bluring bug of YUV quad drawing. It's why we see unnecessary bluring in ...
4 years, 2 months ago (2016-10-07 17:53:55 UTC) #5
hubbe
On 2016/10/07 17:53:55, dshwang wrote: > I found bluring bug of YUV quad drawing. It's ...
4 years, 2 months ago (2016-10-07 18:12:00 UTC) #6
dshwang
On 2016/10/07 18:12:00, hubbe wrote: > On 2016/10/07 17:53:55, dshwang wrote: > > I found ...
4 years, 2 months ago (2016-10-10 11:08:58 UTC) #10
dshwang
On 2016/10/10 11:08:58, dshwang wrote: > On 2016/10/07 18:12:00, hubbe wrote: > > On 2016/10/07 ...
4 years, 2 months ago (2016-10-10 11:16:26 UTC) #11
hubbe
On 2016/10/10 11:16:26, dshwang wrote: > On 2016/10/10 11:08:58, dshwang wrote: > > On 2016/10/07 ...
4 years, 2 months ago (2016-10-10 17:36:47 UTC) #17
dshwang
On 2016/10/10 17:36:47, hubbe wrote: > Imagine that U/V were the only textures. Would you ...
4 years, 2 months ago (2016-10-10 18:03:41 UTC) #18
hubbe
On 2016/10/10 18:03:41, dshwang wrote: > On 2016/10/10 17:36:47, hubbe wrote: > > Imagine that ...
4 years, 2 months ago (2016-10-10 18:21:40 UTC) #19
dshwang
On 2016/10/10 18:21:40, hubbe wrote: > On 2016/10/10 18:03:41, dshwang wrote: > > On 2016/10/10 ...
4 years, 2 months ago (2016-10-10 18:52:58 UTC) #20
hubbe
On 2016/10/10 18:52:58, dshwang wrote: > On 2016/10/10 18:21:40, hubbe wrote: > > On 2016/10/10 ...
4 years, 2 months ago (2016-10-10 19:26:03 UTC) #21
fbarchard1
4 years, 1 month ago (2016-10-28 23:27:29 UTC) #22
Some general comments:
Subsampling is codec specific: mpeg2 is different than h264 etc.
Subsampling and scaling may want different methods.  May want to upsample the
chroma to a temporary buffer using a codec/subsampling specific method, then
render with a high quality resampler.
libyuv YUV420 to RGB is point sampled on chroma.

Powered by Google App Engine
This is Rietveld 408576698