[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