[x265-commits] [x265] yuv: fix more 32-bit compile warnings
Deepthi Nandakumar
deepthi at multicorewareinc.com
Sun Dec 29 03:25:15 CET 2013
details: http://hg.videolan.org/x265/rev/bca251133e70
branches: stable
changeset: 5725:bca251133e70
user: Deepthi Nandakumar <deepthi at multicorewareinc.com>
date: Sat Dec 14 23:26:14 2013 +0530
description:
yuv: fix more 32-bit compile warnings
Subject: [x265] Merge with stable
details: http://hg.videolan.org/x265/rev/4b0163d06ba1
branches:
changeset: 5726:4b0163d06ba1
user: Deepthi Nandakumar <deepthi at multicorewareinc.com>
date: Sat Dec 14 23:27:48 2013 +0530
description:
Merge with stable
Subject: [x265] Slicetype: recalculate the frame cost without re-running lookahead for cutree
details: http://hg.videolan.org/x265/rev/582e96661432
branches:
changeset: 5727:582e96661432
user: Gopu Govindaswamy <gopu at multicorewareinc.com>
date: Fri Dec 13 15:17:06 2013 +0530
description:
Slicetype: recalculate the frame cost without re-running lookahead for cutree
Subject: [x265] rc: Initialized qp and aq offsets and QscaleFactor if aqmode is disabled these variables need for cutree analyse
details: http://hg.videolan.org/x265/rev/c6ff3ede1f29
branches:
changeset: 5728:c6ff3ede1f29
user: Gopu Govindaswamy <gopu at multicorewareinc.com>
date: Fri Dec 13 16:37:23 2013 +0530
description:
rc: Initialized qp and aq offsets and QscaleFactor if aqmode is disabled these variables need for cutree analyse
Subject: [x265] rd level: add functions to do residual encoding at depth 0 for best modes.
details: http://hg.videolan.org/x265/rev/e05b990cfb93
branches:
changeset: 5729:e05b990cfb93
user: Deepthi Devaki <deepthidevaki at multicorewareinc.com>
date: Fri Dec 13 16:20:00 2013 +0530
description:
rd level: add functions to do residual encoding at depth 0 for best modes.
This function will be used for rd level 0.
Subject: [x265] rd level: modify mode-decision logic for rd level 0
details: http://hg.videolan.org/x265/rev/d2a1b3409656
branches:
changeset: 5730:d2a1b3409656
user: Deepthi Devaki <deepthidevaki at multicorewareinc.com>
date: Fri Dec 13 16:28:39 2013 +0530
description:
rd level: modify mode-decision logic for rd level 0
In rd level 0, sa8d cost used for mode decision across depths. dct,quant is not done during mode-decision and no recon is generated. Hence Intra has to use original pixels as reference. Residual encoding is done at depth 0 and Intra prediction for the best mode will be done again with recon as reference.
Subject: [x265] white space nits
details: http://hg.videolan.org/x265/rev/f157836c3713
branches:
changeset: 5731:f157836c3713
user: Deepthi Devaki <deepthidevaki at multicorewareinc.com>
date: Fri Dec 13 16:30:29 2013 +0530
description:
white space nits
Subject: [x265] TEncSearch: fix gcc warning
details: http://hg.videolan.org/x265/rev/238d7f272d1e
branches:
changeset: 5732:238d7f272d1e
user: Deepthi Devaki <deepthidevaki at multicorewareinc.com>
date: Mon Dec 16 10:57:06 2013 +0530
description:
TEncSearch: fix gcc warning
remove unused variables and shadowed declarations
Subject: [x265] all_angs_pred_8x8, asm code
details: http://hg.videolan.org/x265/rev/43656ecbe66b
branches:
changeset: 5733:43656ecbe66b
user: Praveen Tiwari
date: Wed Dec 11 18:50:18 2013 +0530
description:
all_angs_pred_8x8, asm code
Subject: [x265] TEncCu: reintroduce a macro which was removed while merging
details: http://hg.videolan.org/x265/rev/9171e78ee412
branches:
changeset: 5734:9171e78ee412
user: Sumalatha Polureddy
date: Mon Dec 16 14:02:14 2013 +0530
description:
TEncCu: reintroduce a macro which was removed while merging
Subject: [x265] TComDataCU: fix gcc warning
details: http://hg.videolan.org/x265/rev/57efb99765cc
branches:
changeset: 5735:57efb99765cc
user: Sumalatha Polureddy
date: Mon Dec 16 14:17:14 2013 +0530
description:
TComDataCU: fix gcc warning
Subject: [x265] rd level: remove unnecessary calculations in intra residual encoding
details: http://hg.videolan.org/x265/rev/9bb16a023918
branches:
changeset: 5736:9bb16a023918
user: Deepthi Devaki <deepthidevaki at multicorewareinc.com>
date: Mon Dec 16 14:33:57 2013 +0530
description:
rd level: remove unnecessary calculations in intra residual encoding
calcrecon calculates recon,reconQT and reconIpred which is redundant. Use add and block copy instead of calcrecon.
Subject: [x265] rd level: fix for output mismatch
details: http://hg.videolan.org/x265/rev/3dae450a06a4
branches:
changeset: 5737:3dae450a06a4
user: Sumalatha Polureddy
date: Mon Dec 16 13:57:58 2013 +0530
description:
rd level: fix for output mismatch
For boundary conditions, cost calculation was wrong.
Subject: [x265] rd level: use cu coeff array while computing coefficients instead of temp buffer
details: http://hg.videolan.org/x265/rev/34137673f778
branches:
changeset: 5738:34137673f778
user: Deepthi Devaki <deepthidevaki at multicorewareinc.com>
date: Mon Dec 16 14:50:24 2013 +0530
description:
rd level: use cu coeff array while computing coefficients instead of temp buffer
Subject: [x265] compress: remove unused variables
details: http://hg.videolan.org/x265/rev/91b9cd801cbb
branches:
changeset: 5739:91b9cd801cbb
user: Sumalatha Polureddy
date: Mon Dec 16 16:29:18 2013 +0530
description:
compress: remove unused variables
Subject: [x265] rc: Calculate the variance data for weighted prediction if aq-mode is disable
details: http://hg.videolan.org/x265/rev/baf811614a7a
branches:
changeset: 5740:baf811614a7a
user: Gopu Govindaswamy <gopu at multicorewareinc.com>
date: Mon Dec 16 17:42:07 2013 +0530
description:
rc: Calculate the variance data for weighted prediction if aq-mode is disable
Subject: [x265] TComSlice: correct initialization list order (warnings on non-VS compilers).
details: http://hg.videolan.org/x265/rev/7474532db9ec
branches:
changeset: 5741:7474532db9ec
user: Deepthi Nandakumar <deepthi at multicorewareinc.com>
date: Tue Dec 17 11:38:43 2013 +0530
description:
TComSlice: correct initialization list order (warnings on non-VS compilers).
Subject: [x265] vec-primitives: avoid warnings
details: http://hg.videolan.org/x265/rev/9ffeea38b119
branches:
changeset: 5742:9ffeea38b119
user: Deepthi Nandakumar <deepthi at multicorewareinc.com>
date: Tue Dec 17 12:50:15 2013 +0530
description:
vec-primitives: avoid warnings
Subject: [x265] rc: bug fix for variance data calculation for weighted prediction when aq-mode is disable
details: http://hg.videolan.org/x265/rev/517eadc29cf6
branches:
changeset: 5743:517eadc29cf6
user: Gopu Govindaswamy <gopu at multicorewareinc.com>
date: Tue Dec 17 10:50:03 2013 +0530
description:
rc: bug fix for variance data calculation for weighted prediction when aq-mode is disable
Subject: [x265] fix crash in pixel_var_16x16_internal, because RateControl::acEnergyCu() call it with unalignment pointer
details: http://hg.videolan.org/x265/rev/c944aa8fbf2f
branches:
changeset: 5744:c944aa8fbf2f
user: Min Chen <chenm003 at 163.com>
date: Tue Dec 17 10:47:28 2013 +0800
description:
fix crash in pixel_var_16x16_internal, because RateControl::acEnergyCu() call it with unalignment pointer
Subject: [x265] fix yasm warning 'trailing garbage after expression'
details: http://hg.videolan.org/x265/rev/e1465ef2659c
branches:
changeset: 5745:e1465ef2659c
user: Min Chen <chenm003 at 163.com>
date: Tue Dec 17 14:19:58 2013 +0800
description:
fix yasm warning 'trailing garbage after expression'
Subject: [x265] rd level: use cu coeff array while computing Intra coefficients instead of temp buffer
details: http://hg.videolan.org/x265/rev/37c57d47a9d4
branches:
changeset: 5746:37c57d47a9d4
user: Deepthi Devaki <deepthidevaki at multicorewareinc.com>
date: Mon Dec 16 15:33:45 2013 +0530
description:
rd level: use cu coeff array while computing Intra coefficients instead of temp buffer
Subject: [x265] rd: fix wrong chroma mode used for mode decision
details: http://hg.videolan.org/x265/rev/119d09b54b95
branches:
changeset: 5747:119d09b54b95
user: Deepthi Devaki <deepthidevaki at multicorewareinc.com>
date: Tue Dec 17 12:40:04 2013 +0530
description:
rd: fix wrong chroma mode used for mode decision
Subject: [x265] rd: remove unnecessary sbaccoder loads
details: http://hg.videolan.org/x265/rev/37e0b00adeec
branches:
changeset: 5748:37e0b00adeec
user: Deepthi Devaki <deepthidevaki at multicorewareinc.com>
date: Tue Dec 17 14:53:18 2013 +0530
description:
rd: remove unnecessary sbaccoder loads
Subject: [x265] cutree: Enable CUTree for ratecontrol when tune=ssim and bug fix for cutree
details: http://hg.videolan.org/x265/rev/6edecf959a30
branches:
changeset: 5749:6edecf959a30
user: Gopu Govindaswamy <gopu at multicorewareinc.com>
date: Wed Dec 18 11:35:40 2013 +0530
description:
cutree: Enable CUTree for ratecontrol when tune=ssim and bug fix for cutree
1. added cutree into cli option, default cutree is disabled
2. --tune=ssim then aq and cutree is enabled
3. Fixed bug in slicetype-frameCostRecalculate()
the qp offset for B and B-REF from lowres qpAqOffset, for non-B from lowres qpoffset
4. Fixed bug in Ratecontrol-getQScale - the clip duration should (frameduration * timescale)
when cutree is enabled
Subject: [x265] encoder: increase precision for SSIM printf
details: http://hg.videolan.org/x265/rev/381ff6bcade6
branches:
changeset: 5750:381ff6bcade6
user: Deepthi Nandakumar <deepthi at multicorewareinc.com>
date: Wed Dec 18 13:54:21 2013 +0530
description:
encoder: increase precision for SSIM printf
Subject: [x265] common: remove meaningless warning
details: http://hg.videolan.org/x265/rev/b9b1533b52d5
branches:
changeset: 5751:b9b1533b52d5
user: Deepthi Nandakumar <deepthi at multicorewareinc.com>
date: Wed Dec 18 14:54:15 2013 +0530
description:
common: remove meaningless warning
aq=1 is required for cutree. Therefore, aq=1, aqstrength=0 is a valid case for all configs
that want cutree but do not want aq (eg, tune-psnr).
Subject: [x265] common: enable CUtree by default. tune=psnr is the default setting
details: http://hg.videolan.org/x265/rev/06052d963404
branches:
changeset: 5752:06052d963404
user: Deepthi Nandakumar <deepthi at multicorewareinc.com>
date: Wed Dec 18 15:39:35 2013 +0530
description:
common: enable CUtree by default. tune=psnr is the default setting
Subject: [x265] common: this check taken care of in encoder::configure()
details: http://hg.videolan.org/x265/rev/7db25026df8e
branches:
changeset: 5753:7db25026df8e
user: Deepthi Nandakumar <deepthi at multicorewareinc.com>
date: Wed Dec 18 15:41:48 2013 +0530
description:
common: this check taken care of in encoder::configure()
Subject: [x265] common: update print params and defaults.
details: http://hg.videolan.org/x265/rev/3055eacc88ae
branches:
changeset: 5754:3055eacc88ae
user: Deepthi Nandakumar <deepthi at multicorewareinc.com>
date: Wed Dec 18 16:27:43 2013 +0530
description:
common: update print params and defaults.
By default, tune-psnr is turned on, which means CUTree is enabled but AQ strength is zero.
Subject: [x265] common: adjust tabs
details: http://hg.videolan.org/x265/rev/7f1da6982201
branches:
changeset: 5755:7f1da6982201
user: Deepthi Nandakumar <deepthi at multicorewareinc.com>
date: Wed Dec 18 16:34:07 2013 +0530
description:
common: adjust tabs
Subject: [x265] common: tune-ssim turns on aq strength
details: http://hg.videolan.org/x265/rev/09d93b8d5994
branches:
changeset: 5756:09d93b8d5994
user: Deepthi Nandakumar <deepthi at multicorewareinc.com>
date: Wed Dec 18 16:37:58 2013 +0530
description:
common: tune-ssim turns on aq strength
Subject: [x265] cmake: verify existance of hg repo
details: http://hg.videolan.org/x265/rev/387cd1635278
branches:
changeset: 5757:387cd1635278
user: Rafa?l Carr? <funman at videolan.org>
date: Wed Dec 18 22:51:13 2013 -0600
description:
cmake: verify existance of hg repo
Subject: [x265] cmake: take revision from git if within a git repo
details: http://hg.videolan.org/x265/rev/54445c440ea0
branches:
changeset: 5758:54445c440ea0
user: Rafa?l Carr? <funman at videolan.org>
date: Wed Dec 18 22:52:06 2013 -0600
description:
cmake: take revision from git if within a git repo
Subject: [x265] cmake: .pc file is useful as well when using static libs
details: http://hg.videolan.org/x265/rev/1c37c4401ea4
branches:
changeset: 5759:1c37c4401ea4
user: Rafa?l Carr? <funman at videolan.org>
date: Wed Dec 18 22:52:37 2013 -0600
description:
cmake: .pc file is useful as well when using static libs
Subject: [x265] encoder: print global ssim in db
details: http://hg.videolan.org/x265/rev/60c2a49909f2
branches:
changeset: 5760:60c2a49909f2
user: Gopu Govindaswamy <gopu at multicorewareinc.com>
date: Wed Dec 18 12:23:43 2013 +0530
description:
encoder: print global ssim in db
Subject: [x265] Fix typo in extending height to round to multiple of 16
details: http://hg.videolan.org/x265/rev/146051557e0d
branches:
changeset: 5761:146051557e0d
user: Shazeb Nawaz Khan <shazeb at multicorewareinc.com>
date: Thu Dec 19 11:05:42 2013 +0530
description:
Fix typo in extending height to round to multiple of 16
Subject: [x265] Consider rounded width, height for ssd calculation
details: http://hg.videolan.org/x265/rev/8133378e2250
branches:
changeset: 5762:8133378e2250
user: Shazeb Nawaz Khan <shazeb at multicorewareinc.com>
date: Thu Dec 19 17:47:16 2013 +0530
description:
Consider rounded width, height for ssd calculation
Subject: [x265] rd: remove redundant checkDQP and add checkDQP for rd 0
details: http://hg.videolan.org/x265/rev/5828f199d745
branches:
changeset: 5763:5828f199d745
user: Deepthi Devaki <deepthidevaki at multicorewareinc.com>
date: Tue Dec 17 15:09:43 2013 +0530
description:
rd: remove redundant checkDQP and add checkDQP for rd 0
checkDQP is called on bestCU, so no need to call it after each encode. For rd0, call checkDQP after residual encode at depth 0.
Subject: [x265] rd: check DQP before best cu is copied to the pic in rd 0
details: http://hg.videolan.org/x265/rev/f9c427b44459
branches:
changeset: 5764:f9c427b44459
user: Deepthi Devaki <deepthidevaki at multicorewareinc.com>
date: Tue Dec 17 15:17:42 2013 +0530
description:
rd: check DQP before best cu is copied to the pic in rd 0
Subject: [x265] compress: remove redundant initializations
details: http://hg.videolan.org/x265/rev/e476d497f3cd
branches:
changeset: 5765:e476d497f3cd
user: Deepthi Devaki <deepthidevaki at multicorewareinc.com>
date: Tue Dec 17 16:17:33 2013 +0530
description:
compress: remove redundant initializations
skipFlags are set to false during initialization.
Subject: [x265] compress: remove unnecessary code
details: http://hg.videolan.org/x265/rev/8c90ad61a306
branches:
changeset: 5766:8c90ad61a306
user: Deepthi Devaki <deepthidevaki at multicorewareinc.com>
date: Tue Dec 17 16:20:33 2013 +0530
description:
compress: remove unnecessary code
reco and resi buffers is not used in this function
Subject: [x265] compress: remove redundant initializations
details: http://hg.videolan.org/x265/rev/3aa3ed0fefe8
branches:
changeset: 5767:3aa3ed0fefe8
user: Deepthi Devaki <deepthidevaki at multicorewareinc.com>
date: Tue Dec 17 16:50:51 2013 +0530
description:
compress: remove redundant initializations
depth is already initialized in initsubcu
Subject: [x265] compress: remove unused sbaccoder load
details: http://hg.videolan.org/x265/rev/ee272784fa6e
branches:
changeset: 5768:ee272784fa6e
user: Deepthi Devaki <deepthidevaki at multicorewareinc.com>
date: Tue Dec 17 17:04:07 2013 +0530
description:
compress: remove unused sbaccoder load
Subject: [x265] rd: fix error in merge-skip identfication in rd 1,0
details: http://hg.videolan.org/x265/rev/526c10b6a808
branches:
changeset: 5769:526c10b6a808
user: Deepthi Devaki <deepthidevaki at multicorewareinc.com>
date: Tue Dec 17 18:17:29 2013 +0530
description:
rd: fix error in merge-skip identfication in rd 1,0
Cost was not calculated if the best mode is merge-skip in rd 1,0
Subject: [x265] rd: move merge-skip check before other modes are checked
details: http://hg.videolan.org/x265/rev/06ea3901bf35
branches:
changeset: 5770:06ea3901bf35
user: Deepthi Devaki <deepthidevaki at multicorewareinc.com>
date: Tue Dec 17 18:19:22 2013 +0530
description:
rd: move merge-skip check before other modes are checked
in rd 1,0 merge-skip is chosen only based on sa8d threshols. Checking other Inter/inter modes is unnecessary overhead.
Subject: [x265] compress: clean up
details: http://hg.videolan.org/x265/rev/c1802fef73b4
branches:
changeset: 5771:c1802fef73b4
user: Deepthi Devaki <deepthidevaki at multicorewareinc.com>
date: Tue Dec 17 18:28:28 2013 +0530
description:
compress: clean up
Subject: [x265] rd: remove unnecessary mem copies
details: http://hg.videolan.org/x265/rev/f766e7c3b165
branches:
changeset: 5772:f766e7c3b165
user: Deepthi Devaki <deepthidevaki at multicorewareinc.com>
date: Wed Dec 18 15:43:55 2013 +0530
description:
rd: remove unnecessary mem copies
Subject: [x265] rd: modify recon generation in rd 0 to have lesser mem copies
details: http://hg.videolan.org/x265/rev/edeccf4c6cdd
branches:
changeset: 5773:edeccf4c6cdd
user: Deepthi Devaki <deepthidevaki at multicorewareinc.com>
date: Wed Dec 18 16:03:19 2013 +0530
description:
rd: modify recon generation in rd 0 to have lesser mem copies
Subject: [x265] rd: fix incorrect check for rdlevel
details: http://hg.videolan.org/x265/rev/c69ef62da2b6
branches:
changeset: 5774:c69ef62da2b6
user: Deepthi Devaki <deepthidevaki at multicorewareinc.com>
date: Wed Dec 18 17:25:13 2013 +0530
description:
rd: fix incorrect check for rdlevel
Merge-skip check should be only for rdlevel 2
Subject: [x265] rd: optimize rd 0
details: http://hg.videolan.org/x265/rev/3e98f0e66e0b
branches:
changeset: 5775:3e98f0e66e0b
user: Deepthi Devaki <deepthidevaki at multicorewareinc.com>
date: Wed Dec 18 17:25:47 2013 +0530
description:
rd: optimize rd 0
Subject: [x265] common: [OUTPUT CHANGES]: change default ratecontrol mode to CRF-28. AQ on
details: http://hg.videolan.org/x265/rev/aa2856a374a1
branches:
changeset: 5776:aa2856a374a1
user: Deepthi Nandakumar <deepthi at multicorewareinc.com>
date: Mon Dec 23 16:35:28 2013 +0530
description:
common: [OUTPUT CHANGES]: change default ratecontrol mode to CRF-28. AQ on
(strength 1.0), CUTree ON. SSIM reporting On, PSNR off.
Subject: [x265] encoder: increase precision, add ssim db info to csv output.
details: http://hg.videolan.org/x265/rev/bb7057e7ed6d
branches:
changeset: 5777:bb7057e7ed6d
user: Deepthi Nandakumar <deepthi at multicorewareinc.com>
date: Mon Dec 23 16:45:11 2013 +0530
description:
encoder: increase precision, add ssim db info to csv output.
Subject: [x265] common: change tune-ssim to default. When tune-psnr is enabled, AQ and CUTree are turned off.
details: http://hg.videolan.org/x265/rev/cb48e00e1fd8
branches:
changeset: 5778:cb48e00e1fd8
user: Deepthi Nandakumar <deepthi at multicorewareinc.com>
date: Tue Dec 24 08:13:30 2013 +0530
description:
common: change tune-ssim to default. When tune-psnr is enabled, AQ and CUTree are turned off.
Subject: [x265] csv: formatting ssim output
details: http://hg.videolan.org/x265/rev/d74f2e0856b4
branches:
changeset: 5779:d74f2e0856b4
user: Deepthi Nandakumar <deepthi at multicorewareinc.com>
date: Tue Dec 24 08:29:01 2013 +0530
description:
csv: formatting ssim output
Subject: [x265] encoder: nits
details: http://hg.videolan.org/x265/rev/08bad990fd66
branches:
changeset: 5780:08bad990fd66
user: Deepthi Nandakumar <deepthi at multicorewareinc.com>
date: Wed Dec 25 10:09:59 2013 +0530
description:
encoder: nits
Subject: [x265] aq: Add AQ_AUTO_VARIANCE feature for performing adaptive quantization.
details: http://hg.videolan.org/x265/rev/2f83ed50ed9a
branches:
changeset: 5781:2f83ed50ed9a
user: Aarthi Thirumalai
date: Tue Dec 24 17:45:24 2013 +0530
description:
aq: Add AQ_AUTO_VARIANCE feature for performing adaptive quantization.
Subject: [x265] asm: fix for mismatch in 10bpp block copy
details: http://hg.videolan.org/x265/rev/0210e9c4a6f9
branches:
changeset: 5782:0210e9c4a6f9
user: Murugan Vairavel <murugan at multicorewareinc.com>
date: Thu Dec 26 16:37:12 2013 +0530
description:
asm: fix for mismatch in 10bpp block copy
Subject: [x265] aq, cutree: preset changes
details: http://hg.videolan.org/x265/rev/cb2a18cc1d14
branches:
changeset: 5783:cb2a18cc1d14
user: Deepthi Nandakumar <deepthi at multicorewareinc.com>
date: Fri Dec 27 14:57:23 2013 +0530
description:
aq, cutree: preset changes
1. Disable AQ at ultrafast/superfast presets
2. Disable CUTree at ultrafast/superfast/veryfast/faster presets (requires b-adapt to be non-zero).
3. tune-psnr disables only AQ, CUtree stays enabled (at appropriate presets).
Subject: [x265] aq, cutree: completely turn of AQ, at fastest presets
details: http://hg.videolan.org/x265/rev/8b5c5fe7fbc9
branches:
changeset: 5784:8b5c5fe7fbc9
user: Deepthi Nandakumar <deepthi at multicorewareinc.com>
date: Fri Dec 27 15:30:41 2013 +0530
description:
aq, cutree: completely turn of AQ, at fastest presets
Prevent AQ from running unnecessarily with strength 0.
Subject: [x265] cutree: bug fixes. correct the timescale used in getQScale()
details: http://hg.videolan.org/x265/rev/964e5bc90ad2
branches:
changeset: 5785:964e5bc90ad2
user: Aarthi Thirumalai
date: Fri Dec 27 23:07:06 2013 +0530
description:
cutree: bug fixes. correct the timescale used in getQScale()
diffstat:
source/CMakeLists.txt | 110 +-
source/Lib/TLibCommon/CommonDef.h | 6 +-
source/Lib/TLibCommon/TComDataCU.cpp | 62 +
source/Lib/TLibCommon/TComDataCU.h | 2 +
source/Lib/TLibCommon/TComPicYuv.cpp | 6 +-
source/Lib/TLibCommon/TComPrediction.cpp | 46 +-
source/Lib/TLibCommon/TComPrediction.h | 4 +-
source/Lib/TLibCommon/TComRom.cpp | 17 +-
source/Lib/TLibCommon/TComRom.h | 6 +-
source/Lib/TLibCommon/TComSlice.cpp | 1 +
source/Lib/TLibCommon/TComSlice.h | 2 +
source/Lib/TLibCommon/TComTrQuant.cpp | 38 +-
source/Lib/TLibCommon/TComYuv.cpp | 4 +-
source/Lib/TLibEncoder/TEncCfg.h | 3 +
source/Lib/TLibEncoder/TEncCu.cpp | 202 +-
source/Lib/TLibEncoder/TEncCu.h | 10 +-
source/Lib/TLibEncoder/TEncSearch.cpp | 634 ++-
source/Lib/TLibEncoder/TEncSearch.h | 32 +-
source/Lib/TLibEncoder/WeightPredAnalysis.cpp | 2 +-
source/VectorClass/README.txt | 1 -
source/VectorClass/instrset.h | 177 -
source/VectorClass/vectorclass.h | 45 -
source/VectorClass/vectori128.h | 5574 -----------------------
source/VectorClass/vectori256.h | 4738 -------------------
source/VectorClass/vectori256e.h | 3545 --------------
source/cmake/version.cmake | 21 +-
source/common/CMakeLists.txt | 104 +-
source/common/TShortYUV.cpp | 2 +
source/common/TShortYUV.h | 1 +
source/common/common.cpp | 113 +-
source/common/cpu.cpp | 61 -
source/common/intrapred.cpp | 50 +-
source/common/ipfilter.cpp | 68 +-
source/common/lowres.cpp | 6 +-
source/common/lowres.h | 4 +
source/common/pixel.cpp | 55 +-
source/common/primitives.cpp | 86 +-
source/common/primitives.h | 24 +-
source/common/vec/blockcopy-sse3.cpp | 1 +
source/common/vec/dct-sse3.cpp | 100 +-
source/common/vec/dct-sse41.cpp | 114 -
source/common/vec/dct-ssse3.cpp | 254 +-
source/common/vec/intra-sse41.cpp | 302 +-
source/common/vec/intra-ssse3.cpp | 251 +-
source/common/vec/ipfilter-sse41.cpp | 208 +-
source/common/vec/ipfilter-ssse3.cpp | 145 -
source/common/vec/pixel-sse41.cpp | 694 --
source/common/vec/pixel-ssse3.cpp | 101 -
source/common/vec/pixel16-sse41.cpp | 1863 -------
source/common/vec/vec-primitives.cpp | 13 +-
source/common/x86/asm-primitives.cpp | 460 +-
source/common/x86/blockcopy8.asm | 1813 ++++--
source/common/x86/blockcopy8.h | 7 +-
source/common/x86/const-a.asm | 21 +-
source/common/x86/dct8.asm | 540 ++
source/common/x86/dct8.h | 4 +
source/common/x86/intrapred.asm | 492 --
source/common/x86/intrapred.h | 41 +-
source/common/x86/intrapred16.asm | 1335 +++++
source/common/x86/intrapred8.asm | 3527 ++++++++++++++
source/common/x86/ipfilter8.asm | 316 +-
source/common/x86/ipfilter8.h | 9 +-
source/common/x86/mc-a.asm | 60 +
source/common/x86/mc.h | 33 +
source/common/x86/pixel-a.asm | 5957 ++++--------------------
source/common/x86/pixel-util.asm | 883 ---
source/common/x86/pixel-util.h | 149 +
source/common/x86/pixel-util8.asm | 4608 +++++++++++++++++++
source/common/x86/pixel.h | 322 +-
source/common/x86/pixeladd8.asm | 1011 +++-
source/common/x86/sad-a.asm | 566 +--
source/common/x86/sad16-a.asm | 830 +++
source/common/x86/ssd-a.asm | 2397 ++++++++++
source/encoder/compress.cpp | 635 +-
source/encoder/cturow.cpp | 2 +-
source/encoder/encoder.cpp | 220 +-
source/encoder/encoder.h | 2 +
source/encoder/frameencoder.cpp | 38 +-
source/encoder/motion.cpp | 8 +-
source/encoder/ratecontrol.cpp | 374 +-
source/encoder/ratecontrol.h | 50 +-
source/encoder/slicetype.cpp | 312 +-
source/encoder/slicetype.h | 10 +-
source/input/y4m.cpp | 1 +
source/input/yuv.cpp | 1 +
source/output/y4m.cpp | 8 +-
source/output/yuv.cpp | 9 +-
source/test/CMakeLists.txt | 3 -
source/test/intrapredharness.cpp | 167 +-
source/test/intrapredharness.h | 6 +-
source/test/ipfilterharness.cpp | 100 +-
source/test/ipfilterharness.h | 2 +
source/test/pixelharness.cpp | 139 +-
source/test/pixelharness.h | 1 +
source/test/testbench.cpp | 16 +-
source/test/testpool.cpp | 241 -
source/x265.cpp | 21 +-
source/x265.h | 75 +-
98 files changed, 19985 insertions(+), 27745 deletions(-)
diffs (truncated from 53347 to 300 lines):
diff -r 14e9dbedab9d -r 964e5bc90ad2 source/CMakeLists.txt
--- a/source/CMakeLists.txt Fri Dec 13 10:09:51 2013 -0600
+++ b/source/CMakeLists.txt Fri Dec 27 23:07:06 2013 +0530
@@ -13,7 +13,7 @@ include(CheckFunctionExists)
include(CheckCXXCompilerFlag)
# X265_BUILD must be incremented each time the public API is changed
-set(X265_BUILD 3)
+set(X265_BUILD 4)
configure_file("${PROJECT_SOURCE_DIR}/x265.def.in"
"${PROJECT_BINARY_DIR}/x265.def")
configure_file("${PROJECT_SOURCE_DIR}/x265_config.h.in"
@@ -83,12 +83,6 @@ elseif(CMAKE_COMPILER_IS_GNUCXX)
add_definitions(-mstackrealign)
endif()
execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
- if(NOT GCC_VERSION VERSION_LESS 4.7)
- # this is necessary to avoid name conflicts in vector class
- # library. if vector classes are removed/replaced this can
- # likely be removed as well.
- add_definitions(-fabi-version=6)
- endif()
endif()
if (GCC)
option(WARNINGS_AS_ERRORS "Stop compiles on first warning" OFF)
@@ -107,15 +101,21 @@ else(HIGH_BIT_DEPTH)
add_definitions(-DHIGH_BIT_DEPTH=0)
endif(HIGH_BIT_DEPTH)
-option(ENABLE_PRIMITIVES_VEC "Enable use of SIMD vector class primitives" ON)
+option(LOG_CU_STATISTICS "Log Mode Decision Statistics at the CU Level" OFF)
+if(LOG_CU_STATISTICS)
+ add_definitions(-DLOG_CU_STATISTICS=1)
+else(LOG_CU_STATISTICS)
+ add_definitions(-DLOG_CU_STATISTICS=0)
+endif(LOG_CU_STATISTICS)
+
find_package(Yasm)
if(YASM_FOUND)
if (YASM_VERSION_STRING VERSION_LESS "1.2.0")
message(STATUS "Yasm version ${YASM_VERSION_STRING} is too old. 1.2.0 or later required")
- option(ENABLE_PRIMITIVES_ASM "Enable use of assembly coded primitives" OFF)
+ option(ENABLE_ASSEMBLY "Enable use of assembly coded primitives" OFF)
else()
message(STATUS "Found Yasm ${YASM_VERSION_STRING} to build assembly primitives")
- option(ENABLE_PRIMITIVES_ASM "Enable use of assembly coded primitives" ON)
+ option(ENABLE_ASSEMBLY "Enable use of assembly coded primitives" ON)
endif()
endif(YASM_FOUND)
@@ -157,19 +157,19 @@ include_directories(. Lib common encoder
add_subdirectory(common)
add_subdirectory(encoder)
-if((MSVC_IDE OR XCODE) AND ENABLE_PRIMITIVES_ASM)
+if((MSVC_IDE OR XCODE) AND ENABLE_ASSEMBLY)
# this is horrible. ugly, and hacky, and it reproduces logic found
# in the yasm CMake modules, but this is required because of this cmake bug
# http://www.cmake.org/Bug/print_bug_page.php?bug_id=8170
if (X64)
if(APPLE)
- set(FLAGS -f macho64 -m amd64 -DPREFIX -DPIC -DARCH_X86_64=1 -DHAVE_ALIGNED_STACK=0)
+ set(FLAGS -f macho64 -m amd64 -DPREFIX -DPIC -DARCH_X86_64=1 -DHAVE_ALIGNED_STACK=1)
else()
set(FLAGS -f win64 -m amd64 -DARCH_X86_64=1 -DHAVE_ALIGNED_STACK=0)
endif()
else()
if(APPLE)
- set(FLAGS -f macho -DARCH_X86_64=0 -DHAVE_ALIGNED_STACK=0 -DPREFIX)
+ set(FLAGS -f macho -DARCH_X86_64=0 -DHAVE_ALIGNED_STACK=1 -DPREFIX)
else()
set(FLAGS -f win32 -DARCH_X86_64=0 -DHAVE_ALIGNED_STACK=0 -DPREFIX)
endif()
@@ -196,43 +196,45 @@ if((MSVC_IDE OR XCODE) AND ENABLE_PRIMIT
endif()
add_library(x265-static STATIC $<TARGET_OBJECTS:encoder> $<TARGET_OBJECTS:common> ${YASM_OBJS} ${YASM_SRCS})
-add_library(x265-shared SHARED dllmain.cpp "${PROJECT_BINARY_DIR}/x265.def" ${YASM_OBJS}
- $<TARGET_OBJECTS:encoder> $<TARGET_OBJECTS:common>)
-target_link_libraries(x265-shared ${PLATFORM_LIBS})
-set_target_properties(x265-shared PROPERTIES OUTPUT_NAME x265)
if(NOT MSVC)
set_target_properties(x265-static PROPERTIES OUTPUT_NAME x265)
endif()
-if(UNIX AND NOT APPLE)
- set_target_properties(x265-shared PROPERTIES LINK_FLAGS "-Wl,-Bsymbolic")
-endif()
-# WIN32 builds static: x265-static.lib shared: x265.dll + x265.lib (shim loader)
-# MINGW builds static: libx265-static.a shared: libx265.dll + libx265.dll.a
-# *NIX builds static: libx265.a shared: libx265.so
-
-if(X265_LATEST_TAG)
- # shared library is not installed if a tag is not found
- set_target_properties(x265-shared PROPERTIES VERSION ${X265_LATEST_TAG} SOVERSION ${X265_BUILD})
- install(TARGETS x265-shared
- RUNTIME DESTINATION bin
- LIBRARY DESTINATION lib
- ARCHIVE DESTINATION lib)
-
- # convert lists of link libraries into -lstdc++ -lm etc..
- foreach(LIB ${CMAKE_CXX_IMPLICIT_LINK_LIBRARIES} ${PLATFORM_LIBS})
- set(PRIVATE_LIBS "${PRIVATE_LIBS} -l${LIB}")
- endforeach()
- # Produce a pkg-config file for linking against the shared lib
- configure_file("x265.pc.in" "x265.pc" @ONLY)
- install(FILES "${CMAKE_CURRENT_BINARY_DIR}/x265.pc"
- DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig")
-endif()
install(TARGETS x265-static
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)
install(FILES x265.h "${PROJECT_BINARY_DIR}/x265_config.h" DESTINATION include)
+option(ENABLE_SHARED "Build shared library" ON)
+if(ENABLE_SHARED)
+ add_library(x265-shared SHARED dllmain.cpp "${PROJECT_BINARY_DIR}/x265.def" ${YASM_OBJS}
+ $<TARGET_OBJECTS:encoder> $<TARGET_OBJECTS:common>)
+ target_link_libraries(x265-shared ${PLATFORM_LIBS})
+ set_target_properties(x265-shared PROPERTIES OUTPUT_NAME x265)
+ if(UNIX AND NOT APPLE)
+ set_target_properties(x265-shared PROPERTIES LINK_FLAGS "-Wl,-Bsymbolic")
+ endif()
+ if(X265_LATEST_TAG)
+ # shared library is not installed if a tag is not found
+ set_target_properties(x265-shared PROPERTIES VERSION ${X265_LATEST_TAG} SOVERSION ${X265_BUILD})
+ install(TARGETS x265-shared
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib)
+ endif()
+endif()
+
+if(X265_LATEST_TAG)
+ # convert lists of link libraries into -lstdc++ -lm etc..
+ foreach(LIB ${CMAKE_CXX_IMPLICIT_LINK_LIBRARIES} ${PLATFORM_LIBS})
+ set(PRIVATE_LIBS "${PRIVATE_LIBS} -l${LIB}")
+ endforeach()
+ # Produce a pkg-config file
+ configure_file("x265.pc.in" "x265.pc" @ONLY)
+ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/x265.pc"
+ DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig")
+endif()
+
if(NOT WIN32)
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/cmake/cmake_uninstall.cmake"
@@ -258,21 +260,21 @@ if(ENABLE_CLI)
set(GETOPT compat/getopt/getopt.c compat/getopt/getopt.h)
endif(NOT HAVE_GETOPT_H)
- add_executable(cli ../COPYING ${InputFiles} ${OutputFiles} ${GETOPT} x265.cpp x265.h)
- target_link_libraries(cli x265-static ${PLATFORM_LIBS})
+ if(XCODE)
+ add_executable(cli ../COPYING ${InputFiles} ${OutputFiles} ${GETOPT} x265.cpp x265.h
+ $<TARGET_OBJECTS:encoder> $<TARGET_OBJECTS:common> ${YASM_OBJS} ${YASM_SRCS})
+ else()
+ add_executable(cli ../COPYING ${InputFiles} ${OutputFiles} ${GETOPT} x265.cpp x265.h)
+ target_link_libraries(cli x265-static ${PLATFORM_LIBS})
+ endif()
set_target_properties(cli PROPERTIES OUTPUT_NAME x265)
install(TARGETS cli DESTINATION bin)
endif(ENABLE_CLI)
-# Test applications
-option(ENABLE_TESTS "Enable Unit Tests" OFF)
-if(ENABLE_TESTS)
- if(ENABLE_PRIMITIVES_VEC)
- add_definitions(-DENABLE_VECTOR_PRIMITIVES=1)
- endif(ENABLE_PRIMITIVES_VEC)
- if(ENABLE_PRIMITIVES_ASM)
- add_definitions(-DENABLE_ASM_PRIMITIVES=1)
- endif(ENABLE_PRIMITIVES_ASM)
- add_subdirectory(test)
-endif(ENABLE_TESTS)
+if(ENABLE_ASSEMBLY AND NOT XCODE)
+ option(ENABLE_TESTS "Enable Unit Tests" OFF)
+ if(ENABLE_TESTS)
+ add_subdirectory(test)
+ endif()
+endif()
diff -r 14e9dbedab9d -r 964e5bc90ad2 source/Lib/TLibCommon/CommonDef.h
--- a/source/Lib/TLibCommon/CommonDef.h Fri Dec 13 10:09:51 2013 -0600
+++ b/source/Lib/TLibCommon/CommonDef.h Fri Dec 27 23:07:06 2013 +0530
@@ -98,11 +98,6 @@
#define FAST_UDI_MAX_RDMODE_NUM 35 ///< maximum number of RD comparison in fast-UDI estimation loop
-#define NUM_INTRA_MODE 36
-#if !REMOVE_LM_CHROMA
-#define LM_CHROMA_IDX 35
-#endif
-
#define PLANAR_IDX 0
#define VER_IDX 26 // index for intra VERTICAL mode
#define HOR_IDX 10 // index for intra HORIZONTAL mode
@@ -138,6 +133,7 @@
#define MIN_QP 0
#define MAX_QP 51
+#define MAX_MAX_QP 69
#define NOT_VALID -1
diff -r 14e9dbedab9d -r 964e5bc90ad2 source/Lib/TLibCommon/TComDataCU.cpp
--- a/source/Lib/TLibCommon/TComDataCU.cpp Fri Dec 13 10:09:51 2013 -0600
+++ b/source/Lib/TLibCommon/TComDataCU.cpp Fri Dec 27 23:07:06 2013 +0530
@@ -464,6 +464,40 @@ void TComDataCU::initSubCU(TComDataCU* c
m_cuColocated[1] = cu->getCUColocated(REF_PIC_LIST_1);
}
+void TComDataCU::copyToSubCU(TComDataCU* cu, uint32_t partUnitIdx, uint32_t depth)
+{
+ assert(partUnitIdx < 4);
+
+ uint32_t partOffset = (cu->getTotalNumPart() >> 2) * partUnitIdx;
+
+ m_pic = cu->getPic();
+ m_slice = m_pic->getSlice();
+ m_cuAddr = cu->getAddr();
+ m_absIdxInLCU = cu->getZorderIdxInCU() + partOffset;
+
+ m_cuPelX = cu->getCUPelX() + (g_maxCUWidth >> depth) * (partUnitIdx & 1);
+ m_cuPelY = cu->getCUPelY() + (g_maxCUHeight >> depth) * (partUnitIdx >> 1);
+
+ m_totalCost = MAX_INT64;
+ m_totalDistortion = 0;
+ m_totalBits = 0;
+ m_numPartitions = cu->getTotalNumPart() >> 2;
+
+ TComDataCU* rpcCU = m_pic->getCU(m_cuAddr);
+ int iSizeInUchar = sizeof(UChar) * m_numPartitions;
+ int sizeInChar = sizeof(char) * m_numPartitions;
+
+ memcpy(m_skipFlag, rpcCU->getSkipFlag() + m_absIdxInLCU, sizeof(*m_skipFlag) * m_numPartitions);
+ memcpy(m_qp, rpcCU->getQP() + m_absIdxInLCU, sizeInChar);
+
+ memcpy(m_partSizes, rpcCU->getPartitionSize() + m_absIdxInLCU, sizeof(*m_partSizes) * m_numPartitions);
+ memcpy(m_predModes, rpcCU->getPredictionMode() + m_absIdxInLCU, sizeof(*m_predModes) * m_numPartitions);
+
+ memcpy(m_lumaIntraDir, rpcCU->getLumaIntraDir() + m_absIdxInLCU, iSizeInUchar);
+ memcpy(m_depth, rpcCU->getDepth() + m_absIdxInLCU, iSizeInUchar);
+ memcpy(m_width, rpcCU->getWidth() + m_absIdxInLCU, iSizeInUchar);
+ memcpy(m_height, rpcCU->getHeight() + m_absIdxInLCU, iSizeInUchar);
+}
// --------------------------------------------------------------------------------------------------------------------
// Copy
// --------------------------------------------------------------------------------------------------------------------
@@ -603,6 +637,34 @@ void TComDataCU::copyToPic(UChar uhDepth
memcpy(rpcCU->getPCMSampleCr() + tmp2, m_iPCMSampleCr, sizeof(Pel) * tmp);
}
+void TComDataCU::copyCodedToPic(UChar depth)
+{
+ TComDataCU* rpcCU = m_pic->getCU(m_cuAddr);
+
+ int iSizeInUchar = sizeof(UChar) * m_numPartitions;
+
+ memcpy(rpcCU->getSkipFlag() + m_absIdxInLCU, m_skipFlag, sizeof(*m_skipFlag) * m_numPartitions);
+ memcpy(rpcCU->getTransformIdx() + m_absIdxInLCU, m_trIdx, iSizeInUchar);
+ memcpy(rpcCU->getTransformSkip(TEXT_LUMA) + m_absIdxInLCU, m_transformSkip[0], iSizeInUchar);
+ memcpy(rpcCU->getTransformSkip(TEXT_CHROMA_U) + m_absIdxInLCU, m_transformSkip[1], iSizeInUchar);
+ memcpy(rpcCU->getTransformSkip(TEXT_CHROMA_V) + m_absIdxInLCU, m_transformSkip[2], iSizeInUchar);
+ memcpy(rpcCU->getChromaIntraDir() + m_absIdxInLCU, m_chromaIntraDir, iSizeInUchar);
+ memcpy(rpcCU->getQP() + m_absIdxInLCU, m_qp, sizeof(char) * m_numPartitions);
+
+ memcpy(rpcCU->getCbf(TEXT_LUMA) + m_absIdxInLCU, m_cbf[0], iSizeInUchar);
+ memcpy(rpcCU->getCbf(TEXT_CHROMA_U) + m_absIdxInLCU, m_cbf[1], iSizeInUchar);
+ memcpy(rpcCU->getCbf(TEXT_CHROMA_V) + m_absIdxInLCU, m_cbf[2], iSizeInUchar);
+
+ uint32_t tmp = (g_maxCUWidth * g_maxCUHeight) >> (depth << 1);
+ uint32_t tmp2 = m_absIdxInLCU * m_pic->getMinCUWidth() * m_pic->getMinCUHeight();
+ memcpy(rpcCU->getCoeffY() + tmp2, m_trCoeffY, sizeof(TCoeff) * tmp);
+
+ tmp = ((g_maxCUWidth >> m_hChromaShift) * (g_maxCUHeight >> m_hChromaShift)) >> (depth << 1);
+ tmp2 = m_absIdxInLCU * (m_pic->getMinCUWidth() >> m_hChromaShift) * (m_pic->getMinCUHeight() >> m_vChromaShift);
+ memcpy(rpcCU->getCoeffCb() + tmp2, m_trCoeffCb, sizeof(TCoeff) * tmp);
+ memcpy(rpcCU->getCoeffCr() + tmp2, m_trCoeffCr, sizeof(TCoeff) * tmp);
+}
+
void TComDataCU::copyToPic(UChar depth, uint32_t partIdx, uint32_t partDepth)
{
TComDataCU* cu = m_pic->getCU(m_cuAddr);
diff -r 14e9dbedab9d -r 964e5bc90ad2 source/Lib/TLibCommon/TComDataCU.h
--- a/source/Lib/TLibCommon/TComDataCU.h Fri Dec 13 10:09:51 2013 -0600
+++ b/source/Lib/TLibCommon/TComDataCU.h Fri Dec 27 23:07:06 2013 +0530
@@ -195,10 +195,12 @@ public:
void initEstData(uint32_t depth, int qp);
void initSubCU(TComDataCU* cu, uint32_t partUnitIdx, uint32_t depth, int qp);
+ void copyToSubCU(TComDataCU* lcu, uint32_t partUnitIdx, uint32_t depth);
void copyPartFrom(TComDataCU* cu, uint32_t partUnitIdx, uint32_t depth, bool isRDObasedAnalysis = true);
void copyToPic(UChar depth);
void copyToPic(UChar depth, uint32_t partIdx, uint32_t partDepth);
+ void copyCodedToPic(UChar depth);
// -------------------------------------------------------------------------------------------------------------------
// member functions for CU description
More information about the x265-commits
mailing list