Commit Graph

4253 Commits

Author SHA1 Message Date
Ronald S. Bultje
4eb537c0e6 A few more cases where sb_type was used arithmetically.
With these fixed, the codec produces identical results regardless of
what literal values are used for the enum members in BLOCK_SIZE_*.

Change-Id: I26db8e08019b58ba432af1f0950ebe6b0eb4ad8c
2013-04-10 18:04:57 -07:00
Ronald S. Bultje
33d94a843f Remove copying of coefficients and predictor in i8x8 RD loop.
The resulting values are never used.

Change-Id: I688caf30da9aab87aa280cce913eda4f33172293
2013-04-10 17:39:03 -07:00
Ronald S. Bultje
8fb5be48a6 Make usage of sb_type independent of literal values.
Change-Id: I0d12f9ef9d960df0172a1377f8e5236eb6d90492
2013-04-10 17:38:57 -07:00
Ronald S. Bultje
b4f6098ef7 Make RD superblock mode search size-agnostic.
Merge various super_block_yrd and super_block_uvrd versions into one
common function that works for all sizes. Make transform size selection
size-agnostic also. This fixes a slight bug in the intra UV superblock
code where it used the wrong transform size for txsz > 8x8, and stores
the txsz selection for superblocks properly (instead of forgetting it).
Lastly, it removes the trellis search that was done for 16x16 intra
predictors, since trellis is relatively expensive and should thus only
be done after RD mode selection.

Gives basically identical results on derf (+0.009%).

Change-Id: If4485c6f0a0fe4038b3172f7a238477c35a6f8d3
2013-04-10 16:50:30 -07:00
Jingning Han
a4579e04c9 Merge "Make dequant/idct block size independent" into experimental 2013-04-10 16:47:53 -07:00
Jingning Han
bbd0063b5c Make dequant/idct block size independent
The unified dequantization, inverse transform, and adding functions
support rectangular block sizes. Also separate the operations on
luma and chroma components, in the consideration of the txfm_size
for uv components in rectangular block sizes.

Change-Id: I2a13246b2a9086b37d575d346070990d854cc110
2013-04-10 15:54:43 -07:00
Yaowu Xu
8e9819230d Merge "Remove obselete code" into experimental 2013-04-10 14:56:28 -07:00
Yaowu Xu
2da90fddc2 Remove obselete code
The strategy to run fast loop filter picking for encoder speed-up
should be revisited at a later stage.

Change-Id: I3b75e06d767cff41be952a42e63b3292f4eab996
2013-04-10 13:45:22 -07:00
Jingning Han
5b9dc7c68e Merge "Make SB Decoding units size-independent" into experimental 2013-04-10 13:43:51 -07:00
Dmitry Kovalev
0cef7234e1 Merge "Fixing upper case names." into experimental 2013-04-10 13:29:38 -07:00
Jingning Han
e63099d199 Make SB Decoding units size-independent
Unify the sb32x32 and sb64x64 decoding units, which also allow for
other rectangular block sizes.

Change-Id: Ia5187ab2af56f98c3f99272bdf4dbcabe798ad5d
2013-04-10 10:52:10 -07:00
Dmitry Kovalev
1c6df34c06 Merge "Code cleanup in bitstream code." into experimental 2013-04-10 10:18:50 -07:00
Dmitry Kovalev
2759ce85ad Merge "Adding setup_quantization function." into experimental 2013-04-10 10:16:30 -07:00
Dmitry Kovalev
b41e297582 Merge "Renaming inverse hybrid transform functions." into experimental 2013-04-10 10:16:00 -07:00
Dmitry Kovalev
20645ec4fb Merge "Cleanup of set_offsets function." into experimental 2013-04-10 10:15:13 -07:00
Yunqing Wang
e35129b6e5 Merge "Configure: make --enable-gprof work" into experimental 2013-04-10 09:48:46 -07:00
Ronald S. Bultje
1932828d19 Merge "Make SB coding size-independent." into experimental 2013-04-10 08:51:58 -07:00
Ronald S. Bultje
9b46e30494 Merge "Don't use BLOCKD in vp9_invtrans.c." into experimental 2013-04-09 21:36:09 -07:00
Ronald S. Bultje
a3874850dd Make SB coding size-independent.
Merge sb32x32 and sb64x64 functions; allow for rectangular sizes. Code
gives identical encoder results before and after. There are a few
macros for rectangular block sizes under the sbsegment experiment; this
experiment is not yet functional and should not yet be used.

Change-Id: I71f93b5d2a1596e99a6f01f29c3f0a456694d728
2013-04-09 21:28:27 -07:00
Dmitry Kovalev
f370db0cf4 Adding setup_quantization function.
Change-Id: I8fe25a905717a3cd2da5f87ba0403357536183cf
2013-04-09 18:24:08 -07:00
Yunqing Wang
d3c526fbda Merge "Fix an issue in set_refs()" into experimental 2013-04-09 14:31:51 -07:00
John Koleszar
a3ec4cbd33 Merge "detokenize: use consistent structure for all block sizes" into experimental 2013-04-09 14:18:59 -07:00
Yunqing Wang
335114debe Configure: make --enable-gprof work
Modified for option "--enable-gprof".

Change-Id: I07f78f28c1b789c0b3e9e7db3561463551ae5460
2013-04-09 13:24:59 -07:00
Yunqing Wang
01a3bd67d8 Fix an issue in set_refs()
Scale factor for second ref frame wasn't assigned in the code.

Change-Id: I6ef3f3f71bd652a879ad847369c54c744782ea37
2013-04-09 12:33:28 -07:00
Dmitry Kovalev
02349561b6 Renaming inverse hybrid transform functions.
Renaming vp9_ht_dequant_idct_add* functions to vp9_dequant_iht_add*.

Change-Id: Ie427b322b1cc7c8f39d1155f5df91dedfbd944af
2013-04-09 11:09:23 -07:00
Dmitry Kovalev
c34f6fcb54 Fixing upper case names.
Renaming Y1dequant to y_dequant, UVdequant to uv_dequant, QIndex to qindex.

Change-Id: I1c356e5f886deb3f8807dc212de9799b55b09d58
2013-04-09 10:46:57 -07:00
Dmitry Kovalev
df76a617b4 Cleanup of set_offsets function.
Adding ALLOWED_REFS_PER_FRAME constant instead of hard coded number 3.

Change-Id: I46146aa837896936f920c748c7d4aa4c27f026e4
2013-04-09 10:17:22 -07:00
Dmitry Kovalev
2a6e09d8fe Merge "Simplification of decoder's code." into experimental 2013-04-09 10:10:29 -07:00
Jingning Han
b3935e8348 Merge "Clamp inferred motion vectors only" into experimental 2013-04-09 09:24:08 -07:00
Dmitry Kovalev
d1cff2deb1 Code cleanup in bitstream code.
Lower case variable names, less code.

Change-Id: I1abc8f592ad2343ab5c76fe2d16262741a4a894a
2013-04-08 19:07:29 -07:00
John Koleszar
e6deea4e60 detokenize: use consistent structure for all block sizes
Restructure the code to avoid the majority of per-block-size
switches, code duplication, etc. All block types (mb/sb32/sb64)
can be handled by the same code.

Change-Id: I4022718d66e31a15a7074e43f3b98cd0a5124ea7
2013-04-08 13:11:40 -07:00
Dmitry Kovalev
5811d7e865 Simplification of decoder's code.
Removing several commented code blocks, using uint32_t and uint8_t types,
removing redundant code.

Change-Id: Ifc5cc9863897925ea2a7cab4f7309ccf28d80bfe
2013-04-08 12:14:40 -07:00
Ronald S. Bultje
f42bee7edf Don't use BLOCKD in vp9_invtrans.c.
Change-Id: I40524170334109e2864b06e3c73c8b34e5aa8b0f
2013-04-08 11:37:29 -07:00
Jingning Han
12bf0796e6 Clamp inferred motion vectors only
Clamp only the motion vectors inferred from neighboring reference
macroblocks. The motion vectors obtained through motion search in
NEWMV mode are constrained during the search process, which allows
a relatively larger referencing region than the inferred mvs.
Hence further clamping the best mv provided by the motion search may
affect the efficacy of NEWMV mode.

Synchronized the decoding process. The decoded mvs in NEWMV modes
should be guaranteed to fit in the effective range. Put a mv range
clamping function there for security purpose.

This improves the coding performance of high motion sequences, e.g.,
derf set:
foreman 0.233%
husky   0.175%
icd     0.135%
mother_daughter 0.337%
pamphlet        0.561%

stdhd set:
blue_sky 0.408%
city     0.455%
also saw sunflower goes down by -0.469%.

Change-Id: I3fcbba669e56dab779857a8126a91b926e899cb5
2013-04-08 11:37:03 -07:00
Ronald S. Bultje
aeefa6e194 Fix typo which breaks 4x4 splitmv compound prediction RD code.
0.15% quality increase on derf, particularly noticeable on hard clips
at the higher bitrate end.

Change-Id: I02415a96eb9bbc361cba923069625fae71844bc9
2013-04-08 09:17:52 -07:00
John Koleszar
0e7b7e47c2 Merge "Small cleanup inside setup_loopfilter function." into experimental 2013-04-05 16:13:46 -07:00
John Koleszar
8bbabbea70 Merge "Segmentation code cleanup." into experimental 2013-04-05 16:03:25 -07:00
John Koleszar
fa135d7b9e Merge changes Ibbfa68d6,Idb76a0e2 into experimental
* changes:
  Move EOB to per-plane data
  Move qcoeff, dqcoeff from BLOCKD to per-plane data
2013-04-05 15:56:50 -07:00
Ronald S. Bultje
9161127ee9 Merge "Remove full-pixel-related code." into experimental 2013-04-05 13:46:07 -07:00
Ronald S. Bultje
fd2a747038 Merge "Remove some unused macros." into experimental 2013-04-05 13:46:02 -07:00
Ronald S. Bultje
c6c07d7013 Merge "Remove struct POS." into experimental 2013-04-05 13:45:58 -07:00
Ronald S. Bultje
a9688dfdfb Merge "Remove unused vpx_log() function prototype." into experimental 2013-04-05 13:45:51 -07:00
Ronald S. Bultje
ac28c3169a Merge "Remove "tx_type" member from union b_mode_info." into experimental 2013-04-05 13:45:48 -07:00
Yaowu Xu
2e23c74794 Merge "Removed a speed feature no longer used" into experimental 2013-04-05 13:34:57 -07:00
Yaowu Xu
3dca0d44d2 Merge "make one_shot_q an experiment" into experimental 2013-04-05 13:34:45 -07:00
Ronald S. Bultje
36c3a67c20 Remove full-pixel-related code.
This is a VP8-only feature (part of profile 3) that is unsupported in
VP9.

Change-Id: I78016eede8d9c834d44d4c517f3e8b8fc2a378b1
2013-04-05 12:50:19 -07:00
Dmitry Kovalev
421baef49e Small cleanup inside setup_loopfilter function.
Change-Id: If7fa8aea02f26c2c2bb5daf4e65c3e661d7031ca
2013-04-05 12:48:48 -07:00
Ronald S. Bultje
61834f7325 Remove some unused macros.
Change-Id: Ic219e7878428128e4bb1b3995e8151f92b6bd9c3
2013-04-05 12:40:56 -07:00
Ronald S. Bultje
0732a61c37 Remove struct POS.
It is never used.

Change-Id: If7462357c0498ed05af2645f0c272124381d3aab
2013-04-05 12:38:40 -07:00
Ronald S. Bultje
1cb34c32ed Remove unused vpx_log() function prototype.
Change-Id: Icd6b4322841fefcc86f06645e6aaf1ea42fdfabd
2013-04-05 12:37:45 -07:00