[x265] [PATCH SCC 01/09] Add cli for intrablockcopy to enable scc extension using IBC method
Anusuya Kumarasamy
anusuya.kumarasamy at multicorewareinc.com
Wed Aug 7 17:18:56 UTC 2024
>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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20240807/d524d351/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Add-cli-for-intrablockcopy-to-enable-scc-extension-u.patch
Type: application/octet-stream
Size: 4095 bytes
Desc: not available
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20240807/d524d351/attachment.obj>
More information about the x265-devel
mailing list