[x265] [PATCH SCC 01/09] Add cli for intrablockcopy to enable scc extension using IBC method

Karam Singh karam.singh at multicorewareinc.com
Thu Aug 8 05:33:36 UTC 2024


All the patches of SCC are pushed in the master branch.
*__________________________*
*Karam Singh*
*Ph.D. IIT Guwahati*
Senior Software (Video Coding) Engineer
Mobile: +91 8011279030
Block 9A, 6th floor, DLF Cyber City
Manapakkam, Chennai 600 089


On Wed, Aug 7, 2024 at 10:49 PM Anusuya Kumarasamy <
anusuya.kumarasamy at multicorewareinc.com> wrote:

> From b080b6569cebd5faa1de77423777e9b36a58dcd4 Mon Sep 17 00:00:00 2001
> From: AnusuyaKumarasamy <anusuya.kumarasamy at multicorewareinc.com>
> Date: Thu, 18 Jul 2024 15:30:03 +0530
> Subject: [PATCH 1/9] Add cli for intrablockcopy to enable scc extension
> using
>  IBC method
>
> ---
>  source/CMakeLists.txt   | 2 +-
>  source/common/param.cpp | 6 ++++++
>  source/x265.h           | 3 +++
>  source/x265cli.cpp      | 1 +
>  source/x265cli.h        | 1 +
>  5 files changed, 12 insertions(+), 1 deletion(-)
>
> diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt
> index f25bc8b84..9abf607d4 100755
> --- a/source/CMakeLists.txt
> +++ b/source/CMakeLists.txt
> @@ -31,7 +31,7 @@ option(NATIVE_BUILD "Target the build CPU" OFF)
>  option(STATIC_LINK_CRT "Statically link C runtime for release builds" OFF)
>  mark_as_advanced(FPROFILE_USE FPROFILE_GENERATE NATIVE_BUILD)
>  # X265_BUILD must be incremented each time the public API is changed
> -set(X265_BUILD 211)
> +set(X265_BUILD 212)
>  configure_file("${PROJECT_SOURCE_DIR}/x265.def.in"
>                 "${PROJECT_BINARY_DIR}/x265.def")
>  configure_file("${PROJECT_SOURCE_DIR}/x265_config.h.in"
> diff --git a/source/common/param.cpp b/source/common/param.cpp
> index 084743ee9..2f4f8084d 100755
> --- a/source/common/param.cpp
> +++ b/source/common/param.cpp
> @@ -409,6 +409,9 @@ void x265_param_default(x265_param* param)
>      param->format = 0;
>
>      param->numLayers = 1;
> +
> +    /* SCC */
> +    param->bEnableSCC = 0;
>  }
>
>  int x265_param_default_preset(x265_param* param, const char* preset,
> const char* tune)
> @@ -1473,6 +1476,7 @@ int x265_param_parse(x265_param* p, const char*
> name, const char* value)
>              p->numViews = atoi(value);
>          }
>  #endif
> +        OPT("scc") p->bEnableSCC = atoi(value);
>          else
>              return X265_PARAM_BAD_NAME;
>      }
> @@ -2397,6 +2401,7 @@ char *x265_param2string(x265_param* p, int padx, int
> pady)
>      s += sprintf(s, " num-views=%d", p->numViews);
>      s += sprintf(s, " format=%d", p->format);
>  #endif
> +    s += sprintf(s, "scc=%d", p->bEnableSCC);
>      BOOL(p->bEnableSBRC, "sbrc");
>  #undef BOOL
>      return buf;
> @@ -2927,6 +2932,7 @@ void x265_copy_params(x265_param* dst, x265_param*
> src)
>      dst->format = src->format;
>  #endif
>      dst->numLayers = src->numLayers;
> +    dst->bEnableSCC = src->bEnableSCC;
>
>      if (src->videoSignalTypePreset) dst->videoSignalTypePreset =
> strdup(src->videoSignalTypePreset);
>      else dst->videoSignalTypePreset = NULL;
> diff --git a/source/x265.h b/source/x265.h
> index 7b5144ec2..530ae4d81 100644
> --- a/source/x265.h
> +++ b/source/x265.h
> @@ -2310,6 +2310,9 @@ typedef struct x265_param
>      int      format;
>
>      int      numLayers;
> +
> +    /*Screen Content Coding*/
> +    int     bEnableSCC;
>  } x265_param;
>
>  /* x265_param_alloc:
> diff --git a/source/x265cli.cpp b/source/x265cli.cpp
> index a4ce6d272..2e02b1e44 100755
> --- a/source/x265cli.cpp
> +++ b/source/x265cli.cpp
> @@ -382,6 +382,7 @@ namespace X265_NS {
>          H0("   --format                      Format of the input video 0
> : normal, 1 : side-by-side, 2 : over-under  Default %d\n", param->format);
>          H0("   --multiview-config            Configuration file for
> Multiview Encoding\n");
>  #endif
> +        H0("   --scc <integer>               Enable screen content
> coding. 0: Diabled, 1:Intrablockcopy fast search with 1x2 CTUs search
> range, 2: Intrablockcopy Full search. Default %d\n", param->bEnableSCC);
>  #ifdef SVT_HEVC
>          H0("   --[no]svt                     Enable SVT HEVC encoder
> %s\n", OPT(param->bEnableSvtHevc));
>          H0("   --[no-]svt-hme                Enable Hierarchial motion
> estimation(HME) in SVT HEVC encoder \n");
> diff --git a/source/x265cli.h b/source/x265cli.h
> index 7ae9877d7..654356287 100644
> --- a/source/x265cli.h
> +++ b/source/x265cli.h
> @@ -366,6 +366,7 @@ static const struct option long_options[] =
>      { "multiview-config", required_argument, NULL, 0 },
>      { "format", required_argument, NULL, 0 },
>  #endif
> +    { "scc",        required_argument, NULL, 0 },
>  #ifdef SVT_HEVC
>      { "svt",     no_argument, NULL, 0 },
>      { "no-svt",  no_argument, NULL, 0 },
> --
> 2.36.0.windows.1
>
> _______________________________________________
> x265-devel mailing list
> x265-devel at videolan.org
> https://mailman.videolan.org/listinfo/x265-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20240808/9688aa68/attachment.htm>


More information about the x265-devel mailing list