Projects
Essentials
x265
Sign Up
Log In
Username
Password
We truncated the diff of some files because they were too big. If you want to see the full diff for every file,
click here
.
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 38
View file
x265.changes
Changed
@@ -1,4 +1,57 @@ ------------------------------------------------------------------- +Sat Mar 28 14:28:56 UTC 2020 - Luigi Baldoni <aloisio@gmx.com> + +- Update to version 3.3 + New features: + * Adaptive frame duplication** to identify and skip encoding + of near-identical frames and signal the duplication info to the + decoder via pic_struct SEI. :option:`frame-dup` to enable frame + duplication and :option:`--dup-threshold` to set the threshold + for frame similarity (optional). + * Boundary aware quantization** to cut off bits from frames + following scene-cut. This leverages the inability of HVS to + perceive fine details during scene changes and saves bits. + :option:`--scenecut-aware-qp` , :option:`--scenecut-window` and + :option:`--max-qp-delta` to enable boundary aware frame + quantization, to set window size (optional) and to set QP offset + (optional). + * Improved scene-cut detection** using edge and chroma + histograms. :option:`--hist-scenecut` to enable the feature and + :option:`--hist-threshold` (optional) to provide threshold for + determining scene cuts. + Enhancements to existing features: + * :option:`--hme-range` to modify search range for HME levels + L0, L1, and L2. + * Improved performance of AQ mode 4 by reducing memory foot + print. + * Introduced :option:`--analysis-save-reuse-level` and + :option:`--analysis-load-reuse-level` to de-couple reuse levels + of :option:`--analysis-save` and :option:`--analysis-load`. + Turnaround time of ABR encoding can be reduced by properly + leveraging these options. + Encoder enhancements: + * Improved VBV lookahead to eliminate blocky artifacts in + Intra frames coming towards end of the title. + API changes: + * New API function **x265_encoder_reconfig_zone()** to invoke + zone reconfiguration dynamically. + * Renamed :option:`--hdr` to :option:`--hdr10`. + :option:`--hdr` will be deprecated in the upcoming major + release. + * Renamed :option:`--hdr-opt` to :option:`--hdr10-opt`. + :option:`--hdr-opt` will be deprecated in the upcoming major + release. + * Additions to **x265_param** structure to support the newly + added features and encoder enhancements. + Bug fixes: + * Output change in :option:`--analysis-load` at inter-refine + levels 2 and 3. + * Encoder crash with zones. + * Integration issues with SVT v1.4.1. + * Fixed bug in :option:`--limit-tu` 3 and 4 while loading + co-located CU's TU depth. + +------------------------------------------------------------------- Sun Dec 1 10:44:50 UTC 2019 - Luigi Baldoni <aloisio@gmx.com> - Update to version 3.2.1
View file
x265.spec
Changed
@@ -1,7 +1,7 @@ # # spec file for package x265 # -# Copyright (c) 2019 Packman Team <packman@links2linux.de> +# Copyright (c) 2020 Packman Team <packman@links2linux.de> # Copyright (c) 2014 Torsten Gruner <t.gruner@katodev.de> # # All modifications and additions to the file contributed by third parties @@ -17,11 +17,11 @@ # -%define sover 179 +%define sover 188 %define libname lib%{name} %define libsoname %{libname}-%{sover} Name: x265 -Version: 3.2.1 +Version: 3.3 Release: 0 Summary: A free h265/HEVC encoder - encoder binary License: GPL-2.0-or-later
View file
x265_3.2.1.tar.gz/.hg_archival.txt -> x265_3.3.tar.gz/.hg_archival.txt
Changed
@@ -1,5 +1,5 @@ repo: 09fe40627f03a0f9c3e6ac78b22ac93da23f9fdf -node: b5c86a64bbbede216b25092def72272ecde5523a -branch: Release_3.2 -latesttag: 3.2.1 +node: f94b0d32737d40b2b9a9d74df57fee45e6be5cb0 +branch: Release_3.3 +latesttag: 3.3 latesttagdistance: 1
View file
x265_3.2.1.tar.gz/.hgtags -> x265_3.3.tar.gz/.hgtags
Changed
@@ -37,4 +37,6 @@ b4e38ce16d7c4b37a6482dc7ae61fd31071b6ff1 3.1_RC2 20c9994e8bfbeb9443851b2b3a050cd98c8b147b 3.2_RC1 353572437201d551381002aebf20d244bd49ef17 3.2 -7fa570ead8d361bf6055cd2a881a8e15f12110ae 3.2.1 +5ee3593ebd82b4d8957909bbc1b68b99b59ba773 3.3_RC1 +96a10df63c0b778b480330bdf3be8da7db8a5fb1 3.3_RC2 +057215961bc4b51b6260a584ff3d506e6d65cfd6 3.3
View file
x265_3.2.1.tar.gz/doc/reST/api.rst -> x265_3.3.tar.gz/doc/reST/api.rst
Changed
@@ -191,7 +191,15 @@ * switched out of; using reconfig to switch between ultrafast and other * presets is not recommended without a more fine-grained breakdown of * parameters to take this into account. */ - int x265_encoder_reconfig(x265_encoder *, x265_param *); + int x265_encoder_reconfig(x265_encoder *, x265_param *); + +**x265_encoder_reconfig_zone()** Used to reconfigure rate-contol settings of zones mid-encode:: + + /* x265_encoder_reconfig_zone: + * Properties of the zone will be copied to encoder's param and will be used only to + * influence rate-control decisions of the zone. + * returns 0 on successful copy and negative on failure.*/ + int x265_encoder_reconfig(x265_encoder *, x265_param *); **x265_get_slicetype_poc_and_scenecut()** may be used to fetch slice type, poc and scene cut information mid-encode::
View file
x265_3.2.1.tar.gz/doc/reST/cli.rst -> x265_3.3.tar.gz/doc/reST/cli.rst
Changed
@@ -501,6 +501,17 @@ second. The decoder must re-combine the fields in their correct orientation for display. +.. option:: --frame-dup, --no-frame-dup + + Enable Adaptive Frame duplication. Replaces 2-3 near-identical frames with one + frame and sets pic_struct based on frame doubling / tripling. + Default disabled. + +.. option:: --dup-threshold <integer> + + Frame similarity threshold can vary between 1 and 99. This requires Adaptive + Frame Duplication to be enabled. Default 70. + .. option:: --seek <integer> Number of frames to skip at start of input file. Default 0 @@ -894,25 +905,30 @@ Encoder outputs analysis information of each frame. Analysis data from save mode is written to the file specified. Requires cutree, pmode to be off. Default disabled. + The amount of analysis data stored is determined by :option:`--analysis-save-reuse-level`. + .. option:: --analysis-load <filename> Encoder reuses analysis information from the file specified. By reading the analysis data writen by an earlier encode of the same sequence, substantial redundant work may be avoided. Requires cutree, pmode to be off. Default disabled. - The amount of analysis data stored/reused is determined by :option:`--analysis-reuse-level`. + The amount of analysis data reused is determined by :option:`--analysis-load-reuse-level`. .. option:: --analysis-reuse-file <filename> - Specify a filename for `multi-pass-opt-analysis` and `multi-pass-opt-distortion`. + Specify a filename for :option:`--multi-pass-opt-analysis` and option:`--multi-pass-opt-distortion`. If no filename is specified, x265_analysis.dat is used. -.. option:: --analysis-reuse-level <1..10> +.. option:: --analysis-save-reuse-level <1..10>, --analysis-load-reuse-level <1..10> - Amount of information stored/reused in :option:`--analysis-reuse-mode` is distributed across levels. - Higher the value, higher the information stored/reused, faster the encode. Default 5. + 'analysis-save-reuse-level' denotes the amount of information stored during :option:`--analysis-save` and + 'analysis-load-reuse-level' denotes the amount of information reused during :option:`--analysis-load`. + Higher the value, higher the information stored/reused, faster the encode. Default 0. If not set during analysis-save/load, + the encoder will internally configure them to 5. - Note that --analysis-reuse-level must be paired with analysis-reuse-mode. + Note that :option:`--analysis-save-reuse-level` and :option:`--analysis-load-reuse-level` must be paired + with :option:`--analysis-save` and :option:`--analysis-load` respectively. +--------------+------------------------------------------+ | Level | Description | @@ -939,15 +955,15 @@ Store/normalize ctu distortion in analysis-save/load. 0 - Disabled. - 1 - Save ctu distortion to the analysis file specified during analysis-save. - Load CTU distortion from the analysis file and normalize it across every frame during analysis-load. + 1 - Save ctu distortion to the analysis file specified during :option:`--analysis-save`. + Load CTU distortion from the analysis file and normalize it across every frame during :option:`--analysis-load`. Default 0. .. option:: --scale-factor Factor by which input video is scaled down for analysis save mode. - This option should be coupled with analysis-reuse-mode option, - --analysis-reuse-level 10. The ctu size of load can either be the + This option should be coupled with :option:`--analysis-load`/:option:`--analysis-save` + at reuse levels 1 to 6 and 10. The ctu size of load can either be the same as that of save or double the size of save. Default 0. .. option:: --refine-intra <0..4> @@ -1079,9 +1095,9 @@ limiting depth for the other subTUs. Enabling levels 3 or 4 may cause a mismatch in the output bitstreams - between option:`--analysis-save` and option:`--analysis-load` + between :option:`--analysis-save` and :option:`--analysis-load` as all neighbouring CUs TU depth may not be available in the - option:`--analysis-load` run as only the best mode's information is + :option:`--analysis-load` run as only the best mode's information is available to it. Default: 0 @@ -1187,9 +1203,10 @@ followed by an optional star-search refinement. Full is an exhaustive search; an order of magnitude slower than all other searches but not much better than umh or star. SEA is similar to - FULL search; a three step motion search adopted from x264: DC - calculation followed by ADS calculation followed by SAD of the - passed motion vector candidates, hence faster than Full search. + x264's ESA implementation and a speed optimization of full search. + It is a three step motion search where the DC calculation is + followed by ADS calculation followed by SAD of the passed motion + vector candidates. 0. dia 1. hex **(default)** @@ -1279,6 +1296,12 @@ which will apply to all levels. Default is hex,umh,umh for levels 0,1,2 respectively. +.. option:: --hme-range <integer>,<integer>,<integer> + + Search range for HME level 0, 1 and 2. + The Search Range for each HME level must be between 0 and 32768(excluding). + Default search range is 16,32,48 for level 0,1,2 respectively. + Spatial/intra options ===================== @@ -1415,7 +1438,20 @@ This value represents the percentage difference between the inter cost and intra cost of a frame used in scenecut detection. For example, a value of 5 indicates, if the inter cost of a frame is greater than or equal to 95 percent of the intra cost of the frame, - then detect this frame as scenecut. Values between 5 and 15 are recommended. Default 5. + then detect this frame as scenecut. Values between 5 and 15 are recommended. Default 5. + +.. option:: --hist-scenecut, --no-hist-scenecut + + Indicates that scenecuts need to be detected using luma edge and chroma histograms. + :option: `--hist-scenecut` enables scenecut detection using the histograms and disables the default scene cut algorithm. + :option: `--no-hist-scenecut` disables histogram based scenecut algorithm. + +.. option:: --hist-threshold <0.0..2.0> + + This value represents the threshold for normalized SAD of edge histograms used in scenecut detection. + This requires :option: `--hist-scenecut` to be enabled. For example, a value of 0.2 indicates that a frame with normalized SAD value + greater than 0.2 against the previous frame as scenecut. + Default 0.01. .. option:: --radl <integer> @@ -1761,8 +1797,8 @@ and also redundant steps are skipped. In pass 1 analysis information like motion vector, depth, reference and prediction modes of the final best CTU partition is stored for each CTU. - Multipass analysis refinement cannot be enabled when 'analysis-save/analysis-load' option - is enabled and both will be disabled when enabled together. This feature requires 'pmode/pme' + Multipass analysis refinement cannot be enabled when :option:`--analysis-save`/:option:`analysis-load` + is enabled and both will be disabled when enabled together. This feature requires :option:`--pmode`/:option:`--pme` to be disabled and hence pmode/pme will be disabled when enabled at the same time. Default: disabled. @@ -1773,9 +1809,9 @@ ratecontrol. In pass 1 distortion of best CTU partition is stored. CTUs with high distortion get lower(negative)qp offsets and vice-versa for low distortion CTUs in pass 2. This helps to improve the subjective quality. - Multipass refinement of qp cannot be enabled when 'analysis-save/analysis-load' option - is enabled and both will be disabled when enabled together. 'multi-pass-opt-distortion' - requires 'pmode/pme' to be disabled and hence pmode/pme will be disabled when enabled along with it. + Multipass refinement of qp cannot be enabled when :option:`--analysis-save`/:option:`--analysis-load` + is enabled and both will be disabled when enabled together. It requires :option:`--pmode`/:option:`--pme` to be + disabled and hence pmode/pme will be disabled when enabled along with it. Default: disabled. @@ -1887,6 +1923,28 @@ **CLI ONLY** +.. option:: --scenecut-aware-qp, --no-scenecut-aware-qp + + Enables a ratecontrol algorithm for reducing the bits spent on the inter-frames + within the :option:`--scenecut-window` after a scenecut by increasing their QP + without any deterioration in visual quality. It also increases the quality of + scenecut I-Frames by reducing their QP. Default disabled. + +.. option:: --scenecut-window <integer> + + The duration(in milliseconds) for which there is a reduction in the bits spent + on the inter-frames after a scenecut by increasing their QP, when + :option:`--scenecut-aware-qp` is enabled. Default 500ms. + + **Range of values:** 0 to 1000 + +.. option:: --max-qp-delta <integer> + + The offset by which QP is incremented for inter-frames + when :option:`--scenecut-aware-qp` is enabled. Default 5. + + **Range of values:** 0 to 10 + Quantization Options ==================== @@ -2198,18 +2256,20 @@ is specified. When enabled, signals max-cll and max-fall as 0 if :option:`max-cll` is unspecified. Default enabled. -.. option:: --hdr, --no-hdr +.. option:: --hdr10, --no-hdr10 - Force signalling of HDR parameters in SEI packets. Enabled + Force signaling of HDR10 parameters in SEI packets. Enabled automatically when :option:`--master-display` or :option:`--max-cll` is specified. Useful when there is a desire to signal 0 values for max-cll
View file
x265_3.2.1.tar.gz/doc/reST/presets.rst -> x265_3.3.tar.gz/doc/reST/presets.rst
Changed
@@ -67,9 +67,9 @@ +-----------------+-----+-----+-----+-----+-----+-----+------+------+------+------+ | max-merge | 2 | 2 | 2 | 2 | 2 | 2 | 3 | 4 | 5 | 5 | +-----------------+-----+-----+-----+-----+-----+-----+------+------+------+------+ -| early-skip | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | +| early-skip | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | +-----------------+-----+-----+-----+-----+-----+-----+------+------+------+------+ -| recursion-skip | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | +| recursion-skip | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | +-----------------+-----+-----+-----+-----+-----+-----+------+------+------+------+ | fast-intra | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | +-----------------+-----+-----+-----+-----+-----+-----+------+------+------+------+
View file
x265_3.2.1.tar.gz/doc/reST/releasenotes.rst -> x265_3.3.tar.gz/doc/reST/releasenotes.rst
Changed
@@ -2,6 +2,41 @@ Release Notes ************* +Version 3.3 +=========== + +Release date - 17th February, 2020. + +New features +------------ +1. **Adaptive frame duplication** to identify and skip encoding of near-identical frames and signal the duplication info to the decoder via pic_struct SEI. :option:`frame-dup` to enable frame duplication and :option:`--dup-threshold` to set the threshold for frame similarity (optional). +2. **Boundary aware quantization** to cut off bits from frames following scene-cut. This leverages the inability of HVS to perceive fine details during scene changes and saves bits. :option:`--scenecut-aware-qp` , :option:`--scenecut-window` and :option:`--max-qp-delta` to enable boundary aware frame quantization, to set window size (optional) and to set QP offset (optional). +3. **Improved scene-cut detection** using edge and chroma histograms. :option:`--hist-scenecut` to enable the feature and :option:`--hist-threshold` (optional) to provide threshold for determining scene cuts. + +Enhancements to existing features +--------------------------------- +1. :option:`--hme-range` to modify search range for HME levels L0, L1, and L2. +2. Improved performance of AQ mode 4 by reducing memory foot print. +3. Introduced :option:`--analysis-save-reuse-level` and :option:`--analysis-load-reuse-level` to de-couple reuse levels of :option:`--analysis-save` and :option:`--analysis-load`. Turnaround time of ABR encoding can be reduced by properly leveraging these options. + +Encoder enhancements +-------------------- +1. Improved VBV lookahead to eliminate blocky artifacts in Intra frames coming towards end of the title. + +API changes +----------- +1. New API function **x265_encoder_reconfig_zone()** to invoke zone reconfiguration dynamically. +2. Renamed :option:`--hdr` to :option:`--hdr10`. :option:`--hdr` will be deprecated in the upcoming major release. +3. Renamed :option:`--hdr-opt` to :option:`--hdr10-opt`. :option:`--hdr-opt` will be deprecated in the upcoming major release. +4. Additions to **x265_param** structure to support the newly added features and encoder enhancements. + +Bug fixes +--------- +1. Output change in :option:`--analysis-load` at inter-refine levels 2 and 3. +2. Encoder crash with zones. +3. Integration issues with SVT v1.4.1. +4. Fixed bug in :option:`--limit-tu` 3 and 4 while loading co-located CU's TU depth. + Version 3.2 ===========
View file
x265_3.2.1.tar.gz/doc/reST/svthevc.rst -> x265_3.3.tar.gz/doc/reST/svthevc.rst
Changed
@@ -12,6 +12,10 @@ wont't be mapped to SVT-HEVC. This document describes the steps needed to compile x265 with SVT-HEVC and CLI options mapping between x265 and SVT-HEVC. +Supported Version +================= +Version - 1.4.1 + Build Steps =========== This section describes the build steps to be followed to link SVT-HEVC with x265. @@ -109,7 +113,15 @@ +-------------------------------------------+------------------------------+------------------------------+ | :option:`--nalu-file` | NaluFile | Any String | +-------------------------------------------+------------------------------+------------------------------+ -| :option:`--tune` zerolatency | LatencyMode | | +| :option:`--hrd` | hrdFlag | [0, 1] | ++-------------------------------------------+------------------------------+------------------------------+ +| :option:`--vbv-maxrate` | vbvMaxrate | Any Positive Integer | ++-------------------------------------------+------------------------------+------------------------------+ +| :option:`--vbv-bufsize` | vbvBufsize | Any Positive Integer | ++-------------------------------------------+------------------------------+------------------------------+ +| :option:`--vbv-init` | VbvBufInit | [0 - 100] | ++-------------------------------------------+------------------------------+------------------------------+ +| :option:`--frame-threads` | ThreadCount | Any Number | +-------------------------------------------+------------------------------+------------------------------+ | :option:`--svt-search-width` | SearchAreaWidth | [1 - 256] | +-------------------------------------------+------------------------------+------------------------------+ @@ -139,64 +151,37 @@ fecilitate access to the features of SVT-HEVC which couldn't be mapped to the existing x265 CLI's. So these options will have effect only if SVT-HEVC is enabled and would be ignored with default x265 encode. -Preset & Tune Options Mapping +Preset Option Mapping ============================= -x265 has 10 presets from ultrafast to placebo whereas SVT-HEVC has 13 presets. Use :option:`--svt-preset-tuner` -with Placebo preset to access the additional 3 presets of SVT-HEVC. Note that :option:`--svt-preset-tuner` should be +x265 has 10 presets from ultrafast to placebo whereas SVT-HEVC has 12 presets. Use :option:`--svt-preset-tuner` +with Placebo preset to access the additional 2 presets of SVT-HEVC. Note that :option:`--svt-preset-tuner` should be used only if SVT-HEVC is enabled and only with Placebo preset, would be ignored otherwise. Below table shows the actual mapping of presets, +----------------------------------------+------------------------------+ | x265 Preset | SVT-HEVC Preset | +========================================+==============================+ -| Ultrafast | 12 | +| Ultrafast | 11 | +----------------------------------------+------------------------------+ -| Superfast | 11 | +| Superfast | 10 | +----------------------------------------+------------------------------+ -| Veryfast | 10 | +| Veryfast | 9 | +----------------------------------------+------------------------------+ -| Faster | 9 | +| Faster | 8 | +----------------------------------------+------------------------------+ -| Fast | 8 | +| Fast | 7 | +----------------------------------------+------------------------------+ -| Medium | 7 | +| Medium | 6 | +----------------------------------------+------------------------------+ -| Slow | 6 | +| Slow | 5 | +----------------------------------------+------------------------------+ -| Slower | 5 | +| Slower | 4 | +----------------------------------------+------------------------------+ -| Veryslow | 4 | +| Veryslow | 3 | +----------------------------------------+------------------------------+ -| Placebo | 3 | +| Placebo | 2 | +----------------------------------------+------------------------------+ | Placebo :option:`--svt-preset-tuner` 0 | 0 | +----------------------------------------+------------------------------+ | Placebo :option:`--svt-preset-tuner` 1 | 1 | +----------------------------------------+------------------------------+ -| Placebo :option:`--svt-preset-tuner` 2 | 2 | -+----------------------------------------+------------------------------+ - -x265 has 5 tune modes (psnr, ssim, grain, zero-latency, animation) whereas SVT-HEVC -has only 3 tune modes (0 - visual quality, 1 - PSNR / SSIM and 2 - VMAF). Below -table shows the mapping of tune modes, - -+-----------------------+---------------------------+ -| x265 Tune Modes | SVT-HEVC Tune Modes | -+=======================+===========================+ -| vmaf | 2 | -+-----------------------+---------------------------+ -| psnr | 1 | -+-----------------------+---------------------------+ -| ssim | 1 | -+-----------------------+---------------------------+ -| grain | 0 | -+-----------------------+---------------------------+ -| fastdecode | 0 | -+-----------------------+---------------------------+ -| zerolatency | 0 | -+-----------------------+---------------------------+ -| animation | 0 | -+-----------------------+---------------------------+ - -Note that : 1.option:`--tune` animation is also mapped to "LatencyMode" of SVT-HEVC. - 2.option: '--tune' vmaf is not supported in x265, its under development.
View file
x265_3.2.1.tar.gz/source/CMakeLists.txt -> x265_3.3.tar.gz/source/CMakeLists.txt
Changed
@@ -29,7 +29,7 @@ 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 179) +set(X265_BUILD 188) configure_file("${PROJECT_SOURCE_DIR}/x265.def.in" "${PROJECT_BINARY_DIR}/x265.def") configure_file("${PROJECT_SOURCE_DIR}/x265_config.h.in" @@ -573,8 +573,7 @@ if(SVTHEVC_FOUND) install(FILES "${SVT_HEVC_INCLUDE_DIR}/EbApi.h" DESTINATION include) install(FILES "${SVT_HEVC_INCLUDE_DIR}/EbErrorCodes.h" DESTINATION include) - install(FILES "${SVT_HEVC_INCLUDE_DIR}/EbTime.h" DESTINATION include) - install(FILES "${SVT_HEVC_LIBRARY}" DESTINATION ${BIN_INSTALL_DIR}) + install(FILES "${SVT_HEVC_LIBRARY}" DESTINATION ${LIB_INSTALL_DIR}) endif() install(FILES x265.h "${PROJECT_BINARY_DIR}/x265_config.h" DESTINATION include)
View file
x265_3.2.1.tar.gz/source/cmake/FindNuma.cmake -> x265_3.3.tar.gz/source/cmake/FindNuma.cmake
Changed
@@ -14,7 +14,7 @@ # NUMA_LIBRARY # Points to the libnuma that can be passed to target_link_libararies. # -# Copyright (c) 2013-2017 MulticoreWare, Inc +# Copyright (c) 2013-2020 MulticoreWare, Inc include(FindPackageHandleStandardArgs)
View file
x265_3.2.1.tar.gz/source/cmake/FindVLD.cmake -> x265_3.3.tar.gz/source/cmake/FindVLD.cmake
Changed
@@ -23,7 +23,7 @@ # target_link_libararies. # # -# Copyright (c) 2013-2017 MulticoreWare, Inc +# Copyright (c) 2013-2020 MulticoreWare, Inc # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal
View file
x265_3.2.1.tar.gz/source/cmake/FindVtune.cmake -> x265_3.3.tar.gz/source/cmake/FindVtune.cmake
Changed
@@ -5,7 +5,7 @@ # VTUNE_INCLUDE_DIR: Points to the vtunes include dir # VTUNE_LIBRARY_DIR: Points to the directory with libraries # -# Copyright (c) 2013-2017 MulticoreWare, Inc +# Copyright (c) 2013-2020 MulticoreWare, Inc include(FindPackageHandleStandardArgs)
View file
x265_3.2.1.tar.gz/source/cmake/Findsvthevc.cmake -> x265_3.3.tar.gz/source/cmake/Findsvthevc.cmake
Changed
@@ -15,34 +15,37 @@ SET(CMAKE_FIND_LIBRARY_SUFFIXES ".lib") endif() -set(SVT_VERSION_MAJOR_REQUIRED 1) -set(SVT_VERSION_MINOR_REQUIRED 3) -set(SVT_VERSION_PATCHLEVEL_REQUIRED 0) +set(SVT_VERSION_MAJOR_REQUIRED 1) +set(SVT_VERSION_MINOR_REQUIRED 4) +set(SVT_VERSION_PATCHLEVEL_REQUIRED 1) find_path(SVT_HEVC_INCLUDE_DIR - NAMES EbApi.h EbErrorCodes.h EbTime.h + NAMES EbApiVersion.h EbErrorCodes.h HINTS $ENV{SVT_HEVC_INCLUDE_DIR} PATHS ENV DOC "SVT-HEVC include directory") if(SVT_HEVC_INCLUDE_DIR) -file(READ "${SVT_HEVC_INCLUDE_DIR}/EbApi.h" version) - -string(REGEX MATCH "SVT_VERSION_MAJOR ([0-9]*)" _ ${version}) -set(SVT_VERSION_MAJOR ${CMAKE_MATCH_1}) - -string(REGEX MATCH "SVT_VERSION_MINOR ([0-9]*)" _ ${version}) -set(SVT_VERSION_MINOR ${CMAKE_MATCH_1}) - -string(REGEX MATCH "SVT_VERSION_PATCHLEVEL ([0-9]*)" _ ${version}) -set(SVT_VERSION_PATCHLEVEL ${CMAKE_MATCH_1}) - -if(NOT ${SVT_VERSION_MAJOR} EQUAL "1" OR NOT ${SVT_VERSION_MINOR} EQUAL "3" OR NOT ${SVT_VERSION_PATCHLEVEL} EQUAL "0") - message (SEND_ERROR "-- Found SVT-HEVC Lib Version: ${SVT_VERSION_MAJOR}.${SVT_VERSION_MINOR}.${SVT_VERSION_PATCHLEVEL} which doesn't match the required version: ${SVT_VERSION_MAJOR_REQUIRED}.${SVT_VERSION_MINOR_REQUIRED}.${SVT_VERSION_PATCHLEVEL_REQUIRED}; Aborting configure ") -else() - message(STATUS "-- Found SVT-HEVC Lib Version: ${SVT_VERSION_MAJOR}.${SVT_VERSION_MINOR}.${SVT_VERSION_PATCHLEVEL}") -endif() - + if(EXISTS "${SVT_HEVC_INCLUDE_DIR}/EbApiVersion.h") + file(READ "${SVT_HEVC_INCLUDE_DIR}/EbApiVersion.h" version) + + string(REGEX MATCH "SVT_VERSION_MAJOR \\(([0-9]*)\\)" _ ${version}) + set(SVT_VERSION_MAJOR ${CMAKE_MATCH_1}) + + string(REGEX MATCH "SVT_VERSION_MINOR \\(([0-9]*)\\)" _ ${version}) + set(SVT_VERSION_MINOR ${CMAKE_MATCH_1}) + + string(REGEX MATCH "SVT_VERSION_PATCHLEVEL \\(([0-9]*)\\)" _ ${version}) + set(SVT_VERSION_PATCHLEVEL ${CMAKE_MATCH_1}) + + if(NOT ${SVT_VERSION_MAJOR} EQUAL "1" OR NOT ${SVT_VERSION_MINOR} EQUAL "4" OR NOT ${SVT_VERSION_PATCHLEVEL} EQUAL "1") + message (SEND_ERROR "-- Found SVT-HEVC Lib Version: ${SVT_VERSION_MAJOR}.${SVT_VERSION_MINOR}.${SVT_VERSION_PATCHLEVEL} which doesn't match the required version: ${SVT_VERSION_MAJOR_REQUIRED}.${SVT_VERSION_MINOR_REQUIRED}.${SVT_VERSION_PATCHLEVEL_REQUIRED}; Aborting configure ") + else() + message(STATUS "-- Found SVT-HEVC Lib Version: ${SVT_VERSION_MAJOR}.${SVT_VERSION_MINOR}.${SVT_VERSION_PATCHLEVEL}") + endif() + else() + message (SEND_ERROR "-- Required version of SVT-HEVC Lib: ${SVT_VERSION_MAJOR_REQUIRED}.${SVT_VERSION_MINOR_REQUIRED}.${SVT_VERSION_PATCHLEVEL_REQUIRED}; Aborting configure ") + endif() endif() find_library(SVT_HEVC_LIBRARY
View file
x265_3.2.1.tar.gz/source/common/arm/asm-primitives.cpp -> x265_3.3.tar.gz/source/common/arm/asm-primitives.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Praveen Kumar Tiwari <praveen@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/common/arm/asm.S -> x265_3.3.tar.gz/source/common/arm/asm.S
Changed
@@ -1,7 +1,7 @@ /***************************************************************************** * asm.S: arm utility macros ***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Mans Rullgard <mans@mansr.com> * David Conrad <lessen42@gmail.com>
View file
x265_3.2.1.tar.gz/source/common/arm/blockcopy8.S -> x265_3.3.tar.gz/source/common/arm/blockcopy8.S
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Radhakrishnan VR <radhakrishnan@multicorewareinc.com> *
View file
x265_3.2.1.tar.gz/source/common/arm/blockcopy8.h -> x265_3.3.tar.gz/source/common/arm/blockcopy8.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/common/arm/cpu-a.S -> x265_3.3.tar.gz/source/common/arm/cpu-a.S
Changed
@@ -1,7 +1,7 @@ /***************************************************************************** * cpu-a.S: arm cpu detection ***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: David Conrad <lessen42@gmail.com> * Dnyaneshwar Gorade <dnyaneshwar@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/common/arm/dct-a.S -> x265_3.3.tar.gz/source/common/arm/dct-a.S
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Min Chen <chenm003@163.com> *
View file
x265_3.2.1.tar.gz/source/common/arm/dct8.h -> x265_3.3.tar.gz/source/common/arm/dct8.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Min Chen <chenm003@163.com> * Dnyaneshwar Gorade <dnyaneshwar@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/common/arm/intrapred.h -> x265_3.3.tar.gz/source/common/arm/intrapred.h
Changed
@@ -1,7 +1,7 @@ /***************************************************************************** * intrapred.h: Intra Prediction metrics ***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Min Chen <chenm003@163.com> <min.chen@multicorewareinc.com> * Praveen Kumar Tiwari <praveen@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/common/arm/ipfilter8.S -> x265_3.3.tar.gz/source/common/arm/ipfilter8.S
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Dnyaneshwar G <dnyaneshwar@multicorewareinc.com> * Radhakrishnan VR <radhakrishnan@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/common/arm/ipfilter8.h -> x265_3.3.tar.gz/source/common/arm/ipfilter8.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Dnyaneshwar Gorade <dnyaneshwar@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/common/arm/loopfilter.h -> x265_3.3.tar.gz/source/common/arm/loopfilter.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Dnyaneshwar Gorade <dnyaneshwar@multicorewareinc.com> * Praveen Kumar Tiwari <praveen@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/common/arm/mc-a.S -> x265_3.3.tar.gz/source/common/arm/mc-a.S
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Dnyaneshwar Gorade <dnyaneshwar@multicorewareinc.com> * Radhakrishnan <radhakrishnan@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/common/arm/mc.h -> x265_3.3.tar.gz/source/common/arm/mc.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> *
View file
x265_3.2.1.tar.gz/source/common/arm/pixel-util.S -> x265_3.3.tar.gz/source/common/arm/pixel-util.S
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Dnyaneshwar G <dnyaneshwar@multicorewareinc.com> * Radhakrishnan VR <radhakrishnan@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/common/arm/pixel-util.h -> x265_3.3.tar.gz/source/common/arm/pixel-util.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> ;* Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/common/arm/pixel.h -> x265_3.3.tar.gz/source/common/arm/pixel.h
Changed
@@ -2,7 +2,7 @@ * pixel.h: x86 pixel metrics ***************************************************************************** * Copyright (C) 2003-2017 x265 project - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Laurent Aimar <fenrir@via.ecp.fr> * Loren Merritt <lorenm@u.washington.edu>
View file
x265_3.2.1.tar.gz/source/common/arm/sad-a.S -> x265_3.3.tar.gz/source/common/arm/sad-a.S
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: David Conrad <lessen42@gmail.com> * Janne Grunau <janne-x264@jannau.net>
View file
x265_3.2.1.tar.gz/source/common/arm/ssd-a.S -> x265_3.3.tar.gz/source/common/arm/ssd-a.S
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Dnyaneshwar G <dnyaneshwar@multicorewareinc.com> *
View file
x265_3.2.1.tar.gz/source/common/bitstream.h -> x265_3.3.tar.gz/source/common/bitstream.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Author: Steve Borho <steve@borho.org> * Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/common/common.cpp -> x265_3.3.tar.gz/source/common/common.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Deepthi Nandakumar <deepthi@multicorewareinc.com> *
View file
x265_3.2.1.tar.gz/source/common/common.h -> x265_3.3.tar.gz/source/common/common.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Deepthi Nandakumar <deepthi@multicorewareinc.com> * Min Chen <chenm003@163.com> @@ -129,12 +129,14 @@ typedef uint64_t sum2_t; typedef uint64_t pixel4; typedef int64_t ssum2_t; +#define HISTOGRAM_BINS 1024 #else typedef uint8_t pixel; typedef uint16_t sum_t; typedef uint32_t sum2_t; typedef uint32_t pixel4; typedef int32_t ssum2_t; // Signed sum +#define HISTOGRAM_BINS 256 #endif // if HIGH_BIT_DEPTH #if X265_DEPTH < 10
View file
x265_3.2.1.tar.gz/source/common/constants.cpp -> x265_3.3.tar.gz/source/common/constants.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** -* Copyright (C) 2013-2017 MulticoreWare, Inc +* Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/common/constants.h -> x265_3.3.tar.gz/source/common/constants.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/common/contexts.h -> x265_3.3.tar.gz/source/common/contexts.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** -* Copyright (C) 2013-2017 MulticoreWare, Inc +* Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/common/cpu.cpp -> x265_3.3.tar.gz/source/common/cpu.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Loren Merritt <lorenm@u.washington.edu> * Laurent Aimar <fenrir@via.ecp.fr>
View file
x265_3.2.1.tar.gz/source/common/cpu.h -> x265_3.3.tar.gz/source/common/cpu.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Loren Merritt <lorenm@u.washington.edu> * Steve Borho <steve@borho.org>
View file
x265_3.2.1.tar.gz/source/common/cudata.cpp -> x265_3.3.tar.gz/source/common/cudata.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/common/cudata.h -> x265_3.3.tar.gz/source/common/cudata.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> *
View file
x265_3.2.1.tar.gz/source/common/dct.cpp -> x265_3.3.tar.gz/source/common/dct.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Mandar Gurav <mandar@multicorewareinc.com> * Deepthi Devaki Akkoorath <deepthidevaki@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/common/deblock.cpp -> x265_3.3.tar.gz/source/common/deblock.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** -* Copyright (C) 2013-2017 MulticoreWare, Inc +* Copyright (C) 2013-2020 MulticoreWare, Inc * * Author: Gopu Govindaswamy <gopu@multicorewareinc.com> * Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/common/deblock.h -> x265_3.3.tar.gz/source/common/deblock.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** -* Copyright (C) 2013-2017 MulticoreWare, Inc +* Copyright (C) 2013-2020 MulticoreWare, Inc * * Author: Gopu Govindaswamy <gopu@multicorewareinc.com> * Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/common/frame.cpp -> x265_3.3.tar.gz/source/common/frame.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** -* Copyright (C) 2013-2017 MulticoreWare, Inc +* Copyright (C) 2013-2020 MulticoreWare, Inc * * Author: Steve Borho <steve@borho.org> * Min Chen <chenm003@163.com> @@ -57,6 +57,7 @@ m_addOnPrevChange = NULL; m_classifyFrame = false; m_fieldNum = 0; + m_picStruct = 0; m_edgePic = NULL; m_gaussianPic = NULL; m_thetaPic = NULL;
View file
x265_3.2.1.tar.gz/source/common/frame.h -> x265_3.3.tar.gz/source/common/frame.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** -* Copyright (C) 2013-2017 MulticoreWare, Inc +* Copyright (C) 2013-2020 MulticoreWare, Inc * * Author: Steve Borho <steve@borho.org> * Min Chen <chenm003@163.com> @@ -98,6 +98,7 @@ float* m_quantOffsets; // points to quantOffsets in x265_picture x265_sei m_userSEI; + uint32_t m_picStruct; // picture structure SEI message x265_dolby_vision_rpu m_rpu; /* Frame Parallelism - notification between FrameEncoders of available motion reference rows */
View file
x265_3.2.1.tar.gz/source/common/framedata.cpp -> x265_3.3.tar.gz/source/common/framedata.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** -* Copyright (C) 2013-2017 MulticoreWare, Inc +* Copyright (C) 2013-2020 MulticoreWare, Inc * * Author: Steve Borho <steve@borho.org> *
View file
x265_3.2.1.tar.gz/source/common/framedata.h -> x265_3.3.tar.gz/source/common/framedata.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** -* Copyright (C) 2013-2017 MulticoreWare, Inc +* Copyright (C) 2013-2020 MulticoreWare, Inc * * Author: Steve Borho <steve@borho.org> *
View file
x265_3.2.1.tar.gz/source/common/intrapred.cpp -> x265_3.3.tar.gz/source/common/intrapred.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Min Chen <chenm003@163.com> *
View file
x265_3.2.1.tar.gz/source/common/ipfilter.cpp -> x265_3.3.tar.gz/source/common/ipfilter.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Deepthi Devaki <deepthidevaki@multicorewareinc.com>, * Rajesh Paulraj <rajesh@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/common/loopfilter.cpp -> x265_3.3.tar.gz/source/common/loopfilter.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** -* Copyright (C) 2013-2017 MulticoreWare, Inc +* Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Praveen Kumar Tiwari <praveen@multicorewareinc.com> * Dnyaneshwar Gorade <dnyaneshwar@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/common/lowres.cpp -> x265_3.3.tar.gz/source/common/lowres.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Gopu Govindaswamy <gopu@multicorewareinc.com> * Ashok Kumar Mishra <ashok@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/common/lowres.h -> x265_3.3.tar.gz/source/common/lowres.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Gopu Govindaswamy <gopu@multicorewareinc.com> *
View file
x265_3.2.1.tar.gz/source/common/md5.cpp -> x265_3.3.tar.gz/source/common/md5.cpp
Changed
@@ -1,7 +1,7 @@ /***************************************************************************** * md5.cpp: Calculate MD5 for SEI ***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Min Chen <chenm003@163.com> *
View file
x265_3.2.1.tar.gz/source/common/md5.h -> x265_3.3.tar.gz/source/common/md5.h
Changed
@@ -1,7 +1,7 @@ /***************************************************************************** * md5.h: Calculate MD5 ***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Min Chen <chenm003@163.com> *
View file
x265_3.2.1.tar.gz/source/common/mv.h -> x265_3.3.tar.gz/source/common/mv.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> *
View file
x265_3.2.1.tar.gz/source/common/param.cpp -> x265_3.3.tar.gz/source/common/param.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Deepthi Nandakumar <deepthi@multicorewareinc.com> * Min Chen <min.chen@multicorewareinc.com> @@ -135,6 +135,7 @@ /* Source specifications */ param->internalBitDepth = X265_DEPTH; + param->sourceBitDepth = 8; param->internalCsp = X265_CSP_I420; param->levelIdc = 0; //Auto-detect level param->uhdBluray = 0; @@ -146,7 +147,8 @@ param->bEnableAccessUnitDelimiters = 0; param->bEmitHRDSEI = 0; param->bEmitInfoSEI = 1; - param->bEmitHDRSEI = 0; + param->bEmitHDRSEI = 0; /*Deprecated*/ + param->bEmitHDR10SEI = 0; param->bEmitIDRRecoverySEI = 0; /* CU definitions */ @@ -166,6 +168,8 @@ param->bFrameAdaptive = X265_B_ADAPT_TRELLIS; param->bBPyramid = 1; param->scenecutThreshold = 40; /* Magic number pulled in from x264 */ + param->edgeTransitionThreshold = 0.01; + param->bHistBasedSceneCut = 0; param->lookaheadSlices = 8; param->lookaheadThreads = 0; param->scenecutBias = 5.0; @@ -174,6 +178,9 @@ param->chunkEnd = 0; param->bEnableHRDConcatFlag = 0; param->bEnableFades = 0; + param->bEnableSceneCutAwareQp = 0; + param->scenecutWindow = 500; + param->maxQpDelta = 5; /* Intra Coding Tools */ param->bEnableConstrainedIntra = 0; @@ -204,6 +211,9 @@ param->bEnableHME = 0; param->hmeSearchMethod[0] = X265_HEX_SEARCH; param->hmeSearchMethod[1] = param->hmeSearchMethod[2] = X265_UMH_SEARCH; + param->hmeRange[0] = 16; + param->hmeRange[1] = 32; + param->hmeRange[2] = 48; param->bSourceReferenceEstimation = 0; param->limitTU = 0; param->dynamicRd = 0; @@ -273,6 +283,8 @@ param->rc.qpMin = 0; param->rc.qpMax = QP_MAX_MAX; param->rc.bEnableConstVbv = 0; + param->bResetZoneConfig = 1; + param->reconfigWindowSize = 0; /* Video Usability Information (VUI) */ param->vui.aspectRatioIdc = 0; @@ -301,14 +313,21 @@ param->log2MaxPocLsb = 8; param->maxSlices = 1; + /*Conformance window*/ + param->confWinRightOffset = 0; + param->confWinBottomOffset = 0; + param->bEmitVUITimingInfo = 1; param->bEmitVUIHRDInfo = 1; param->bOptQpPPS = 0; param->bOptRefListLengthPPS = 0; param->bOptCUDeltaQP = 0; param->bAQMotion = 0; - param->bHDROpt = 0; - param->analysisReuseLevel = 5; + param->bHDROpt = 0; /*DEPRECATED*/ + param->bHDR10Opt = 0; + param->analysisReuseLevel = 0; /*DEPRECATED*/ + param->analysisSaveReuseLevel = 0; + param->analysisLoadReuseLevel = 0; param->toneMapFile = NULL; param->bDhdr10opt = 0; param->dolbyProfile = 0; @@ -338,6 +357,9 @@ param->pictureStructure = -1; param->bEmitCLL = 1; + param->bEnableFrameDuplication = 0; + param->dupThreshold = 70; + /* SVT Hevc Encoder specific params */ param->bEnableSvtHevc = 0; param->svtHevcParam = NULL; @@ -563,6 +585,7 @@ param->bframes = 0; param->lookaheadDepth = 0; param->scenecutThreshold = 0; + param->bHistBasedSceneCut = 0; param->rc.cuTree = 0; param->frameNumThreads = 1; } @@ -598,7 +621,7 @@ } #ifdef SVT_HEVC - if (svt_set_preset_tune(param, preset, tune)) + if (svt_set_preset(param, preset)) return -1; #endif @@ -911,12 +934,13 @@ OPT("lookahead-slices") p->lookaheadSlices = atoi(value); OPT("scenecut") { - p->scenecutThreshold = atobool(value); - if (bError || p->scenecutThreshold) - { - bError = false; - p->scenecutThreshold = atoi(value); - } + p->scenecutThreshold = atobool(value); + if (bError || p->scenecutThreshold) + { + bError = false; + p->scenecutThreshold = atoi(value); + p->bHistBasedSceneCut = 0; + } } OPT("temporal-layers") p->bEnableTemporalSubLayers = atobool(value); OPT("keyint") p->keyframeMax = atoi(value); @@ -1182,13 +1206,35 @@ OPT("opt-ref-list-length-pps") p->bOptRefListLengthPPS = atobool(value); OPT("multi-pass-opt-rps") p->bMultiPassOptRPS = atobool(value); OPT("scenecut-bias") p->scenecutBias = atof(value); + OPT("hist-scenecut") + { + p->bHistBasedSceneCut = atobool(value); + if (bError) + { + bError = false; + p->bHistBasedSceneCut = 0; + } + if (p->bHistBasedSceneCut) + { + bError = false; + p->scenecutThreshold = 0; + } + } + OPT("hist-threshold") p->edgeTransitionThreshold = atof(value); OPT("lookahead-threads") p->lookaheadThreads = atoi(value); OPT("opt-cu-delta-qp") p->bOptCUDeltaQP = atobool(value); OPT("multi-pass-opt-analysis") p->analysisMultiPassRefine = atobool(value); OPT("multi-pass-opt-distortion") p->analysisMultiPassDistortion = atobool(value); OPT("aq-motion") p->bAQMotion = atobool(value); OPT("dynamic-rd") p->dynamicRd = atof(value); - OPT("analysis-reuse-level") p->analysisReuseLevel = atoi(value); + OPT("analysis-reuse-level") + { + p->analysisReuseLevel = atoi(value); + p->analysisSaveReuseLevel = atoi(value); + p->analysisLoadReuseLevel = atoi(value); + } + OPT("analysis-save-reuse-level") p->analysisSaveReuseLevel = atoi(value); + OPT("analysis-load-reuse-level") p->analysisLoadReuseLevel = atoi(value); OPT("ssim-rd") { int bval = atobool(value); @@ -1199,8 +1245,10 @@ p->bSsimRd = atobool(value); } } - OPT("hdr") p->bEmitHDRSEI = atobool(value); - OPT("hdr-opt") p->bHDROpt = atobool(value); + OPT("hdr") p->bEmitHDR10SEI = atobool(value); /*DEPRECATED*/ + OPT("hdr10") p->bEmitHDR10SEI = atobool(value); + OPT("hdr-opt") p->bHDR10Opt = atobool(value); /*DEPRECATED*/ + OPT("hdr10-opt") p->bHDR10Opt = atobool(value); OPT("limit-sao") p->bLimitSAO = atobool(value); OPT("dhdr10-info") p->toneMapFile = strdup(value); OPT("dhdr10-opt") p->bDhdr10opt = atobool(value); @@ -1229,7 +1277,7 @@ } else if (strcmp(strdup(value), "off") == 0) { - p->bAnalysisType = NO_INFO; + p->bAnalysisType = DEFAULT; } else { @@ -1288,8 +1336,13 @@ p->selectiveSAO = atoi(value); } OPT("fades") p->bEnableFades = atobool(value); + OPT("scenecut-aware-qp") p->bEnableSceneCutAwareQp = atobool(value); + OPT("scenecut-window") p->scenecutWindow = atoi(value); + OPT("max-qp-delta") p->maxQpDelta = atoi(value);
View file
x265_3.2.1.tar.gz/source/common/param.h -> x265_3.3.tar.gz/source/common/param.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Deepthi Nandakumar <deepthi@multicorewareinc.com> * Praveen Kumar Tiwari <praveen@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/common/piclist.cpp -> x265_3.3.tar.gz/source/common/piclist.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Gopu Govindaswamy <gopu@multicorewareinc.com> *
View file
x265_3.2.1.tar.gz/source/common/piclist.h -> x265_3.3.tar.gz/source/common/piclist.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Gopu Govindaswamy <gopu@multicorewareinc.com> *
View file
x265_3.2.1.tar.gz/source/common/picyuv.cpp -> x265_3.3.tar.gz/source/common/picyuv.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/common/picyuv.h -> x265_3.3.tar.gz/source/common/picyuv.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> *
View file
x265_3.2.1.tar.gz/source/common/pixel.cpp -> x265_3.3.tar.gz/source/common/pixel.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Mandar Gurav <mandar@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/common/ppc/dct_altivec.cpp -> x265_3.3.tar.gz/source/common/ppc/dct_altivec.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Roger Moussalli <rmoussal@us.ibm.com> * Min Chen <min.chen@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/common/ppc/intrapred_altivec.cpp -> x265_3.3.tar.gz/source/common/ppc/intrapred_altivec.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Roger Moussalli <rmoussal@us.ibm.com> * Min Chen <min.chen@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/common/ppc/ipfilter_altivec.cpp -> x265_3.3.tar.gz/source/common/ppc/ipfilter_altivec.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Roger Moussalli <rmoussal@us.ibm.com> * Min Chen <min.chen@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/common/ppc/pixel_altivec.cpp -> x265_3.3.tar.gz/source/common/ppc/pixel_altivec.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Mandar Gurav <mandar@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/common/ppc/ppccommon.h -> x265_3.3.tar.gz/source/common/ppc/ppccommon.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Min Chen <min.chen@multicorewareinc.com> *
View file
x265_3.2.1.tar.gz/source/common/predict.cpp -> x265_3.3.tar.gz/source/common/predict.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** -* Copyright (C) 2013-2017 MulticoreWare, Inc +* Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Deepthi Nandakumar <deepthi@multicorewareinc.com> * Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/common/predict.h -> x265_3.3.tar.gz/source/common/predict.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** -* Copyright (C) 2013-2017 MulticoreWare, Inc +* Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Deepthi Nandakumar <deepthi@multicorewareinc.com> * Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/common/primitives.cpp -> x265_3.3.tar.gz/source/common/primitives.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> *
View file
x265_3.2.1.tar.gz/source/common/primitives.h -> x265_3.3.tar.gz/source/common/primitives.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Mandar Gurav <mandar@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/common/quant.cpp -> x265_3.3.tar.gz/source/common/quant.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/common/quant.h -> x265_3.3.tar.gz/source/common/quant.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/common/scalinglist.cpp -> x265_3.3.tar.gz/source/common/scalinglist.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> *
View file
x265_3.2.1.tar.gz/source/common/scalinglist.h -> x265_3.3.tar.gz/source/common/scalinglist.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> *
View file
x265_3.2.1.tar.gz/source/common/shortyuv.cpp -> x265_3.3.tar.gz/source/common/shortyuv.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Deepthi Nandakumar <deepthi@multicorewareinc.com> *
View file
x265_3.2.1.tar.gz/source/common/shortyuv.h -> x265_3.3.tar.gz/source/common/shortyuv.h
Changed
@@ -1,7 +1,7 @@ /***************************************************************************** * x265: ShortYUV class for short sized YUV-style frames ***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Deepthi Nandakumar <deepthi@multicorewareinc.com> *
View file
x265_3.2.1.tar.gz/source/common/slice.cpp -> x265_3.3.tar.gz/source/common/slice.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> *
View file
x265_3.2.1.tar.gz/source/common/slice.h -> x265_3.3.tar.gz/source/common/slice.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/common/threading.cpp -> x265_3.3.tar.gz/source/common/threading.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> *
View file
x265_3.2.1.tar.gz/source/common/threading.h -> x265_3.3.tar.gz/source/common/threading.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/common/threadpool.cpp -> x265_3.3.tar.gz/source/common/threadpool.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/common/threadpool.h -> x265_3.3.tar.gz/source/common/threadpool.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> *
View file
x265_3.2.1.tar.gz/source/common/vec/dct-sse3.cpp -> x265_3.3.tar.gz/source/common/vec/dct-sse3.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Mandar Gurav <mandar@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/common/vec/dct-sse41.cpp -> x265_3.3.tar.gz/source/common/vec/dct-sse41.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Mandar Gurav <mandar@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/common/vec/dct-ssse3.cpp -> x265_3.3.tar.gz/source/common/vec/dct-ssse3.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Mandar Gurav <mandar@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/common/vec/vec-primitives.cpp -> x265_3.3.tar.gz/source/common/vec/vec-primitives.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> *
View file
x265_3.2.1.tar.gz/source/common/version.cpp -> x265_3.3.tar.gz/source/common/version.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/common/wavefront.cpp -> x265_3.3.tar.gz/source/common/wavefront.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/common/wavefront.h -> x265_3.3.tar.gz/source/common/wavefront.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/common/winxp.cpp -> x265_3.3.tar.gz/source/common/winxp.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> *
View file
x265_3.2.1.tar.gz/source/common/winxp.h -> x265_3.3.tar.gz/source/common/winxp.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> *
View file
x265_3.2.1.tar.gz/source/common/x86/asm-primitives.cpp -> x265_3.3.tar.gz/source/common/x86/asm-primitives.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Praveen Kumar Tiwari <praveen@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/common/x86/blockcopy8.asm -> x265_3.3.tar.gz/source/common/x86/blockcopy8.asm
Changed
@@ -1,5 +1,5 @@ ;***************************************************************************** -;* Copyright (C) 2013-2017 MulticoreWare, Inc +;* Copyright (C) 2013-2020 MulticoreWare, Inc ;* ;* Authors: Praveen Kumar Tiwari <praveen@multicorewareinc.com> ;* Murugan Vairavel <murugan@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/common/x86/blockcopy8.h -> x265_3.3.tar.gz/source/common/x86/blockcopy8.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> ;* Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/common/x86/const-a.asm -> x265_3.3.tar.gz/source/common/x86/const-a.asm
Changed
@@ -2,7 +2,7 @@ ;* const-a.asm: x86 global constants ;***************************************************************************** ;* Copyright (C) 2003-2013 x264 project -;* Copyright (C) 2013-2017 MulticoreWare, Inc +;* Copyright (C) 2013-2020 MulticoreWare, Inc ;* ;* Authors: Loren Merritt <lorenm@u.washington.edu> ;* Fiona Glaser <fiona@x264.com>
View file
x265_3.2.1.tar.gz/source/common/x86/cpu-a.asm -> x265_3.3.tar.gz/source/common/x86/cpu-a.asm
Changed
@@ -2,7 +2,7 @@ ;* cpu-a.asm: x86 cpu utilities ;***************************************************************************** ;* Copyright (C) 2003-2013 x264 project -;* Copyright (C) 2013-2017 MulticoreWare, Inc +;* Copyright (C) 2013-2020 MulticoreWare, Inc ;* ;* Authors: Laurent Aimar <fenrir@via.ecp.fr> ;* Loren Merritt <lorenm@u.washington.edu>
View file
x265_3.2.1.tar.gz/source/common/x86/dct8.asm -> x265_3.3.tar.gz/source/common/x86/dct8.asm
Changed
@@ -1,5 +1,5 @@ ;***************************************************************************** -;* Copyright (C) 2013-2017 MulticoreWare, Inc +;* Copyright (C) 2013-2020 MulticoreWare, Inc ;* ;* Authors: Nabajit Deka <nabajit@multicorewareinc.com> ;* Min Chen <chenm003@163.com> <min.chen@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/common/x86/dct8.h -> x265_3.3.tar.gz/source/common/x86/dct8.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Nabajit Deka <nabajit@multicorewareinc.com> ;* Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/common/x86/h-ipfilter16.asm -> x265_3.3.tar.gz/source/common/x86/h-ipfilter16.asm
Changed
@@ -1,5 +1,5 @@ ;***************************************************************************** -;* Copyright (C) 2013-2017 MulticoreWare, Inc +;* Copyright (C) 2013-2020 MulticoreWare, Inc ;* ;* Authors: Nabajit Deka <nabajit@multicorewareinc.com> ;* Murugan Vairavel <murugan@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/common/x86/h-ipfilter8.asm -> x265_3.3.tar.gz/source/common/x86/h-ipfilter8.asm
Changed
@@ -1,5 +1,5 @@ ;***************************************************************************** -;* Copyright (C) 2013-2017 MulticoreWare, Inc +;* Copyright (C) 2013-2020 MulticoreWare, Inc ;* ;* Authors: Min Chen <chenm003@163.com> ;* Nabajit Deka <nabajit@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/common/x86/h4-ipfilter16.asm -> x265_3.3.tar.gz/source/common/x86/h4-ipfilter16.asm
Changed
@@ -1,5 +1,5 @@ ;***************************************************************************** -;* Copyright (C) 2013-2017 MulticoreWare, Inc +;* Copyright (C) 2013-2020 MulticoreWare, Inc ;* ;* Authors: Nabajit Deka <nabajit@multicorewareinc.com> ;* Murugan Vairavel <murugan@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/common/x86/intrapred.h -> x265_3.3.tar.gz/source/common/x86/intrapred.h
Changed
@@ -2,7 +2,7 @@ * intrapred.h: Intra Prediction metrics ***************************************************************************** * Copyright (C) 2003-2013 x264 project - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Min Chen <chenm003@163.com> <min.chen@multicorewareinc.com> * Praveen Kumar Tiwari <praveen@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/common/x86/intrapred16.asm -> x265_3.3.tar.gz/source/common/x86/intrapred16.asm
Changed
@@ -1,5 +1,5 @@ ;***************************************************************************** -;* Copyright (C) 2013-2017 MulticoreWare, Inc +;* Copyright (C) 2013-2020 MulticoreWare, Inc ;* ;* Authors: Dnyaneshwar Gorade <dnyaneshwar@multicorewareinc.com> ;* Yuvaraj Venkatesh <yuvaraj@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/common/x86/intrapred8.asm -> x265_3.3.tar.gz/source/common/x86/intrapred8.asm
Changed
@@ -1,5 +1,5 @@ ;***************************************************************************** -;* Copyright (C) 2013-2017 MulticoreWare, Inc +;* Copyright (C) 2013-2020 MulticoreWare, Inc ;* ;* Authors: Min Chen <chenm003@163.com> <min.chen@multicorewareinc.com> ;* Praveen Kumar Tiwari <praveen@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/common/x86/intrapred8_allangs.asm -> x265_3.3.tar.gz/source/common/x86/intrapred8_allangs.asm
Changed
@@ -1,5 +1,5 @@ ;***************************************************************************** -;* Copyright (C) 2013-2017 MulticoreWare, Inc +;* Copyright (C) 2013-2020 MulticoreWare, Inc ;* ;* Authors: Min Chen <chenm003@163.com> <min.chen@multicorewareinc.com> ;* Praveen Tiwari <praveen@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/common/x86/ipfilter16.asm -> x265_3.3.tar.gz/source/common/x86/ipfilter16.asm
Changed
@@ -1,5 +1,5 @@ ;***************************************************************************** -;* Copyright (C) 2013-2017 MulticoreWare, Inc +;* Copyright (C) 2013-2020 MulticoreWare, Inc ;* ;* Authors: Nabajit Deka <nabajit@multicorewareinc.com> ;* Murugan Vairavel <murugan@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/common/x86/ipfilter8.asm -> x265_3.3.tar.gz/source/common/x86/ipfilter8.asm
Changed
@@ -1,5 +1,5 @@ ;***************************************************************************** -;* Copyright (C) 2013-2017 MulticoreWare, Inc +;* Copyright (C) 2013-2020 MulticoreWare, Inc ;* ;* Authors: Min Chen <chenm003@163.com> ;* Nabajit Deka <nabajit@multicorewareinc.com> @@ -14946,4 +14946,4 @@ ;------------------------------------------------------------------------------------------------------------- ;------------------------------------------------------------------------------------------------------------- ;ipfilter_luma_avx512 code end -;------------------------------------------------------------------------------------------------------------- \ No newline at end of file +;-------------------------------------------------------------------------------------------------------------
View file
x265_3.2.1.tar.gz/source/common/x86/ipfilter8.h -> x265_3.3.tar.gz/source/common/x86/ipfilter8.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> *
View file
x265_3.2.1.tar.gz/source/common/x86/loopfilter.asm -> x265_3.3.tar.gz/source/common/x86/loopfilter.asm
Changed
@@ -1,5 +1,5 @@ ;***************************************************************************** -;* Copyright (C) 2013-2017 MulticoreWare, Inc +;* Copyright (C) 2013-2020 MulticoreWare, Inc ;* ;* Authors: Min Chen <chenm001@163.com> ;* Praveen Kumar Tiwari <praveen@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/common/x86/loopfilter.h -> x265_3.3.tar.gz/source/common/x86/loopfilter.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Dnyaneshwar Gorade <dnyaneshwar@multicorewareinc.com> * Praveen Kumar Tiwari <praveen@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/common/x86/mc-a.asm -> x265_3.3.tar.gz/source/common/x86/mc-a.asm
Changed
@@ -2,7 +2,7 @@ ;* mc-a.asm: x86 motion compensation ;***************************************************************************** ;* Copyright (C) 2003-2013 x264 project -;* Copyright (C) 2013-2017 MulticoreWare, Inc +;* Copyright (C) 2013-2020 MulticoreWare, Inc ;* ;* Authors: Loren Merritt <lorenm@u.washington.edu> ;* Fiona Glaser <fiona@x264.com>
View file
x265_3.2.1.tar.gz/source/common/x86/mc-a2.asm -> x265_3.3.tar.gz/source/common/x86/mc-a2.asm
Changed
@@ -2,7 +2,7 @@ ;* mc-a2.asm: x86 motion compensation ;***************************************************************************** ;* Copyright (C) 2003-2013 x264 project -;* Copyright (C) 2013-2017 MulticoreWare, Inc +;* Copyright (C) 2013-2020 MulticoreWare, Inc ;* ;* Authors: Loren Merritt <lorenm@u.washington.edu> ;* Fiona Glaser <fiona@x264.com>
View file
x265_3.2.1.tar.gz/source/common/x86/mc.h -> x265_3.3.tar.gz/source/common/x86/mc.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> *
View file
x265_3.2.1.tar.gz/source/common/x86/pixel-32.asm -> x265_3.3.tar.gz/source/common/x86/pixel-32.asm
Changed
@@ -2,7 +2,7 @@ ;* pixel-32.asm: x86_32 pixel metrics ;***************************************************************************** ;* Copyright (C) 2003-2013 x264 project -;* Copyright (C) 2013-2017 MulticoreWare, Inc +;* Copyright (C) 2013-2020 MulticoreWare, Inc ;* ;* Authors: Loren Merritt <lorenm@u.washington.edu> ;* Laurent Aimar <fenrir@via.ecp.fr>
View file
x265_3.2.1.tar.gz/source/common/x86/pixel-a.asm -> x265_3.3.tar.gz/source/common/x86/pixel-a.asm
Changed
@@ -2,7 +2,7 @@ ;* pixel.asm: x86 pixel metrics ;***************************************************************************** ;* Copyright (C) 2003-2013 x264 project -;* Copyright (C) 2013-2017 MulticoreWare, Inc +;* Copyright (C) 2013-2020 MulticoreWare, Inc ;* ;* Authors: Loren Merritt <lorenm@u.washington.edu> ;* Holger Lubitz <holger@lubitz.org>
View file
x265_3.2.1.tar.gz/source/common/x86/pixel-util.h -> x265_3.3.tar.gz/source/common/x86/pixel-util.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> ;* Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/common/x86/pixel-util8.asm -> x265_3.3.tar.gz/source/common/x86/pixel-util8.asm
Changed
@@ -1,5 +1,5 @@ ;***************************************************************************** -;* Copyright (C) 2013-2017 MulticoreWare, Inc +;* Copyright (C) 2013-2020 MulticoreWare, Inc ;* ;* Authors: Min Chen <chenm003@163.com> <min.chen@multicorewareinc.com> ;* Nabajit Deka <nabajit@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/common/x86/pixel.h -> x265_3.3.tar.gz/source/common/x86/pixel.h
Changed
@@ -2,7 +2,7 @@ * pixel.h: x86 pixel metrics ***************************************************************************** * Copyright (C) 2003-2013 x264 project - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Laurent Aimar <fenrir@via.ecp.fr> * Loren Merritt <lorenm@u.washington.edu>
View file
x265_3.2.1.tar.gz/source/common/x86/pixeladd8.asm -> x265_3.3.tar.gz/source/common/x86/pixeladd8.asm
Changed
@@ -1,5 +1,5 @@ ;***************************************************************************** -;* Copyright (C) 2013-2017 MulticoreWare, Inc +;* Copyright (C) 2013-2020 MulticoreWare, Inc ;* ;* Authors: Praveen Kumar Tiwari <praveen@multicorewareinc.com> ;* Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/common/x86/sad-a.asm -> x265_3.3.tar.gz/source/common/x86/sad-a.asm
Changed
@@ -2,7 +2,7 @@ ;* sad-a.asm: x86 sad functions ;***************************************************************************** ;* Copyright (C) 2003-2013 x264 project -;* Copyright (C) 2013-2017 MulticoreWare, Inc +;* Copyright (C) 2013-2020 MulticoreWare, Inc ;* ;* Authors: Loren Merritt <lorenm@u.washington.edu> ;* Fiona Glaser <fiona@x264.com>
View file
x265_3.2.1.tar.gz/source/common/x86/sad16-a.asm -> x265_3.3.tar.gz/source/common/x86/sad16-a.asm
Changed
@@ -2,7 +2,7 @@ ;* sad16-a.asm: x86 high depth sad functions ;***************************************************************************** ;* Copyright (C) 2003-2013 x264 project -;* Copyright (C) 2013-2017 MulticoreWare, Inc +;* Copyright (C) 2013-2020 MulticoreWare, Inc ;* ;* Authors: Oskar Arvidsson <oskar@irock.se> ;* Henrik Gramner <henrik@gramner.com>
View file
x265_3.2.1.tar.gz/source/common/x86/seaintegral.asm -> x265_3.3.tar.gz/source/common/x86/seaintegral.asm
Changed
@@ -1,5 +1,5 @@ ;***************************************************************************** -;* Copyright (C) 2013-2017 MulticoreWare, Inc +;* Copyright (C) 2013-2020 MulticoreWare, Inc ;* ;* Authors: Jayashri Murugan <jayashri@multicorewareinc.com> ;* Vignesh V Menon <vignesh@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/common/x86/seaintegral.h -> x265_3.3.tar.gz/source/common/x86/seaintegral.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** -* Copyright (C) 2013-2017 MulticoreWare, Inc +* Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Vignesh V Menon <vignesh@multicorewareinc.com> * Jayashri Murugan <jayashri@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/common/x86/ssd-a.asm -> x265_3.3.tar.gz/source/common/x86/ssd-a.asm
Changed
@@ -2,7 +2,7 @@ ;* ssd-a.asm: x86 ssd functions ;***************************************************************************** ;* Copyright (C) 2003-2013 x264 project -;* Copyright (C) 2013-2017 MulticoreWare, Inc +;* Copyright (C) 2013-2020 MulticoreWare, Inc ;* ;* Authors: Loren Merritt <lorenm@u.washington.edu> ;* Fiona Glaser <fiona@x264.com> @@ -3702,4 +3702,4 @@ movd eax, xm0 %endif RET -%endif \ No newline at end of file +%endif
View file
x265_3.2.1.tar.gz/source/common/x86/v4-ipfilter16.asm -> x265_3.3.tar.gz/source/common/x86/v4-ipfilter16.asm
Changed
@@ -1,5 +1,5 @@ ;***************************************************************************** -;* Copyright (C) 2013-2017 MulticoreWare, Inc +;* Copyright (C) 2013-2020 MulticoreWare, Inc ;* ;* Authors: Nabajit Deka <nabajit@multicorewareinc.com> ;* Murugan Vairavel <murugan@multicorewareinc.com> @@ -3528,4 +3528,4 @@ FILTER_VER_CHROMA_AVX2_8x12 pp, 1, 6 FILTER_VER_CHROMA_AVX2_8x12 ps, 0, INTERP_SHIFT_PS FILTER_VER_CHROMA_AVX2_8x12 sp, 1, INTERP_SHIFT_SP -FILTER_VER_CHROMA_AVX2_8x12 ss, 0, 6 \ No newline at end of file +FILTER_VER_CHROMA_AVX2_8x12 ss, 0, 6
View file
x265_3.2.1.tar.gz/source/common/x86/v4-ipfilter8.asm -> x265_3.3.tar.gz/source/common/x86/v4-ipfilter8.asm
Changed
@@ -1,5 +1,5 @@ ;***************************************************************************** -;* Copyright (C) 2013-2017 MulticoreWare, Inc +;* Copyright (C) 2013-2020 MulticoreWare, Inc ;* ;* Authors: Min Chen <chenm003@163.com> ;* Nabajit Deka <nabajit@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/common/x86/x86inc.asm -> x265_3.3.tar.gz/source/common/x86/x86inc.asm
Changed
@@ -2,7 +2,7 @@ ;* x86inc.asm: x264asm abstraction layer ;***************************************************************************** ;* Copyright (C) 2003-2013 x264 project -;* Copyright (C) 2013-2017 MulticoreWarae, Inc +;* Copyright (C) 2013-2020 MulticoreWarae, Inc ;* ;* Authors: Loren Merritt <lorenm@u.washington.edu> ;* Anton Mitrofanov <BugMaster@narod.ru>
View file
x265_3.2.1.tar.gz/source/common/x86/x86util.asm -> x265_3.3.tar.gz/source/common/x86/x86util.asm
Changed
@@ -2,7 +2,7 @@ ;* x86util.asm: x86 utility macros ;***************************************************************************** ;* Copyright (C) 2003-2013 x264 project -;* Copyright (C) 2013-2017 MulticoreWare, Inc +;* Copyright (C) 2013-2020 MulticoreWare, Inc ;* ;* Authors: Holger Lubitz <holger@lubitz.org> ;* Loren Merritt <lorenm@u.washington.edu>
View file
x265_3.2.1.tar.gz/source/common/yuv.cpp -> x265_3.3.tar.gz/source/common/yuv.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/common/yuv.h -> x265_3.3.tar.gz/source/common/yuv.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> *
View file
x265_3.2.1.tar.gz/source/dynamicHDR10/BasicStructures.h -> x265_3.3.tar.gz/source/dynamicHDR10/BasicStructures.h
Changed
@@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Bhavna Hariharan <bhavna@multicorewareinc.com> * Kavitha Sampath <kavitha@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/dynamicHDR10/JsonHelper.cpp -> x265_3.3.tar.gz/source/dynamicHDR10/JsonHelper.cpp
Changed
@@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Bhavna Hariharan <bhavna@multicorewareinc.com> * Kavitha Sampath <kavitha@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/dynamicHDR10/JsonHelper.h -> x265_3.3.tar.gz/source/dynamicHDR10/JsonHelper.h
Changed
@@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Bhavna Hariharan <bhavna@multicorewareinc.com> * Kavitha Sampath <kavitha@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/dynamicHDR10/LICENSE.txt -> x265_3.3.tar.gz/source/dynamicHDR10/LICENSE.txt
Changed
@@ -1,4 +1,4 @@ -Copyright (C) 2013-2017 MulticoreWare, Inc +Copyright (C) 2013-2020 MulticoreWare, Inc This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
View file
x265_3.2.1.tar.gz/source/dynamicHDR10/SeiMetadataDictionary.cpp -> x265_3.3.tar.gz/source/dynamicHDR10/SeiMetadataDictionary.cpp
Changed
@@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Bhavna Hariharan <bhavna@multicorewareinc.com> * Kavitha Sampath <kavitha@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/dynamicHDR10/SeiMetadataDictionary.h -> x265_3.3.tar.gz/source/dynamicHDR10/SeiMetadataDictionary.h
Changed
@@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Bhavna Hariharan <bhavna@multicorewareinc.com> * Kavitha Sampath <kavitha@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/dynamicHDR10/api.cpp -> x265_3.3.tar.gz/source/dynamicHDR10/api.cpp
Changed
@@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Bhavna Hariharan <bhavna@multicorewareinc.com> * Kavitha Sampath <kavitha@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/dynamicHDR10/hdr10plus.h -> x265_3.3.tar.gz/source/dynamicHDR10/hdr10plus.h
Changed
@@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Bhavna Hariharan <bhavna@multicorewareinc.com> * Kavitha Sampath <kavitha@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/dynamicHDR10/metadataFromJson.cpp -> x265_3.3.tar.gz/source/dynamicHDR10/metadataFromJson.cpp
Changed
@@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Bhavna Hariharan <bhavna@multicorewareinc.com> * Kavitha Sampath <kavitha@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/dynamicHDR10/metadataFromJson.h -> x265_3.3.tar.gz/source/dynamicHDR10/metadataFromJson.h
Changed
@@ -1,5 +1,5 @@ /** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Bhavna Hariharan <bhavna@multicorewareinc.com> * Kavitha Sampath <kavitha@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/encoder/analysis.cpp -> x265_3.3.tar.gz/source/encoder/analysis.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** -* Copyright (C) 2013-2017 MulticoreWare, Inc +* Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Deepthi Nandakumar <deepthi@multicorewareinc.com> * Steve Borho <steve@borho.org> @@ -202,14 +202,17 @@ m_reuseDepth = &m_reuseInterDataCTU->depth[ctu.m_cuAddr * ctu.m_numPartitions]; } - if ((m_param->analysisSave || m_param->analysisLoad) && m_slice->m_sliceType != I_SLICE && m_param->analysisReuseLevel > 1 && m_param->analysisReuseLevel < 10) + int reuseLevel = X265_MAX(m_param->analysisSaveReuseLevel, m_param->analysisLoadReuseLevel); + if ((m_param->analysisSave || m_param->analysisLoad) && m_slice->m_sliceType != I_SLICE && reuseLevel > 1 && reuseLevel < 10) { int numPredDir = m_slice->isInterP() ? 1 : 2; m_reuseInterDataCTU = m_frame->m_analysisData.interData; - m_reuseRef = &m_reuseInterDataCTU->ref [ctu.m_cuAddr * X265_MAX_PRED_MODE_PER_CTU * numPredDir]; + if (((m_param->analysisSaveReuseLevel > 1) && (m_param->analysisSaveReuseLevel < 7)) || + ((m_param->analysisLoadReuseLevel > 1) && (m_param->analysisLoadReuseLevel < 7))) + m_reuseRef = &m_reuseInterDataCTU->ref[ctu.m_cuAddr * X265_MAX_PRED_MODE_PER_CTU * numPredDir]; m_reuseDepth = &m_reuseInterDataCTU->depth[ctu.m_cuAddr * ctu.m_numPartitions]; m_reuseModes = &m_reuseInterDataCTU->modes[ctu.m_cuAddr * ctu.m_numPartitions]; - if (m_param->analysisReuseLevel > 4) + if (reuseLevel > 4) { m_reusePartSize = &m_reuseInterDataCTU->partSize[ctu.m_cuAddr * ctu.m_numPartitions]; m_reuseMergeFlag = &m_reuseInterDataCTU->mergeFlag[ctu.m_cuAddr * ctu.m_numPartitions]; @@ -223,7 +226,7 @@ if (m_slice->m_sliceType == I_SLICE) { x265_analysis_intra_data* intraDataCTU = m_frame->m_analysisData.intraData; - if (m_param->analysisLoad && m_param->analysisReuseLevel > 1) + if (m_param->analysisLoadReuseLevel > 1) { memcpy(ctu.m_cuDepth, &intraDataCTU->depth[ctu.m_cuAddr * numPartition], sizeof(uint8_t) * numPartition); memcpy(ctu.m_lumaIntraDir, &intraDataCTU->modes[ctu.m_cuAddr * numPartition], sizeof(uint8_t) * numPartition); @@ -234,10 +237,10 @@ } else { - bool bCopyAnalysis = ((m_param->analysisLoad && m_param->analysisReuseLevel == 10) || (m_param->bAnalysisType == AVC_INFO && m_param->analysisReuseLevel >= 7 && ctu.m_numPartitions <= 16)); - bool BCompressInterCUrd0_4 = (m_param->bAnalysisType == AVC_INFO && m_param->analysisReuseLevel >= 7 && m_param->rdLevel <= 4); - bool BCompressInterCUrd5_6 = (m_param->bAnalysisType == AVC_INFO && m_param->analysisReuseLevel >= 7 && m_param->rdLevel >= 5 && m_param->rdLevel <= 6); - bCopyAnalysis = bCopyAnalysis || BCompressInterCUrd0_4 || BCompressInterCUrd5_6; + bool bCopyAnalysis = ((m_param->analysisLoadReuseLevel == 10) || (m_param->bAnalysisType == AVC_INFO && m_param->analysisLoadReuseLevel >= 7 && ctu.m_numPartitions <= 16)); + bool bCompressInterCUrd0_4 = (m_param->bAnalysisType == AVC_INFO && m_param->analysisLoadReuseLevel >= 7 && m_param->rdLevel <= 4); + bool bCompressInterCUrd5_6 = (m_param->bAnalysisType == AVC_INFO && m_param->analysisLoadReuseLevel >= 7 && m_param->rdLevel >= 5 && m_param->rdLevel <= 6); + bCopyAnalysis = bCopyAnalysis || bCompressInterCUrd0_4 || bCompressInterCUrd5_6; if (bCopyAnalysis) { @@ -275,8 +278,8 @@ /* generate residual for entire CTU at once and copy to reconPic */ encodeResidue(ctu, cuGeom); } - else if ((m_param->analysisLoad && m_param->analysisReuseLevel == 10 && (!(m_param->bAnalysisType == HEVC_INFO) || m_slice->m_sliceType != P_SLICE)) || - ((m_param->bAnalysisType == AVC_INFO) && m_param->analysisReuseLevel >= 7 && ctu.m_numPartitions <= 16)) + else if ((m_param->analysisLoadReuseLevel == 10 && (!(m_param->bAnalysisType == HEVC_INFO) || m_slice->m_sliceType != P_SLICE)) || + ((m_param->bAnalysisType == AVC_INFO) && m_param->analysisLoadReuseLevel >= 7 && ctu.m_numPartitions <= 16)) { x265_analysis_inter_data* interDataCTU = m_frame->m_analysisData.interData; int posCTU = ctu.m_cuAddr * numPartition; @@ -375,12 +378,12 @@ CUData* neighbourCU; uint8_t count = 0; int32_t maxTUDepth = -1; - neighbourCU = m_slice->m_refFrameList[0][0]->m_encData->m_picCTU; + neighbourCU = &m_slice->m_refFrameList[0][0]->m_encData->m_picCTU[parentCTU.m_cuAddr]; predDepth += neighbourCU->m_refTuDepth[cuGeom.geomRecurId]; count++; if (m_slice->isInterB()) { - neighbourCU = m_slice->m_refFrameList[1][0]->m_encData->m_picCTU; + neighbourCU = &m_slice->m_refFrameList[1][0]->m_encData->m_picCTU[parentCTU.m_cuAddr]; predDepth += neighbourCU->m_refTuDepth[cuGeom.geomRecurId]; count++; } @@ -456,7 +459,7 @@ int bestCUQP = qp; int lambdaQP = lqp; bool doQPRefine = (bDecidedDepth && depth <= m_slice->m_pps->maxCuDQPDepth) || (!bDecidedDepth && depth == m_slice->m_pps->maxCuDQPDepth); - if (m_param->analysisReuseLevel >= 7) + if (m_param->analysisLoadReuseLevel >= 7) doQPRefine = false; if (doQPRefine) { @@ -1164,7 +1167,7 @@ SplitData splitCUData; bool bHEVCBlockAnalysis = (m_param->bAnalysisType == AVC_INFO && cuGeom.numPartitions > 16); - bool bRefineAVCAnalysis = (m_param->analysisReuseLevel == 7 && (m_modeFlag[0] || m_modeFlag[1])); + bool bRefineAVCAnalysis = (m_param->analysisLoadReuseLevel == 7 && (m_modeFlag[0] || m_modeFlag[1])); bool bNooffloading = !(m_param->bAnalysisType == AVC_INFO); if (bHEVCBlockAnalysis || bRefineAVCAnalysis || bNooffloading) @@ -1259,7 +1262,7 @@ mightSplit &= !bDecidedDepth; } } - if ((m_param->analysisLoad && m_param->analysisReuseLevel > 1 && m_param->analysisReuseLevel != 10)) + if ((m_param->analysisLoadReuseLevel > 1 && m_param->analysisLoadReuseLevel != 10)) { if (mightNotSplit && depth == m_reuseDepth[cuGeom.absPartIdx]) { @@ -1273,7 +1276,7 @@ if (m_param->rdLevel) skipModes = m_param->bEnableEarlySkip && md.bestMode; } - if (m_param->analysisReuseLevel > 4 && m_reusePartSize[cuGeom.absPartIdx] == SIZE_2Nx2N) + if (m_param->analysisLoadReuseLevel > 4 && m_reusePartSize[cuGeom.absPartIdx] == SIZE_2Nx2N) { if (m_reuseModes[cuGeom.absPartIdx] != MODE_INTRA && m_reuseModes[cuGeom.absPartIdx] != 4) { @@ -1300,7 +1303,8 @@ } } /* Step 1. Evaluate Merge/Skip candidates for likely early-outs, if skip mode was not set above */ - if ((mightNotSplit && depth >= minDepth && !md.bestMode && !bCtuInfoCheck) || (m_param->bAnalysisType == AVC_INFO && m_param->analysisReuseLevel == 7 && (m_modeFlag[0] || m_modeFlag[1]))) /* TODO: Re-evaluate if analysis load/save still works */ + if ((mightNotSplit && depth >= minDepth && !md.bestMode && !bCtuInfoCheck) || (m_param->bAnalysisType == AVC_INFO && m_param->analysisLoadReuseLevel == 7 && (m_modeFlag[0] || m_modeFlag[1]))) + /* TODO: Re-evaluate if analysis load/save still works */ { /* Compute Merge Cost */ md.pred[PRED_MERGE].cu.initSubCU(parentCTU, cuGeom, qp); @@ -1310,7 +1314,7 @@ skipModes = (m_param->bEnableEarlySkip || m_refineLevel == 2) && md.bestMode && md.bestMode->cu.isSkipped(0); // TODO: sa8d threshold per depth } - if (md.bestMode && m_param->bEnableRecursionSkip && !bCtuInfoCheck && !(m_param->bAnalysisType == AVC_INFO && m_param->analysisReuseLevel == 7 && (m_modeFlag[0] || m_modeFlag[1]))) + if (md.bestMode && m_param->bEnableRecursionSkip && !bCtuInfoCheck && !(m_param->bAnalysisType == AVC_INFO && m_param->analysisLoadReuseLevel == 7 && (m_modeFlag[0] || m_modeFlag[1]))) { skipRecursion = md.bestMode->cu.isSkipped(0); if (mightSplit && depth >= minDepth && !skipRecursion) @@ -1321,7 +1325,7 @@ skipRecursion = complexityCheckCU(*md.bestMode); } } - if (m_param->bAnalysisType == AVC_INFO && md.bestMode && cuGeom.numPartitions <= 16 && m_param->analysisReuseLevel == 7) + if (m_param->bAnalysisType == AVC_INFO && md.bestMode && cuGeom.numPartitions <= 16 && m_param->analysisLoadReuseLevel == 7) skipRecursion = true; /* Step 2. Evaluate each of the 4 split sub-blocks in series */ if (mightSplit && !skipRecursion) @@ -1378,7 +1382,7 @@ splitPred->sa8dCost = m_rdCost.calcRdSADCost((uint32_t)splitPred->distortion, splitPred->sa8dBits); } /* If analysis mode is simple do not Evaluate other modes */ - if (m_param->bAnalysisType == AVC_INFO && m_param->analysisReuseLevel == 7) + if (m_param->bAnalysisType == AVC_INFO && m_param->analysisLoadReuseLevel == 7) { if (m_slice->m_sliceType == P_SLICE) { @@ -1857,7 +1861,7 @@ SplitData splitCUData; bool bHEVCBlockAnalysis = (m_param->bAnalysisType == AVC_INFO && cuGeom.numPartitions > 16); - bool bRefineAVCAnalysis = (m_param->analysisReuseLevel == 7 && (m_modeFlag[0] || m_modeFlag[1])); + bool bRefineAVCAnalysis = (m_param->analysisLoadReuseLevel == 7 && (m_modeFlag[0] || m_modeFlag[1])); bool bNooffloading = !(m_param->bAnalysisType == AVC_INFO); if (bHEVCBlockAnalysis || bRefineAVCAnalysis || bNooffloading) @@ -1953,7 +1957,7 @@ mightSplit &= !bDecidedDepth; } } - if (m_param->analysisLoad && m_param->analysisReuseLevel > 1 && m_param->analysisReuseLevel != 10) + if (m_param->analysisLoadReuseLevel > 1 && m_param->analysisLoadReuseLevel != 10) { if (mightNotSplit && depth == m_reuseDepth[cuGeom.absPartIdx]) { @@ -1971,7 +1975,7 @@ if (m_param->bEnableRecursionSkip && depth && m_modeDepth[depth - 1].bestMode) skipRecursion = md.bestMode && !md.bestMode->cu.getQtRootCbf(0); } - if (m_param->analysisReuseLevel > 4 && m_reusePartSize[cuGeom.absPartIdx] == SIZE_2Nx2N) + if (m_param->analysisLoadReuseLevel > 4 && m_reusePartSize[cuGeom.absPartIdx] == SIZE_2Nx2N) skipRectAmp = true && !!md.bestMode; } } @@ -1999,7 +2003,7 @@ } /* Step 1. Evaluate Merge/Skip candidates for likely early-outs */ if ((mightNotSplit && !md.bestMode && !bCtuInfoCheck) || - (m_param->bAnalysisType == AVC_INFO && m_param->analysisReuseLevel == 7 && (m_modeFlag[0] || m_modeFlag[1]))) + (m_param->bAnalysisType == AVC_INFO && m_param->analysisLoadReuseLevel == 7 && (m_modeFlag[0] || m_modeFlag[1]))) { md.pred[PRED_SKIP].cu.initSubCU(parentCTU, cuGeom, qp); md.pred[PRED_MERGE].cu.initSubCU(parentCTU, cuGeom, qp); @@ -2014,7 +2018,7 @@ if (m_param->bEnableRecursionSkip && depth && m_modeDepth[depth - 1].bestMode) skipRecursion = md.bestMode && !md.bestMode->cu.getQtRootCbf(0); } - if (m_param->bAnalysisType == AVC_INFO && md.bestMode && cuGeom.numPartitions <= 16 && m_param->analysisReuseLevel == 7) + if (m_param->bAnalysisType == AVC_INFO && md.bestMode && cuGeom.numPartitions <= 16 && m_param->analysisLoadReuseLevel == 7) skipRecursion = true; // estimate split cost /* Step 2. Evaluate each of the 4 split sub-blocks in series */ @@ -2068,7 +2072,7 @@ checkDQPForSplitPred(*splitPred, cuGeom); } /* If analysis mode is simple do not Evaluate other modes */
View file
x265_3.2.1.tar.gz/source/encoder/analysis.h -> x265_3.3.tar.gz/source/encoder/analysis.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** -* Copyright (C) 2013-2017 MulticoreWare, Inc +* Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Deepthi Nandakumar <deepthi@multicorewareinc.com> * Steve Borho <steve@borho.org>
View file
x265_3.2.1.tar.gz/source/encoder/api.cpp -> x265_3.3.tar.gz/source/encoder/api.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * @@ -100,7 +100,7 @@ if(param) PARAM_NS::x265_param_default(param); if(latestParam) PARAM_NS::x265_param_default(latestParam); if(zoneParam) PARAM_NS::x265_param_default(zoneParam); - + if (!param || !latestParam || !zoneParam) goto fail; if (p->rc.zoneCount || p->rc.zonefileCount) @@ -176,6 +176,8 @@ // may change params for auto-detect, etc encoder->configure(param); + if (encoder->m_aborted) + goto fail; // may change rate control and CPB params if (!enforceLevel(*param, encoder->m_vps)) goto fail; @@ -190,10 +192,23 @@ } encoder->create(); + p->frameNumThreads = encoder->m_param->frameNumThreads; + + if (!param->bResetZoneConfig) + { + param->rc.zones = X265_MALLOC(x265_zone, param->rc.zonefileCount); + for (int i = 0; i < param->rc.zonefileCount; i++) + { + param->rc.zones[i].zoneParam = X265_MALLOC(x265_param, 1); + memcpy(param->rc.zones[i].zoneParam, param, sizeof(x265_param)); + param->rc.zones[i].relativeComplexity = X265_MALLOC(double, param->reconfigWindowSize); + } + } memcpy(zoneParam, param, sizeof(x265_param)); for (int i = 0; i < param->rc.zonefileCount; i++) { + param->rc.zones[i].startFrame = -1; encoder->configureZone(zoneParam, param->rc.zones[i].zoneParam); } @@ -362,6 +377,36 @@ return ret; } + +int x265_encoder_reconfig_zone(x265_encoder* enc, x265_zone* zone_in) +{ + if (!enc || !zone_in) + return -1; + + Encoder* encoder = static_cast<Encoder*>(enc); + int read = encoder->zoneReadCount[encoder->m_zoneIndex].get(); + int write = encoder->zoneWriteCount[encoder->m_zoneIndex].get(); + + x265_zone* zone = &(encoder->m_param->rc).zones[encoder->m_zoneIndex]; + x265_param* zoneParam = zone->zoneParam; + + if (write && (read < write)) + { + read = encoder->zoneReadCount[encoder->m_zoneIndex].waitForChange(read); + } + + zone->startFrame = zone_in->startFrame; + zoneParam->rc.bitrate = zone_in->zoneParam->rc.bitrate; + zoneParam->rc.vbvMaxBitrate = zone_in->zoneParam->rc.vbvMaxBitrate; + memcpy(zone->relativeComplexity, zone_in->relativeComplexity, sizeof(double) * encoder->m_param->reconfigWindowSize); + + encoder->zoneWriteCount[encoder->m_zoneIndex].incr(); + encoder->m_zoneIndex++; + encoder->m_zoneIndex %= encoder->m_param->rc.zonefileCount; + + return 0; +} + int x265_encoder_encode(x265_encoder *enc, x265_nal **pp_nal, uint32_t *pi_nal, x265_picture *pic_in, x265_picture *pic_out) { if (!enc) @@ -372,12 +417,12 @@ #ifdef SVT_HEVC EB_ERRORTYPE return_error; - static unsigned char picSendDone = 0; - numEncoded = 0; - static int codedNal = 0, eofReached = 0; - EB_H265_ENC_CONFIGURATION* svtParam = (EB_H265_ENC_CONFIGURATION*)encoder->m_svtAppData->svtHevcParams; if (encoder->m_param->bEnableSvtHevc) { + static unsigned char picSendDone = 0; + numEncoded = 0; + static int codedNal = 0, eofReached = 0; + EB_H265_ENC_CONFIGURATION* svtParam = (EB_H265_ENC_CONFIGURATION*)encoder->m_svtAppData->svtHevcParams; if (pic_in) { if (pic_in->colorSpace == X265_CSP_I420) // SVT-HEVC supports only yuv420p color space @@ -728,6 +773,12 @@ int numDir = 2; //irrespective of P or B slices set direction as 2 uint32_t numPlanes = param->internalCsp == X265_CSP_I400 ? 1 : 3; + int maxReuseLevel = X265_MAX(param->analysisSaveReuseLevel, param->analysisLoadReuseLevel); + int minReuseLevel = (param->analysisSaveReuseLevel && param->analysisLoadReuseLevel) ? + X265_MIN(param->analysisSaveReuseLevel, param->analysisLoadReuseLevel) : maxReuseLevel; + + bool isMultiPassOpt = param->analysisMultiPassRefine || param->analysisMultiPassDistortion; + #if X265_DEPTH < 10 && (LINKED_10BIT || LINKED_12BIT) uint32_t numCUs_sse_t = param->internalBitDepth > 8 ? analysis->numCUsInFrame << 1 : analysis->numCUsInFrame; #elif X265_DEPTH >= 10 && LINKED_8BIT @@ -735,7 +786,7 @@ #else uint32_t numCUs_sse_t = analysis->numCUsInFrame; #endif - if (param->analysisMultiPassRefine || param->analysisMultiPassDistortion || param->ctuDistortionRefine) + if (isMultiPassOpt || param->ctuDistortionRefine) { //Allocate memory for distortionData pointer CHECKED_MALLOC_ZERO(distortionData, x265_analysis_distortion_data, 1); @@ -749,7 +800,7 @@ analysis->distortionData = distortionData; } - if (param->bDisableLookahead && isVbv) + if (!isMultiPassOpt && param->bDisableLookahead && isVbv) { CHECKED_MALLOC_ZERO(analysis->lookahead.intraSatdForVbv, uint32_t, analysis->numCuInHeight); CHECKED_MALLOC_ZERO(analysis->lookahead.satdForVbv, uint32_t, analysis->numCuInHeight); @@ -758,40 +809,47 @@ } //Allocate memory for weightParam pointer - if (!(param->bAnalysisType == AVC_INFO)) + if (!isMultiPassOpt && !(param->bAnalysisType == AVC_INFO)) CHECKED_MALLOC_ZERO(analysis->wt, x265_weight_param, numPlanes * numDir); - if (param->analysisReuseLevel < 2) - return; - //Allocate memory for intraData pointer - CHECKED_MALLOC_ZERO(intraData, x265_analysis_intra_data, 1); - CHECKED_MALLOC(intraData->depth, uint8_t, analysis->numPartitions * analysis->numCUsInFrame); - CHECKED_MALLOC_ZERO(intraData->modes, uint8_t, analysis->numPartitions * analysis->numCUsInFrame); - CHECKED_MALLOC_ZERO(intraData->partSizes, char, analysis->numPartitions * analysis->numCUsInFrame); - CHECKED_MALLOC_ZERO(intraData->chromaModes, uint8_t, analysis->numPartitions * analysis->numCUsInFrame); - if (param->rc.cuTree) - CHECKED_MALLOC_ZERO(intraData->cuQPOff, int8_t, analysis->numPartitions * analysis->numCUsInFrame); + if ((maxReuseLevel > 1) || isMultiPassOpt) + { + CHECKED_MALLOC_ZERO(intraData, x265_analysis_intra_data, 1); + CHECKED_MALLOC(intraData->depth, uint8_t, analysis->numPartitions * analysis->numCUsInFrame); + } + + if (maxReuseLevel > 1) + { + CHECKED_MALLOC_ZERO(intraData->modes, uint8_t, analysis->numPartitions * analysis->numCUsInFrame); + CHECKED_MALLOC_ZERO(intraData->partSizes, char, analysis->numPartitions * analysis->numCUsInFrame); + CHECKED_MALLOC_ZERO(intraData->chromaModes, uint8_t, analysis->numPartitions * analysis->numCUsInFrame); + if (param->rc.cuTree) + CHECKED_MALLOC_ZERO(intraData->cuQPOff, int8_t, analysis->numPartitions * analysis->numCUsInFrame); + } analysis->intraData = intraData; - //Allocate memory for interData pointer based on ReuseLevels - CHECKED_MALLOC_ZERO(interData, x265_analysis_inter_data, 1); - CHECKED_MALLOC(interData->depth, uint8_t, analysis->numPartitions * analysis->numCUsInFrame); - CHECKED_MALLOC_ZERO(interData->modes, uint8_t, analysis->numPartitions * analysis->numCUsInFrame); + if ((maxReuseLevel > 1) || isMultiPassOpt) + { + //Allocate memory for interData pointer based on ReuseLevels + CHECKED_MALLOC_ZERO(interData, x265_analysis_inter_data, 1); + CHECKED_MALLOC(interData->depth, uint8_t, analysis->numPartitions * analysis->numCUsInFrame); + CHECKED_MALLOC_ZERO(interData->modes, uint8_t, analysis->numPartitions * analysis->numCUsInFrame); - if (param->rc.cuTree) - CHECKED_MALLOC_ZERO(interData->cuQPOff, int8_t, analysis->numPartitions * analysis->numCUsInFrame); - CHECKED_MALLOC_ZERO(interData->mvpIdx[0], uint8_t, analysis->numPartitions * analysis->numCUsInFrame); - CHECKED_MALLOC_ZERO(interData->mvpIdx[1], uint8_t, analysis->numPartitions * analysis->numCUsInFrame); - CHECKED_MALLOC_ZERO(interData->mv[0], x265_analysis_MV, analysis->numPartitions * analysis->numCUsInFrame); - CHECKED_MALLOC_ZERO(interData->mv[1], x265_analysis_MV, analysis->numPartitions * analysis->numCUsInFrame); + if (param->rc.cuTree && !isMultiPassOpt) + CHECKED_MALLOC_ZERO(interData->cuQPOff, int8_t, analysis->numPartitions * analysis->numCUsInFrame); + CHECKED_MALLOC_ZERO(interData->mvpIdx[0], uint8_t, analysis->numPartitions * analysis->numCUsInFrame); + CHECKED_MALLOC_ZERO(interData->mvpIdx[1], uint8_t, analysis->numPartitions * analysis->numCUsInFrame); + CHECKED_MALLOC_ZERO(interData->mv[0], x265_analysis_MV, analysis->numPartitions * analysis->numCUsInFrame); + CHECKED_MALLOC_ZERO(interData->mv[1], x265_analysis_MV, analysis->numPartitions * analysis->numCUsInFrame); + } - if (param->analysisReuseLevel > 4) + if (maxReuseLevel > 4) { CHECKED_MALLOC_ZERO(interData->partSize, uint8_t, analysis->numPartitions * analysis->numCUsInFrame); CHECKED_MALLOC_ZERO(interData->mergeFlag, uint8_t, analysis->numPartitions * analysis->numCUsInFrame); }
View file
x265_3.2.1.tar.gz/source/encoder/bitcost.cpp -> x265_3.3.tar.gz/source/encoder/bitcost.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/encoder/bitcost.h -> x265_3.3.tar.gz/source/encoder/bitcost.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> *
View file
x265_3.2.1.tar.gz/source/encoder/dpb.cpp -> x265_3.3.tar.gz/source/encoder/dpb.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/encoder/dpb.h -> x265_3.3.tar.gz/source/encoder/dpb.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * @@ -52,12 +52,15 @@ m_lastIDR = 0; m_pocCRA = 0; m_bhasLeadingPicture = param->radl; - for (int i = 0; i < param->rc.zonefileCount; i++) + if (param->bResetZoneConfig) { - if (param->rc.zones[i].zoneParam->radl) + for (int i = 0; i < param->rc.zonefileCount ; i++) { - m_bhasLeadingPicture = param->rc.zones[i].zoneParam->radl; - break; + if (param->rc.zones[i].zoneParam->radl) + { + m_bhasLeadingPicture = param->rc.zones[i].zoneParam->radl; + break; + } } } m_bRefreshPending = false;
View file
x265_3.2.1.tar.gz/source/encoder/encoder.cpp -> x265_3.3.tar.gz/source/encoder/encoder.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Min Chen <chenm003@163.com> @@ -81,6 +81,7 @@ #define MVTHRESHOLD (10*10) #define PU_2Nx2N 1 #define MAX_CHROMA_QP_OFFSET 12 +#define CONF_OFFSET_BYTES (2 * sizeof(int)) static const char* defaultAnalysisFileName = "x265_analysis.dat"; using namespace X265_NS; @@ -117,6 +118,8 @@ m_cR = 1.0; for (int i = 0; i < X265_MAX_FRAME_THREADS; i++) m_frameEncoder[i] = NULL; + for (uint32_t i = 0; i < DUP_BUFFER; i++) + m_dupBuffer[i] = NULL; MotionEstimate::initScales(); #if ENABLE_HDR10_PLUS @@ -128,11 +131,17 @@ #if SVT_HEVC m_svtAppData = NULL; #endif - m_prevTonemapPayload.payload = NULL; m_startPoint = 0; m_saveCTUSize = 0; + m_edgePic = NULL; + m_edgeHistThreshold = 0; + m_chromaHistThreshold = 0.0; + m_scaledEdgeThreshold = 0.0; + m_scaledChromaThreshold = 0.0; + m_zoneIndex = 0; } + inline char *strcatFilename(const char *input, const char *suffix) { char *output = X265_MALLOC(char, strlen(input) + strlen(suffix) + 1); @@ -160,6 +169,87 @@ int rows = (p->sourceHeight + p->maxCUSize - 1) >> g_log2Size[p->maxCUSize]; int cols = (p->sourceWidth + p->maxCUSize - 1) >> g_log2Size[p->maxCUSize]; + if (m_param->bEnableFrameDuplication) + { + size_t framesize = 0; + int pixelbytes = p->sourceBitDepth > 8 ? 2 : 1; + for (int i = 0; i < x265_cli_csps[p->internalCsp].planes; i++) + { + int stride = (p->sourceWidth >> x265_cli_csps[p->internalCsp].width[i]) * pixelbytes; + framesize += (stride * (p->sourceHeight >> x265_cli_csps[p->internalCsp].height[i])); + } + + //Sets the picture structure and emits it in the picture timing SEI message + m_param->pictureStructure = 0; + + for (uint32_t i = 0; i < DUP_BUFFER; i++) + { + m_dupBuffer[i] = (AdaptiveFrameDuplication*)x265_malloc(sizeof(AdaptiveFrameDuplication)); + m_dupBuffer[i]->dupPic = NULL; + m_dupBuffer[i]->dupPic = x265_picture_alloc(); + x265_picture_init(p, m_dupBuffer[i]->dupPic); + m_dupBuffer[i]->dupPlane = NULL; + m_dupBuffer[i]->dupPlane = X265_MALLOC(char, framesize); + m_dupBuffer[i]->dupPic->planes[0] = m_dupBuffer[i]->dupPlane; + m_dupBuffer[i]->bOccupied = false; + m_dupBuffer[i]->bDup = false; + } + + if (!(p->sourceBitDepth == 8 && p->internalBitDepth == 8)) + { + int size = p->sourceWidth * p->sourceHeight; + int hshift = CHROMA_H_SHIFT(p->internalCsp); + int vshift = CHROMA_V_SHIFT(p->internalCsp); + int widthC = p->sourceWidth >> hshift; + int heightC = p->sourceHeight >> vshift; + + m_dupPicOne[0] = X265_MALLOC(pixel, size); + m_dupPicTwo[0] = X265_MALLOC(pixel, size); + if (p->internalCsp != X265_CSP_I400) + { + for (int k = 1; k < 3; k++) + { + m_dupPicOne[k] = X265_MALLOC(pixel, widthC * heightC); + m_dupPicTwo[k] = X265_MALLOC(pixel, widthC * heightC); + } + } + } + } + + if (m_param->bHistBasedSceneCut) + { + for (int i = 0; i < x265_cli_csps[m_param->internalCsp].planes; i++) + { + m_planeSizes[i] = (m_param->sourceWidth >> x265_cli_csps[p->internalCsp].width[i]) * (m_param->sourceHeight >> x265_cli_csps[m_param->internalCsp].height[i]); + } + uint32_t pixelbytes = m_param->internalBitDepth > 8 ? 2 : 1; + m_edgePic = X265_MALLOC(pixel, m_planeSizes[0] * pixelbytes); + m_edgeHistThreshold = m_param->edgeTransitionThreshold; + m_chromaHistThreshold = m_edgeHistThreshold * 10.0; + m_chromaHistThreshold = x265_min(m_chromaHistThreshold, MAX_SCENECUT_THRESHOLD); + m_scaledEdgeThreshold = m_edgeHistThreshold * SCENECUT_STRENGTH_FACTOR; + m_scaledEdgeThreshold = x265_min(m_scaledEdgeThreshold, MAX_SCENECUT_THRESHOLD); + m_scaledChromaThreshold = m_chromaHistThreshold * SCENECUT_STRENGTH_FACTOR; + m_scaledChromaThreshold = x265_min(m_scaledChromaThreshold, MAX_SCENECUT_THRESHOLD); + if (m_param->sourceBitDepth != m_param->internalBitDepth) + { + int size = m_param->sourceWidth * m_param->sourceHeight; + int hshift = CHROMA_H_SHIFT(m_param->internalCsp); + int vshift = CHROMA_V_SHIFT(m_param->internalCsp); + int widthC = m_param->sourceWidth >> hshift; + int heightC = m_param->sourceHeight >> vshift; + + m_inputPic[0] = X265_MALLOC(pixel, size); + if (m_param->internalCsp != X265_CSP_I400) + { + for (int j = 1; j < 3; j++) + { + m_inputPic[j] = X265_MALLOC(pixel, widthC * heightC); + } + } + } + } + // Do not allow WPP if only one row or fewer than 3 columns, it is pointless and unstable if (rows == 1 || cols < 3) { @@ -273,7 +363,13 @@ lookAheadThreadPool[i].start(); m_lookahead->m_numPools = pools; m_dpb = new DPB(m_param); - m_rateControl = new RateControl(*m_param); + m_rateControl = new RateControl(*m_param, this); + if (!m_param->bResetZoneConfig) + { + zoneReadCount = new ThreadSafeInteger[m_param->rc.zonefileCount]; + zoneWriteCount = new ThreadSafeInteger[m_param->rc.zonefileCount]; + } + initVPS(&m_vps); initSPS(&m_sps); initPPS(&m_pps); @@ -396,15 +492,6 @@ m_aborted = true; } } - if (m_param->analysisLoad && m_param->bUseAnalysisFile) - { - m_analysisFileIn = x265_fopen(m_param->analysisLoad, "rb"); - if (!m_analysisFileIn) - { - x265_log_file(NULL, X265_LOG_ERROR, "Analysis load: failed to open file %s\n", m_param->analysisLoad); - m_aborted = true; - } - } if (m_param->analysisMultiPassRefine || m_param->analysisMultiPassDistortion) { @@ -572,7 +659,7 @@ if (analysis_data->sliceType == X265_TYPE_IDR || analysis_data->sliceType == X265_TYPE_I) { curFrame->m_analysisData.sliceType = X265_TYPE_I; - if (m_param->analysisReuseLevel < 7) + if (m_param->analysisLoadReuseLevel < 7) return -1; curFrame->m_analysisData.numPartitions = m_param->num4x4Partitions; int num16x16inCUWidth = m_param->maxCUSize >> 4; @@ -602,7 +689,7 @@ else { uint32_t numDir = analysis_data->sliceType == X265_TYPE_P ? 1 : 2; - if (m_param->analysisReuseLevel < 7) + if (m_param->analysisLoadReuseLevel < 7) return -1; curFrame->m_analysisData.numPartitions = m_param->num4x4Partitions; int num16x16inCUWidth = m_param->maxCUSize >> 4; @@ -644,7 +731,7 @@ (interData)->mvpIdx[k][cuPos + cuOffset] = (srcInterData)->mvpIdx[k][(mbIndex * 16) + cuOffset]; (interData)->refIdx[k][cuPos + cuOffset] = (srcInterData)->refIdx[k][(mbIndex * 16) + cuOffset]; memcpy(&(interData)->mv[k][cuPos + cuOffset], &(srcInterData)->mv[k][(mbIndex * 16) + cuOffset], sizeof(MV)); - if (m_param->analysisReuseLevel == 7 && numPU == PU_2Nx2N && + if (m_param->analysisLoadReuseLevel == 7 && numPU == PU_2Nx2N && ((interData)->depth[cuPos + cuOffset] == (m_param->maxCUSize >> 5))) { int mv_x = (interData)->mv[k][cuPos + cuOffset].x; @@ -678,7 +765,7 @@ if (analysis_data->sliceType == X265_TYPE_IDR || analysis_data->sliceType == X265_TYPE_I) { curFrame->m_analysisData.sliceType = X265_TYPE_I; - if (m_param->analysisReuseLevel < 2) + if (m_param->analysisLoadReuseLevel < 2) return -1; curFrame->m_analysisData.numPartitions = m_param->num4x4Partitions; @@ -699,7 +786,7 @@ else
View file
x265_3.2.1.tar.gz/source/encoder/encoder.h -> x265_3.3.tar.gz/source/encoder/encoder.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * @@ -88,6 +88,9 @@ }; #define MAX_NUM_REF_IDX 64 +#define DUP_BUFFER 2 +#define doubling 7 +#define tripling 8 struct RefIdxLastGOP { @@ -141,6 +144,17 @@ } }; +struct AdaptiveFrameDuplication +{ + x265_picture* dupPic; + char* dupPlane; + + //Flag to denote the availability of the picture buffer. + bool bOccupied; + + //Flag to check whether the picture has duplicated. + bool bDup; +}; class FrameEncoder; class DPB; @@ -149,6 +163,9 @@ class ThreadPool; class FrameData; +#define MAX_SCENECUT_THRESHOLD 2.0 +#define SCENECUT_STRENGTH_FACTOR 2.0 + class Encoder : public x265_encoder { public: @@ -189,6 +206,10 @@ x265_param* m_latestParam; // Holds latest param during a reconfigure RateControl* m_rateControl; Lookahead* m_lookahead; + AdaptiveFrameDuplication* m_dupBuffer[DUP_BUFFER]; // picture buffer of size 2 + /*Frame duplication: Two pictures used to compute PSNR */ + pixel* m_dupPicOne[3]; + pixel* m_dupPicTwo[3]; bool m_externalFlush; /* Collect statistics globally */ @@ -209,7 +230,7 @@ bool m_reconfigureRc; bool m_reconfigureZone; - int m_saveCtuDistortionLevel; + int m_saveCtuDistortionLevel; /* Begin intra refresh when one not in progress or else begin one as soon as the current * one is done. Requires bIntraRefresh to be set.*/ @@ -226,11 +247,25 @@ Lock m_rpsInSpsLock; int m_rpsInSpsCount; /* For HDR*/ - double m_cB; - double m_cR; - - int m_bToneMap; // Enables tone-mapping - int m_enableNal; + double m_cB; + double m_cR; + + int m_bToneMap; // Enables tone-mapping + int m_enableNal; + + /* For histogram based scene-cut detection */ + pixel* m_edgePic; + pixel* m_inputPic[3]; + int32_t m_curUVHist[2][HISTOGRAM_BINS]; + int32_t m_curMaxUVHist[HISTOGRAM_BINS]; + int32_t m_prevMaxUVHist[HISTOGRAM_BINS]; + int32_t m_curEdgeHist[2]; + int32_t m_prevEdgeHist[2]; + uint32_t m_planeSizes[3]; + double m_edgeHistThreshold; + double m_chromaHistThreshold; + double m_scaledEdgeThreshold; + double m_scaledChromaThreshold; #ifdef ENABLE_HDR10_PLUS const hdr10plus_api *m_hdr10plus_api; @@ -244,6 +279,8 @@ x265_sei_payload m_prevTonemapPayload; + int m_zoneIndex; + /* Collect frame level feature data */ uint64_t* m_rdCost; uint64_t* m_variance; @@ -253,6 +290,10 @@ bool m_saveCTUSize; + + ThreadSafeInteger* zoneReadCount; + ThreadSafeInteger* zoneWriteCount; + Encoder(); ~Encoder() { @@ -318,12 +359,22 @@ void finishFrameStats(Frame* pic, FrameEncoder *curEncoder, x265_frame_stats* frameStats, int inPoc); - int validateAnalysisData(x265_analysis_data* analysis, int readWriteFlag); + int validateAnalysisData(x265_analysis_validate* param, int readWriteFlag); void readUserSeiFile(x265_sei_payload& seiMsg, int poc); void calcRefreshInterval(Frame* frameEnc); + uint64_t computeSSD(pixel *fenc, pixel *rec, intptr_t stride, uint32_t width, uint32_t height, x265_param *param); + + double ComputePSNR(x265_picture *firstPic, x265_picture *secPic, x265_param *param); + + void copyPicture(x265_picture *dest, const x265_picture *src); + + bool computeHistograms(x265_picture *pic); + void computeHistogramSAD(double *maxUVNormalizedSAD, double *edgeNormalizedSAD, int curPoc); + void findSceneCuts(x265_picture *pic, bool& bDup, double m_maxUVSADVal, double m_edgeSADVal); + void initRefIdx(); void analyseRefIdx(int *numRefIdx); void updateRefIdx();
View file
x265_3.2.1.tar.gz/source/encoder/entropy.cpp -> x265_3.3.tar.gz/source/encoder/entropy.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** -* Copyright (C) 2013-2017 MulticoreWare, Inc +* Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/encoder/entropy.h -> x265_3.3.tar.gz/source/encoder/entropy.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** -* Copyright (C) 2013-2017 MulticoreWare, Inc +* Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/encoder/frameencoder.cpp -> x265_3.3.tar.gz/source/encoder/frameencoder.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Chung Shin Yee <shinyee@multicorewareinc.com> * Min Chen <chenm003@163.com> @@ -591,7 +591,7 @@ /* Clip slice QP to 0-51 spec range before encoding */ slice->m_sliceQp = x265_clip3(-QP_BD_OFFSET, QP_MAX_SPEC, qp); - if (m_param->bHDROpt) + if (m_param->bHDR10Opt) { int qpCb = x265_clip3(-12, 0, (int)floor((m_top->m_cB * ((-.46) * qp + 9.26)) + 0.5 )); int qpCr = x265_clip3(-12, 0, (int)floor((m_top->m_cR * ((-.46) * qp + 9.26)) + 0.5 )); @@ -713,6 +713,8 @@ sei->m_picStruct = (poc & 1) ? 2 /* bottom */ : 1 /* top */; } } + else if (m_param->bEnableFrameDuplication) + sei->m_picStruct = m_frame->m_picStruct; else sei->m_picStruct = m_param->pictureStructure;
View file
x265_3.2.1.tar.gz/source/encoder/frameencoder.h -> x265_3.3.tar.gz/source/encoder/frameencoder.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Shin Yee <shinyee@multicorewareinc.com> * Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/encoder/framefilter.cpp -> x265_3.3.tar.gz/source/encoder/framefilter.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Chung Shin Yee <shinyee@multicorewareinc.com> * Min Chen <chenm003@163.com> @@ -32,7 +32,6 @@ using namespace X265_NS; -static uint64_t computeSSD(pixel *fenc, pixel *rec, intptr_t stride, uint32_t width, uint32_t height); static float calculateSSIM(pixel *pix1, intptr_t stride1, pixel *pix2, intptr_t stride2, uint32_t width, uint32_t height, void *buf, uint32_t& cnt); namespace X265_NS @@ -673,7 +672,7 @@ uint32_t width = reconPic->m_picWidth - m_pad[0]; uint32_t height = m_parallelFilter[row].getCUHeight(); - uint64_t ssdY = computeSSD(fencPic->getLumaAddr(cuAddr), reconPic->getLumaAddr(cuAddr), stride, width, height); + uint64_t ssdY = m_frameEncoder->m_top->computeSSD(fencPic->getLumaAddr(cuAddr), reconPic->getLumaAddr(cuAddr), stride, width, height, m_param); m_frameEncoder->m_SSDY += ssdY; if (m_param->internalCsp != X265_CSP_I400) @@ -682,8 +681,8 @@ width >>= m_hChromaShift; stride = reconPic->m_strideC; - uint64_t ssdU = computeSSD(fencPic->getCbAddr(cuAddr), reconPic->getCbAddr(cuAddr), stride, width, height); - uint64_t ssdV = computeSSD(fencPic->getCrAddr(cuAddr), reconPic->getCrAddr(cuAddr), stride, width, height); + uint64_t ssdU = m_frameEncoder->m_top->computeSSD(fencPic->getCbAddr(cuAddr), reconPic->getCbAddr(cuAddr), stride, width, height, m_param); + uint64_t ssdV = m_frameEncoder->m_top->computeSSD(fencPic->getCrAddr(cuAddr), reconPic->getCrAddr(cuAddr), stride, width, height, m_param); m_frameEncoder->m_SSDU += ssdU; m_frameEncoder->m_SSDV += ssdV; @@ -825,71 +824,6 @@ } } -static uint64_t computeSSD(pixel *fenc, pixel *rec, intptr_t stride, uint32_t width, uint32_t height) -{ - uint64_t ssd = 0; - - if ((width | height) & 3) - { - /* Slow Path */ - for (uint32_t y = 0; y < height; y++) - { - for (uint32_t x = 0; x < width; x++) - { - int diff = (int)(fenc[x] - rec[x]); - ssd += diff * diff; - } - - fenc += stride; - rec += stride; - } - - return ssd; - } - - uint32_t y = 0; - - /* Consume rows in ever narrower chunks of height */ - for (int size = BLOCK_64x64; size >= BLOCK_4x4 && y < height; size--) - { - uint32_t rowHeight = 1 << (size + 2); - - for (; y + rowHeight <= height; y += rowHeight) - { - uint32_t y1, x = 0; - - /* Consume each row using the largest square blocks possible */ - if (size == BLOCK_64x64 && !(stride & 31)) - for (; x + 64 <= width; x += 64) - ssd += primitives.cu[BLOCK_64x64].sse_pp(fenc + x, stride, rec + x, stride); - - if (size >= BLOCK_32x32 && !(stride & 15)) - for (; x + 32 <= width; x += 32) - for (y1 = 0; y1 + 32 <= rowHeight; y1 += 32) - ssd += primitives.cu[BLOCK_32x32].sse_pp(fenc + y1 * stride + x, stride, rec + y1 * stride + x, stride); - - if (size >= BLOCK_16x16) - for (; x + 16 <= width; x += 16) - for (y1 = 0; y1 + 16 <= rowHeight; y1 += 16) - ssd += primitives.cu[BLOCK_16x16].sse_pp(fenc + y1 * stride + x, stride, rec + y1 * stride + x, stride); - - if (size >= BLOCK_8x8) - for (; x + 8 <= width; x += 8) - for (y1 = 0; y1 + 8 <= rowHeight; y1 += 8) - ssd += primitives.cu[BLOCK_8x8].sse_pp(fenc + y1 * stride + x, stride, rec + y1 * stride + x, stride); - - for (; x + 4 <= width; x += 4) - for (y1 = 0; y1 + 4 <= rowHeight; y1 += 4) - ssd += primitives.cu[BLOCK_4x4].sse_pp(fenc + y1 * stride + x, stride, rec + y1 * stride + x, stride); - - fenc += stride * rowHeight; - rec += stride * rowHeight; - } - } - - return ssd; -} - /* Function to calculate SSIM for each row */ static float calculateSSIM(pixel *pix1, intptr_t stride1, pixel *pix2, intptr_t stride2, uint32_t width, uint32_t height, void *buf, uint32_t& cnt) {
View file
x265_3.2.1.tar.gz/source/encoder/framefilter.h -> x265_3.3.tar.gz/source/encoder/framefilter.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Chung Shin Yee <shinyee@multicorewareinc.com> * Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/encoder/level.cpp -> x265_3.3.tar.gz/source/encoder/level.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/encoder/level.h -> x265_3.3.tar.gz/source/encoder/level.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> *
View file
x265_3.2.1.tar.gz/source/encoder/motion.cpp -> x265_3.3.tar.gz/source/encoder/motion.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/encoder/motion.h -> x265_3.3.tar.gz/source/encoder/motion.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/encoder/nal.cpp -> x265_3.3.tar.gz/source/encoder/nal.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** -* Copyright (C) 2013-2017 MulticoreWare, Inc +* Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/encoder/nal.h -> x265_3.3.tar.gz/source/encoder/nal.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** -* Copyright (C) 2013-2017 MulticoreWare, Inc +* Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> *
View file
x265_3.2.1.tar.gz/source/encoder/ratecontrol.cpp -> x265_3.3.tar.gz/source/encoder/ratecontrol.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Sumalatha Polureddy <sumalatha@multicorewareinc.com> * Aarthi Priya Thirumalai <aarthi@multicorewareinc.com> @@ -53,7 +53,7 @@ {\ bErr = 0;\ p = strstr(opts, opt "=");\ - char* q = strstr(opts, "no-" opt);\ + char* q = strstr(opts, "no-" opt " ");\ if (p && sscanf(p, opt "=%d" , &i) && param_val != i)\ bErr = 1;\ else if (!param_val && !q && !p)\ @@ -146,9 +146,10 @@ return NULL; } -RateControl::RateControl(x265_param& p) +RateControl::RateControl(x265_param& p, Encoder *top) { m_param = &p; + m_top = top; int lowresCuWidth = ((m_param->sourceWidth / 2) + X265_LOWRES_CU_SIZE - 1) >> X265_LOWRES_CU_BITS; int lowresCuHeight = ((m_param->sourceHeight / 2) + X265_LOWRES_CU_SIZE - 1) >> X265_LOWRES_CU_BITS; m_ncu = lowresCuWidth * lowresCuHeight; @@ -156,6 +157,7 @@ m_qCompress = (m_param->rc.cuTree && !m_param->rc.hevcAq) ? 1 : m_param->rc.qCompress; // validate for param->rc, maybe it is need to add a function like x265_parameters_valiate() + m_zoneBufferIdx = 0; m_residualFrames = 0; m_partialResidualFrames = 0; m_residualCost = 0; @@ -171,6 +173,8 @@ m_lastPredictorReset = 0; m_avgPFrameQp = 0; m_isFirstMiniGop = false; + m_lastScenecut = -1; + m_lastScenecutAwareIFrame = -1; if (m_param->rc.rateControlMode == X265_RC_CRF) { m_param->rc.qp = (int)m_param->rc.rfConstant; @@ -210,6 +214,7 @@ m_lastBsliceSatdCost = 0; m_movingAvgSum = 0.0; m_isNextGop = false; + m_relativeComplexity = NULL; // vbv initialization m_param->rc.vbvBufferSize = x265_clip3(0, 2000000, m_param->rc.vbvBufferSize); @@ -354,6 +359,16 @@ m_initVbv = true; } + if (!m_param->bResetZoneConfig && (m_relativeComplexity == NULL)) + { + m_relativeComplexity = X265_MALLOC(double, m_param->reconfigWindowSize); + if (m_relativeComplexity == NULL) + { + x265_log(m_param, X265_LOG_ERROR, "Failed to allocate memory for m_relativeComplexity\n"); + return false; + } + } + m_totalBits = 0; m_encodedBits = 0; m_framesDone = 0; @@ -699,6 +714,8 @@ { m_param->rc.vbvBufferSize = x265_clip3(0, 2000000, m_param->rc.vbvBufferSize); m_param->rc.vbvMaxBitrate = x265_clip3(0, 2000000, m_param->rc.vbvMaxBitrate); + if (m_param->reconfigWindowSize) + m_param->rc.vbvMaxBitrate = (int)(m_param->rc.vbvMaxBitrate * (double)(m_fps / m_param->reconfigWindowSize)); if (m_param->rc.vbvMaxBitrate < m_param->rc.bitrate && m_param->rc.rateControlMode == X265_RC_ABR) { @@ -753,7 +770,7 @@ m_qpConstant[P_SLICE] = m_qpConstant[I_SLICE] = m_qpConstant[B_SLICE] = m_qp; } } - m_bitrate = m_param->rc.bitrate * 1000; + m_bitrate = (double)m_param->rc.bitrate * 1000; } void RateControl::initHRD(SPS& sps) @@ -1183,6 +1200,7 @@ m_param->rc.bStatRead = 0; m_param->bFrameAdaptive = 0; m_param->scenecutThreshold = 0; + m_param->bHistBasedSceneCut = 0; m_param->rc.cuTree = 0; if (m_param->bframes > 1) m_param->bframes = 1; @@ -1244,16 +1262,43 @@ m_predType = getPredictorType(curFrame->m_lowres.sliceType, m_sliceType); rce->poc = m_curSlice->m_poc; - /* change ratecontrol stats for next zone if specified */ - for (int i = 0; i < m_param->rc.zonefileCount; i++) + if (!m_param->bResetZoneConfig && (rce->encodeOrder % m_param->reconfigWindowSize == 0)) { - if (m_param->rc.zones[i].startFrame == curFrame->m_encodeOrder) + int index = m_zoneBufferIdx % m_param->rc.zonefileCount; + int read = m_top->zoneReadCount[index].get(); + int write = m_top->zoneWriteCount[index].get(); + if (write <= read) + write = m_top->zoneWriteCount[index].waitForChange(write); + m_zoneBufferIdx++; + + for (int i = 0; i < m_param->rc.zonefileCount; i++) + { + if (m_param->rc.zones[i].startFrame == rce->encodeOrder) + { + m_param->rc.bitrate = m_param->rc.zones[i].zoneParam->rc.bitrate; + m_param->rc.vbvMaxBitrate = m_param->rc.zones[i].zoneParam->rc.vbvMaxBitrate; + memcpy(m_relativeComplexity, m_param->rc.zones[i].relativeComplexity, sizeof(double) * m_param->reconfigWindowSize); + reconfigureRC(); + m_top->zoneReadCount[i].incr(); + } + } + } + + + if (m_param->bResetZoneConfig) + { + /* change ratecontrol stats for next zone if specified */ + for (int i = 0; i < m_param->rc.zonefileCount; i++) { - m_param = m_param->rc.zones[i].zoneParam; - reconfigureRC(); - init(*m_curSlice->m_sps); + if (m_param->rc.zones[i].startFrame == curFrame->m_encodeOrder) + { + m_param = m_param->rc.zones[i].zoneParam; + reconfigureRC(); + init(*m_curSlice->m_sps); + } } } + if (m_param->rc.bStatRead) { X265_CHECK(rce->poc >= 0 && rce->poc < m_numEntries, "bad encode ordinal\n"); @@ -1648,6 +1693,31 @@ return qScale; } +double RateControl::tuneQScaleForZone(RateControlEntry *rce, double qScale) +{ + rce->frameSizePlanned = predictSize(&m_pred[m_predType], qScale, (double)m_currentSatd); + int loop = 0; + + double availableBits = (double)m_param->rc.bitrate * 1000 * m_relativeComplexity[rce->encodeOrder % m_param->reconfigWindowSize]; + + // Tune qScale to adhere to the available frame bits. + for (int i = 0; i < 1000 && loop != 3; i++) + { + if (rce->frameSizePlanned < availableBits) + { + qScale = qScale / 1.01; + loop = loop | 1; + } + else if (rce->frameSizePlanned > availableBits) + { + qScale = qScale * 1.01; + loop = loop | 2; + } + rce->frameSizePlanned = predictSize(&m_pred[m_predType], qScale, (double)m_currentSatd); + } + return qScale; +} + double RateControl::tuneQScaleForGrain(double rcOverflow) { double qpstep = rcOverflow > 1.1 ? rcOverflow : m_lstep; @@ -1776,6 +1846,16 @@ } rce->qpNoVbv = q; } + /* Scenecut Aware QP offsets*/ + if (m_param->bEnableSceneCutAwareQp) + { + double lqmin = m_lmin[m_sliceType]; + double lqmax = m_lmax[m_sliceType]; + qScale = scenecutAwareQp(curFrame, qScale); + qScale = x265_clip3(lqmin, lqmax, qScale); + q = x265_qScale2qp(qScale); + rce->qpNoVbv = q; + } if (m_isVbv) { lmin = m_lastQScaleFor[P_SLICE] / m_lstep; @@ -1788,11 +1868,21 @@ qScale = x265_clip3(lmin, lmax, qScale); q = x265_qScale2qp(qScale); } +
View file
x265_3.2.1.tar.gz/source/encoder/ratecontrol.h -> x265_3.3.tar.gz/source/encoder/ratecontrol.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Sumalatha Polureddy <sumalatha@multicorewareinc.com> * Aarthi Priya Thirumalai <aarthi@multicorewareinc.com> @@ -46,6 +46,13 @@ #define MIN_AMORTIZE_FRACTION 0.2 #define CLIP_DURATION(f) x265_clip3(MIN_FRAME_DURATION, MAX_FRAME_DURATION, f) +/*Scenecut Aware QP*/ +#define I_SLICE_DELTA 2 /* Subtracted from base QP for the scenecut I frames*/ +#define SLICE_TYPE_DELTA 0.3 /* The offset decremented or incremented for P-frames or b-frames respectively*/ +#define WINDOW1_DELTA 0 /* The offset for the frames coming in the window-1*/ +#define WINDOW2_DELTA 0.3 /* The offset for the frames coming in the window-2*/ +#define WINDOW3_DELTA 0.6 /* The offset for the frames coming in the window-3*/ + struct Predictor { double coeffMin; @@ -128,6 +135,10 @@ int m_ncu; /* number of CUs in a frame */ int m_qp; /* updated qp for current frame */ + /*Zone reconfiguration*/ + double* m_relativeComplexity; + int m_zoneBufferIdx; + bool m_isAbr; bool m_isVbv; bool m_isCbr; @@ -138,6 +149,8 @@ bool m_initVbv; int m_lastAbrResetPoc; + int m_lastScenecut; + int m_lastScenecutAwareIFrame; double m_rateTolerance; double m_frameDuration; /* current frame duration in seconds */ double m_bitrate; @@ -228,6 +241,8 @@ int64_t m_predictedBits; int *m_encOrder; RateControlEntry* m_rce2Pass; + Encoder* m_top; + struct { uint16_t *qpBuffer[2]; /* Global buffers for converting MB-tree quantizer data. */ @@ -235,7 +250,7 @@ * This value is the current position (0 or 1). */ } m_cuTreeStats; - RateControl(x265_param& p); + RateControl(x265_param& p, Encoder *enc); bool init(const SPS& sps); void initHRD(SPS& sps); void reconfigureRC(); @@ -255,6 +270,8 @@ int writeRateControlFrameStats(Frame* curFrame, RateControlEntry* rce); bool initPass2(); + double scenecutAwareQp(Frame* curFrame, double q); + protected: static const int s_slidingWindowFrames; @@ -271,6 +288,7 @@ double getQScale(RateControlEntry *rce, double rateFactor); double rateEstimateQscale(Frame* pic, RateControlEntry *rce); // main logic for calculating QP based on ABR double tuneAbrQScaleFromFeedback(double qScale); + double tuneQScaleForZone(RateControlEntry *rce, double qScale); // Tune qScale to adhere to zone budget void accumPQpUpdate(); int getPredictorType(int lowresSliceType, int sliceType);
View file
x265_3.2.1.tar.gz/source/encoder/rdcost.h -> x265_3.3.tar.gz/source/encoder/rdcost.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** -* Copyright (C) 2013-2017 MulticoreWare, Inc +* Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/encoder/reference.cpp -> x265_3.3.tar.gz/source/encoder/reference.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Deepthi Devaki <deepthidevaki@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/encoder/reference.h -> x265_3.3.tar.gz/source/encoder/reference.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/encoder/sao.cpp -> x265_3.3.tar.gz/source/encoder/sao.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/encoder/sao.h -> x265_3.3.tar.gz/source/encoder/sao.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/encoder/search.cpp -> x265_3.3.tar.gz/source/encoder/search.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** -* Copyright (C) 2013-2017 MulticoreWare, Inc +* Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Min Chen <chenm003@163.com> @@ -2208,7 +2208,7 @@ x265_analysis_inter_data* interDataCTU = NULL; int cuIdx; cuIdx = (interMode.cu.m_cuAddr * m_param->num4x4Partitions) + cuGeom.absPartIdx; - if (m_param->analysisReuseLevel == 10 && m_param->interRefine > 1) + if (m_param->analysisLoadReuseLevel == 10 && m_param->interRefine > 1) { interDataCTU = m_frame->m_analysisData.interData; if ((cu.m_predMode[pu.puAbsPartIdx] == interDataCTU->modes[cuIdx + pu.puAbsPartIdx]) @@ -2227,7 +2227,7 @@ cu.getNeighbourMV(puIdx, pu.puAbsPartIdx, interMode.interNeighbours); /* Uni-directional prediction */ - if ((m_param->analysisLoad && m_param->analysisReuseLevel > 1 && m_param->analysisReuseLevel != 10) + if ((m_param->analysisLoadReuseLevel > 1 && m_param->analysisLoadReuseLevel != 10) || (m_param->analysisMultiPassRefine && m_param->rc.bStatRead) || (m_param->bAnalysisType == AVC_INFO) || (useAsMVP)) { for (int list = 0; list < numPredDir; list++)
View file
x265_3.2.1.tar.gz/source/encoder/search.h -> x265_3.3.tar.gz/source/encoder/search.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** -* Copyright (C) 2013-2017 MulticoreWare, Inc +* Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/encoder/sei.cpp -> x265_3.3.tar.gz/source/encoder/sei.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** -* Copyright (C) 2013-2017 MulticoreWare, Inc +* Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> *
View file
x265_3.2.1.tar.gz/source/encoder/sei.h -> x265_3.3.tar.gz/source/encoder/sei.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** -* Copyright (C) 2013-2017 MulticoreWare, Inc +* Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> *
View file
x265_3.2.1.tar.gz/source/encoder/slicetype.cpp -> x265_3.3.tar.gz/source/encoder/slicetype.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Gopu Govindaswamy <gopu@multicorewareinc.com> * Steve Borho <steve@borho.org> @@ -85,6 +85,69 @@ } // end anonymous namespace +namespace X265_NS { + +bool computeEdge(pixel *edgePic, pixel *refPic, pixel *edgeTheta, intptr_t stride, int height, int width, bool bcalcTheta) +{ + intptr_t rowOne = 0, rowTwo = 0, rowThree = 0, colOne = 0, colTwo = 0, colThree = 0; + intptr_t middle = 0, topLeft = 0, topRight = 0, bottomLeft = 0, bottomRight = 0; + + const int startIndex = 1; + + if (!edgePic || !refPic || (!edgeTheta && bcalcTheta)) + { + return false; + } + else + { + float gradientH = 0, gradientV = 0, radians = 0, theta = 0; + float gradientMagnitude = 0; + pixel blackPixel = 0; + + //Applying Sobel filter expect for border pixels + height = height - startIndex; + width = width - startIndex; + for (int rowNum = startIndex; rowNum < height; rowNum++) + { + rowTwo = rowNum * stride; + rowOne = rowTwo - stride; + rowThree = rowTwo + stride; + + for (int colNum = startIndex; colNum < width; colNum++) + { + + /* Horizontal and vertical gradients + [ -3 0 3 ] [-3 -10 -3 ] + gH =[ -10 0 10] gV = [ 0 0 0 ] + [ -3 0 3 ] [ 3 10 3 ] */ + + colTwo = colNum; + colOne = colTwo - startIndex; + colThree = colTwo + startIndex; + middle = rowTwo + colTwo; + topLeft = rowOne + colOne; + topRight = rowOne + colThree; + bottomLeft = rowThree + colOne; + bottomRight = rowThree + colThree; + gradientH = (float)(-3 * refPic[topLeft] + 3 * refPic[topRight] - 10 * refPic[rowTwo + colOne] + 10 * refPic[rowTwo + colThree] - 3 * refPic[bottomLeft] + 3 * refPic[bottomRight]); + gradientV = (float)(-3 * refPic[topLeft] - 10 * refPic[rowOne + colTwo] - 3 * refPic[topRight] + 3 * refPic[bottomLeft] + 10 * refPic[rowThree + colTwo] + 3 * refPic[bottomRight]); + gradientMagnitude = sqrtf(gradientH * gradientH + gradientV * gradientV); + if(bcalcTheta) + { + edgeTheta[middle] = 0; + radians = atan2(gradientV, gradientH); + theta = (float)((radians * 180) / PI); + if (theta < 0) + theta = 180 + theta; + edgeTheta[middle] = (pixel)theta; + } + edgePic[middle] = (pixel)(gradientMagnitude >= edgeThreshold ? edgeThreshold : blackPixel); + } + } + return true; + } +} + void edgeFilter(Frame *curFrame, x265_param* param) { int height = curFrame->m_fencPic->m_picHeight; @@ -114,6 +177,7 @@ //Applying Gaussian filter on the picture src = (pixel*)curFrame->m_fencPic->m_picOrg[0]; refPic = curFrame->m_gaussianPic + curFrame->m_fencPic->m_lumaMarginY * stride + curFrame->m_fencPic->m_lumaMarginX; + edgePic = curFrame->m_edgePic + curFrame->m_fencPic->m_lumaMarginY * stride + curFrame->m_fencPic->m_lumaMarginX; pixel pixelValue = 0; for (int rowNum = 0; rowNum < height; rowNum++) @@ -146,51 +210,8 @@ } } -#if HIGH_BIT_DEPTH //10-bit build - float threshold = 1023; - pixel whitePixel = 1023; -#else - float threshold = 255; - pixel whitePixel = 255; -#endif -#define PI 3.14159265 - - float gradientH = 0, gradientV = 0, radians = 0, theta = 0; - float gradientMagnitude = 0; - pixel blackPixel = 0; - edgePic = curFrame->m_edgePic + curFrame->m_fencPic->m_lumaMarginY * stride + curFrame->m_fencPic->m_lumaMarginX; - //Applying Sobel filter on the gaussian filtered picture - for (int rowNum = 0; rowNum < height; rowNum++) - { - for (int colNum = 0; colNum < width; colNum++) - { - edgeTheta[(rowNum*stride) + colNum] = 0; - if ((rowNum != 0) && (colNum != 0) && (rowNum != height - 1) && (colNum != width - 1)) //Ignoring the border pixels of the picture - { - /*Horizontal and vertical gradients - [ -3 0 3 ] [-3 -10 -3 ] - gH = [ -10 0 10] gV = [ 0 0 0 ] - [ -3 0 3 ] [ 3 10 3 ]*/ - - const intptr_t rowOne = (rowNum - 1)*stride, colOne = colNum -1; - const intptr_t rowTwo = rowNum * stride, colTwo = colNum; - const intptr_t rowThree = (rowNum + 1)*stride, colThree = colNum + 1; - const intptr_t index = (rowNum*stride) + colNum; - - gradientH = (float)(-3 * refPic[rowOne + colOne] + 3 * refPic[rowOne + colThree] - 10 * refPic[rowTwo + colOne] + 10 * refPic[rowTwo + colThree] - 3 * refPic[rowThree + colOne] + 3 * refPic[rowThree + colThree]); - gradientV = (float)(-3 * refPic[rowOne + colOne] - 10 * refPic[rowOne + colTwo] - 3 * refPic[rowOne + colThree] + 3 * refPic[rowThree + colOne] + 10 * refPic[rowThree + colTwo] + 3 * refPic[rowThree + colThree]); - - gradientMagnitude = sqrtf(gradientH * gradientH + gradientV * gradientV); - radians = atan2(gradientV, gradientH); - theta = (float)((radians * 180) / PI); - if (theta < 0) - theta = 180 + theta; - edgeTheta[(rowNum*stride) + colNum] = (pixel)theta; - - edgePic[index] = gradientMagnitude >= threshold ? whitePixel : blackPixel; - } - } - } + if(!computeEdge(edgePic, refPic, edgeTheta, stride, height, width, true)) + x265_log(NULL, X265_LOG_ERROR, "Failed edge computation!"); } //Find the angle of a block by averaging the pixel angles @@ -572,7 +593,7 @@ qp_adj = strength * (X265_LOG2(X265_MAX(energy, 1)) - (modeOneConst + 2 * (X265_DEPTH - 8))); } - if (param->bHDROpt) + if (param->bHDR10Opt) { uint32_t sum = lumaSumCu(curFrame, blockX, blockY, param->rc.qgSize); uint32_t lumaAvg = sum / (loopIncr * loopIncr); @@ -1471,7 +1492,7 @@ if (m_lastNonB && !m_param->rc.bStatRead && ((m_param->bFrameAdaptive && m_param->bframes) || - m_param->rc.cuTree || m_param->scenecutThreshold || + m_param->rc.cuTree || m_param->scenecutThreshold || m_param->bHistBasedSceneCut || (m_param->lookaheadDepth && m_param->rc.vbvBufferSize))) { slicetypeAnalyse(frames, false); @@ -1531,12 +1552,15 @@ if (frm.bIsFadeEnd){ frm.sliceType = m_param->bOpenGOP && m_lastKeyframe >= 0 ? X265_TYPE_I : X265_TYPE_IDR; } - for (int i = 0; i < m_param->rc.zonefileCount; i++) + if (m_param->bResetZoneConfig) { - int curZoneStart = m_param->rc.zones[i].startFrame; - curZoneStart += curZoneStart ? m_param->rc.zones[i].zoneParam->radl : 0; - if (curZoneStart == frm.frameNum) - frm.sliceType = X265_TYPE_IDR; + for (int i = 0; i < m_param->rc.zonefileCount; i++) + { + int curZoneStart = m_param->rc.zones[i].startFrame; + curZoneStart += curZoneStart ? m_param->rc.zones[i].zoneParam->radl : 0; + if (curZoneStart == frm.frameNum) + frm.sliceType = X265_TYPE_IDR; + } } if ((frm.sliceType == X265_TYPE_I && frm.frameNum - m_lastKeyframe >= m_param->keyframeMin) || (frm.frameNum == (m_param->chunkStart - 1)) || (frm.frameNum == m_param->chunkEnd)) { @@ -1554,16 +1578,19 @@ m_lastKeyframe = frm.frameNum; frm.bKeyframe = true; int zoneRadl = 0; - for (int i = 0; i < m_param->rc.zonefileCount; i++) + if (m_param->bResetZoneConfig) { - int zoneStart = m_param->rc.zones[i].startFrame; - zoneStart += zoneStart ? m_param->rc.zones[i].zoneParam->radl : 0; - if (zoneStart == frm.frameNum) + for (int i = 0; i < m_param->rc.zonefileCount; i++) { - zoneRadl = m_param->rc.zones[i].zoneParam->radl; - m_param->radl = 0; - m_param->rc.zones->zoneParam->radl = i < m_param->rc.zonefileCount - 1? m_param->rc.zones[i + 1].zoneParam->radl : 0; - break; + int zoneStart = m_param->rc.zones[i].startFrame; + zoneStart += zoneStart ? m_param->rc.zones[i].zoneParam->radl : 0; + if (zoneStart == frm.frameNum) + { + zoneRadl = m_param->rc.zones[i].zoneParam->radl; + m_param->radl = 0;
View file
x265_3.2.1.tar.gz/source/encoder/slicetype.h -> x265_3.3.tar.gz/source/encoder/slicetype.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Min Chen <chenm003@163.com> @@ -43,6 +43,13 @@ #define AQ_EDGE_BIAS 0.5 #define EDGE_INCLINATION 45 +#if HIGH_BIT_DEPTH +#define edgeThreshold 1023.0 +#else +#define edgeThreshold 255.0 +#endif +#define PI 3.14159265 + /* Thread local data for lookahead tasks */ struct LookaheadTLD { @@ -258,6 +265,7 @@ CostEstimateGroup& operator=(const CostEstimateGroup&); }; -} +bool computeEdge(pixel *edgePic, pixel *refPic, pixel *edgeTheta, intptr_t stride, int height, int width, bool bcalcTheta); +} #endif // ifndef X265_SLICETYPE_H
View file
x265_3.2.1.tar.gz/source/encoder/svt.h -> x265_3.3.tar.gz/source/encoder/svt.h
Changed
@@ -29,7 +29,6 @@ #include "EbApi.h" #include "EbErrorCodes.h" -#include "EbTime.h" namespace X265_NS { @@ -41,7 +40,7 @@ #define EB_OUTPUTSTREAMBUFFERSIZE_MACRO(ResolutionSize) ((ResolutionSize) < (INPUT_SIZE_1080i_TH) ? 0x1E8480 : (ResolutionSize) < (INPUT_SIZE_1080p_TH) ? 0x2DC6C0 : (ResolutionSize) < (INPUT_SIZE_4K_TH) ? 0x2DC6C0 : 0x2DC6C0) void svt_param_default(x265_param* param); -int svt_set_preset_tune(x265_param* param, const char* preset, const char* tune); +int svt_set_preset(x265_param* param, const char* preset); int svt_param_parse(x265_param* param, const char* name, const char* value); void svt_initialise_app_context(x265_encoder *enc); int svt_initialise_input_buffer(x265_encoder *enc); @@ -49,4 +48,4 @@ #endif // ifdef SVT_HEVC -#endif // ifndef SVT_H \ No newline at end of file +#endif // ifndef SVT_H
View file
x265_3.2.1.tar.gz/source/encoder/weightPrediction.cpp -> x265_3.3.tar.gz/source/encoder/weightPrediction.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Author: Shazeb Nawaz Khan <shazeb@multicorewareinc.com> * Steve Borho <steve@borho.org>
View file
x265_3.2.1.tar.gz/source/input/input.cpp -> x265_3.3.tar.gz/source/input/input.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> *
View file
x265_3.2.1.tar.gz/source/input/input.h -> x265_3.3.tar.gz/source/input/input.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> *
View file
x265_3.2.1.tar.gz/source/input/y4m.cpp -> x265_3.3.tar.gz/source/input/y4m.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * @@ -388,6 +388,7 @@ pic.bitDepth = depth; pic.framesize = framesize; pic.height = height; + pic.width = width; pic.colorSpace = colorSpace; pic.stride[0] = width * pixelbytes; pic.stride[1] = pic.stride[0] >> x265_cli_csps[colorSpace].width[1];
View file
x265_3.2.1.tar.gz/source/input/y4m.h -> x265_3.3.tar.gz/source/input/y4m.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> *
View file
x265_3.2.1.tar.gz/source/input/yuv.cpp -> x265_3.3.tar.gz/source/input/yuv.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * @@ -204,6 +204,7 @@ pic.bitDepth = depth; pic.framesize = framesize; pic.height = height; + pic.width = width; pic.stride[0] = width * pixelbytes; pic.stride[1] = pic.stride[0] >> x265_cli_csps[colorSpace].width[1]; pic.stride[2] = pic.stride[0] >> x265_cli_csps[colorSpace].width[2];
View file
x265_3.2.1.tar.gz/source/input/yuv.h -> x265_3.3.tar.gz/source/input/yuv.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> *
View file
x265_3.2.1.tar.gz/source/output/output.cpp -> x265_3.3.tar.gz/source/output/output.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Xinyue Lu <i@7086.in>
View file
x265_3.2.1.tar.gz/source/output/output.h -> x265_3.3.tar.gz/source/output/output.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Xinyue Lu <i@7086.in>
View file
x265_3.2.1.tar.gz/source/output/raw.cpp -> x265_3.3.tar.gz/source/output/raw.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Xinyue Lu <i@7086.in>
View file
x265_3.2.1.tar.gz/source/output/raw.h -> x265_3.3.tar.gz/source/output/raw.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Xinyue Lu <i@7086.in>
View file
x265_3.2.1.tar.gz/source/output/reconplay.cpp -> x265_3.3.tar.gz/source/output/reconplay.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Peixuan Zhang <zhangpeixuancn@gmail.com> * Chunli Zhang <chunli@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/output/reconplay.h -> x265_3.3.tar.gz/source/output/reconplay.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Peixuan Zhang <zhangpeixuancn@gmail.com> * Chunli Zhang <chunli@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/output/y4m.cpp -> x265_3.3.tar.gz/source/output/y4m.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> *
View file
x265_3.2.1.tar.gz/source/output/y4m.h -> x265_3.3.tar.gz/source/output/y4m.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> *
View file
x265_3.2.1.tar.gz/source/output/yuv.cpp -> x265_3.3.tar.gz/source/output/yuv.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> *
View file
x265_3.2.1.tar.gz/source/output/yuv.h -> x265_3.3.tar.gz/source/output/yuv.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> *
View file
x265_3.2.1.tar.gz/source/profile/PPA/ppa.cpp -> x265_3.3.tar.gz/source/profile/PPA/ppa.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> *
View file
x265_3.2.1.tar.gz/source/profile/PPA/ppa.h -> x265_3.3.tar.gz/source/profile/PPA/ppa.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> *
View file
x265_3.2.1.tar.gz/source/profile/PPA/ppaApi.h -> x265_3.3.tar.gz/source/profile/PPA/ppaApi.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> *
View file
x265_3.2.1.tar.gz/source/profile/vtune/vtune.cpp -> x265_3.3.tar.gz/source/profile/vtune/vtune.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> *
View file
x265_3.2.1.tar.gz/source/profile/vtune/vtune.h -> x265_3.3.tar.gz/source/profile/vtune/vtune.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> *
View file
x265_3.2.1.tar.gz/source/test/checkasm-a.asm -> x265_3.3.tar.gz/source/test/checkasm-a.asm
Changed
@@ -2,7 +2,7 @@ ;* checkasm-a.asm: assembly check tool ;***************************************************************************** ;* Copyright (C) 2003-2013 x264 project -;* Copyright (C) 2013-2017 MulticoreWare, Inc +;* Copyright (C) 2013-2020 MulticoreWare, Inc ;* ;* Authors: Loren Merritt <lorenm@u.washington.edu> ;* Henrik Gramner <henrik@gramner.com>
View file
x265_3.2.1.tar.gz/source/test/checkasm-arm.S -> x265_3.3.tar.gz/source/test/checkasm-arm.S
Changed
@@ -1,7 +1,7 @@ /**************************************************************************** * checkasm-arm.S: assembly check tool ***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Martin Storsjo <martin@martin.st> * Dnyaneshwar Gorade <dnyaneshwar@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/test/intrapredharness.cpp -> x265_3.3.tar.gz/source/test/intrapredharness.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Min Chen <chenm003@163.com> *
View file
x265_3.2.1.tar.gz/source/test/intrapredharness.h -> x265_3.3.tar.gz/source/test/intrapredharness.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Min Chen <chenm003@163.com> *
View file
x265_3.2.1.tar.gz/source/test/ipfilterharness.cpp -> x265_3.3.tar.gz/source/test/ipfilterharness.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Deepthi Devaki <deepthidevaki@multicorewareinc.com>, * Rajesh Paulraj <rajesh@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/test/ipfilterharness.h -> x265_3.3.tar.gz/source/test/ipfilterharness.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Deepthi Devaki <deepthidevaki@multicorewareinc.com>, * Rajesh Paulraj <rajesh@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/test/mbdstharness.cpp -> x265_3.3.tar.gz/source/test/mbdstharness.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Min Chen <min.chen@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/test/mbdstharness.h -> x265_3.3.tar.gz/source/test/mbdstharness.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Min Chen <min.chen@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/test/pixelharness.cpp -> x265_3.3.tar.gz/source/test/pixelharness.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/test/pixelharness.h -> x265_3.3.tar.gz/source/test/pixelharness.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/test/regression-tests.txt -> x265_3.3.tar.gz/source/test/regression-tests.txt
Changed
@@ -18,17 +18,17 @@ BasketballDrive_1920x1080_50.y4m,--preset faster --aq-strength 2 --merange 190 --slices 3 BasketballDrive_1920x1080_50.y4m,--preset medium --ctu 16 --max-tu-size 8 --subme 7 --qg-size 16 --cu-lossless --tu-inter-depth 3 --limit-tu 1 BasketballDrive_1920x1080_50.y4m,--preset medium --keyint -1 --nr-inter 100 -F4 --no-sao -BasketballDrive_1920x1080_50.y4m,--preset medium --no-cutree --analysis-save x265_analysis.dat --analysis-reuse-level 2 --bitrate 7000 --limit-modes::--preset medium --no-cutree --analysis-load x265_analysis.dat --analysis-reuse-level 2 --bitrate 7000 --limit-modes +BasketballDrive_1920x1080_50.y4m,--preset medium --no-cutree --analysis-save x265_analysis.dat --analysis-save-reuse-level 2 --bitrate 7000 --limit-modes::--preset medium --no-cutree --analysis-load x265_analysis.dat --analysis-load-reuse-level 2 --bitrate 7000 --limit-modes BasketballDrive_1920x1080_50.y4m,--preset slow --nr-intra 100 -F4 --aq-strength 3 --qg-size 16 --limit-refs 1 BasketballDrive_1920x1080_50.y4m,--preset slower --lossless --chromaloc 3 --subme 0 --limit-tu 4 -BasketballDrive_1920x1080_50.y4m,--preset slower --no-cutree --analysis-save x265_analysis.dat --analysis-reuse-level 10 --bitrate 7000 --limit-tu 0::--preset slower --no-cutree --analysis-load x265_analysis.dat --analysis-reuse-level 10 --bitrate 7000 --limit-tu 0 +BasketballDrive_1920x1080_50.y4m,--preset slower --no-cutree --analysis-save x265_analysis.dat --analysis-save-reuse-level 10 --bitrate 7000 --limit-tu 0::--preset slower --no-cutree --analysis-load x265_analysis.dat --analysis-load-reuse-level 10 --bitrate 7000 --limit-tu 0 BasketballDrive_1920x1080_50.y4m,--preset veryslow --crf 4 --cu-lossless --pmode --limit-refs 1 --aq-mode 3 --limit-tu 3 -BasketballDrive_1920x1080_50.y4m,--preset veryslow --no-cutree --analysis-save x265_analysis.dat --crf 18 --tskip-fast --limit-tu 2::--preset veryslow --no-cutree --analysis-load x265_analysis.dat --crf 18 --tskip-fast --limit-tu 2 +BasketballDrive_1920x1080_50.y4m,--preset veryslow --no-cutree --analysis-save x265_analysis.dat --analysis-save-reuse-level 5 --crf 18 --tskip-fast --limit-tu 2::--preset veryslow --no-cutree --analysis-load x265_analysis.dat --analysis-load-reuse-level 5 --crf 18 --tskip-fast --limit-tu 2 BasketballDrive_1920x1080_50.y4m,--preset veryslow --recon-y4m-exec "ffplay -i pipe:0 -autoexit" Coastguard-4k.y4m,--preset ultrafast --recon-y4m-exec "ffplay -i pipe:0 -autoexit" Coastguard-4k.y4m,--preset superfast --tune grain --overscan=crop Coastguard-4k.y4m,--preset superfast --tune grain --pme --aq-strength 2 --merange 190 -Coastguard-4k.y4m,--preset veryfast --no-cutree --analysis-save x265_analysis.dat --analysis-reuse-level 1 --qp 35::--preset veryfast --no-cutree --analysis-load x265_analysis.dat --analysis-reuse-level 1 --qp 35 +Coastguard-4k.y4m,--preset veryfast --no-cutree --analysis-save x265_analysis.dat --analysis-save-reuse-level 1 --qp 35::--preset veryfast --no-cutree --analysis-load x265_analysis.dat --analysis-load-reuse-level 1 --qp 35 Coastguard-4k.y4m,--preset medium --rdoq-level 1 --tune ssim --no-signhide --me umh --slices 2 Coastguard-4k.y4m,--preset slow --tune psnr --cbqpoffs -1 --crqpoffs 1 --limit-refs 1 CrowdRun_1920x1080_50_10bit_422.yuv,--preset ultrafast --weightp --tune zerolatency --qg-size 16 @@ -53,7 +53,7 @@ DucksAndLegs_1920x1080_60_10bit_444.yuv,--preset veryfast --weightp --nr-intra 1000 -F4 DucksAndLegs_1920x1080_60_10bit_444.yuv,--preset medium --nr-inter 500 -F4 --no-psy-rdoq DucksAndLegs_1920x1080_60_10bit_444.yuv,--preset slower --no-weightp --rdoq-level 0 --limit-refs 3 --tu-inter-depth 4 --limit-tu 3 -DucksAndLegs_1920x1080_60_10bit_422.yuv,--preset fast --no-cutree --analysis-save x265_analysis.dat --bitrate 3000 --early-skip --tu-inter-depth 3 --limit-tu 1::--preset fast --no-cutree --analysis-load x265_analysis.dat --bitrate 3000 --early-skip --tu-inter-depth 3 --limit-tu 1 +DucksAndLegs_1920x1080_60_10bit_422.yuv,--preset fast --no-cutree --analysis-save x265_analysis.dat --analysis-save-reuse-level 5 --bitrate 3000 --early-skip --tu-inter-depth 3 --limit-tu 1::--preset fast --no-cutree --analysis-load x265_analysis.dat --analysis-load-reuse-level 5 --bitrate 3000 --early-skip --tu-inter-depth 3 --limit-tu 1 FourPeople_1280x720_60.y4m,--preset superfast --no-wpp --lookahead-slices 2 FourPeople_1280x720_60.y4m,--preset veryfast --aq-mode 2 --aq-strength 1.5 --qg-size 8 FourPeople_1280x720_60.y4m,--preset medium --qp 38 --no-psy-rd @@ -70,8 +70,8 @@ KristenAndSara_1280x720_60.y4m,--preset slower --pmode --max-tu-size 8 --limit-refs 0 --limit-modes --limit-tu 1 NebutaFestival_2560x1600_60_10bit_crop.yuv,--preset superfast --tune psnr NebutaFestival_2560x1600_60_10bit_crop.yuv,--preset medium --tune grain --limit-refs 2 -NebutaFestival_2560x1600_60_10bit_crop.yuv,--preset slow --no-cutree --analysis-save x265_analysis.dat --rd 5 --analysis-reuse-level 10 --bitrate 9000 --vbv-maxrate 9000 --vbv-bufsize 9000::--preset slow --no-cutree --analysis-load x265_analysis.dat --rd 5 --analysis-reuse-level 10 --bitrate 9000 --vbv-maxrate 9000 --vbv-bufsize 9000 -News-4k.y4m,--preset ultrafast --no-cutree --analysis-save x265_analysis.dat --analysis-reuse-level 2 --bitrate 15000::--preset ultrafast --no-cutree --analysis-load x265_analysis.dat --analysis-reuse-level 2 --bitrate 15000 +NebutaFestival_2560x1600_60_10bit_crop.yuv,--preset slow --no-cutree --analysis-save x265_analysis.dat --rd 5 --analysis-save-reuse-level 10 --bitrate 9000 --vbv-maxrate 9000 --vbv-bufsize 9000::--preset slow --no-cutree --analysis-load x265_analysis.dat --rd 5 --analysis-load-reuse-level 10 --bitrate 9000 --vbv-maxrate 9000 --vbv-bufsize 9000 +News-4k.y4m,--preset ultrafast --no-cutree --analysis-save x265_analysis.dat --analysis-save-reuse-level 2 --bitrate 15000::--preset ultrafast --no-cutree --analysis-load x265_analysis.dat --analysis-load-reuse-level 2 --bitrate 15000 News-4k.y4m,--preset superfast --lookahead-slices 6 --aq-mode 0 News-4k.y4m,--preset superfast --slices 4 --aq-mode 0 News-4k.y4m,--preset medium --tune ssim --no-sao --qg-size 16 @@ -125,7 +125,7 @@ old_town_cross_444_720p50.y4m,--preset superfast --weightp --min-cu 16 --limit-modes old_town_cross_444_720p50.y4m,--preset veryfast --qp 1 --tune ssim old_town_cross_444_720p50.y4m,--preset faster --rd 1 --tune zero-latency -old_town_cross_444_720p50.y4m,--preset fast --no-cutree --analysis-save pass1_analysis.dat --analysis-reuse-level 1 --bitrate 3000 --early-skip::--preset fast --no-cutree --analysis-load pass1_analysis.dat --analysis-save pass2_analysis.dat --analysis-reuse-level 1 --bitrate 3000 --early-skip::--preset fast --no-cutree --analysis-load pass2_analysis.dat --analysis-reuse-level 1 --bitrate 3000 --early-skip +old_town_cross_444_720p50.y4m,--preset fast --no-cutree --analysis-save pass1_analysis.dat --analysis-save-reuse-level 1 --bitrate 3000 --early-skip::--preset fast --no-cutree --analysis-load pass1_analysis.dat --analysis-save pass2_analysis.dat --analysis-load-reuse-level 1 --analysis-save-reuse-level 1 --bitrate 3000 --early-skip::--preset fast --no-cutree --analysis-load pass2_analysis.dat --analysis-load-reuse-level 1 --bitrate 3000 --early-skip old_town_cross_444_720p50.y4m,--preset medium --keyint -1 --no-weightp --ref 6 old_town_cross_444_720p50.y4m,--preset slow --rdoq-level 1 --early-skip --ref 7 --no-b-pyramid old_town_cross_444_720p50.y4m,--preset slower --crf 4 --cu-lossless @@ -156,7 +156,12 @@ 720p50_parkrun_ter.y4m,--preset medium --bitrate 400 --hme ducks_take_off_420_720p50.y4m,--preset medium --aq-mode 4 --crf 22 --no-cutree ducks_take_off_420_1_720p50.y4m,--preset medium --selective-sao 4 --sao --crf 20 +Traffic_4096x2048_30p.y4m, --preset medium --frame-dup --dup-threshold 60 --hrd --bitrate 10000 --vbv-bufsize 15000 --vbv-maxrate 12000 Kimono1_1920x1080_24_400.yuv,--preset superfast --qp 28 --zones 0,139,q=32 +Island_960x540_24.yuv,--no-cutree --aq-mode 0 --bitrate 6000 --scenecut-aware-qp +sintel_trailer_2k_1920x1080_24.yuv, --preset medium --hist-scenecut --hist-threshold 0.02 --frame-dup --dup-threshold 60 --hrd --bitrate 10000 --vbv-bufsize 15000 --vbv-maxrate 12000 +sintel_trailer_2k_1920x1080_24.yuv, --preset medium --hist-scenecut --hist-threshold 0.02 +sintel_trailer_2k_1920x1080_24.yuv, --preset ultrafast --hist-scenecut --hist-threshold 0.02 # Main12 intraCost overflow bug test 720p50_parkrun_ter.y4m,--preset medium @@ -173,15 +178,14 @@ 720p50_parkrun_ter.y4m,--preset medium --lowpass-dct #scaled save/load test -crowd_run_1080p50.y4m,--preset ultrafast --no-cutree --analysis-save x265_analysis.dat --analysis-reuse-level 1 --scale-factor 2 --crf 26 --vbv-maxrate 8000 --vbv-bufsize 8000::crowd_run_2160p50.y4m, --preset ultrafast --no-cutree --analysis-load x265_analysis.dat --analysis-reuse-level 1 --scale-factor 2 --crf 26 --vbv-maxrate 12000 --vbv-bufsize 12000 -crowd_run_1080p50.y4m,--preset superfast --no-cutree --analysis-save x265_analysis.dat --analysis-reuse-level 2 --scale-factor 2 --crf 22 --vbv-maxrate 5000 --vbv-bufsize 5000::crowd_run_2160p50.y4m, --preset superfast --no-cutree --analysis-load x265_analysis.dat --analysis-reuse-level 2 --scale-factor 2 --crf 22 --vbv-maxrate 10000 --vbv-bufsize 10000 -crowd_run_1080p50.y4m,--preset fast --no-cutree --analysis-save x265_analysis.dat --analysis-reuse-level 5 --scale-factor 2 --qp 18::crowd_run_2160p50.y4m, --preset fast --no-cutree --analysis-load x265_analysis.dat --analysis-reuse-level 5 --scale-factor 2 --qp 18 -crowd_run_1080p50.y4m,--preset medium --no-cutree --analysis-save x265_analysis.dat --analysis-reuse-level 10 --scale-factor 2 --bitrate 5000 --vbv-maxrate 5000 --vbv-bufsize 5000 --early-skip --tu-inter-depth 3::crowd_run_2160p50.y4m, --preset medium --no-cutree --analysis-load x265_analysis.dat --analysis-reuse-level 10 --scale-factor 2 --bitrate 10000 --vbv-maxrate 10000 --vbv-bufsize 10000 --early-skip --tu-inter-depth 3 --refine-intra 4 --dynamic-refine::crowd_run_2160p50.y4m, --preset medium --no-cutree --analysis-load x265_analysis.dat --analysis-reuse-level 10 --scale-factor 2 --bitrate 10000 --vbv-maxrate 10000 --vbv-bufsize 10000 --early-skip --tu-inter-depth 3 --refine-intra 3 --refine-inter 3 -RaceHorses_416x240_30.y4m,--preset slow --no-cutree --ctu 16 --analysis-save x265_analysis.dat --analysis-reuse-level 10 --scale-factor 2 --crf 22 --vbv-maxrate 1000 --vbv-bufsize 1000::RaceHorses_832x480_30.y4m, --preset slow --no-cutree --ctu 32 --analysis-load x265_analysis.dat --analysis-save x265_analysis_2.dat --analysis-reuse-level 10 --scale-factor 2 --crf 16 --vbv-maxrate 4000 --vbv-bufsize 4000 --refine-intra 0 --refine-inter 1::RaceHorses_1664x960_30.y4m,--preset slow --no-cutree --ctu 64 --analysis-load x265_analysis_2.dat --analysis-reuse-level 10 --scale-factor 2 --crf 12 --vbv-maxrate 7000 --vbv-bufsize 7000 --refine-intra 2 --refine-inter 2 -ElFunete_960x540_60.yuv,--colorprim bt709 --transfer bt709 --chromaloc 2 --aud --repeat-headers --no-opt-qp-pps --no-opt-ref-list-length-pps --wpp --no-interlace --sar 1:1 --min-keyint 60 --no-open-gop --rc-lookahead 180 --bframes 5 --b-intra --ref 4 --cbqpoffs -2 --crqpoffs -2 --lookahead-threads 0 --weightb --qg-size 8 --me star --preset veryslow --frame-threads 1 --b-adapt 2 --aq-mode 3 --rd 6 --pools 15 --colormatrix bt709 --keyint 120 --high-tier --ctu 64 --tune psnr --bitrate 10000 --vbv-bufsize 30000 --vbv-maxrate 17500 --analysis-reuse-level 10 --analysis-save elfuente_960x540.dat --scale-factor 2::ElFunete_1920x1080_60.yuv,--colorprim bt709 --transfer bt709 --chromaloc 2 --aud --repeat-headers --no-opt-qp-pps --no-opt-ref-list-length-pps --wpp --no-interlace --sar 1:1 --min-keyint 60 --no-open-gop --rc-lookahead 180 --bframes 5 --b-intra --ref 4 --cbqpoffs -2 --crqpoffs -2 --lookahead-threads 0 --weightb --qg-size 8 --me star --preset veryslow --frame-threads 1 --b-adapt 2 --aq-mode 3 --rd 6 --pools 15 --colormatrix bt709 --keyint 120 --high-tier --ctu 64 --tune psnr --bitrate 10000 --vbv-bufsize 30000 --vbv-maxrate 17500 --analysis-reuse-level 10 --analysis-save elfuente_1920x1080.dat --limit-tu 0 --scale-factor 2 --analysis-load elfuente_960x540.dat --refine-intra 4 --refine-inter 2::ElFuente_3840x2160_60.yuv,--colorprim bt709 --transfer bt709 --chromaloc 2 --aud --repeat-headers --no-opt-qp-pps --no-opt-ref-list-length-pps --wpp --no-interlace --sar 1:1 --min-keyint 60 --no-open-gop --rc-lookahead 180 --bframes 5 --b-intra --ref 4 --cbqpoffs -2 --crqpoffs -2 --lookahead-threads 0 --weightb --qg-size 8 --me star --preset veryslow --frame-threads 1 --b-adapt 2 --aq-mode 3 --rd 6 --pools 15 --colormatrix bt709 --keyint 120 --high-tier --ctu 64 --tune=psnr --bitrate 24000 --vbv-bufsize 84000 --vbv-maxrate 49000 --analysis-reuse-level 10 --limit-tu 0 --scale-factor 2 --analysis-load elfuente_1920x1080.dat --refine-intra 4 --refine-inter 2 +crowd_run_1080p50.y4m,--preset ultrafast --no-cutree --analysis-save x265_analysis.dat --analysis-save-reuse-level 1 --scale-factor 2 --crf 26 --vbv-maxrate 8000 --vbv-bufsize 8000::crowd_run_2160p50.y4m, --preset ultrafast --no-cutree --analysis-load x265_analysis.dat --analysis-load-reuse-level 1 --scale-factor 2 --crf 26 --vbv-maxrate 12000 --vbv-bufsize 12000 +crowd_run_1080p50.y4m,--preset superfast --no-cutree --analysis-save x265_analysis.dat --analysis-save-reuse-level 2 --scale-factor 2 --crf 22 --vbv-maxrate 5000 --vbv-bufsize 5000::crowd_run_2160p50.y4m, --preset superfast --no-cutree --analysis-load x265_analysis.dat --analysis-load-reuse-level 2 --scale-factor 2 --crf 22 --vbv-maxrate 10000 --vbv-bufsize 10000 +crowd_run_1080p50.y4m,--preset fast --no-cutree --analysis-save x265_analysis.dat --analysis-save-reuse-level 5 --scale-factor 2 --qp 18::crowd_run_2160p50.y4m, --preset fast --no-cutree --analysis-load x265_analysis.dat --analysis-load-reuse-level 5 --scale-factor 2 --qp 18 +crowd_run_1080p50.y4m,--preset medium --no-cutree --analysis-save x265_analysis.dat --analysis-save-reuse-level 10 --scale-factor 2 --bitrate 5000 --vbv-maxrate 5000 --vbv-bufsize 5000 --early-skip --tu-inter-depth 3::crowd_run_2160p50.y4m, --preset medium --no-cutree --analysis-load x265_analysis.dat --analysis-load-reuse-level 10 --scale-factor 2 --bitrate 10000 --vbv-maxrate 10000 --vbv-bufsize 10000 --early-skip --tu-inter-depth 3 --refine-intra 4 --dynamic-refine::crowd_run_2160p50.y4m, --preset medium --no-cutree --analysis-load x265_analysis.dat --analysis-load-reuse-level 10 --scale-factor 2 --bitrate 10000 --vbv-maxrate 10000 --vbv-bufsize 10000 --early-skip --tu-inter-depth 3 --refine-intra 3 --refine-inter 3 +RaceHorses_416x240_30.y4m,--preset slow --no-cutree --ctu 16 --analysis-save x265_analysis.dat --analysis-save-reuse-level 10 --scale-factor 2 --crf 22 --vbv-maxrate 1000 --vbv-bufsize 1000::RaceHorses_832x480_30.y4m, --preset slow --no-cutree --ctu 32 --analysis-load x265_analysis.dat --analysis-save x265_analysis_2.dat --analysis-load-reuse-level 10 --analysis-save-reuse-level 10 --scale-factor 2 --crf 16 --vbv-maxrate 4000 --vbv-bufsize 4000 --refine-intra 0 --refine-inter 1::RaceHorses_1664x960_30.y4m,--preset slow --no-cutree --ctu 64 --analysis-load x265_analysis_2.dat --analysis-load-reuse-level 10 --scale-factor 2 --crf 12 --vbv-maxrate 7000 --vbv-bufsize 7000 --refine-intra 2 --refine-inter 2 +ElFunete_960x540_60.yuv,--colorprim bt709 --transfer bt709 --chromaloc 2 --aud --repeat-headers --no-opt-qp-pps --no-opt-ref-list-length-pps --wpp --no-interlace --sar 1:1 --min-keyint 60 --no-open-gop --rc-lookahead 180 --bframes 5 --b-intra --ref 4 --cbqpoffs -2 --crqpoffs -2 --lookahead-threads 0 --weightb --qg-size 8 --me star --preset veryslow --frame-threads 1 --b-adapt 2 --aq-mode 3 --rd 6 --pools 15 --colormatrix bt709 --keyint 120 --high-tier --ctu 64 --tune psnr --bitrate 10000 --vbv-bufsize 30000 --vbv-maxrate 17500 --analysis-save-reuse-level 10 --analysis-save elfuente_960x540.dat --scale-factor 2::ElFunete_1920x1080_60.yuv,--colorprim bt709 --transfer bt709 --chromaloc 2 --aud --repeat-headers --no-opt-qp-pps --no-opt-ref-list-length-pps --wpp --no-interlace --sar 1:1 --min-keyint 60 --no-open-gop --rc-lookahead 180 --bframes 5 --b-intra --ref 4 --cbqpoffs -2 --crqpoffs -2 --lookahead-threads 0 --weightb --qg-size 8 --me star --preset veryslow --frame-threads 1 --b-adapt 2 --aq-mode 3 --rd 6 --pools 15 --colormatrix bt709 --keyint 120 --high-tier --ctu 64 --tune psnr --bitrate 10000 --vbv-bufsize 30000 --vbv-maxrate 17500 --analysis-load-reuse-level 10 --analysis-save-reuse-level 10 --analysis-save elfuente_1920x1080.dat --limit-tu 0 --scale-factor 2 --analysis-load elfuente_960x540.dat --refine-intra 4 --refine-inter 2::ElFuente_3840x2160_60.yuv,--colorprim bt709 --transfer bt709 --chromaloc 2 --aud --repeat-headers --no-opt-qp-pps --no-opt-ref-list-length-pps --wpp --no-interlace --sar 1:1 --min-keyint 60 --no-open-gop --rc-lookahead 180 --bframes 5 --b-intra --ref 4 --cbqpoffs -2 --crqpoffs -2 --lookahead-threads 0 --weightb --qg-size 8 --me star --preset veryslow --frame-threads 1 --b-adapt 2 --aq-mode 3 --rd 6 --pools 15 --colormatrix bt709 --keyint 120 --high-tier --ctu 64 --tune=psnr --bitrate 24000 --vbv-bufsize 84000 --vbv-maxrate 49000 --analysis-load-reuse-level 10 --limit-tu 0 --scale-factor 2 --analysis-load elfuente_1920x1080.dat --refine-intra 4 --refine-inter 2 #save/load with ctu distortion refinement -CrowdRun_1920x1080_50_10bit_422.yuv,--no-cutree --analysis-save x265_analysis.dat --refine-ctu-distortion 1 --bitrate 7000::--no-cutree --analysis-load x265_analysis.dat --refine-ctu-distortion 1 --bitrate 7000 - +CrowdRun_1920x1080_50_10bit_422.yuv,--no-cutree --analysis-save x265_analysis.dat --analysis-save-reuse-level 5 --refine-ctu-distortion 1 --bitrate 7000::--no-cutree --analysis-load x265_analysis.dat --refine-ctu-distortion 1 --bitrate 7000 --analysis-load-reuse-level 5 #segment encoding BasketballDrive_1920x1080_50.y4m, --preset ultrafast --no-open-gop --chunk-start 100 --chunk-end 200
View file
x265_3.2.1.tar.gz/source/test/save-load-tests.txt -> x265_3.3.tar.gz/source/test/save-load-tests.txt
Changed
@@ -10,10 +10,11 @@ # outputs for different frame encoder counts. In order for outputs to be # consistent across many machines, you must force a certain -FN so it is # not auto-detected. -crowd_run_1080p50.y4m, --preset ultrafast --no-cutree --analysis-save x265_analysis.dat --analysis-reuse-level 1 --scale-factor 2 --crf 26 --vbv-maxrate 8000 --vbv-bufsize 8000::crowd_run_2160p50.y4m, --preset ultrafast --no-cutree --analysis-load x265_analysis.dat --analysis-reuse-level 1 --scale-factor 2 --crf 26 --vbv-maxrate 12000 --vbv-bufsize 12000 -crowd_run_1080p50.y4m, --preset superfast --no-cutree --analysis-save x265_analysis.dat --analysis-reuse-level 2 --scale-factor 2 --crf 22 --vbv-maxrate 5000 --vbv-bufsize 5000::crowd_run_2160p50.y4m, --preset superfast --no-cutree --analysis-load x265_analysis.dat --analysis-reuse-level 2 --scale-factor 2 --crf 22 --vbv-maxrate 10000 --vbv-bufsize 10000 -crowd_run_1080p50.y4m, --preset fast --no-cutree --analysis-save x265_analysis.dat --analysis-reuse-level 5 --scale-factor 2 --qp 18::crowd_run_2160p50.y4m, --preset fast --no-cutree --analysis-load x265_analysis.dat --analysis-reuse-level 5 --scale-factor 2 --qp 18 -crowd_run_1080p50.y4m, --preset medium --no-cutree --analysis-save x265_analysis.dat --analysis-reuse-level 10 --scale-factor 2 --bitrate 5000 --vbv-maxrate 5000 --vbv-bufsize 5000 --early-skip --tu-inter-depth 3::crowd_run_2160p50.y4m, --preset medium --no-cutree --analysis-load x265_analysis.dat --analysis-reuse-level 10 --scale-factor 2 --bitrate 10000 --vbv-maxrate 10000 --vbv-bufsize 10000 --early-skip --tu-inter-depth 3 --refine-intra 4 --dynamic-refine::crowd_run_2160p50.y4m, --preset medium --no-cutree --analysis-load x265_analysis.dat --analysis-reuse-level 10 --scale-factor 2 --bitrate 10000 --vbv-maxrate 10000 --vbv-bufsize 10000 --early-skip --tu-inter-depth 3 --refine-intra 3 --refine-inter 3 -RaceHorses_416x240_30.y4m, --preset slow --no-cutree --ctu 16 --analysis-save x265_analysis.dat --analysis-reuse-level 10 --scale-factor 2 --crf 22 --vbv-maxrate 1000 --vbv-bufsize 1000::RaceHorses_832x480_30.y4m, --preset slow --no-cutree --ctu 32 --analysis-load x265_analysis.dat --analysis-save x265_analysis_2.dat --analysis-reuse-level 10 --scale-factor 2 --crf 16 --vbv-maxrate 4000 --vbv-bufsize 4000 --refine-intra 0 --refine-inter 1::RaceHorses_1664x960_30.y4m, --preset slow --no-cutree --ctu 64 --analysis-load x265_analysis_2.dat --analysis-reuse-level 10 --scale-factor 2 --crf 12 --vbv-maxrate 7000 --vbv-bufsize 7000 --refine-intra 2 --refine-inter 2 -crowd_run_540p50.y4m, --preset veryslow --no-cutree --analysis-save x265_analysis_540.dat --analysis-reuse-level 10 --scale-factor 2 --bitrate 5000 --vbv-bufsize 15000 --vbv-maxrate 9000::crowd_run_1080p50.y4m, --preset veryslow --no-cutree --analysis-save x265_analysis_1080.dat --analysis-reuse-level 10 --scale-factor 2 --bitrate 10000 --vbv-bufsize 30000 --vbv-maxrate 17500::crowd_run_1080p50.y4m, --preset veryslow --no-cutree --analysis-save x265_analysis_1080.dat --analysis-load x265_analysis_540.dat --refine-intra 4 --dynamic-refine --analysis-reuse-level 10 --scale-factor 2 --bitrate 10000 --vbv-bufsize 30000 --vbv-maxrate 17500::crowd_run_2160p50.y4m, --preset veryslow --no-cutree --analysis-save x265_analysis_2160.dat --analysis-load x265_analysis_1080.dat --refine-intra 3 --dynamic-refine --analysis-reuse-level 10 --scale-factor 2 --bitrate 24000 --vbv-bufsize 84000 --vbv-maxrate 49000::crowd_run_2160p50.y4m, --preset veryslow --no-cutree --analysis-load x265_analysis_2160.dat --refine-intra 2 --dynamic-refine --analysis-reuse-level 10 --scale-factor 1 --bitrate 24000 --vbv-bufsize 84000 --vbv-maxrate 49000 -crowd_run_540p50.y4m, --preset medium --no-cutree --analysis-save x265_analysis_540.dat --analysis-reuse-level 10 --scale-factor 2 --bitrate 5000 --vbv-bufsize 15000 --vbv-maxrate 9000::crowd_run_1080p50.y4m, --preset medium --no-cutree --analysis-save x265_analysis_1080.dat --analysis-reuse-level 10 --scale-factor 2 --bitrate 10000 --vbv-bufsize 30000 --vbv-maxrate 17500::crowd_run_1080p50.y4m, --preset medium --no-cutree --analysis-save x265_analysis_1080.dat --analysis-load x265_analysis_540.dat --refine-intra 4 --dynamic-refine --analysis-reuse-level 10 --scale-factor 2 --bitrate 10000 --vbv-bufsize 30000 --vbv-maxrate 17500::crowd_run_2160p50.y4m, --preset medium --no-cutree --analysis-save x265_analysis_2160.dat --analysis-load x265_analysis_1080.dat --refine-intra 3 --dynamic-refine --analysis-reuse-level 10 --scale-factor 2 --bitrate 24000 --vbv-bufsize 84000 --vbv-maxrate 49000::crowd_run_2160p50.y4m, --preset medium --no-cutree --analysis-load x265_analysis_2160.dat --refine-intra 2 --dynamic-refine --analysis-reuse-level 10 --scale-factor 1 --bitrate 24000 --vbv-bufsize 84000 --vbv-maxrate 49000 +crowd_run_1080p50.y4m, --preset ultrafast --no-cutree --analysis-save x265_analysis.dat --analysis-save-reuse-level 1 --scale-factor 2 --crf 26 --vbv-maxrate 8000 --vbv-bufsize 8000::crowd_run_2160p50.y4m, --preset ultrafast --no-cutree --analysis-load x265_analysis.dat --analysis-load-reuse-level 1 --scale-factor 2 --crf 26 --vbv-maxrate 12000 --vbv-bufsize 12000 +crowd_run_540p50.y4m, --preset ultrafast --no-cutree --analysis-save x265_analysis.dat --scale-factor 2 --crf 26 --vbv-maxrate 8000 --vbv-bufsize 8000::crowd_run_1080p50.y4m, --preset ultrafast --no-cutree --analysis-load x265_analysis.dat --scale-factor 2 --crf 26 --vbv-maxrate 12000 --vbv-bufsize 12000 +crowd_run_1080p50.y4m, --preset superfast --no-cutree --analysis-save x265_analysis.dat --analysis-save-reuse-level 2 --scale-factor 2 --crf 22 --vbv-maxrate 5000 --vbv-bufsize 5000::crowd_run_2160p50.y4m, --preset superfast --no-cutree --analysis-load x265_analysis.dat --analysis-load-reuse-level 2 --scale-factor 2 --crf 22 --vbv-maxrate 10000 --vbv-bufsize 10000 +crowd_run_1080p50.y4m, --preset fast --no-cutree --analysis-save x265_analysis.dat --analysis-save-reuse-level 5 --scale-factor 2 --qp 18::crowd_run_2160p50.y4m, --preset fast --no-cutree --analysis-load x265_analysis.dat --analysis-load-reuse-level 5 --scale-factor 2 --qp 18 +crowd_run_1080p50.y4m, --preset medium --no-cutree --analysis-save x265_analysis.dat --analysis-save-reuse-level 10 --scale-factor 2 --bitrate 5000 --vbv-maxrate 5000 --vbv-bufsize 5000 --early-skip --tu-inter-depth 3::crowd_run_2160p50.y4m, --preset medium --no-cutree --analysis-load x265_analysis.dat --analysis-load-reuse-level 10 --scale-factor 2 --bitrate 10000 --vbv-maxrate 10000 --vbv-bufsize 10000 --early-skip --tu-inter-depth 3 --refine-intra 4 --dynamic-refine::crowd_run_2160p50.y4m, --preset medium --no-cutree --analysis-load x265_analysis.dat --analysis-load-reuse-level 10 --scale-factor 2 --bitrate 10000 --vbv-maxrate 10000 --vbv-bufsize 10000 --early-skip --tu-inter-depth 3 --refine-intra 3 --refine-inter 3 +RaceHorses_416x240_30.y4m, --preset slow --no-cutree --ctu 16 --analysis-save x265_analysis.dat --analysis-save-reuse-level 10 --scale-factor 2 --crf 22 --vbv-maxrate 1000 --vbv-bufsize 1000::RaceHorses_832x480_30.y4m, --preset slow --no-cutree --ctu 32 --analysis-load x265_analysis.dat --analysis-save x265_analysis_2.dat --analysis-load-reuse-level 10 --analysis-save-reuse-level 10 --scale-factor 2 --crf 16 --vbv-maxrate 4000 --vbv-bufsize 4000 --refine-intra 0 --refine-inter 1::RaceHorses_1664x960_30.y4m, --preset slow --no-cutree --ctu 64 --analysis-load x265_analysis_2.dat --analysis-load-reuse-level 10 --scale-factor 2 --crf 12 --vbv-maxrate 7000 --vbv-bufsize 7000 --refine-intra 2 --refine-inter 2 +crowd_run_540p50.y4m, --preset veryslow --no-cutree --analysis-save x265_analysis_540.dat --analysis-save-reuse-level 10 --scale-factor 2 --bitrate 5000 --vbv-bufsize 15000 --vbv-maxrate 9000::crowd_run_1080p50.y4m, --preset veryslow --no-cutree --analysis-save x265_analysis_1080.dat --analysis-save-reuse-level 10 --scale-factor 2 --bitrate 10000 --vbv-bufsize 30000 --vbv-maxrate 17500::crowd_run_1080p50.y4m, --preset veryslow --no-cutree --analysis-save x265_analysis_1080.dat --analysis-load x265_analysis_540.dat --refine-intra 4 --dynamic-refine --analysis-load-reuse-level 10 --analysis-save-reuse-level 10 --scale-factor 2 --bitrate 10000 --vbv-bufsize 30000 --vbv-maxrate 17500::crowd_run_2160p50.y4m, --preset veryslow --no-cutree --analysis-save x265_analysis_2160.dat --analysis-load x265_analysis_1080.dat --refine-intra 3 --dynamic-refine --analysis-load-reuse-level 10 --analysis-save-reuse-level 10 --scale-factor 2 --bitrate 24000 --vbv-bufsize 84000 --vbv-maxrate 49000::crowd_run_2160p50.y4m, --preset veryslow --no-cutree --analysis-load x265_analysis_2160.dat --refine-intra 2 --dynamic-refine --analysis-load-reuse-level 10 --scale-factor 1 --bitrate 24000 --vbv-bufsize 84000 --vbv-maxrate 49000 +crowd_run_540p50.y4m, --preset medium --no-cutree --analysis-save x265_analysis_540.dat --analysis-save-reuse-level 10 --scale-factor 2 --bitrate 5000 --vbv-bufsize 15000 --vbv-maxrate 9000::crowd_run_1080p50.y4m, --preset medium --no-cutree --analysis-save x265_analysis_1080.dat --analysis-save-reuse-level 10 --scale-factor 2 --bitrate 10000 --vbv-bufsize 30000 --vbv-maxrate 17500::crowd_run_1080p50.y4m, --preset medium --no-cutree --analysis-save x265_analysis_1080.dat --analysis-load x265_analysis_540.dat --refine-intra 4 --dynamic-refine --analysis-load-reuse-level 10 --analysis-save-reuse-level 10 --scale-factor 2 --bitrate 10000 --vbv-bufsize 30000 --vbv-maxrate 17500::crowd_run_2160p50.y4m, --preset medium --no-cutree --analysis-save x265_analysis_2160.dat --analysis-load x265_analysis_1080.dat --refine-intra 3 --dynamic-refine --analysis-load-reuse-level 10 --analysis-save-reuse-level 10 --scale-factor 2 --bitrate 24000 --vbv-bufsize 84000 --vbv-maxrate 49000::crowd_run_2160p50.y4m, --preset medium --no-cutree --analysis-load x265_analysis_2160.dat --refine-intra 2 --dynamic-refine --analysis-load-reuse-level 10 --scale-factor 1 --bitrate 24000 --vbv-bufsize 84000 --vbv-maxrate 49000
View file
x265_3.2.1.tar.gz/source/test/testbench.cpp -> x265_3.3.tar.gz/source/test/testbench.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Gopu Govindaswamy <gopu@govindaswamy.org> * Mandar Gurav <mandar@multicorewareinc.com>
View file
x265_3.2.1.tar.gz/source/test/testharness.h -> x265_3.3.tar.gz/source/test/testharness.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Min Chen <chenm003@163.com>
View file
x265_3.2.1.tar.gz/source/x265.cpp -> x265_3.3.tar.gz/source/x265.cpp
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * @@ -541,10 +541,11 @@ return true; } - /* Unconditionally accept height/width/csp from file info */ + /* Unconditionally accept height/width/csp/bitDepth from file info */ param->sourceWidth = info.width; param->sourceHeight = info.height; param->internalCsp = info.csp; + param->sourceBitDepth = info.depth; /* Accept fps and sar from file info if not specified by user */ if (param->fpsDenom == 0 || param->fpsNum == 0)
View file
x265_3.2.1.tar.gz/source/x265.h -> x265_3.3.tar.gz/source/x265.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Min Chen <chenm003@163.com> @@ -132,6 +132,8 @@ int chunkEnd; int cuTree; int ctuDistortionRefine; + int rightOffset; + int bottomOffset; }x265_analysis_validate; /* Stores intra analysis data for a single frame. This struct needs better packing */ @@ -200,6 +202,7 @@ }x265_analysis_distortion_data; +#define MAX_NUM_REF 16 /* Stores all analysis data for a single frame */ typedef struct x265_analysis_data { @@ -219,6 +222,10 @@ uint8_t* modeFlag[2]; x265_analysis_validate saveParam; x265_analysis_distortion_data* distortionData; + uint64_t frameBits; + int list0POC[MAX_NUM_REF]; + int list1POC[MAX_NUM_REF]; + double totalIntraPercent; } x265_analysis_data; /* cu statistics */ @@ -274,8 +281,8 @@ int encoderOrder; int poc; int countRowBlocks; - int list0POC[16]; - int list1POC[16]; + int list0POC[MAX_NUM_REF]; + int list1POC[MAX_NUM_REF]; uint16_t maxLumaLevel; uint16_t minLumaLevel; @@ -315,7 +322,7 @@ typedef enum { - NO_INFO = 0, + DEFAULT = 0, AVC_INFO = 1, HEVC_INFO = 2, }AnalysisRefineType; @@ -455,7 +462,7 @@ * multi pass ratecontrol mode. */ void* rcData; - uint64_t framesize; + size_t framesize; int height; @@ -464,8 +471,13 @@ //Dolby Vision RPU metadata x265_dolby_vision_rpu rpu; - + int fieldNum; + + //SEI picture structure message + uint32_t picStruct; + + int width; } x265_picture; typedef enum @@ -674,6 +686,7 @@ int qp; float bitrateFactor; struct x265_param* zoneParam; + double* relativeComplexity; } x265_zone; /* data to calculate aggregate VMAF score */ @@ -1013,7 +1026,8 @@ int lookaheadSlices; /* An arbitrary threshold which determines how aggressively the lookahead - * should detect scene cuts. The default (40) is recommended. */ + * should detect scene cuts for cost based scenecut detection. + * The default (40) is recommended. */ int scenecutThreshold; /* Replace keyframes by using a column of intra blocks that move across the video @@ -1635,16 +1649,16 @@ /* Enables the emitting of HDR SEI packets which contains HDR-specific params. * Auto-enabled when max-cll, max-fall, or mastering display info is specified. - * Default is disabled */ + * Default is disabled. Now deprecated.*/ int bEmitHDRSEI; /* Enable luma and chroma offsets for HDR/WCG content. - * Default is disabled */ + * Default is disabled. Now deprecated.*/ int bHDROpt; /* A value between 1 and 10 (both inclusive) determines the level of * information stored/reused in analysis save/load. Higher the refine - * level higher the information stored/reused. Default is 5 */ + * level higher the information stored/reused. Default is 5. Now deprecated. */ int analysisReuseLevel; /* Limit Sample Adaptive Offset filter computation by early terminating SAO @@ -1798,7 +1812,97 @@ /*Emit content light level info SEI*/ int bEmitCLL; + + /* + * Signals picture structure SEI timing message for every frame + * picture structure 7 is signalled for frame doubling + * picture structure 8 is signalled for frame tripling + * */ + int bEnableFrameDuplication; + + /* + * For adaptive frame duplication, a threshold is set above which the frames are similar. + * User can set a variable threshold. Default 70. + * */ + int dupThreshold; + + /*Input sequence bit depth. It can be either 8bit, 10bit or 12bit.*/ + int sourceBitDepth; + + /*Size of the zone to be reconfigured in frames. Default 0. API only. */ + uint32_t reconfigWindowSize; + + /*Flag to indicate if rate-control history has to be reset during zone reconfiguration. + Default 1 (Enabled). API only. */ + int bResetZoneConfig; + + /* Enables a ratecontrol algorithm for reducing the bits spent on the inter-frames + * within the scenecutWindow after a scenecut by increasing their QP without + * any deterioration in visual quality. It also increases the quality of scenecut I-Frames by reducing their QP. + * Default is disabled. */ + int bEnableSceneCutAwareQp; + + /* The duration(in milliseconds) for which there is a reduction in the bits spent on the inter-frames after a scenecut + * by increasing their QP, when bEnableSceneCutAwareQp is set. Default is 500ms.*/ + int scenecutWindow; + + /* The offset by which QP is incremented for inter-frames when bEnableSceneCutAwareQp is set. + * Default is +5. */ + int maxQpDelta; + + /* A genuine threshold used for histogram based scene cut detection. + * This threshold determines whether a frame is a scenecut or not + * when compared against the edge and chroma histogram sad values. + * Default 0.01. Range: Real number in the interval (0,2). */ + double edgeTransitionThreshold; + + /* Enables histogram based scenecut detection algorithm to detect scenecuts. Default disabled */ + int bHistBasedSceneCut; + + /* Enable HME search ranges for L0, L1 and L2 respectively. */ + int hmeRange[3]; + + /* Block-level QP optimization for HDR10 content. Default is disabled.*/ + int bHDR10Opt; + + /* Enables the emitting of HDR10 SEI packets which contains HDR10-specific params. + * Auto-enabled when max-cll, max-fall, or mastering display info is specified. + * Default is disabled */ + int bEmitHDR10SEI; + + /* A value between 1 and 10 (both inclusive) determines the level of + * analysis information stored in analysis-save. Higher the refine level higher + * the information stored. Default is 5 */ + int analysisSaveReuseLevel; + + /* A value between 1 and 10 (both inclusive) determines the level of + * analysis information reused in analysis-load. Higher the refine level higher + * the information reused. Default is 5 */ + int analysisLoadReuseLevel; + + /* Conformance window right offset specifies the padding offset to the + * right side of the internal copy of the input pictures in the library. + * The decoded picture will be cropped based on conformance window right offset + * signaled in the SPS before output. Default is 0. + * Recommended to set this during non-file based analysis-load. + * This is to inform the encoder about the conformace window right offset + * to be added to match the number of CUs across the width for which analysis + * info is available from the corresponding analysis-save. */ + + int confWinRightOffset; +
View file
x265_3.2.1.tar.gz/source/x265_config.h.in -> x265_3.3.tar.gz/source/x265_config.h.in
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> *
View file
x265_3.2.1.tar.gz/source/x265cli.h -> x265_3.3.tar.gz/source/x265cli.h
Changed
@@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (C) 2013-2017 MulticoreWare, Inc + * Copyright (C) 2013-2020 MulticoreWare, Inc * * Authors: Steve Borho <steve@borho.org> * Min Chen <chenm003@163.com> @@ -129,8 +129,15 @@ { "scenecut", required_argument, NULL, 0 }, { "no-scenecut", no_argument, NULL, 0 }, { "scenecut-bias", required_argument, NULL, 0 }, + { "hist-scenecut", no_argument, NULL, 0}, + { "no-hist-scenecut", no_argument, NULL, 0}, + { "hist-threshold", required_argument, NULL, 0}, { "fades", no_argument, NULL, 0 }, { "no-fades", no_argument, NULL, 0 }, + { "scenecut-aware-qp", no_argument, NULL, 0 }, + { "no-scenecut-aware-qp", no_argument, NULL, 0 }, + { "scenecut-window",required_argument, NULL, 0 }, + { "max-qp-delta", required_argument, NULL, 0 }, { "radl", required_argument, NULL, 0 }, { "ctu-info", required_argument, NULL, 0 }, { "intra-refresh", no_argument, NULL, 0 }, @@ -268,7 +275,9 @@ { "no-multi-pass-opt-rps", no_argument, NULL, 0 }, { "analysis-reuse-mode", required_argument, NULL, 0 }, /* DEPRECATED */ { "analysis-reuse-file", required_argument, NULL, 0 }, - { "analysis-reuse-level", required_argument, NULL, 0 }, + { "analysis-reuse-level", required_argument, NULL, 0 }, /* DEPRECATED */ + { "analysis-save-reuse-level", required_argument, NULL, 0 }, + { "analysis-load-reuse-level", required_argument, NULL, 0 }, { "analysis-save", required_argument, NULL, 0 }, { "analysis-load", required_argument, NULL, 0 }, { "scale-factor", required_argument, NULL, 0 }, @@ -290,8 +299,12 @@ { "no-ssim-rd", no_argument, NULL, 0 }, { "hdr", no_argument, NULL, 0 }, { "no-hdr", no_argument, NULL, 0 }, + { "hdr10", no_argument, NULL, 0 }, + { "no-hdr10", no_argument, NULL, 0 }, { "hdr-opt", no_argument, NULL, 0 }, { "no-hdr-opt", no_argument, NULL, 0 }, + { "hdr10-opt", no_argument, NULL, 0 }, + { "no-hdr10-opt", no_argument, NULL, 0 }, { "limit-sao", no_argument, NULL, 0 }, { "no-limit-sao", no_argument, NULL, 0 }, { "dhdr10-info", required_argument, NULL, 0 }, @@ -321,6 +334,9 @@ { "hevc-aq", no_argument, NULL, 0 }, { "no-hevc-aq", no_argument, NULL, 0 }, { "qp-adaptation-range", required_argument, NULL, 0 }, + { "frame-dup", no_argument, NULL, 0 }, + { "no-frame-dup", no_argument, NULL, 0 }, + { "dup-threshold", required_argument, NULL, 0 }, #ifdef SVT_HEVC { "svt", no_argument, NULL, 0 }, { "no-svt", no_argument, NULL, 0 }, @@ -341,6 +357,7 @@ #endif { "cll", no_argument, NULL, 0 }, { "no-cll", no_argument, NULL, 0 }, + { "hme-range", required_argument, NULL, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, @@ -469,6 +486,7 @@ H1(" --[no-]temporal-mvp Enable temporal MV predictors. Default %s\n", OPT(param->bEnableTemporalMvp)); H1(" --[no-]hme Enable Hierarchical Motion Estimation. Default %s\n", OPT(param->bEnableHME)); H1(" --hme-search <string> Motion search-method for HME L0,L1 and L2. Default(L0,L1,L2) is %d,%d,%d\n", param->hmeSearchMethod[0], param->hmeSearchMethod[1], param->hmeSearchMethod[2]); + H1(" --hme-range <int>,<int>,<int> Motion search-range for HME L0,L1 and L2. Default(L0,L1,L2) is %d,%d,%d\n", param->hmeRange[0], param->hmeRange[1], param->hmeRange[2]); H0("\nSpatial / intra options:\n"); H0(" --[no-]strong-intra-smoothing Enable strong intra smoothing for 32x32 blocks. Default %s\n", OPT(param->bEnableStrongIntraSmoothing)); H0(" --[no-]constrained-intra Constrained intra prediction (use only intra coded reference pixels) Default %s\n", OPT(param->bEnableConstrainedIntra)); @@ -482,8 +500,14 @@ H0(" --gop-lookahead <integer> Extends gop boundary if a scenecut is found within this from keyint boundary. Default 0\n"); H0(" --no-scenecut Disable adaptive I-frame decision\n"); H0(" --scenecut <integer> How aggressively to insert extra I-frames. Default %d\n", param->scenecutThreshold); - H1(" --scenecut-bias <0..100.0> Bias for scenecut detection. Default %.2f\n", param->scenecutBias); + H1(" --scenecut-bias <0..100.0> Bias for scenecut detection. Default %.2f\n", param->scenecutBias); + H0(" --hist-scenecut Enables histogram based scene-cut detection using histogram based algorithm.\n"); + H0(" --no-hist-scenecut Disables histogram based scene-cut detection using histogram based algorithm.\n"); + H1(" --hist-threshold <0.0..2.0> Luma Edge histogram's Normalized SAD threshold for histogram based scenecut detection Default %.2f\n", param->edgeTransitionThreshold); H0(" --[no-]fades Enable detection and handling of fade-in regions. Default %s\n", OPT(param->bEnableFades)); + H1(" --[no-]scenecut-aware-qp Enable increasing QP for frames inside the scenecut window after scenecut. Default %s\n", OPT(param->bEnableSceneCutAwareQp)); + H1(" --scenecut-window <0..1000> QP incremental duration(in milliseconds) when scenecut-aware-qp is enabled. Default %d\n", param->scenecutWindow); + H1(" --max-qp-delta <0..10> QP offset to increment with base QP for inter-frames. Default %d\n", param->maxQpDelta); H0(" --radl <integer> Number of RADL pictures allowed in front of IDR. Default %d\n", param->radl); H0(" --intra-refresh Use Periodic Intra Refresh instead of IDR frames\n"); H0(" --rc-lookahead <integer> Number of frames for frame-type lookahead (determines encoder latency) Default %d\n", param->lookaheadDepth); @@ -531,7 +555,9 @@ H0(" --analysis-save <filename> Dump analysis info into the specified file. Default Disabled\n"); H0(" --analysis-load <filename> Load analysis buffers from the file specified. Default Disabled\n"); H0(" --analysis-reuse-file <filename> Specify file name used for either dumping or reading analysis data. Deault x265_analysis.dat\n"); - H0(" --analysis-reuse-level <1..10> Level of analysis reuse indicates amount of info stored/reused in save/load mode, 1:least..10:most. Default %d\n", param->analysisReuseLevel); + H0(" --analysis-reuse-level <1..10> Level of analysis reuse indicates amount of info stored/reused in save/load mode, 1:least..10:most. Now deprecated. Default %d\n", param->analysisReuseLevel); + H0(" --analysis-save-reuse-level <1..10> Indicates the amount of analysis info stored in save mode, 1:least..10:most. Default %d\n", param->analysisSaveReuseLevel); + H0(" --analysis-load-reuse-level <1..10> Indicates the amount of analysis info reused in load mode, 1:least..10:most. Default %d\n", param->analysisLoadReuseLevel); H0(" --refine-analysis-type <string> Reuse anlaysis information received through API call. Supported options are avc and hevc. Default disabled - %d\n", param->bAnalysisType); H0(" --scale-factor <int> Specify factor by which input video is scaled down for analysis save mode. Default %d\n", param->scaleFactor); H0(" --refine-intra <0..4> Enable intra refinement for encode that uses analysis-load.\n" @@ -612,8 +638,9 @@ H0(" format: G(x,y)B(x,y)R(x,y)WP(x,y)L(max,min)\n"); H0(" --max-cll <string> Specify content light level info SEI as \"cll,fall\" (HDR).\n"); H0(" --[no-]cll Emit content light level info SEI. Default %s\n", OPT(param->bEmitCLL)); - H0(" --[no-]hdr Control dumping of HDR SEI packet. If max-cll or master-display has non-zero values, this is enabled. Default %s\n", OPT(param->bEmitHDRSEI)); - H0(" --[no-]hdr-opt Add luma and chroma offsets for HDR/WCG content. Default %s\n", OPT(param->bHDROpt)); + H0(" --[no-]hdr10 Control dumping of HDR10 SEI packet. If max-cll or master-display has non-zero values, this is enabled. Default %s\n", OPT(param->bEmitHDR10SEI)); + H0(" --[no-]hdr-opt Add luma and chroma offsets for HDR/WCG content. Default %s. Now deprecated.\n", OPT(param->bHDROpt)); + H0(" --[no-]hdr10-opt Block-level QP optimization for HDR10 content. Default %s.\n", OPT(param->bHDR10Opt)); H0(" --min-luma <integer> Minimum luma plane value of input source picture\n"); H0(" --max-luma <integer> Maximum luma plane value of input source picture\n"); H0("\nBitstream options:\n"); @@ -638,6 +665,8 @@ H1(" --recon-depth <integer> Bit-depth of reconstructed raw image file. Defaults to input bit depth, or 8 if Y4M\n"); H1(" --recon-y4m-exec <string> pipe reconstructed frames to Y4M viewer, ex:\"ffplay -i pipe:0 -autoexit\"\n"); H0(" --lowpass-dct Use low-pass subband dct approximation. Default %s\n", OPT(param->bLowPassDct)); + H0(" --[no-]frame-dup Enable Frame duplication. Default %s\n", OPT(param->bEnableFrameDuplication)); + H0(" --dup-threshold <integer> PSNR threshold for Frame duplication. Default %d\n", param->dupThreshold); #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");
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.