Dmitry Kovalev
ca39a00822
Merge "Reducing the number of recursive calls."
2013-10-30 15:14:18 -07:00
Dmitry Kovalev
6761872e49
Replacing (SWITCHABLE_FILTERS + 1) with SWITCHABLE_FILTER_CONTEXTS.
...
Change-Id: I9781a62bc1a4cd9176554d1271d87dbcafda9cb0
2013-10-30 14:40:34 -07:00
Jingning Han
8c8381d543
Enable all-zero coeff block index for sub8x8 blk
...
This commit makes zcoeff_blk cache the case where the entire block
is quantized to be zero (without applying zero-forcing) in the rate-
distortion optimization loop, and skip the forward DCT, quantization,
inverse DCT, and reconstruction process in the encode_block stage.
It now works for all the block sizes, including sub8x8 blocks.
Change-Id: I5ae60a9c436ba3637d11666733554bec4580ef98
2013-10-30 14:01:06 -07:00
Dmitry Kovalev
2901bf2d00
Reducing the number of recursive calls.
...
Both decode_modes_sb and decode_modes_b had conditions to immediately
return at the beginning. Eliminating these conditions here and calling
these functions only to do a real work. Also unrolling loop for
PARTITION_SPLIT.
Change-Id: I2fc41cb74ac491f045a2f04fe68d30ff4aaa555d
2013-10-30 12:17:05 -07:00
James Zern
54c2854fe2
vp9/decode: align tile worker data allocation
...
fixes a crash in assembly on 32-bit linux/windows
Change-Id: I0c27e6c0ece9732b5eb2ee5b59ff42c3c8016c50
2013-10-30 08:33:09 +01:00
Johann
2a67a34f4a
Merge "vp9_decodframe.c: use vpx_memset instead of cast"
2013-10-29 18:40:18 -07:00
Yunqing Wang
9ed2d0a577
Fix x_offset_q4/y_offset_q4 calculation
...
"<< SUBPEL_BITS" needs to be added in the calculation. Call
set_scaled_offsets() to calculate x_offset_q4 and y_offset_q4.
Change-Id: Ied130ea771510e918f51cd1dc3abe57f4c0962b5
2013-10-29 17:46:55 -07:00
James Zern
ce053e7006
Merge "vp9: add multi-threaded tile decoder"
2013-10-29 17:44:22 -07:00
James Zern
3b47e05908
Merge "vp9/decode: add get_tile()"
2013-10-29 17:34:56 -07:00
James Zern
fb484524bd
vp9: add multi-threaded tile decoder
...
tiles are decoded in parallel within a single frame
Change-Id: I7aca87cb1c239b74eceef72bdc9f672faebac373
2013-10-30 01:00:20 +01:00
James Zern
6b00202f1b
vp9/decode: add get_tile()
...
factorizes the code in decode_tiles(). reading the offsets backwards
wasn't doing anything to prove tile independence
Change-Id: I0395d3c77205852ebdc55efedc68291e93cef85c
2013-10-30 01:00:07 +01:00
Dmitry Kovalev
1bea58e4a8
Merge "Adding const to vp9_quantize_b_{32x32,} parameters."
2013-10-29 16:57:52 -07:00
Erik Niemeyer
27b8040c76
Merge "CL for adding AVX-AVX2 support in libvpx."
2013-10-29 15:55:54 -07:00
Dmitry Kovalev
065972f959
Adding const to vp9_quantize_b_{32x32,} parameters.
...
Change-Id: I56f8c50ac382202f66040cd9cfaa05d889572fc7
2013-10-29 15:25:19 -07:00
Erik Niemeyer
e6863ef318
CL for adding AVX-AVX2 support in libvpx.
...
Change-Id: Idc03f3fca4bf2d0afd33631ea1d3caf8fc34ec29
2013-10-29 15:11:16 -07:00
Dmitry Kovalev
cd94eee45f
Fixing clang warning.
...
Warning was: "implicit conversion from enumeration type 'VPX_SCALING_MODE'
(aka 'enum vpx_scaling_mode_1d') to different enumeration type
'VPX_SCALING'".
Change-Id: I45689e439a8775bc1e7534d0ea1ff7c729f2c7f5
2013-10-29 14:50:27 -07:00
Dmitry Kovalev
b4139d582d
Merge "Fixing wrongly initialized tx_type variable."
2013-10-29 14:07:16 -07:00
Johann
dc799a875b
vp9_decodframe.c: use vpx_memset instead of cast
...
Fix warning with -Wstrict-aliasing=1
Change-Id: Idfac09be1ab328923883e63436577f1018c895b8
2013-10-29 13:52:48 -07:00
Dmitry Kovalev
e6dcf2aeb6
Fixing wrongly initialized tx_type variable.
...
Wrong value was used in get_tx_type_4x4() function, so making
initialization before that call.
Change-Id: Ief30bb1e0c03b2f23d993bbf9ae18d7150ba9a83
2013-10-29 12:18:53 -07:00
Dmitry Kovalev
156de9c3ef
Correct handling of show_bit in uncompressed header.
...
"keyframe" variable in the current code actually means that previous
frame is a keyframe because cm->frame_type has not been initialized
in read_uncompressed_header.
Change-Id: I5645b0816c70abdef5dfc70113018d06276dac77
2013-10-29 11:24:08 -07:00
Dmitry Kovalev
a8e31d624a
Merge "Cleaning up vp9_regular_quantize_b_4x4."
2013-10-29 10:49:52 -07:00
Dmitry Kovalev
e5956258dd
Merge "Making get_tx_counts() similar to get_tx_probs()."
2013-10-29 10:48:50 -07:00
Yunqing Wang
c634ec6a56
Merge "Rewrite loop_filter_info_n struct"
2013-10-29 09:49:36 -07:00
James Zern
7795c1911e
Merge "vp9_decode_frame: group assignments/setup calls"
2013-10-29 03:34:10 -07:00
James Zern
d39f279daa
vp9_decode_frame: group assignments/setup calls
...
group error checking at the top followed by allocations, setup then
decode.
Change-Id: I877d21326bb767885520511ecea70e5fd1e28054
2013-10-29 11:03:50 +01:00
Dmitry Kovalev
aa76cd1e49
Removing is_intra_mode() function.
...
It is enough to check just block type: intra or inter. Intra block implies
intra prediction mode, and inter block implies inter mode.
Change-Id: I3cf98731a3935f670a3cd8e2b2443483eb944be4
2013-10-28 20:00:55 -07:00
Dmitry Kovalev
fa1ac00aee
Making get_tx_counts() similar to get_tx_probs().
...
Change-Id: I5b17f40e515c4bcf9ebef5380270a214af4e0115
2013-10-28 19:52:38 -07:00
Dmitry Kovalev
19cf72eddc
Adding {read, write}_partition() instead of check_bsize_coverage().
...
Making partition read/write logic more clear.
Change-Id: I1981e90327257d37095567c62d72a103cda1da33
2013-10-28 15:14:45 -07:00
Dmitry Kovalev
8253532c2d
Cleaning up vp9_regular_quantize_b_4x4.
...
Passing scan & iscan as parameters, adding useful local variables.
Change-Id: Ia2a87906941db9557350d273669ce5c3cdb7235d
2013-10-28 14:28:28 -07:00
James Zern
58a0f6dbdd
vp9: add TileInfo
...
replaces use of cur_tile_mi_(row|col)_(start|end) by VP9_COMMON, making
it less stateful and more reusable for parallel tile decoding
Change-Id: I1df09382b4567a0e5f4434825d47c79afe2399be
2013-10-28 20:54:43 +01:00
James Zern
f0eabfd432
vp9_decodframe: limit scope of private function params (2)
...
replace VP9D_COMP usage with the (slightly) more targeted
VP9_COMMON/MACROBLCKD structures.
Change-Id: Ifdd9034f44d69eb94e232dd03c922de763b96a30
2013-10-28 20:48:59 +01:00
James Zern
3ffa41aae3
Merge changes If9b16f7d,I75aab21c,I9cbb768c,If5cea3d3,I96940657,I025595d8,Ie0bc3935,I3ebb172d
...
* changes:
vp9: remove partition+entropy contexts from common
vp9: add above/left_context to MACROBLOCKD
vp9: add above/left_seg_context to MACROBLOCKD
vp9: add above/left_context to encoder
vp9: add above/left_seg_context to encoder
vp9: pass entropy context directly to set_skip_context
vp9: pass context directly to partition functions
vp9/decode: add alloc_tile_storage()
2013-10-28 12:45:11 -07:00
Dmitry Kovalev
ded951793c
Merge "Replacing is_inter_mode with is_inter_block."
2013-10-28 10:07:06 -07:00
James Zern
50c4026e93
Merge "vp9 decode: defer loop filter allocation"
2013-10-28 08:00:59 -07:00
James Zern
7b9ca3caa7
vp9: remove partition+entropy contexts from common
...
these are now handled separately by the encoder and decoder
Change-Id: If9b16f7d734e992fb94a510a6d88f2690d7fb7cb
2013-10-28 11:34:20 +01:00
James Zern
e571d3badc
vp9: add above/left_context to MACROBLOCKD
...
Change-Id: I75aab21c1692cbad717564cbb436578fddbc348d
2013-10-28 11:34:18 +01:00
James Zern
d9a317c8b2
vp9: add above/left_seg_context to MACROBLOCKD
...
Change-Id: I9cbb768c5f857a096cf6c29d6755d0e5e6728435
2013-10-28 11:32:16 +01:00
Dmitry Kovalev
b133cbf5f3
Merge "Adding fht{4x4, 8x8, 16x16} functions."
2013-10-26 03:03:27 -07:00
James Zern
8f177bb0b6
vp9 decode: defer loop filter allocation
...
wait until do_loopfilter_inline is true before committing the resources
Change-Id: I01661bd40599b47362bb3fb534668471f2a9d8d7
2013-10-26 11:57:44 +02:00
Dmitry Kovalev
ae2f732e8c
Adding fht{4x4, 8x8, 16x16} functions.
...
Adding these functions to encapsulate tx_type check. Changing TX_TYPE to
int to match the declaration in vo9_rtch.h.
Change-Id: I6f3a2df6e35595ca73b6aaa9e3909ee7bc3fd16f
2013-10-25 17:55:07 -07:00
Dmitry Kovalev
07502f1963
Merge "Adding get_frame_new_buffer() function to replace duplicated code."
2013-10-25 15:25:13 -07:00
Dmitry Kovalev
ddfc87c6f3
Merge "Making input pointer constant for all fdct/fht functions."
2013-10-25 15:14:49 -07:00
Yunqing Wang
00dbd369c7
Rewrite loop_filter_info_n struct
...
Restructured the storing of loopfilter information. Deleted
loop_filter_info struct and reduced copying happened in every
superblock.
Tests showed a 0.5% ~ 0.8% decoder speed gain.
Change-Id: Ie6a8e46bae71dc3a3cd8c6054f5de540b8e0ef5e
2013-10-25 14:56:28 -07:00
James Zern
ce2c337261
vp9: add above/left_context to encoder
...
Change-Id: If5cea3d389bb1135ee490d273e57cc2c43325d01
2013-10-25 22:01:14 +02:00
James Zern
d72dfab296
vp9: add above/left_seg_context to encoder
...
Change-Id: I969406574c6658936e9f6db5752f1b295025aab5
2013-10-25 22:01:14 +02:00
James Zern
d2bf696ee0
vp9: pass entropy context directly to set_skip_context
...
this will allow for separate storage to be used in tile decoding
Change-Id: I025595d83118bdc82a545dae69bc6602e8d2a6e3
2013-10-25 22:01:13 +02:00
James Zern
88d79eabdc
vp9: pass context directly to partition functions
...
update_partition_context / partition_plane_context: this will allow for
separate storage to be used in tile decoding
Change-Id: Ie0bc393531ab7e9d2ce35c95111849b294aad4ed
2013-10-25 22:01:13 +02:00
James Zern
71097d9cf2
vp9/decode: add alloc_tile_storage()
...
Change-Id: I3ebb172d4f2ae7db73b72fb42eb93833a295fb55
2013-10-25 22:01:13 +02:00
Dmitry Kovalev
d5ac877f7f
Adding COLOR_SPACE enum.
...
Change-Id: If5711eb166609cce0a88b3cb5b56b3afeebc4fb0
2013-10-25 12:35:20 -07:00
Yunqing Wang
47665452f0
Merge "Add 32x32 idct function for eob<=34 case"
2013-10-25 09:34:46 -07:00