Commit Graph

11938 Commits

Author SHA1 Message Date
Debargha Mukherjee
39da55a49f Merge "Added tests for high bitdepth variance sse2 functions" into highbitdepth 2014-11-10 14:42:26 -08:00
Peter de Rivaz
6d741e4d76 Added tests for high bitdepth variance sse2 functions
Change-Id: I72735e2e07464a0f7e44968fb14a195c84a58992
2014-11-10 20:42:24 +00:00
Peter de Rivaz
db7192e0b0 Added highbitdepth sse2 acceleration for quantize and block error
Change-Id: Idef18f90b111a0d0c9546543d3347e551908fd78
2014-11-10 10:47:39 -08:00
Peter de Rivaz
08d2f54800 Fixed idct16x16_10 highbitdepth transform
In the case when there are only non-zero coefficients
in the first 4x4 block a special routine is called.
The highbitdepth optimized version of this routine
examined the wrong positions when deciding whether
to call an assembler or C inverse transform.

Change-Id: I62da663ca11775dadb66e402e42f4a1cb1927893
2014-11-10 16:17:49 +00:00
Deb Mukherjee
a1b726117f Iadst transforms to use internal low precision
Change-Id: I266777d40c300bc53b45b205144520b85b0d6e58
2014-11-06 13:57:04 -08:00
Peter de Rivaz
005d80cd05 Added high bitdepth sse2 transform functions
Change-Id: If359f0e9a71bca9c2ba685a87a355873536bb282
2014-11-06 11:50:47 -08:00
Peter de Rivaz
d7422b2b1e Added sse2 acceleration for highbitdepth variance
Change-Id: I446bdf3a405e4e9d2aa633d6281d66ea0cdfd79f
2014-11-04 10:06:06 -08:00
Peter de Rivaz
454342d4e7 Refactored idct routines and headers
This change is made in preparation for a
subsequent patch which adds acceleration
for the highbitdepth transform functions.

The highbitdepth transform functions attempt
to use 16/32bit sse instructions where possible,
but fallback to using the C implementations if
potential overflow is detected.  For this reason
the dct routines are made global so they can be
called from the acceleration functions in the
subsequent patch.

Change-Id: Ia921f191bf6936ccba4f13e8461624b120c1f665
2014-10-24 08:37:39 +01:00
Debargha Mukherjee
cda2ad0121 Merge "Fixed calling of highbd transform." into highbitdepth 2014-10-22 12:57:43 -07:00
Debargha Mukherjee
6b378b8868 Merge "Tidy up of highbitdepth loopfilter and convolution" into highbitdepth 2014-10-22 09:58:29 -07:00
Peter de Rivaz
123f29d1d7 Tidy up of highbitdepth loopfilter and convolution
Change-Id: I65531cc55d3d6949e164e2e26f92ee44a1921f7e
2014-10-22 09:43:03 +01:00
Peter de Rivaz
4230c2306c Fixed calling of highbd transform.
This patch does not change behaviour because
vp9_fwht4x4 is identical to vp9_highbd_fwht4x4,
but it becomes important when accelerations are made
to vp9_highbd_fwht4x4 in a later patch.

Change-Id: I2b790316cdd498727c4951a9e591edb291de3ac8
2014-10-22 09:26:39 +01:00
Alex Converse
5b76018057 Merge "Added highbitdepth sse2 SAD acceleration and tests" into highbitdepth 2014-10-20 09:55:41 -07:00
Peter de Rivaz
b1a6f6b9cb Added highbitdepth sse2 SAD acceleration and tests
Change-Id: I9f09e404e3136951e5cc15bf40b915c1fe10b620
2014-10-20 09:51:01 +01:00
Debargha Mukherjee
a92f987a6b Merge "Add highbitdepth function for vp9_avg_8x8" into highbitdepth 2014-10-16 14:39:14 -07:00
Peter de Rivaz
1bf87dc353 Add highbitdepth function for vp9_avg_8x8
Change-Id: I6903e4e4cb57d90590725c8a1c64c23da7ae65e8
2014-10-16 14:36:07 +01:00
Deb Mukherjee
b84bf3323b Fix in bit-shift operation for highbitdepth decode
Fixes a bug introduced in a previous refactoring patch.

Change-Id: I243e74637cfd7a997c7a1fef03b06c290dd0dee6
2014-10-15 10:28:30 -07:00
Deb Mukherjee
563aeba901 Merge 'origin/master' into highbitdepth
Conflicts:
	examples/vp9_spatial_svc_encoder.c
	examples/vpx_temporal_svc_encoder.c
	test/convolve_test.cc
	test/dct16x16_test.cc
	test/dct32x32_test.cc
	test/fdct4x4_test.cc
	test/fdct8x8_test.cc
	test/lpf_8_test.cc
	test/partial_idct_test.cc
	test/test.mk
	test/vp9_intrapred_test.cc
	tools_common.c
	vp8/vp8_cx_iface.c
	vp9/common/vp9_alloccommon.c
	vp9/common/vp9_common.h
	vp9/common/vp9_convolve.c
	vp9/common/vp9_convolve.h
	vp9/common/vp9_entropy.c
	vp9/common/vp9_entropy.h
	vp9/common/vp9_idct.c
	vp9/common/vp9_idct.h
	vp9/common/vp9_loopfilter.c
	vp9/common/vp9_loopfilter_filters.c
	vp9/common/vp9_onyxc_int.h
	vp9/common/vp9_postproc.c
	vp9/common/vp9_quant_common.c
	vp9/common/vp9_quant_common.h
	vp9/common/vp9_reconinter.c
	vp9/common/vp9_reconinter.h
	vp9/common/vp9_reconintra.c
	vp9/common/vp9_rtcd_defs.pl
	vp9/common/vp9_scale.c
	vp9/common/vp9_scale.h
	vp9/common/x86/vp9_asm_stubs.c
	vp9/common/x86/vp9_high_intrapred_sse2.asm
	vp9/common/x86/vp9_high_loopfilter_intrin_sse2.c
	vp9/common/x86/vp9_high_subpixel_8t_sse2.asm
	vp9/common/x86/vp9_high_subpixel_bilinear_sse2.asm
	vp9/decoder/vp9_decodeframe.c
	vp9/decoder/vp9_detokenize.c
	vp9/encoder/vp9_aq_complexity.c
	vp9/encoder/vp9_aq_cyclicrefresh.c
	vp9/encoder/vp9_aq_variance.c
	vp9/encoder/vp9_bitstream.c
	vp9/encoder/vp9_block.h
	vp9/encoder/vp9_context_tree.h
	vp9/encoder/vp9_dct.c
	vp9/encoder/vp9_encodeframe.c
	vp9/encoder/vp9_encodemb.c
	vp9/encoder/vp9_encoder.c
	vp9/encoder/vp9_encoder.h
	vp9/encoder/vp9_extend.c
	vp9/encoder/vp9_firstpass.c
	vp9/encoder/vp9_lookahead.c
	vp9/encoder/vp9_lookahead.h
	vp9/encoder/vp9_mcomp.c
	vp9/encoder/vp9_picklpf.c
	vp9/encoder/vp9_pickmode.c
	vp9/encoder/vp9_quantize.c
	vp9/encoder/vp9_quantize.h
	vp9/encoder/vp9_ratectrl.c
	vp9/encoder/vp9_rd.c
	vp9/encoder/vp9_rdopt.c
	vp9/encoder/vp9_resize.c
	vp9/encoder/vp9_resize.h
	vp9/encoder/vp9_sad.c
	vp9/encoder/vp9_ssim.c
	vp9/encoder/vp9_ssim.h
	vp9/encoder/vp9_temporal_filter.c
	vp9/encoder/vp9_tokenize.c
	vp9/encoder/vp9_tokenize.h
	vp9/encoder/vp9_variance.c
	vp9/encoder/vp9_variance.h
	vp9/vp9_common.mk
	vp9/vp9_cx_iface.c
	vp9/vp9_dx_iface.c
	vp9/vp9_iface_common.h
	vpx/src/svc_encodeframe.c
	vpx/src/vpx_image.c
	vpx/vp8dx.h
	vpx/vpx_codec.h
	vpx/vpx_encoder.h
	vpx/vpx_image.h
	vpx_mem/vpx_mem.c
	vpx_mem/vpx_mem.h
	vpx_scale/generic/yv12config.c
	vpx_scale/generic/yv12extend.c
	vpx_scale/yv12config.h
	vpxdec.c
	vpxenc.c

Change-Id: I699c833f7da96569d2581af7e045ce523bf72d3b
2014-10-14 10:08:15 -07:00
Deb Mukherjee
e59c053e3c Merge "Resolves some lint errors" 2014-10-13 21:57:24 -07:00
Alex Converse
8a986ebb6c Merge "Add a seg map preservation test vector." 2014-10-13 20:02:12 -07:00
Deb Mukherjee
a349ee3bf5 Resolves some lint errors
And also fixes some style consistency issues.

Change-Id: I3dc6d44e17d2d6075dc9b02c4255a7395046c5e0
2014-10-13 16:05:44 -07:00
hkuang
dd080e89a8 Merge "Use pre increment." 2014-10-13 15:24:57 -07:00
hkuang
c5fd035ce0 Use pre increment.
Change-Id: I016b4e77d8268e189473f4c382603afe1ae1750f
2014-10-13 14:07:03 -07:00
Alex Converse
99a132f561 Add a seg map preservation test vector.
Add a test vector to show the cases where segmentation map is preserved
from frome to frame as outlined in the inquiry in issue 761.

Change-Id: I630c6aba27d0d0b109cc7fd7c6fcd008222a0cf3
2014-10-13 11:18:22 -07:00
Paul Wilkins
29771770c1 Merge "Add adaptation option for VBR." 2014-10-13 10:04:59 -07:00
James Zern
574fd5fd96 Merge "args.h: add arg_parse_enum prototype" 2014-10-13 02:20:21 -07:00
James Zern
199fb3194f Merge "vp9_spatial_svc_encoder: fix -bit-depth arg parsing" 2014-10-13 02:20:16 -07:00
James Zern
d7457ccdb6 Merge "yv12config: fix highbitdepth build" 2014-10-13 02:20:04 -07:00
Paul Wilkins
f7f0eaa581 Add adaptation option for VBR.
Allow min and maxQ to creep when the undershoot
or overshoot exceeds thresholds controlled by the
command line under_shoot_pct and over_shoot_pct
values.

Default is 100%,100% which ~disables adaptation.

Derf results for example undershoot% / overshoot%:-

Head:- Mean abs (%rate error) = 14.4%

This check in:-
25%/25% - Mean abs (%rate error) = 6.7%
                  PSNR hit -1% SSIM -0.1%

5% / 5%  - Mean abs (%rate error) = 2.2%
                 PSNR hit -3.3% SSIM - 1.1%

Most of the remaining error and most of the quality hit is
at extreme data rates. The adaptation code still has an
exception for material that is in effect static so that we
don't over adjust and over spend on YT slide show type
content.

(Rebase of If25a2449a415449c150acff23df713e9598d64c9
to resolve a auto-merge error)

Change-Id: Iec4e1613ef0d067454751d8220edb7058dfbd816
2014-10-13 10:16:44 +01:00
Jingning Han
a62acf3c0a Fix ActiveMapTest valgrind warning
This fixes a valgrind warning in the ActiveMapTest unit test
reported in issue 870.

Change-Id: Idf172ab0244ebefe630c3577e649bc9ba7c43d10
2014-10-11 22:36:58 -07:00
James Zern
4e5a7788e9 args.h: add arg_parse_enum prototype
Change-Id: I64d6e7c2d3f76528ab409ce381267fc5cef13ab1
2014-10-11 11:27:23 +02:00
James Zern
e4caf2250f vp9_spatial_svc_encoder: fix -bit-depth arg parsing
use arg_parse_enum_or_int like vpxenc. this also fixes a warning as
arg_parse_enum is not currently declared in args.h.

Change-Id: If9ce258d6adb6286eb86f529083929d5fe2b3a56
2014-10-11 11:24:52 +02:00
James Zern
a0ce226e30 yv12config: fix highbitdepth build
Change-Id: Ie8a4caae19fb514d5bd22e0ae35ca0edcd3484ae
2014-10-11 11:14:54 +02:00
Alex Converse
a90255c366 Revert "Add adaptation option for VBR."
This reverts commit 869d4ca519.

This breaks the build via conflict with
e18edd5eb6.

Change-Id: If544b99e367a449452834eb8cce600f58c34ec0d
2014-10-10 11:34:00 -07:00
hkuang
ab4c6efa48 Merge "Optimize the code to set the refernce frame right after reading the header." 2014-10-10 10:40:21 -07:00
hkuang
0d94f725e6 Merge "Correct the code format." 2014-10-10 10:01:05 -07:00
Paul Wilkins
169949dd74 Merge "Add adaptation option for VBR." 2014-10-10 09:22:58 -07:00
Yaowu Xu
bdea0055b2 Merge "vp9/choose_partitioning: add missing clear_system_state" 2014-10-10 09:16:19 -07:00
James Zern
a3e1a9291a vp9/choose_partitioning: add missing clear_system_state
set_vt_partitioning does double math

Change-Id: I8e9d73d5c89b937a5326abf04164d24d9d88c5ef
2014-10-10 08:14:46 -07:00
James Zern
6420585c8a Merge changes Ib5030373,Id614cfe6
* changes:
  test-data.mk: add some sectional comments
  add test-data.mk
2014-10-10 06:48:04 -07:00
Paul Wilkins
869d4ca519 Add adaptation option for VBR.
Allow min and maxQ to creep when the undershoot
or overshoot exceeds thresholds controlled by the
command line under_shoot_pct and over_shoot_pct
values.

Default is 100%,100% which ~disables adaptation.

Derf results for example undershoot% / overshoot%:-

Head:- Mean abs (%rate error) = 14.4%

This check in:-
25%/25% - Mean abs (%rate error) = 6.7%
                  PSNR hit -1% SSIM -0.1%

5% / 5%  - Mean abs (%rate error) = 2.2%
                 PSNR hit -3.3% SSIM - 1.1%

Most of the remaining error and most of the quality hit is
at extreme data rates. The adaptation code still has an
exception for material that is in effect static so that we
don't over adjust and over spend on YT slide show type
content.

Change-Id: If25a2449a415449c150acff23df713e9598d64c9
2014-10-10 12:54:16 +01:00
James Zern
7c6fec672f vp9_avg_intrin_sse2: correct intrinsics include
immintrin.h -> emmintrin.h
fixes build where newer intrinsics are unavailable

Change-Id: I79311b39bfa782fc2abeb45884ecb417050cb9f8
2014-10-10 10:05:47 +02:00
hkuang
effc1a6f56 Correct the code format.
Change-Id: If2de420f8123a4e8bf635dd29205dd74ee174eee
2014-10-09 17:57:45 -07:00
hkuang
3304d4e6ca Optimize the code to set the refernce frame right after reading the header.
Change-Id: I495cf4a366e06e3220ed132500b1ba1c8448f708
2014-10-09 16:32:36 -07:00
hkuang
ca27459c1a Merge "Remove unnecessary code." 2014-10-09 15:44:08 -07:00
hkuang
336e255236 Merge "Remove unnecessary scale check in set_ref." 2014-10-09 15:43:31 -07:00
Deb Mukherjee
9a29fdbae7 Merge "Rename highbitdepth functions to use highbd prefix" 2014-10-09 15:39:56 -07:00
hkuang
0e06c8ff36 Remove unnecessary code.
Function will jump to error handler when ref buffer is corrupted.
So "xd->corrupted |= ref_buffer->buf->corrupted;" is useless.

Change-Id: I35353a0637ad0dbb682454e040ef69fa68280bfa
2014-10-09 15:12:12 -07:00
Deb Mukherjee
1929c9b391 Rename highbitdepth functions to use highbd prefix
Uses highbd_ prefix convention consistently.

Change-Id: I58f7f799a7ff8e32701bcd71c955bcf1cdd4581e
2014-10-09 14:40:40 -07:00
hkuang
15a3e5f742 Remove unnecessary scale check in set_ref.
Scale check has been done in read_inter_block_mode_info.

Change-Id: I6c86f93bd579109ed30ff13a04a30e35f5ae6fc5
2014-10-09 12:19:55 -07:00