Index | Thread | Search

From:
Brad Smith <brad@comstyle.com>
Subject:
Re: UPDATE: x265 3.6
To:
ports@openbsd.org
Date:
Fri, 3 May 2024 11:54:26 -0400

Download raw body.

Thread
ping.

On 2024-04-24 5:28 a.m., Brad Smith wrote:
> 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)
>> - {
>