katepanping / libyuv

Automatically exported from code.google.com/p/libyuv
BSD 3-Clause "New" or "Revised" License
0 stars 0 forks source link

YUV scaler with conversion #240

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Currently its a 2 step process to scale and convert.
Implement a YUV to ARGB scaling function.

The primary use case is rendering related, so it would focus on
1. upsampling.  but still work on down sampling.
2. bilinear.  but point sampling should be free.
3. I420 To ARGB.  but other formats should work.  3 plane to single plane.
4. clipping
5. mirroring.  vertically for upside down images, and horizontal for self view.

The low level functions should already be done.  Leverage existing conversion 
and scaling.

If internally done as convert and then scale, a downside is subsampling and 
bilinear cause more blur on chroma than a specialized scale.
To test quality tradeoff, scale YUV to destination size as 444 and convert 444 
to ARGB.

The util/convert supports YUV to ARGB with scaling - adapt the tool to do one 
step.

Original issue reported on code.google.com by fbarch...@google.com on 31 May 2013 at 6:55

GoogleCodeExporter commented 9 years ago
Sounds great - thanks for looking at this, Frank.

Original comment by wez@chromium.org on 31 May 2013 at 7:54

GoogleCodeExporter commented 9 years ago
r726 adds low level upsampler and high level prototype.

Original comment by fbarch...@google.com on 14 Jun 2013 at 4:12

GoogleCodeExporter commented 9 years ago
Bumping priority to high to reflect this is a top concern

Original comment by fbarch...@chromium.org on 23 Jul 2013 at 9:34

GoogleCodeExporter commented 9 years ago
Additional requirement - support ABGR.

Original comment by fbarch...@google.com on 23 Sep 2013 at 6:22

GoogleCodeExporter commented 9 years ago
Suggest also doing a scale post process function which takes ARGB and does 
something.  Eg. a blend.

Original comment by fbarch...@google.com on 13 Oct 2013 at 3:03

GoogleCodeExporter commented 9 years ago
No recent work, so returning this to new/medium priority.
mid level function is implemented.
work is being done on scale functions - any, neon 64 and avx2 optimizations.

Original comment by fbarch...@chromium.org on 3 Apr 2015 at 11:50