[x265-commits] [x265] correct register number in pixel-a.asm

Min Chen chenm003 at 163.com
Thu Apr 24 23:28:03 CEST 2014


details:   http://hg.videolan.org/x265/rev/791790391fb6
branches:  
changeset: 6765:791790391fb6
user:      Min Chen <chenm003 at 163.com>
date:      Thu Apr 24 15:54:54 2014 +0800
description:
correct register number in pixel-a.asm
Subject: [x265] intrapred: stack-check asm intra primitives

details:   http://hg.videolan.org/x265/rev/a332c6667dc9
branches:  
changeset: 6766:a332c6667dc9
user:      Steve Borho <steve at borho.org>
date:      Thu Apr 24 12:02:36 2014 -0500
description:
intrapred: stack-check asm intra primitives

prune some extra memsets that were used during development
Subject: [x265] ipfilter: stack-check asm filter primitives

details:   http://hg.videolan.org/x265/rev/a61ceb6f80c2
branches:  
changeset: 6767:a61ceb6f80c2
user:      Steve Borho <steve at borho.org>
date:      Thu Apr 24 12:11:21 2014 -0500
description:
ipfilter: stack-check asm filter primitives
Subject: [x265] ipfilter: remove utterly useless comments

details:   http://hg.videolan.org/x265/rev/17dd496b46ee
branches:  
changeset: 6768:17dd496b46ee
user:      Steve Borho <steve at borho.org>
date:      Thu Apr 24 12:15:49 2014 -0500
description:
ipfilter: remove utterly useless comments
Subject: [x265] dct: stack-check asm transform/quant primitives

details:   http://hg.videolan.org/x265/rev/06be236c9ece
branches:  
changeset: 6769:06be236c9ece
user:      Steve Borho <steve at borho.org>
date:      Thu Apr 24 12:24:02 2014 -0500
description:
dct: stack-check asm transform/quant primitives
Subject: [x265] rest: move --hash into bitream options section, document error-recovery aspects

details:   http://hg.videolan.org/x265/rev/1662240073e2
branches:  
changeset: 6770:1662240073e2
user:      Steve Borho <steve at borho.org>
date:      Thu Apr 24 13:49:13 2014 -0500
description:
rest: move --hash into bitream options section, document error-recovery aspects
Subject: [x265] rest: loop filters, plural

details:   http://hg.videolan.org/x265/rev/6f259296bfe1
branches:  
changeset: 6771:6f259296bfe1
user:      Steve Borho <steve at borho.org>
date:      Thu Apr 24 13:49:26 2014 -0500
description:
rest: loop filters, plural
Subject: [x265] rest: move --repeat-headers to bitstream options section

details:   http://hg.videolan.org/x265/rev/afec492ea679
branches:  
changeset: 6772:afec492ea679
user:      Steve Borho <steve at borho.org>
date:      Thu Apr 24 13:51:19 2014 -0500
description:
rest: move --repeat-headers to bitstream options section
Subject: [x265] rest: move quality metrics section up higher

details:   http://hg.videolan.org/x265/rev/fcad3bb9943d
branches:  
changeset: 6773:fcad3bb9943d
user:      Steve Borho <steve at borho.org>
date:      Thu Apr 24 14:00:29 2014 -0500
description:
rest: move quality metrics section up higher
Subject: [x265] primitives: pass bool value as int to assembly

details:   http://hg.videolan.org/x265/rev/cdbcd835b849
branches:  
changeset: 6774:cdbcd835b849
user:      Steve Borho <steve at borho.org>
date:      Thu Apr 24 15:44:13 2014 -0500
description:
primitives: pass bool value as int to assembly

bool type is too ambiguous
Subject: [x265] dct: fix MSVC warnings

details:   http://hg.videolan.org/x265/rev/10de7b0a228c
branches:  
changeset: 6775:10de7b0a228c
user:      Steve Borho <steve at borho.org>
date:      Thu Apr 24 15:44:25 2014 -0500
description:
dct: fix MSVC warnings
Subject: [x265] ipfilter: fix register stack allocation in luma horizontal filter

details:   http://hg.videolan.org/x265/rev/4a91c42d2a72
branches:  
changeset: 6776:4a91c42d2a72
user:      Steve Borho <steve at borho.org>
date:      Thu Apr 24 15:49:27 2014 -0500
description:
ipfilter: fix register stack allocation in luma horizontal filter
Subject: [x265] pixelharness: stack-check ssim_end4_t, this seems to expose an argument read bug

details:   http://hg.videolan.org/x265/rev/c630b0b393ee
branches:  
changeset: 6777:c630b0b393ee
user:      Steve Borho <steve at borho.org>
date:      Thu Apr 24 15:59:05 2014 -0500
description:
pixelharness: stack-check ssim_end4_t, this seems to expose an argument read bug

diffstat:

 doc/reST/cli.rst                 |   71 +++++++++----------
 source/common/intrapred.cpp      |    2 +-
 source/common/primitives.h       |    2 +-
 source/common/x86/intrapred.h    |    8 +-
 source/common/x86/ipfilter8.asm  |    2 +-
 source/common/x86/pixel-a.asm    |  122 +++++++++++++++++++++-----------
 source/test/intrapredharness.cpp |   86 ++++++++++-------------
 source/test/ipfilterharness.cpp  |  141 +++++++++++++++++++++++---------------
 source/test/mbdstharness.cpp     |   74 ++++++-------------
 source/test/mbdstharness.h       |    8 +-
 source/test/pixelharness.cpp     |    4 +-
 11 files changed, 277 insertions(+), 243 deletions(-)

diffs (truncated from 1530 to 300 lines):

diff -r e9f64036fbee -r c630b0b393ee doc/reST/cli.rst
--- a/doc/reST/cli.rst	Thu Apr 24 01:15:51 2014 -0500
+++ b/doc/reST/cli.rst	Thu Apr 24 15:59:05 2014 -0500
@@ -130,6 +130,23 @@ Standalone Executable Options
 
 	**CLI ONLY**
 
+Quality reporting metrics
+=========================
+
+.. option:: --ssim, --no-ssim
+
+	Calculate and report Structural Similarity values. It is
+	recommended to use :option:`--tune` ssim if you are measuring ssim,
+	else the results should not be used for comparison purposes.
+	Default disabled
+
+.. option:: --psnr, --no-psnr
+
+	Calculate and report Peak Signal to Noise Ratio.  It is recommended
+	to use :option:`--tune` psnr if you are measuring PSNR, else the
+	results should not be used for comparison purposes.  Default
+	disabled
+
 Input Options
 =============
 
@@ -582,8 +599,8 @@ Quality, rate control and rate distortio
 
 	Hide sign bit of one coeff per TU (rdo). Default enabled
  
-Loop filter
-===========
+Loop filters
+============
 
 .. option:: --lft, --no-lft
 
@@ -608,23 +625,6 @@ Loop filter
 	   effectively causes :option:`--frame-threads` 1)
 	1. SAO LCU-based optimization **(default)**
 
-Quality reporting metrics
-=========================
-
-.. option:: --ssim, --no-ssim
-
-	Calculate and report Structural Similarity values. It is
-	recommended to use :option:`--tune` ssim if you are measuring ssim,
-	else the results should not be used for comparison purposes.
-	Default disabled
-
-.. option:: --psnr, --no-psnr
-
-	Calculate and report Peak Signal to Noise Ratio.  It is recommended
-	to use :option:`--tune` psnr if you are measuring PSNR, else the
-	results should not be used for comparison purposes.  Default
-	disabled
-
 VUI (Video Usability Information) options
 =========================================
 
@@ -747,6 +747,15 @@ VUI fields must be manually specified.
 Bitstream options
 =================
 
+.. option:: --repeat-headers
+
+	If enabled, x265 will emit VPS, SPS, and PPS headers with every
+	keyframe. This is intended for use when you do not have a container
+	to keep the stream headers for you and you want keyframes to be
+	random access points.
+
+	**API ONLY**
+
 .. option:: --aud, --no-aud
 
 	Emit an access unit delimiter NAL at the start of each slice access
@@ -755,17 +764,19 @@ Bitstream options
 	the very first AUD will be skipped since it cannot be placed at the
 	start of the access unit, where it belongs. Default disabled
 
-Debugging options
-=================
-
 .. option:: --hash <integer>
 
-	Emit decoded picture hash SEI, to validate encoder state. Default None
+	Emit decoded picture hash SEI, so the decoder may validate the
+	reconstructed pictures and detect data loss. Also useful as a
+	debug feature to validate the encoder state. Default None
 
 	1. MD5
 	2. CRC
 	3. Checksum
 
+Debugging options
+=================
+
 .. option:: --recon, -r <filename>
 
 	Output file containing reconstructed images in display order. If the
@@ -782,18 +793,4 @@ Debugging options
 
 	**CLI ONLY**
 
-API-only Options
-================
-
-These options are not exposed in the CLI because they are only useful to
-applications which use libx265 as a shared library.  These are available
-via x265_param_parse()
-
-.. option:: --repeat-headers
-
-	If enabled, x265 will emit VPS, SPS, and PPS headers with every
-	keyframe. This is intended for use when you do not have a container
-	to keep the stream headers for you and you want keyframes to be
-	random access points.
-
 .. vim: noet
diff -r e9f64036fbee -r c630b0b393ee source/common/intrapred.cpp
--- a/source/common/intrapred.cpp	Thu Apr 24 01:15:51 2014 -0500
+++ b/source/common/intrapred.cpp	Thu Apr 24 15:59:05 2014 -0500
@@ -258,7 +258,7 @@ void intra_pred_ang_c(pixel* dst, intptr
 }
 
 template<int size>
-void all_angs_pred_c(pixel *dest, pixel *above0, pixel *left0, pixel *above1, pixel *left1, bool bLuma)
+void all_angs_pred_c(pixel *dest, pixel *above0, pixel *left0, pixel *above1, pixel *left1, int bLuma)
 {
     for (int mode = 2; mode <= 34; mode++)
     {
diff -r e9f64036fbee -r c630b0b393ee source/common/primitives.h
--- a/source/common/primitives.h	Thu Apr 24 01:15:51 2014 -0500
+++ b/source/common/primitives.h	Thu Apr 24 15:59:05 2014 -0500
@@ -128,7 +128,7 @@ typedef void (*blockfill_s_t)(int16_t *d
 
 typedef void (*intra_planar_t)(pixel* above, pixel* left, pixel* dst, intptr_t dstStride);
 typedef void (*intra_pred_t)(pixel* dst, intptr_t dstStride, pixel *refLeft, pixel *refAbove, int dirMode, int bFilter);
-typedef void (*intra_allangs_t)(pixel *dst, pixel *above0, pixel *left0, pixel *above1, pixel *left1, bool bLuma);
+typedef void (*intra_allangs_t)(pixel *dst, pixel *above0, pixel *left0, pixel *above1, pixel *left1, int bLuma);
 
 typedef void (*cvt16to32_shl_t)(int32_t *dst, int16_t *src, intptr_t, int, int);
 typedef void (*cvt32to16_shr_t)(int16_t *dst, int32_t *src, intptr_t, int, int);
diff -r e9f64036fbee -r c630b0b393ee source/common/x86/intrapred.h
--- a/source/common/x86/intrapred.h	Thu Apr 24 01:15:51 2014 -0500
+++ b/source/common/x86/intrapred.h	Thu Apr 24 15:59:05 2014 -0500
@@ -157,8 +157,8 @@ DECL_ANG(32, 32, sse4);
 DECL_ANG(32, 33, sse4);
 
 #undef DECL_ANG
-void x265_all_angs_pred_4x4_sse4(pixel *dest, pixel *above0, pixel *left0, pixel *above1, pixel *left1, bool bLuma);
-void x265_all_angs_pred_8x8_sse4(pixel *dest, pixel *above0, pixel *left0, pixel *above1, pixel *left1, bool bLuma);
-void x265_all_angs_pred_16x16_sse4(pixel *dest, pixel *above0, pixel *left0, pixel *above1, pixel *left1, bool bLuma);
-void x265_all_angs_pred_32x32_sse4(pixel *dest, pixel *above0, pixel *left0, pixel *above1, pixel *left1, bool bLuma);
+void x265_all_angs_pred_4x4_sse4(pixel *dest, pixel *above0, pixel *left0, pixel *above1, pixel *left1, int bLuma);
+void x265_all_angs_pred_8x8_sse4(pixel *dest, pixel *above0, pixel *left0, pixel *above1, pixel *left1, int bLuma);
+void x265_all_angs_pred_16x16_sse4(pixel *dest, pixel *above0, pixel *left0, pixel *above1, pixel *left1, int bLuma);
+void x265_all_angs_pred_32x32_sse4(pixel *dest, pixel *above0, pixel *left0, pixel *above1, pixel *left1, int bLuma);
 #endif // ifndef X265_INTRAPRED_H
diff -r e9f64036fbee -r c630b0b393ee source/common/x86/ipfilter8.asm
--- a/source/common/x86/ipfilter8.asm	Thu Apr 24 01:15:51 2014 -0500
+++ b/source/common/x86/ipfilter8.asm	Thu Apr 24 15:59:05 2014 -0500
@@ -613,7 +613,7 @@ IPFILTER_CHROMA_W 32, 32
 ;----------------------------------------------------------------------------------------------------------------------------
 %macro IPFILTER_LUMA 3
 INIT_XMM sse4
-cglobal interp_8tap_horiz_%3_%1x%2, 4,7,6
+cglobal interp_8tap_horiz_%3_%1x%2, 4,7,8
 
     mov       r4d, r4m
 
diff -r e9f64036fbee -r c630b0b393ee source/common/x86/pixel-a.asm
--- a/source/common/x86/pixel-a.asm	Thu Apr 24 01:15:51 2014 -0500
+++ b/source/common/x86/pixel-a.asm	Thu Apr 24 15:59:05 2014 -0500
@@ -666,7 +666,7 @@ cglobal pixel_satd_16x4_internal2
     SATD_8x4_1_SSE 0, 4, 8, 5, 9, 6, 3, 10, 12, 13
     ret
 
-cglobal pixel_satd_16x4, 4,6,12
+cglobal pixel_satd_16x4, 4,6,14
     SATD_START_SSE2 m10, m7
 %if vertical
     mova m7, [pw_00ff]
@@ -680,14 +680,14 @@ cglobal pixel_satd_16x4, 4,6,12
     movd    eax, m10
     RET
 
-cglobal pixel_satd_16x8, 4,6,12
+cglobal pixel_satd_16x8, 4,6,14
     SATD_START_SSE2 m10, m7
 %if vertical
     mova m7, [pw_00ff]
 %endif
     jmp %%pixel_satd_16x8_internal
 
-cglobal pixel_satd_16x12, 4,6,12
+cglobal pixel_satd_16x12, 4,6,14
     SATD_START_SSE2 m10, m7
 %if vertical
     mova m7, [pw_00ff]
@@ -695,7 +695,7 @@ cglobal pixel_satd_16x12, 4,6,12
     call pixel_satd_16x4_internal2
     jmp %%pixel_satd_16x8_internal
 
-cglobal pixel_satd_16x32, 4,6,12
+cglobal pixel_satd_16x32, 4,6,14
     SATD_START_SSE2 m10, m7
 %if vertical
     mova m7, [pw_00ff]
@@ -708,7 +708,7 @@ cglobal pixel_satd_16x32, 4,6,12
     call pixel_satd_16x4_internal2
     jmp %%pixel_satd_16x8_internal
 
-cglobal pixel_satd_16x64, 4,6,12
+cglobal pixel_satd_16x64, 4,6,14
     SATD_START_SSE2 m10, m7
 %if vertical
     mova m7, [pw_00ff]
@@ -729,7 +729,7 @@ cglobal pixel_satd_16x64, 4,6,12
     call pixel_satd_16x4_internal2
     jmp %%pixel_satd_16x8_internal
 
-cglobal pixel_satd_16x16, 4,6,12
+cglobal pixel_satd_16x16, 4,6,14
     SATD_START_SSE2 m10, m7
 %if vertical
     mova m7, [pw_00ff]
@@ -747,7 +747,7 @@ cglobal pixel_satd_16x16, 4,6,12
     movd    eax, m10
     RET
 
-cglobal pixel_satd_32x8, 4,8,11    ;if WIN64 && notcpuflag(avx)
+cglobal pixel_satd_32x8, 4,8,14    ;if WIN64 && notcpuflag(avx)
     SATD_START_SSE2 m10, m7
     mov r6, r0
     mov r7, r2
@@ -768,7 +768,7 @@ cglobal pixel_satd_32x8, 4,8,11    ;if W
     movd    eax, m10
     RET
 
-cglobal pixel_satd_32x16, 4,8,11    ;if WIN64 && notcpuflag(avx)
+cglobal pixel_satd_32x16, 4,8,14    ;if WIN64 && notcpuflag(avx)
     SATD_START_SSE2 m10, m7
     mov r6, r0
     mov r7, r2
@@ -793,7 +793,7 @@ cglobal pixel_satd_32x16, 4,8,11    ;if 
     movd    eax, m10
     RET
 
-cglobal pixel_satd_32x24, 4,8,11    ;if WIN64 && notcpuflag(avx)
+cglobal pixel_satd_32x24, 4,8,14    ;if WIN64 && notcpuflag(avx)
     SATD_START_SSE2 m10, m7
     mov r6, r0
     mov r7, r2
@@ -822,7 +822,7 @@ cglobal pixel_satd_32x24, 4,8,11    ;if 
     movd    eax, m10
     RET
 
-cglobal pixel_satd_32x32, 4,8,11    ;if WIN64 && notcpuflag(avx)
+cglobal pixel_satd_32x32, 4,8,14    ;if WIN64 && notcpuflag(avx)
     SATD_START_SSE2 m10, m7
     mov r6, r0
     mov r7, r2
@@ -855,7 +855,7 @@ cglobal pixel_satd_32x32, 4,8,11    ;if 
     movd    eax, m10
     RET
 
-cglobal pixel_satd_32x64, 4,8,11    ;if WIN64 && notcpuflag(avx)
+cglobal pixel_satd_32x64, 4,8,14    ;if WIN64 && notcpuflag(avx)
     SATD_START_SSE2 m10, m7
     mov r6, r0
     mov r7, r2
@@ -904,7 +904,7 @@ cglobal pixel_satd_32x64, 4,8,11    ;if 
     movd    eax, m10
     RET
 
-cglobal pixel_satd_48x64, 4,8,11    ;if WIN64 && notcpuflag(avx)
+cglobal pixel_satd_48x64, 4,8,14    ;if WIN64 && notcpuflag(avx)
     SATD_START_SSE2 m10, m7
     mov r6, r0
     mov r7, r2
@@ -971,7 +971,7 @@ cglobal pixel_satd_48x64, 4,8,11    ;if 
     movd    eax, m10
     RET
 
-cglobal pixel_satd_64x16, 4,8,11    ;if WIN64 && notcpuflag(avx)
+cglobal pixel_satd_64x16, 4,8,14    ;if WIN64 && notcpuflag(avx)
     SATD_START_SSE2 m10, m7
     mov r6, r0
     mov r7, r2
@@ -1008,7 +1008,7 @@ cglobal pixel_satd_64x16, 4,8,11    ;if 
     movd    eax, m10
     RET
 
-cglobal pixel_satd_64x32, 4,8,11    ;if WIN64 && notcpuflag(avx)
+cglobal pixel_satd_64x32, 4,8,14    ;if WIN64 && notcpuflag(avx)
     SATD_START_SSE2 m10, m7
     mov r6, r0


More information about the x265-commits mailing list