Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Video Encoding > New and alternative video codecs

Reply
 
Thread Tools Search this Thread Display Modes
Old 28th March 2021, 22:33   #421  |  Link
Jamaika
Registered User
 
Join Date: Jul 2015
Posts: 809
Quote:
Originally Posted by Marsu42 View Post
The more probably progress of AV2 will be including more patented stuff from AVC, HEVC and VVC once it expires - which might take some time.
The number of VVC patches has decreased. We'll see what time will tell.
Jamaika is offline   Reply With Quote
Old 28th March 2021, 22:38   #422  |  Link
Jamaika
Registered User
 
Join Date: Jul 2015
Posts: 809
Test
avifenc.exe -a tune=butteraugli -j 4 160011_architecture-air-conditioner-building.jpg 160011_architecture-air-conditioner-building.avif
ERROR: Failed to finish encoding: Encoding of color planes failed

heifenc.exe image_21447_48bit.png -v -L -q 100 --avif -b 8 --no-alpha -p chroma=444 -p speed=5 -p tune=butteraugli --matrix_coefficients=1 --full_range_flag=0 -o image_21447_36bit.avif
ERROR:
Jamaika is offline   Reply With Quote
Old 29th March 2021, 22:15   #423  |  Link
Jamaika
Registered User
 
Join Date: Jul 2015
Posts: 809
New codecs for maniac 2021.03.29
https://www.sendspace.com/file/zu5ipq

Problem with webp2:
Code:
#if !defined(_MSC_VER)
#ifdef WP2_HAVE_BOOST
#include <boost/stacktrace.hpp>
#include <sstream>
#else
#include "execinfo.h"
#endif
#endif
Fix
#if !defined(_WIN32) || !defined(_WIN64)

libyuv 1785 - problem with SIMD AVX2 GCC
C:\Users\KOMPUT~1\AppData\Local\Temp\ccLXwvku.s: Assembler messages:
C:\Users\KOMPUT~1\AppData\Local\Temp\ccLXwvku.s:7873: Error: operand type mismatch for `vbroadcastss'
C:\Users\KOMPUT~1\AppData\Local\Temp\ccLXwvku.s:7948: Error: operand type mismatch for `vbroadcastss'
Change:
Code:
#ifdef HAS_ARGBTOAR30ROW_SSSE3
void ARGBToAR30Row_SSSE3(const uint8_t* src, uint8_t* dst, int width) { ... }

void ABGRToAR30Row_SSSE3(const uint8_t* src, uint8_t* dst, int width) { ... }
#endif
Code:
#ifdef HAS_ARGBTOAR64ROW_SSSE3
void ARGBToAR64Row_SSSE3(const uint8_t* src_argb,
                         uint16_t* dst_ar64,
                         int width) { ... }

void AR64ToARGBRow_SSSE3(const uint16_t* src_ar64,
                         uint8_t* dst_argb,
                         int width) { ... }

void AB64ToARGBRow_SSSE3(const uint16_t* src_ab64,
                         uint8_t* dst_argb,
                         int width) { ... }
#endif
Code:
#if defined(HAS_ARGBTOYROW_SSSE3) || defined(HAS_I422TOARGBROW_SSSE3)
void BGRAToYRow_SSSE3(const uint8_t* src_bgra, uint8_t* dst_y, int width) { ... }

void BGRAToUVRow_SSSE3(const uint8_t* src_bgra,
                       int src_stride_bgra,
                       uint8_t* dst_u,
                       uint8_t* dst_v,
                       int width) { ... }

void ABGRToYRow_SSSE3(const uint8_t* src_abgr, uint8_t* dst_y, int width) { ... }

void RGBAToYRow_SSSE3(const uint8_t* src_rgba, uint8_t* dst_y, int width) { ... }

void ABGRToUVRow_SSSE3(const uint8_t* src_abgr,
                       int src_stride_abgr,
                       uint8_t* dst_u,
                       uint8_t* dst_v,
                       int width) { ... }

void RGBAToUVRow_SSSE3(const uint8_t* src_rgba,
                       int src_stride_rgba,
                       uint8_t* dst_u,
                       uint8_t* dst_v,
                       int width) { ... }
#endif
Code:
#ifdef HAS_CONVERT16TO8ROW_SSSE3
void Convert16To8Row_SSSE3(const uint16_t* src_y,
                           uint8_t* dst_y,
                           int scale,
                           int width) { ... }
#endif
Code:
#ifdef HAS_HALFMERGEUVROW_SSSE3
void HalfMergeUVRow_SSSE3(const uint8_t* src_u,
                          int src_stride_u,
                          const uint8_t* src_v,
                          int src_stride_v,
                          uint8_t* dst_uv,
                          int width) { ... }
#endif
Code:
#ifdef HAS_HALFMERGEUVROW_AVX2
void HalfMergeUVRow_AVX2(const uint8_t* src_u,
                         int src_stride_u,
                         const uint8_t* src_v,
                         int src_stride_v,
                         uint8_t* dst_uv,
                         int width) { ... }
#endif
Code:
ANY11(RGB565ToARGBRow_Any_SSE2, RGB565ToARGBRow_SSE2, 0, 2, 4, 7)
ANY11(ARGB1555ToARGBRow_Any_SSE2, ARGB1555ToARGBRow_SSE2, 0, 2, 4, 7)
ANY11(ARGB4444ToARGBRow_Any_SSE2, ARGB4444ToARGBRow_SSE2, 0, 2, 4, 7)
#if defined(HAS_RGB24TOARGBROW_SSSE3)
ANY11(RGB24ToARGBRow_Any_SSSE3, RGB24ToARGBRow_SSSE3, 0, 3, 4, 15)
ANY11(RAWToARGBRow_Any_SSSE3, RAWToARGBRow_SSSE3, 0, 3, 4, 15)
#endif
Code:
ANY11(YUY2ToYRow_Any_SSE2, YUY2ToYRow_SSE2, 1, 4, 1, 15)
ANY11(UYVYToYRow_Any_SSE2, UYVYToYRow_SSE2, 1, 4, 1, 15)
#ifdef HAS_BGRATOYROW_SSSE3
ANY11(BGRAToYRow_Any_SSSE3, BGRAToYRow_SSSE3, 0, 4, 1, 15)
ANY11(ABGRToYRow_Any_SSSE3, ABGRToYRow_SSSE3, 0, 4, 1, 15)
ANY11(RGBAToYRow_Any_SSSE3, RGBAToYRow_SSSE3, 0, 4, 1, 15)
#endif
Code:
#ifdef HAS_SCALEROWUP2BILINEAR_16_SSE2
SU2BLANY(ScaleRowUp2_Bilinear_16_Any_SSE2,
         ScaleRowUp2_Bilinear_16_SSE2,
         ScaleRowUp2_Bilinear_16_C,
         7,
         uint16_t)
#endif
Code:
#ifdef HAS_SCALEROWUP2BILINEAR_16_SSSE3
  if (TestCpuFlag(kCpuHasSSSE3)) {
    Scale2RowUp = ScaleRowUp2_Bilinear_16_Any_SSSE3;
  }
#endif
Code:
#ifdef HAS_SCALEROWDOWN2_SSSE3
void ScaleRowDown2_SSSE3(const uint8_t* src_ptr,
                         ptrdiff_t src_stride,
                         uint8_t* dst_ptr,
                         int dst_width) { ... }

void ScaleRowDown2Linear_SSSE3(const uint8_t* src_ptr,
                               ptrdiff_t src_stride,
                               uint8_t* dst_ptr,
                               int dst_width) { ... }

void ScaleRowDown2Box_SSSE3(const uint8_t* src_ptr,
                            ptrdiff_t src_stride,
                            uint8_t* dst_ptr,
                            int dst_width) { ... }
#endif
Code:
#ifdef HAS_SCALEROWDOWN4_SSSE3
void ScaleRowDown4_SSSE3(const uint8_t* src_ptr,
                         ptrdiff_t src_stride,
                         uint8_t* dst_ptr,
                         int dst_width) { ... }

void ScaleRowDown4Box_SSSE3(const uint8_t* src_ptr,
                            ptrdiff_t src_stride,
                            uint8_t* dst_ptr,
                            int dst_width) { ... }
#endif
Code:
#ifdef HAS_SCALEROWDOWN34_SSSE3
void ScaleRowDown34_SSSE3(const uint8_t* src_ptr,
                          ptrdiff_t src_stride,
                          uint8_t* dst_ptr,
                          int dst_width) { ... }

void ScaleRowDown34_1_Box_SSSE3(const uint8_t* src_ptr,
                                ptrdiff_t src_stride,
                                uint8_t* dst_ptr,
                                int dst_width) { ... }

void ScaleRowDown34_0_Box_SSSE3(const uint8_t* src_ptr,
                                ptrdiff_t src_stride,
                                uint8_t* dst_ptr,
                                int dst_width) { ... }

void ScaleRowDown38_SSSE3(const uint8_t* src_ptr,
                          ptrdiff_t src_stride,
                          uint8_t* dst_ptr,
                          int dst_width) { ... }

void ScaleRowDown38_2_Box_SSSE3(const uint8_t* src_ptr,
                                ptrdiff_t src_stride,
                                uint8_t* dst_ptr,
                                int dst_width) { ... }

void ScaleRowDown38_3_Box_SSSE3(const uint8_t* src_ptr,
                                ptrdiff_t src_stride,
                                uint8_t* dst_ptr,
                                int dst_width) { ... }
#endif
Code:
#ifdef HAS_SCALEFILTERCOLS_SSSE3
void ScaleFilterCols_SSSE3(uint8_t* dst_ptr,
                           const uint8_t* src_ptr,
                           int dst_width,
                           int x,
                           int dx) { ... }
#endif
Code:
#ifdef HAS_SCALEARGBFILTERCOLS_SSSE3
void ScaleARGBFilterCols_SSSE3(uint8_t* dst_argb,
                               const uint8_t* src_argb,
                               int dst_width,
                               int x,
                               int dx) { ... }
#endif
Code:
#ifdef __AVX2__
// Visual C 2012 required for AVX2.
#if defined(_M_IX86) && !defined(__clang__) && defined(_MSC_VER) && \
    _MSC_VER >= 1700
#define VISUALC_HAS_AVX2
#endif  // VisualStudio >= 2012

// clang >= 3.4.0 required for AVX2.
#if defined(__clang__) && (defined(__x86_64__) || defined(__i386__))
#if (__clang_major__ > 3) || (__clang_major__ == 3 && (__clang_minor__ >= 4))
#define CLANG_HAS_AVX2
#endif  // clang >= 3.4
#endif  // __clang__

#if defined(__GNUC__) && (defined(__x86_64__) || defined(__i386__))
#if (__GNUC__ > 4) || (__GNUC__ == 4 && (__GNUC_MINOR__ >= 7))
#define GCC_HAS_AVX2
#endif  // GNUC >= 4.7
#endif  // __GNUC__
#endif

// The following are available for Visual C and GCC:
#if !defined(LIBYUV_DISABLE_X86) && \
    (defined(__x86_64__) || defined(__i386__) || defined(_M_IX86))
#ifdef __SSE4_1__
#define HAS_HASHDJB2_SSE41
#endif
#define HAS_SUMSQUAREERROR_SSE2
#ifdef __SSE4_2__
#define HAS_HAMMINGDISTANCE_SSE42
#endif
#endif
Code:
// The following are available for GCC and clangcl 64 bit:
#if !defined(LIBYUV_DISABLE_X86) && defined(__SSSE3__) && \
    (defined(__x86_64__) || defined(__i386__)) && !defined(_MSC_VER)
#define HAS_HAMMINGDISTANCE_SSSE3
#endif

// The following are available for GCC and clangcl 64 bit:
#if !defined(LIBYUV_DISABLE_X86) && \
    (defined(CLANG_HAS_AVX2) || defined(GCC_HAS_AVX2)) && \
    (defined(__x86_64__) || defined(__i386__)) && !defined(_MSC_VER)
#define HAS_HAMMINGDISTANCE_AVX2
#endif
Code:
#ifdef __AVX2__
// GCC >= 4.7.0 required for AVX2.
#if defined(__GNUC__) && (defined(__x86_64__) || defined(__i386__))
#if (__GNUC__ > 4) || (__GNUC__ == 4 && (__GNUC_MINOR__ >= 7))
#define GCC_HAS_AVX2
#endif  // GNUC >= 4.7
#endif  // __GNUC__

// clang >= 3.4.0 required for AVX2.
#if defined(__clang__) && (defined(__x86_64__) || defined(__i386__))
#if (__clang_major__ > 3) || (__clang_major__ == 3 && (__clang_minor__ >= 4))
#define CLANG_HAS_AVX2
#endif  // clang >= 3.4
#endif  // __clang__

// Visual C 2012 required for AVX2.
#if defined(_M_IX86) && !defined(__clang__) && defined(_MSC_VER) && \
    _MSC_VER >= 1700
#define VISUALC_HAS_AVX2
#endif  // VisualStudio >= 2012
#endif

// clang >= 6.0.0 required for AVX512.
#if defined(__clang__) && (defined(__x86_64__) || defined(__i386__))
// clang in xcode follows a different versioning scheme.
// TODO(fbarchard): fix xcode 9 ios b/789.
#if (__clang_major__ >= 7) && !defined(__APPLE__)
#define CLANG_HAS_AVX512
#endif  // clang >= 7
#endif  // __clang__
Code:
#if  (defined(__x86_64__) || defined(__i386__)) && !defined(_MSC_VER)

Last edited by Jamaika; 5th April 2021 at 12:03.
Jamaika is offline   Reply With Quote
Old 4th April 2021, 08:21   #424  |  Link
Jamaika
Registered User
 
Join Date: Jul 2015
Posts: 809
Opensource 2021.04.04
https://www.sendspace.com/file/9dnpbl

Test new GCC 11.0.1 with codec google
https://www.sendspace.com/file/59w1iw

Test new GCC 11.0.1 with codec google with AVX2
https://www.sendspace.com/file/42l6fk
Observed differences. I don't know why I can run AVX2 codecs on my old computer. Either changes have been made to GCC 11 or Windows, or something compiles badly.

Last edited by Jamaika; 5th April 2021 at 18:49.
Jamaika is offline   Reply With Quote
Old 7th April 2021, 11:14   #425  |  Link
skal
Registered User
 
Join Date: Jun 2003
Posts: 129
Quote:
Originally Posted by Jamaika View Post
New codecs for maniac 2021.03.29
https://www.sendspace.com/file/zu5ipq

Problem with webp2:
Code:
#if !defined(_MSC_VER)
#ifdef WP2_HAVE_BOOST
#include <boost/stacktrace.hpp>
#include <sstream>
#else
#include "execinfo.h"
#endif
#endif
Fix
#if !defined(_WIN32) || !defined(_WIN64)
Should be fixed with e8e25a
Thanks!
skal is offline   Reply With Quote
Old 29th April 2021, 06:30   #426  |  Link
Jamaika
Registered User
 
Join Date: Jul 2015
Posts: 809
https://github.com/Jamaika1/mingw-std-threads-gcc11
{mingw} isn't compatible with c++17. The appendix doesn't include all the features of <future>.

New GCC 12.0.0 (2021.04.30)
Code:
Encoders (AVIF is default):
- aom = AOMedia Project AV1 Encoder 3.1.0-5d1b573

Library encoder:  libavif  HDR  1.12.0  8_12bit c++ [06 May 2021] {mingw, butteraugli}
                     aom        3.1.0   8_12bit c   [07 May 2021]
                  JPEGXL-tune   0.3.7           c++ [06 May 2021]
                  brotli        1.0.9           c   [18 Jan 2021]
                  libyuv        1788            c++ [04 May 2021]
                  libJPEG-turbo 2.1.0      8bit c   [23 Apr 2021]
                  libPNG        1.6.38          c   [12 Mar 2021]
                    zlib        1.2.11.1        c   [17 Sep 2020]
Compiled by Jamaika
Code:
Library encoder:  av1enc        0.0.1   8_12bit c++ [07 May 2021] {boost, mingw}
                  libWebP       1.2.0           c   [29 Feb 2021]
                     aom        3.1.0           c   [07 May 2021]
                  libavif       0.9.0           c   [07 May 2021]
                  libgav1       0.16.3  8_10bit c++ [06 May 2021]
                  jpegxl        0.3.7           c++ [06 May 2021]
                  brotli        1.0.9           c   [18 Jan 2021]
                  libyuv        1788            c++ [04 May 2021]
                  libJPEG-turbo 2.1.0      8bit c   [23 Apr 2021]
                  lodePNG                       c++ [17 Oct 2020]
                  libPNG        1.6.38          c   [12 Mar 2021]
                  libTIFF       4.3.0           c   [06 May 2021]
                  giflib        5.2.1           c   [24 Jun 2019]
                    zlib        1.2.11.1        c   [17 Sep 2020]
Compiled by Jamaika
Code:
  J P E G   \/ |
            /\ |_   e n c o d e r    [v0.3.7 0.3.7-040eae81 | SIMD supported: Scalar]

Library:          libJPEGXL     0.3.7           c++ [06 May 2021]  {mingw, highway, butteraugli}
                  brotli        1.0.9           c   [18 Jan 2021] {addition google}
                  brunsli       JXL             c++ [23 Mar 2021] {addition google}
                  butteraugli   JXL             c++ [23 Mar 2021] {addition google}
                  highway       0.12.0          c++ [07 May 2021] {addition google}
                  skcms                         c++ [15 Apr 2021] {addition google}
                  libsJPEG      0.1.0           c++ [23 Mar 2021] {addition google}
                  libJPEG-turbo 2.1.0      8bit c   [16 Apr 2021]
                  lodePNG                       c++ [17 Oct 2020]
                   libPNG       1.6.38          c   [12 Mar 2021] {for anime PNG}
                   giflib       5.2.1           c   [24 Jun 2019]
                     zlib       1.2.11.1        c   [17 Sep 2020]
                  openexr       3.0.2           c++ [07 May 2021] {instead TIFF, Adobe DNG}
                    Imath       3.0.2           c++ [07 May 2021] {addition openexr}
Compiled by Jamaika
Code:
[2021-05-01 08:51:48.913] [info] compress time: 281.236 ms

Library:          grok          9.1.0      8bit c++17 [30 Apr 2021] {mingw, cperl, tclap, spdlog, taskflow, highway}
                  cperl         5.30.0          c   [02 Nov 2020]
                  tclap         1.4.0           c   [02 Nov 2020] {grok}
                  spdlog        1.8.2           c   [04 Mar 2021]
                  taskflow      3.1.0           c   [26 Apr 2021]
                  htjpeg2000    0.7.2           c++ [01 Sep 2020] {grok}
                  highway       0.12.0          c++ [29 Apr 2021] {addition google}
                  libPNG        1.6.38          c   [12 Mar 2021]
                  libTIFF       4.2.0           c   [14 Apr 2021]
                  libJPEG-turbo 2.1.0      8bit c   [15 Apr 2021]
                    zlib        1.2.11.1        c   [17 Sep 2020]
Compiled by Jamaika
Code:
VVCSoftware: VTM Encoder Version 12.3 [Windows][GCC 12.0.0][64 bit]
VVEncoderApp.exe: Fraunhofer VVC Encoder ver. 0.3.1.0 [Windows][GCC 12.0.0][64 bit][SIMD=NA]
MEGA PACK CODECS 08.05.2021
https://www.sendspace.com/file/7txlns

VVEncoderApp.exe -i "input_8bit.yuv" -o "output_10bit.vvc" -v 5 -f 100 -t 4 -s 1280x720 -r 29 -c yuv420 -g 16 -ip 16 --bitrate 3000000 --passes 1 --preset medium --level 6.2 --tier main
xeve_codec.exe -i "input_8bit.yuv" -o "output_10bit.evc" -v 2 -f 100 -m 4 -w 1280 -h 720 -z 29 --chroma_format_idc 1 -g 15 -p 16 -q 25 --rc_type 0 --bps 3000000 --input_bit_depth 8 --preset medium --level 6.2 --codec_bit_depth 10 --output_bit_depth 10 --amvr 1

New jpeg2000 library has appeared on the official pages. Too bad there are no part16 and part17 parts included.
https://gitlab.com/wg1/htj2k-rs

Last edited by Jamaika; 11th May 2021 at 06:00.
Jamaika is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 22:20.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, vBulletin Solutions Inc.