Commit Graph

4954 Commits

Author SHA1 Message Date
Dmitry Kovalev
6a2fb54484 Removing unused seg0_* vars.
Change-Id: I87b0668e23c54429a06bba85437606c4780be9ba
2014-04-02 12:00:11 -07:00
Dmitry Kovalev
8b8606a737 Merge "Cleaning up vp9_mvref_common.c." 2014-04-02 11:03:36 -07:00
Dmitry Kovalev
1942f9e158 Merge "Cleaning up vp9_cx_iface.c file." 2014-04-02 11:01:16 -07:00
Dmitry Kovalev
68027a0b8a Merge "Grouping members in MB_MODE_INFO struct." 2014-04-02 11:00:58 -07:00
Dmitry Kovalev
09e4be88f9 Merge "Adding return value to set_offsets() function." 2014-04-02 11:00:32 -07:00
Dmitry Kovalev
3ae5804f7f Merge "Clearing all encoder counts with single vp9_zero() call." 2014-04-02 10:59:13 -07:00
Dmitry Kovalev
67304d10ad Merge "Adding local pointer variables referencing REATE_CONTROL struct." 2014-04-02 10:58:49 -07:00
Marco Paniconi
eb0ab20700 Merge "Remove the q division by 3 for first frame." 2014-04-02 10:21:52 -07:00
Paul Wilkins
88690475ea Merge "Speed setting correction to max q estimate." 2014-04-02 04:08:18 -07:00
Dmitry Kovalev
21b8fc4ce4 Adding local pointer variables referencing REATE_CONTROL struct.
Change-Id: I1d8c312a599db505a023e5cd0cc4ba2b8f696a2e
2014-04-01 20:11:41 -07:00
Dmitry Kovalev
4f8a440083 Clearing all encoder counts with single vp9_zero() call.
Change-Id: I4341d16ef83acd1cc9e55f7c5eff4af921bf57d4
2014-04-01 20:09:35 -07:00
Dmitry Kovalev
5f8dd6c9ec Adding return value to set_offsets() function.
Change-Id: I88e018442c527cf21eac791f0768e805dda244f1
2014-04-01 20:06:47 -07:00
Marco Paniconi
939f0e7444 Remove the q division by 3 for first frame.
This code/setting was actually not used (since speed features were not set on first frame,
until a recent change) and should be removed.

In CBR mode, the q value for the first frame can be controlled by setting
the target size via the parameters rc_buf_initial_sz (and max_intra_size_pct).

Change-Id: I65afc64972b36c449bd5a8c25800e65da5389066
2014-04-01 18:42:05 -07:00
Dmitry Kovalev
86f44a91f4 Renaming two members in MACROBLOCKD struct.
Renames:
  mi_8x8 -> mi
  mode_info_stride -> mi_stride

Change-Id: I66f3e5fd1e7b7f46f108af5bb711c5fd9493c1be
2014-04-01 17:46:40 -07:00
Dmitry Kovalev
7c7fc719c9 Merge "Moving encoder quantization parameters into separate struct." 2014-04-01 17:15:11 -07:00
Dmitry Kovalev
79b168f388 Cleaning up vp9_cx_iface.c file.
Change-Id: I4de07d3ef81ebba759a983207d9ca768a65220a6
2014-04-01 17:14:55 -07:00
Dmitry Kovalev
06159fcd18 Merge "Common configuration for MACROBLOCKD struct." 2014-04-01 15:54:34 -07:00
Yunqing Wang
2b99fcbc58 Merge "Make last frame source available in current frame encoding" 2014-04-01 15:54:13 -07:00
Yunqing Wang
4a9928e5eb Make last frame source available in current frame encoding
While encoding a frame, its last frame source can be used to give
acurate motion information. This patch prevents last frame to be
overwritten so that it is available during current frame encoding.

The last source is scaled when it is necessary. cpi->Last_Source
points to the last source frame.

Change-Id: I0e1ef5e9e1d2badf9d0c7a1a44a7ed5b24c09425
2014-04-01 15:01:38 -07:00
Alex Converse
d0a2988dbd Merge "Propagate active map state." 2014-04-01 13:49:26 -07:00
Dmitry Kovalev
d42976c515 Common configuration for MACROBLOCKD struct.
Change-Id: Ie2ea9dd8bd338cc9fe12ca9033df64f7644c68b3
2014-04-01 10:57:59 -07:00
Paul Wilkins
992c41d2fd Speed setting correction to max q estimate.
Use a crude correction factor to correct for
lower compression efficiency at higher encode
speeds when estimating the max Q for the
clip.

Change-Id: I5ae377647f4adf5e91d700a8791fb3b8f70efc73
2014-04-01 17:03:04 +01:00
Alex Converse
12dd53d06a Propagate active map state.
This fixes active map for non-rd realtime speeds.

Change-Id: I1bf416de3f7ef2e5dd2eabde052cce3c0683a52c
2014-03-31 16:55:39 -07:00
Jingning Han
99893f2410 Apply finer quantizer to partition search frames in non-RD flow
This commit optimizes the bit allocation for the non-RD coding flow.
It applies slightly better quantizer to the frames, where all blocks
run a non-RD partition search. Such frames typically have better
rate-distortion trade off, thus improving the reconstruction quality
for next few frames reference at reasonably low increment in rate
cost.

The coding performance for rtc set at speed -5 with error-resilient
tuned on and rate control set as cbr is improved by 19.58%. It improved
the coding speed by about 10% for a portion of local test clips.

Change-Id: I9d56696cd4359dc8136ca10aff10fff05aaa2686
2014-03-31 09:33:11 -07:00
Yaowu Xu
6618b73b5e Merge "[BITSTREAM]Fix the scaling calculation" 2014-03-31 07:08:40 -07:00
Yaowu Xu
8a099deb60 Merge "Adjust rt speed steps." 2014-03-31 07:08:31 -07:00
Dmitry Kovalev
20d868f05d Grouping members in MB_MODE_INFO struct.
Change-Id: Ia6d7e7a08810e0c3401da4d10266828d560e6851
2014-03-28 17:44:13 -07:00
James Zern
1bc32afd3c Merge "[svc] Fix SvcTest.SecondPassEncode failure" 2014-03-28 17:09:31 -07:00
Dmitry Kovalev
7bcfa31750 Moving encoder quantization parameters into separate struct.
Change-Id: I2a169535489aeda3943fb5a46ab53e7a12abaa36
2014-03-28 16:46:41 -07:00
Yaowu Xu
4f857bacd2 [BITSTREAM]Fix the scaling calculation
For very large size video image, the scaling calculation may need use
value beyond the range of int. This commit upgrade the value to 64bit
to make sure the calculation do not wrap around INT_MAX.

The change corrected the decoder behavior.

The bug affects only very large resolution video because the scaling
calculation was sufficient for image size smaller than 2^13.

This resolves issue:
https://code.google.com/p/webm/issues/detail?id=750

Change-Id: I2d2ed303ca6482f31f819f3c07d6d3e98ef3adc5
2014-03-28 16:40:29 -07:00
Yaowu Xu
6fc20a8434 Adjust rt speed steps.
This commit adjusted the speed steps in rt mode to make the steps
more evenly spaced on speed and quality, specifically:
1. Merged 3 and 4 into one single step 3 and removed confilicting
features.
2. Move 8, 7, 6, 5 to be 7, 6, 5, 4 repsectively.

Change-Id: I38d56d61531f3561d772aef953c411c8fb38c063
2014-03-28 16:40:28 -07:00
Minghai Shang
ab961ad01b Merge "[svc] Finalize first version of 2nd pass rc" 2014-03-28 15:58:23 -07:00
Minghai Shang
074bbfa555 Merge "[svc] Initialization of 2nd pass rc for svc two pass rc" 2014-03-28 14:34:38 -07:00
Minghai Shang
86394d2636 [svc] Fix SvcTest.SecondPassEncode failure
Root cause is the different default register length between x86
and x64 platform. Change spatial_layer_id to long long.

Change-Id: If1a5972365c7a59f7e76cb4fd714610f3d48a8ff
2014-03-28 13:59:08 -07:00
Minghai Shang
9ee6087f34 [svc] Finalize first version of 2nd pass rc
Change-Id: I366850015004644c4fc7feabe27a782fdd8d8718
2014-03-28 13:38:02 -07:00
Dmitry Kovalev
9e46dcd2fc Merge "Moving dqcoeff array to MACROBLOCKD in decoder." 2014-03-28 13:32:37 -07:00
Dmitry Kovalev
03349d2ba2 Moving dqcoeff array to MACROBLOCKD in decoder.
Change-Id: I3e20c0cdb9d2437bddf21afb255855f2dead8e02
2014-03-28 10:36:16 -07:00
Dmitry Kovalev
0a6d5547e2 Adding vp9_speed_features.{h, c}.
Change-Id: I7d9874da8ff78a2d7e0cf11073af9c30538bc9a6
2014-03-28 10:30:28 -07:00
Paul Wilkins
77e4f85cf1 Merge "Further speed trade off adjustments." 2014-03-28 06:10:21 -07:00
Paul Wilkins
800b5718e8 Merge "Experimental change to speed 1 settings." 2014-03-28 06:10:07 -07:00
Alex Converse
7efe8876ba Merge "Remove a duplicate block_size variable." 2014-03-27 19:12:35 -07:00
Dmitry Kovalev
38053687bc Cleaning up vp9_mvref_common.c.
Change-Id: I4eb815156ecaab02c9182e6e1abbea0e4d86c441
2014-03-27 17:50:02 -07:00
Minghai Shang
5cf0363368 [svc] Initialization of 2nd pass rc for svc two pass rc
Change-Id: If67ed8721f258883e41bab18f5c456505de68785
2014-03-27 15:46:32 -07:00
Minghai Shang
e27bcc2451 Merge "[svc] Verify and store input two pass stats data in 2nd pass rc" 2014-03-27 15:06:42 -07:00
Alex Converse
79e68bce8a Remove a duplicate block_size variable.
Change-Id: Ia6b1e3c5a8ac21219bbfe9eecdb4801f3eaa10e5
2014-03-27 14:01:11 -07:00
Minghai Shang
6b2e406123 [svc] Verify and store input two pass stats data in 2nd pass rc
Change-Id: Ib09eedc17ea0ea2eec75d78112e4786d98f382aa
2014-03-27 13:43:20 -07:00
Jingning Han
4a42047b4e Fix segment_id assignment in update_state_rt for AQ mode
Properly obtain and buffer the segment_id in non-RD mode information
update process.

Change-Id: I43230001872f6a986d12c0d94e98fdec0db3be2c
2014-03-27 12:42:04 -07:00
Dmitry Kovalev
6998d56cb7 Merge "Moving thresh_mult{,_sub8x8} from SPEED_FEATURES to VP9_COMP." 2014-03-27 11:08:12 -07:00
Paul Wilkins
01148d4548 Further speed trade off adjustments.
Small speed gain for speed 1.

Quality is generally a little up for speed 2.

Speed 3 was similar to speed 4 but now positioned more
evenly between 2 and 4 speed and quality wise.
   (opsnr +5.6% ssim +8.25% across all sets)

Speed 4 is a little slower than before but sizable quality gains.
   (opsnr +3.7% ssim +6.8% across all sets)

The code has been cleaned up a bit so that for each incremental
speed step changes over the previous speed step are applied.
This makes it easier to see what is changing from one setting to
the next.

Change-Id: I2d98d0d6230af23486adaec01908f58942a7cdeb
2014-03-27 17:11:35 +00:00
Marco Paniconi
7cbeb910f2 Merge "aq_mode=3: Set target seg_map in sb-block order." 2014-03-27 08:48:22 -07:00