On Fri, Jul 3, 2015 at 7:22 PM, Mark yao <mark.yao at rock-chips.com> wrote: > On 2015å¹´07æ03æ¥ 17:58, Tomasz Figa wrote: >>>> >>>> >>Aren't the scl_modes for CbCr planes always the same as for Y plane? >>> >>> > >>> > >>> >No, such as src(1920 x 1080) -> dst(1280x800), yuv format is NV12. >>> >so Y plane horizontal and vertical is scale down. >>> > >>> >but src_w = 1920 / 2 = 960 < 1280 >>> > src_h = 1080 / 2 = 540 < 800. >>> > >>> >So Cbcr horizontal and vertical is scale up. >> >> Sorry, I don't follow. >> >> If we scale down Y plane in NV12 from 1920x1080 to 1280x800, then >> original CbCr plane will be 960x540 and destination CbCr plane will be >> 640x400 (because CbCr plane of NV12 is subsampled 2x2, which is half >> the width and half the height of Y plane), so both planes are being >> scaled down. >> > destination CbCr plane is 1280x800, destination can't be subsample.
Ah, I see, so internally it's always scalling to destination plane size. This means that calculation for both Y and CbCr must be done indeed, but even then you could use helper functions for that, since they differ only in parameters. Best regards, Tomasz