Граф коммитов

652 Коммитов

Автор SHA1 Сообщение Дата
John Koleszar bbac4094e4 Merge "Use foreach_transformed_block with tokenize_b" into experimental 2013-04-29 12:53:04 -07:00
Ronald S. Bultje 767dd469b3 Merge "Merge encode_sb and encode_sb64 in a recursive encode_sb/b function." into experimental 2013-04-29 12:41:55 -07:00
Ronald S. Bultje 02d8cbaa15 Merge "Fix mi_row argument to update_stats()." into experimental 2013-04-29 12:41:53 -07:00
Ronald S. Bultje b2d8d58cf0 Merge "Factor out assigning correct partitioning seg_context pointers." into experimental 2013-04-29 12:41:50 -07:00
Ronald S. Bultje 846a67e047 Merge "Use recursive function in resetting txfm_size for skip-blocks." into experimental 2013-04-29 12:41:47 -07:00
Ronald S. Bultje 56d61f8b07 Merge "Use recursive function in choosing segmentation map coding method." into experimental 2013-04-29 12:33:18 -07:00
John Koleszar 5c24469c2c Use foreach_transformed_block with tokenize_b
Updates the tokenizer to use the common block walker used by the
detokenizer, to support non-4:2:0 and more than 3 planes.

Change-Id: If1854117a9c7c1427349209fa2b3051ce6459dcb
2013-04-29 12:07:39 -07:00
Ronald S. Bultje e4f0c541dd Merge encode_sb and encode_sb64 in a recursive encode_sb/b function.
Change-Id: Ifd1f7319e398381ca7d55aaacc68c39a1319d651
2013-04-29 12:05:20 -07:00
Ronald S. Bultje 7c5eb6d5da Fix mi_row argument to update_stats().
This doesn't change output, because the argument isn't actually used
ATM. However, we should fix it for consistency.

Change-Id: I7b7326a8e92c0d411c999ec2c781204b516ed53d
2013-04-29 12:05:20 -07:00
Ronald S. Bultje 247c4f769c Factor out assigning correct partitioning seg_context pointers.
Change-Id: I6e787915a92e0abdea86adaa3e1106aa9c165034
2013-04-29 12:05:19 -07:00
Ronald S. Bultje 50e0f5f825 Use recursive function in resetting txfm_size for skip-blocks.
This is shorter than fully writing out all cases (52 vs. 84 LOC), and
is easier to extend.

Change-Id: Ic75f86f15cf037543c3dc6234d9ac088205a0ed1
2013-04-29 12:04:52 -07:00
Ronald S. Bultje 8bbcbdedcb Use recursive function in choosing segmentation map coding method.
This is shorter than fully writing out all cases (55 vs. 84 LOC), and
is easier to extend.

Change-Id: Ibad1bf6463198cad9188c5507181d4b03d393e6d
2013-04-29 12:04:51 -07:00
Jingning Han c8bed9d4f9 Merge "Immigrate tokenize_mb into tokenize_sb" into experimental 2013-04-29 11:28:56 -07:00
Ronald S. Bultje f5ad774814 Merge "Change above/left_context to use an 8x8 basis." into experimental 2013-04-29 11:28:25 -07:00
Jingning Han 3ac3c4695c Immigrate tokenize_mb into tokenize_sb
Unify the tokenize_ function and enable configurable block size for
superblock 8x8. We are immigrating the functionalities of
macroblock handles into superblock ones, and eventually will remove
encode_mb and decode_mb. To be continued on detokenize_ module.

Change-Id: I9f81e8c2291082535cf5e0c4b662eb24fb7c8a7f
2013-04-29 11:19:36 -07:00
Ronald S. Bultje 2dbaa4f4f4 Change above/left_context to use an 8x8 basis.
Output changes slightly because of a minor bug in (at least) the sb32x16
block2above tx16x16 tables that previously existed in vp9_blockd.c.

Change-Id: I624af28ac200a8322d64454cf05c79e9502968cc
2013-04-29 10:37:25 -07:00
Paul Wilkins fb3e4ed9eb Merge "Minor tweak to implicit segmentation experiment." into experimental 2013-04-27 11:58:13 -07:00
Jingning Han 9b935f9992 Add forward probability model update for partition
Enable forward model update for partition syntax coding.

Change-Id: If47b423b6d12f34614c57f25d235dc9ba688efc5
2013-04-27 16:47:04 +01:00
Ronald S. Bultje 7f8cbda333 Merge "Grow MODE_INFO array to use an 8x8 basis." into experimental 2013-04-26 14:46:50 -07:00
Johann 9e23bd5df5 Merge "Merge branch 'master' into experimental" into experimental 2013-04-26 13:35:28 -07:00
Johann 32a5c52856 Merge branch 'master' into experimental
Conflicts:
	vp9/common/vp9_findnearmv.c
	vp9/common/vp9_rtcd_defs.sh
	vp9/decoder/vp9_decodframe.c
	vp9/decoder/x86/vp9_dequantize_sse2.c
	vp9/encoder/vp9_rdopt.c
	vp9/vp9_common.mk

Resolve file name changes in favor of master. Resolve rdopt changes in
favor of experimental, preserving the newer experiments.

Change-Id: If51ed8f457470281c7b20a5c1a2f4ce2cf76c20f
2013-04-26 12:57:10 -07:00
Ronald S. Bultje 1a46b30ebe Grow MODE_INFO array to use an 8x8 basis.
Change-Id: I087e08e7909a406b71715b8525c104208daa6889
2013-04-26 11:57:17 -07:00
John Koleszar ac22bb6fde Merge changes I7ff2fa72,I7907230d into experimental
* changes:
  Remove BLOCKD structure
  Remove destination pointers from BLOCKD
2013-04-26 11:26:18 -07:00
John Koleszar 80fadb261e Merge "Restore vp9_asm_enc_offsets.c" into experimental 2013-04-26 10:49:45 -07:00
John Koleszar bb41ab4a0c Remove BLOCKD structure
All members can be referenced from their per-plane counterparts, and
removes assumptions about 24 blocks per macroblock.

Change-Id: I7ff2fa72d22c29163eb558981c8193765a8113d9
2013-04-26 10:35:54 -07:00
John Koleszar 4f55c5618a Remove destination pointers from BLOCKD
Access these members from MACROBLOCKD instead.

Change-Id: I7907230dd473ff12ebe182b9280d8b7f12a888c4
2013-04-26 10:14:07 -07:00
John Koleszar 34324a98e7 Restore vp9_asm_enc_offsets.c
The previous commit 15255ee "Move dequant from BLOCKD to per-plane MACROBLOCKD"
removed the vp9_asm_enc_offsets.c file, but didn't update the various secondary
build systems that special case these files. Restore it for now, to ensure any
in-progress changes and builds continue working, to allow time to more carefully
coordinate removal of these files.

Change-Id: I24b78db3fb874d5fbd226548b7366a05ed98e536
2013-04-26 10:01:49 -07:00
John Koleszar 4b27eb1f18 Merge "quantize: make 4x4, 8x8 common with larger transforms" into experimental 2013-04-26 09:08:49 -07:00
Scott LaVarnway 57f180b388 Removed bmi from blockd
This originally was "Removed update_blockd_bmi()".  Now,
this patch removed bmi from blockd and uses the bmi found
in mode_info_context.  Eliminates unnecessary bmi copies between
blockd and mode_info_context.

Change-Id: I287a4972974bb363f49e528daa9b2a2293f4bc76
2013-04-26 10:19:43 -04:00
Johann 863601c589 Normalize more intrinsic filenames
vp9_dequantize_x86 has only sse2 functions.

vp9_dct_sse2_intrinsics has no namespace collision and can drop
_intrinsics.

vp9_idct_mmx.h is unused.

Change-Id: Ic16e31fb372a1d1e841a62ecb4189fe8f95808ec
2013-04-25 23:26:20 -07:00
John Koleszar a672351af9 quantize: make 4x4, 8x8 common with larger transforms
There were 4 variants of the quantize loop in vp9_quantize.c, now
there is 1.

Change-Id: Ic853393411214b32d46a6ba53769413bd14e1cac
2013-04-25 14:44:54 -07:00
Ronald S. Bultje 18f29ff581 Remove duplicate code in RD handle_inter_mode() function.
Change-Id: I552d53f7e7331e9246d8a32d6c6dcc0cfa0cbeb0
2013-04-25 14:21:21 -07:00
Ronald S. Bultje 8d028402d7 Remove implicit assumption that mode_info_stride == mb_cols + 1.
Change-Id: I3030d7adac73109aeaa1ecc0f78ac968c092d9aa
2013-04-25 14:21:01 -07:00
Ronald S. Bultje 811f80ca25 Remove write-only variables that store refframe, signbias and mv.
These were superseeded by prev_mip.

Change-Id: Ide240475350ce003d68aa990eddc2ee30920663a
2013-04-25 14:21:01 -07:00
Ronald S. Bultje c849eaca59 Use b_width/height_log2 instead of mb_ where appropriate.
Basic assumption: when talking about transform units, use b_; when
talking about macroblock indices, use mb_.

Change-Id: Ifd163f595d4924ff892de4eb0401ccd56dc81884
2013-04-25 14:20:59 -07:00
John Koleszar a99e1aa8ca Remove predictor pointers from BLOCKD
Access these members from MACROBLOCKD instead.

Change-Id: I2574622e577bb9feede47f6b7ccbb11f3e928ca8
2013-04-25 12:04:07 -07:00
John Koleszar 6c0c6b86c1 Remove diff from BLOCKD
The underlying storage for these buffers is in the per-plane MACROBLOCKD
area, so read it from there directly.

Change-Id: Id6bd835117fdd9dea07db95ad06eff9f12afaaf7
2013-04-25 11:57:22 -07:00
John Koleszar 15255eef82 Move dequant from BLOCKD to per-plane MACROBLOCKD
This data can vary per-plane, but not per-block.

Change-Id: I1971b0b2c2e697d2118e38b54ef446e52f63c65a
2013-04-25 11:57:20 -07:00
John Koleszar 4bd0f4f646 Remove BLOCK structure
All members can be referenced from their per-plane counterparts, and
removes assumptions about 24 blocks per macroblock.

Change-Id: I593fb0715e74cd84b48facd1c9b18c3ae1185d4b
2013-04-25 11:33:17 -07:00
Dmitry Kovalev 61a47da869 Adding is_inter_mode function.
Change-Id: I2d32d46002cb92c63050c2b8328865c406103621
2013-04-25 10:23:00 -07:00
Jingning Han b42b41c856 Merge "Move sbsegment out of experimental list" into experimental 2013-04-25 09:18:01 -07:00
Yaowu Xu bcf82cf503 Merge two similar functions into one
Function set_mb_row() and set_mb_col() do similar work and are always
called together, this commit merged them into a single function for
clarity and easy maintainence.  This was a TODO item.

Change-Id: I956bd9ed6afb8b2b0469b20fd8bc893b26f8a0f3
2013-04-24 15:58:03 -07:00
Jingning Han b0e3b3df18 Move sbsegment out of experimental list
Move rectangular superblock coding out of experimental list.

Change-Id: I96c37547d122330d666a67b4bf577ae54547857f
2013-04-24 15:19:17 -07:00
Jingning Han ff2b8aa2c9 Contextual entropy coding of partition syntax
This commit enables selecting probability models for recursive block
partition information syntax, depending on its above/left partition
information, as well as the current block size. These conditional
probability models are reasonably stationary and consistent across
frames, hence the backward adaptive approach is used to maintain and
update the contextual models.

It achieves coding performance gains (on top of enabling rectangular
block sizes):
derf:   0.242%
yt:     0.391%
hd:     0.376%
stdhd:  0.645%

Change-Id: Ie513d9673337f0d27abd65fb566b711d0844ec2e
2013-04-24 14:23:14 -07:00
Paul Wilkins da04312f79 Minor tweak to implicit segmentation experiment.
This minor tweak makes segment 0 neutral and used by
key frames and also extends beyond 4 segments.

Change-Id: Ife4744602aba66ac9432746db3113cc5cd88a482
2013-04-24 16:43:01 +01:00
Paul Wilkins 31ee193a9c Extension of segmentation to 8 segments.
Also some further simplification following removal
of top node code.

There is an issue in regards to the shared file vp8cx.h
in regard to the roi_map as this interface assumes that
there are only 4 segments. I have left the value here as
4 for now meaning that the roi_map interface is broken
for VP9.

Note that this change would have been easier if I hadn't
had to search for hard wire instances of the number 4
and <= 3.

Change-Id: Ia8b6deea4be4dbd20deb1656e689dd43a5f190e8
2013-04-24 16:36:47 +01:00
Paul Wilkins c77aff1286 Simplify Segment Coding
Remove top node optimization.
The improvement this gives is not sufficient to justify
the extra complexity.

Change-Id: I2bb4a12a50ffd52cacfa4a3e8acbb2e522066905
2013-04-24 10:47:12 +01:00
Paul Wilkins 27bb4777cd Simple implicit segmentation experiment.
Change-Id: Iaef16122732c2a81e0927f9862b51b68dc788712
2013-04-24 10:04:27 +01:00
John Koleszar c7c98a7ffb Move skip_block from BLOCK to MACROBLOCK
This data is fixed at the MB level, so move it to the common part
of MACROBLOCK.

Change-Id: Idd8c87118e501cdf0a202bd84c28b502a8234edf
2013-04-23 17:43:43 -07:00
John Koleszar 5c649f67a2 Move quantizer data from BLOCK to MACROBLOCK
Quantizers can vary per plane, but not per block. Move these values to
the per-plane part of MACROBLOCK.

Change-Id: I320a55e38b7b28b29aec751a4aca5ccd0c9b9326
2013-04-23 17:43:43 -07:00