[x265] [PATCH] ipfilter.cpp, setup luma function pointers

Steve Borho steve at borho.org
Fri Oct 18 01:36:05 CEST 2013


On Thu, Oct 17, 2013 at 10:33 AM, <praveen at multicorewareinc.com> wrote:

> # HG changeset patch
> # User Praveen Tiwari
> # Date 1382024008 -19800
> # Node ID 93bef87604902f0ba3b07faf836fdd74d4e847c6
> # Parent  1481908edb21eea0225eb03de0b852921d4c209f
> ipfilter.cpp, setup luma function pointers
>
> diff -r 1481908edb21 -r 93bef8760490 source/common/ipfilter.cpp
> --- a/source/common/ipfilter.cpp        Thu Oct 17 21:00:27 2013 +0530
> +++ b/source/common/ipfilter.cpp        Thu Oct 17 21:03:28 2013 +0530
> @@ -3,6 +3,7 @@
>   *
>   * Authors: Deepthi Devaki <deepthidevaki at multicorewareinc.com>,
>   *          Rajesh Paulraj <rajesh at multicorewareinc.com>
> + *          Praveen Kumar Tiwari <praveen at multicorewareinc.com>
>   *
>   * This program is free software; you can redistribute it and/or modify
>   * it under the terms of the GNU General Public License as published by
> @@ -498,6 +499,39 @@
>  #define SETUP_PARTITION(W, H) \
>      p.chroma_hpp[CHROMA_PARTITION_ ## W ## x ## H] = interp_horiz_pp_c<4,
> W, H>;
>
> +#define SET_LUMA_PRIMITIVE_TABLE_F3(W, H) \
> +    p.luma_hpp[LUMA_PARTITION_ ## W ## x ## H] = interp_horiz_pp_c<8, W,
> H>; \
> +    p.luma_hpp[(LUMA_PARTITION_ ## W ## x ## H) + 1] =
> interp_horiz_pp_c<8, W, (H + 1)>; \
> +    p.luma_hpp[(LUMA_PARTITION_ ## W ## x ## H) + 2] =
> interp_horiz_pp_c<8, (W + 1), H>; \
>

I don't know how many more ways I can say this:  I don't want to see block
primitives that aren't real HEVC block sizes.

DO NOT ADD the +1 primitives.  Stop trying to optimize for that one use
case. STOP.

I've had to rewrite most of these commits anyway because I have completely
refactored the luma and chroma partition enums; but I seriously do not want
to see odd block size primitives  This is the worst kind of premature
optimization because there are so many real primitives that need to be
written before even thinking about those sorts of use cases.


> +
> +#define SET_LUMA_PRIMITIVE_TABLE_F1(W, H) \
> +    p.luma_hpp[LUMA_PARTITION_ ## W ## x ## H] = interp_horiz_pp_c<8, W,
> H>; \
> +#define SET_LUMA_PRIMITIVE_TABLE \
> +    SET_LUMA_PRIMITIVE_TABLE_F3(4,   8); \
> +    SET_LUMA_PRIMITIVE_TABLE_F3(4,  16); \
> +    SET_LUMA_PRIMITIVE_TABLE_F3(8,   4); \
> +    SET_LUMA_PRIMITIVE_TABLE_F3(8,   8); \
> +    SET_LUMA_PRIMITIVE_TABLE_F3(8,  16); \
> +    SET_LUMA_PRIMITIVE_TABLE_F3(8,  32); \
> +    SET_LUMA_PRIMITIVE_TABLE_F3(12, 16); \
> +    SET_LUMA_PRIMITIVE_TABLE_F3(16,  4); \
> +    SET_LUMA_PRIMITIVE_TABLE_F3(16,  8); \
> +    SET_LUMA_PRIMITIVE_TABLE_F3(16, 12); \
> +    SET_LUMA_PRIMITIVE_TABLE_F3(16, 16); \
> +    SET_LUMA_PRIMITIVE_TABLE_F3(16, 32); \
> +    SET_LUMA_PRIMITIVE_TABLE_F1(16, 64); \
> +    SET_LUMA_PRIMITIVE_TABLE_F3(32,  8); \
> +    SET_LUMA_PRIMITIVE_TABLE_F3(32, 16); \
> +    SET_LUMA_PRIMITIVE_TABLE_F3(32, 24); \
> +    SET_LUMA_PRIMITIVE_TABLE_F3(32, 32); \
> +    SET_LUMA_PRIMITIVE_TABLE_F3(32, 64); \
> +    SET_LUMA_PRIMITIVE_TABLE_F1(48, 64); \
>

BTW: the chroma primitive for this size (24x32) is unimplemented.


> +    SET_LUMA_PRIMITIVE_TABLE_F1(64, 16); \
> +    SET_LUMA_PRIMITIVE_TABLE_F3(64, 32); \
> +    SET_LUMA_PRIMITIVE_TABLE_F1(64, 48); \
> +    SET_LUMA_PRIMITIVE_TABLE_F3(64, 64); \
> +
>  void Setup_C_IPFilterPrimitives(EncoderPrimitives& p)
>  {
>      SETUP_PARTITION(2, 4);
> _______________________________________________
> x265-devel mailing list
> x265-devel at videolan.org
> https://mailman.videolan.org/listinfo/x265-devel
>



-- 
Steve Borho
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20131017/55e91f4c/attachment.html>


More information about the x265-devel mailing list