Index | Thread | Search

From:
Brad Smith <brad@comstyle.com>
Subject:
Re: UPDATE: x265 3.6
To:
ports@openbsd.org
Date:
Wed, 24 Apr 2024 05:28:55 -0400

Download raw body.

Thread
ping.

On 2024-04-05 4:19 p.m., Brad Smith wrote:
> Here is an update to x265 3.6.
>
>
> Version 3.6
> ===========
>
> Release date - 4th April, 2024.
>
> New feature
> -----------
> 1. Segment based Ratecontrol (SBRC) feature
> 2. Motion-Compensated Spatio-Temporal Filtering
> 3. Scene-cut aware qp - BBAQ (Bidirectional Boundary Aware Quantization)
> 4. Histogram-Based Scene Change Detection
> 5. Film-Grain characteristics as a SEI message to support Film Grain Synthesis(FGS)
> 6. Add temporal layer implementation(Hierarchical B-frame implementation)
>   
> Enhancements to existing features
> ---------------------------------
> 1. Added Dolby Vision 8.4 Profile Support
>
> API changes
> -----------
> 1. Add Segment based Ratecontrol(SBRC) feature: "--[no-]sbrc".
> 2. Add command line parameter for mcstf feature: "--[no-]mctf".
> 3. Add command line parameters for the scene cut aware qp feature: "--scenecut-aware-qp" and "--masking-strength".
> 4. Add command line parameters for Histogram-Based Scene Change Detection: "--hist-scenecut".
> 5. Add film grain characteristics as a SEI message to the bitstream: "--film-grain <filename>"
> 6. cli: add new option --cra-nal (Force nal type to CRA to all frames expect for the first frame, works only with keyint 1)
>
> Optimizations
> ---------------------
> ARM64 NEON optimizations:- Several time-consuming C functions have been optimized for the targeted platform - aarch64. The overall performance increased by around 20%.
> SVE/SVE2 optimizations
>
> Bug fixes
> ---------
> 1. Linux bug to utilize all the cores
> 2. Crash with hist-scenecut build when source resolution is not multiple of minCuSize
> 3. 32bit and 64bit builds generation for ARM
> 4. bugs in zonefile feature (Reflect Zonefile Parameters inside Lookahead, extra IDR issue, Avg I Slice QP value issue etc..)
> 5. Add x86 ASM implementation for subsampling luma
> 6. Fix for abrladder segfault with load reuse level 1
> 7. Reorder miniGOP based on temporal layer hierarchy and add support for more B frame
> 8. Add MacOS aarch64 build support
> 9. Fix boundary condition issue for Gaussian filter
>
>
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/multimedia/x265/Makefile,v
> retrieving revision 1.58
> diff -u -p -u -p -r1.58 Makefile
> --- Makefile	20 Feb 2024 10:05:00 -0000	1.58
> +++ Makefile	5 Apr 2024 19:46:36 -0000
> @@ -1,13 +1,12 @@
>   COMMENT=	free H.265/HEVC encoder
>   
> -VER=		3.5
> +VER=		3.6
>   DISTNAME=	x265_${VER}
>   PKGNAME=	x265-${VER}
> -REVISION=	3
>   CATEGORIES=	multimedia
>   SITES=		https://bitbucket.org/multicoreware/x265_git/downloads/
>   
> -SHARED_LIBS=	x265	23.0
> +SHARED_LIBS=	x265	24.0
>   
>   HOMEPAGE=	https://x265.org/
>   
> Index: distinfo
> ===================================================================
> RCS file: /cvs/ports/multimedia/x265/distinfo,v
> retrieving revision 1.26
> diff -u -p -u -p -r1.26 distinfo
> --- distinfo	24 Apr 2021 05:48:25 -0000	1.26
> +++ distinfo	5 Apr 2024 19:46:36 -0000
> @@ -1,2 +1,2 @@
> -SHA256 (x265_3.5.tar.gz) = 5wozNcrKy7oLOiDsb+zWeDkyKI68gWOtdLzJYGR3yug=
> -SIZE (x265_3.5.tar.gz) = 1537044
> +SHA256 (x265_3.6.tar.gz) = ZjUx80HFOJ9GDXMOYuEKT8yjQoyiyhCWk4Z7xf4uKAc=
> +SIZE (x265_3.6.tar.gz) = 1655889
> Index: patches/patch-source_CMakeLists_txt
> ===================================================================
> RCS file: /cvs/ports/multimedia/x265/patches/patch-source_CMakeLists_txt,v
> retrieving revision 1.7
> diff -u -p -u -p -r1.7 patch-source_CMakeLists_txt
> --- patches/patch-source_CMakeLists_txt	11 Mar 2022 19:39:29 -0000	1.7
> +++ patches/patch-source_CMakeLists_txt	5 Apr 2024 19:46:36 -0000
> @@ -1,7 +1,7 @@
>   Index: source/CMakeLists.txt
>   --- source/CMakeLists.txt.orig
>   +++ source/CMakeLists.txt
> -@@ -485,7 +485,8 @@ if(POWER)
> +@@ -523,7 +523,8 @@ if(POWER)
>        endif()
>    endif()
>    
> Index: patches/patch-source_common_aarch64_asm_S
> ===================================================================
> RCS file: /cvs/ports/multimedia/x265/patches/patch-source_common_aarch64_asm_S,v
> retrieving revision 1.3
> diff -u -p -u -p -r1.3 patch-source_common_aarch64_asm_S
> --- patches/patch-source_common_aarch64_asm_S	17 Jun 2023 22:18:31 -0000	1.3
> +++ patches/patch-source_common_aarch64_asm_S	5 Apr 2024 19:46:36 -0000
> @@ -1,50 +1,7 @@
> -- fix the compiling errors on MAC
> -  0983cffc501e5279e7d9e9b2241b506cb332efcb
> -- fix clang compile errors on linux
> -  577b658105b90ec1c04b049e43a51384172fb8fc
> -
>   Index: source/common/aarch64/asm.S
>   --- source/common/aarch64/asm.S.orig
>   +++ source/common/aarch64/asm.S
> -@@ -25,23 +25,35 @@
> -
> - #ifdef PREFIX
> - #define EXTERN_ASM _
> -+#define HAVE_AS_FUNC 0
> -+#elif defined __clang__
> -+#define EXTERN_ASM
> -+#define HAVE_AS_FUNC 0
> -+#define PREFIX 1
> - #else
> - #define EXTERN_ASM
> -+#define HAVE_AS_FUNC 1
> - #endif
> -
> - #ifdef __ELF__
> - #define ELF
> - #else
> -+#ifdef PREFIX
> -+#define ELF #
> -+#else
> - #define ELF @
> - #endif
> -+#endif
> -
> --#define HAVE_AS_FUNC 1
> --
> - #if HAVE_AS_FUNC
> - #define FUNC
> - #else
> -+#ifdef PREFIX
> -+#define FUNC #
> -+#else
> - #define FUNC @
> - #endif
> -+#endif
> -
> - .macro function name, export=1
> -     .macro endfunc
> -@@ -56,6 +68,7 @@ ELF     .hidden EXTERN_ASM\name
> +@@ -97,6 +97,7 @@ ELF     .hidden EXTERN_ASM\name
>    ELF     .type   EXTERN_ASM\name, %function
>    FUNC    .func   EXTERN_ASM\name
>    EXTERN_ASM\name:
> Index: patches/patch-source_common_x86_h-ipfilter8_asm
> ===================================================================
> RCS file: patches/patch-source_common_x86_h-ipfilter8_asm
> diff -N patches/patch-source_common_x86_h-ipfilter8_asm
> --- patches/patch-source_common_x86_h-ipfilter8_asm	24 Jan 2023 16:17:29 -0000	1.1
> +++ /dev/null	1 Jan 1970 00:00:00 -0000
> @@ -1,23 +0,0 @@
> -Index: source/common/x86/h-ipfilter8.asm
> ---- source/common/x86/h-ipfilter8.asm.orig
> -+++ source/common/x86/h-ipfilter8.asm
> -@@ -125,6 +125,9 @@ const pb_8tap_hps_0, times 2 db 0, 1, 1, 2, 2, 3, 3, 4
> - ALIGN 32
> - interp4_hps_shuf: times 2 db 0, 1, 2, 3, 1, 2, 3, 4, 8, 9, 10, 11, 9, 10, 11, 12
> -
> -+ALIGN 32
> -+const interp_4tap_8x8_horiz_shuf,   dd 0, 4, 1, 5, 2, 6, 3, 7
> -+
> - SECTION .text
> -
> - cextern pw_1
> -@@ -1458,9 +1461,6 @@ cglobal interp_4tap_horiz_pp_4x32, 4, 6, 5, src, srcst
> -     jnz         .loop
> -
> -     RET
> --
> --ALIGN 32
> --const interp_4tap_8x8_horiz_shuf,   dd 0, 4, 1, 5, 2, 6, 3, 7
> -
> - %macro FILTER_H4_w6 3
> -     movu        %1, [srcq - 1]
> Index: patches/patch-source_common_x86_x86inc_asm
> ===================================================================
> RCS file: /cvs/ports/multimedia/x265/patches/patch-source_common_x86_x86inc_asm,v
> retrieving revision 1.1
> diff -u -p -u -p -r1.1 patch-source_common_x86_x86inc_asm
> --- patches/patch-source_common_x86_x86inc_asm	20 Feb 2024 10:05:00 -0000	1.1
> +++ patches/patch-source_common_x86_x86inc_asm	5 Apr 2024 19:46:36 -0000
> @@ -1,7 +1,7 @@
>   Index: source/common/x86/x86inc.asm
>   --- source/common/x86/x86inc.asm.orig
>   +++ source/common/x86/x86inc.asm
> -@@ -717,6 +717,9 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, jnl, jnle, jg,
> +@@ -731,6 +731,9 @@ BRANCH_INSTR jz, je, jnz, jne, jl, jle, jnl, jnle, jg,
>        %endif
>        align function_align
>        %2:
> Index: patches/patch-source_test_testharness_h
> ===================================================================
> RCS file: patches/patch-source_test_testharness_h
> diff -N patches/patch-source_test_testharness_h
> --- patches/patch-source_test_testharness_h	11 Mar 2022 19:39:29 -0000	1.2
> +++ /dev/null	1 Jan 1970 00:00:00 -0000
> @@ -1,15 +0,0 @@
> -fix the compiling errors on MAC
> -0983cffc501e5279e7d9e9b2241b506cb332efcb
> -
> -Index: source/test/testharness.h
> ---- source/test/testharness.h.orig
> -+++ source/test/testharness.h
> -@@ -73,7 +73,7 @@ class TestHarness (protected)
> - #include <x86intrin.h>
> - #elif ( !defined(__APPLE__) && defined (__GNUC__) && defined(__ARM_NEON__))
> - #include <arm_neon.h>
> --#elif defined(__GNUC__) && (!defined(__clang__) || __clang_major__ < 4)
> -+#else
> - /* fallback for older GCC/MinGW */
> - static inline uint32_t __rdtsc(void)
> - {