Commit Graph

7765 Commits

Author SHA1 Message Date
James Zern
cc8ea84d3d Merge "test/partial_idct_test: fix msvc build" 2013-12-19 19:31:02 -08:00
Jingning Han
243327f43c Store the SSE of prediction residuals
Buffer the SSE of prediction residuals in the rate-distortion
optimization loop of a given block. This information would be used
for later encoding control.

Change-Id: If4e63f3462490513c48be9407d3327c8dd438367
2013-12-19 18:45:28 -08:00
Dmitry Kovalev
987810ad95 Removing vp9_findnearmv.{h, c} files.
Moving all code from that files to vp9_mvref_common.{h, c}.

Change-Id: Ibc4afcb8cea6847166ff411130e93611ebe63b20
2013-12-19 17:39:57 -08:00
Dmitry Kovalev
a3fbcc88bb Using single struct to represent scale factors.
Moving back to scale_factors struct. We don't need anymore x_offset_q4 and
y_offset_q4 because both values are calculated locally inside vp9_scale_mv
function.

Change-Id: I78a2122ba253c428a14558bda0e78ece738d2b5b
2013-12-19 16:06:33 -08:00
Dmitry Kovalev
40e173ac42 Merge "vp9_encode_frame() cleanup." 2013-12-19 15:37:13 -08:00
Marco Paniconi
5ba4b16c2d Initialize avg_frame_qindex to worst_allowed for 1 pass.
Change-Id: I535bde16c8fc4c2cd263bbbbaed46ead4c776090
2013-12-19 14:55:49 -08:00
Dmitry Kovalev
c872d2be65 Call set_scaled_offsets() just before scale_mv() call.
Before mv scaling it is required to calculate x_offset_q4/y_offset_q4
by calling set_scaled_offsets(). Now offset configuration can not be
missed because it happens just before scale_mv().

Change-Id: I7dd1a85b85811a6cc67c46c9b01e6ccbbb06ce3a
2013-12-19 14:55:13 -08:00
Dmitry Kovalev
5bfd475104 Merge "Adding get_block_variance_fn() function." 2013-12-19 14:47:59 -08:00
Dmitry Kovalev
a619f5a776 Merge "Replacing 1 << mi_{width, height}_log2() with lookup tables." 2013-12-19 14:28:58 -08:00
Dmitry Kovalev
f06187f125 vp9_encode_frame() cleanup.
Change-Id: I82ecbe7fe0baa890ce251043f3c7159188c00665
2013-12-19 14:28:42 -08:00
Dmitry Kovalev
66ef9d1c20 Adding get_block_variance_fn() function.
Change-Id: I67d934b6af899ffd4bcad2d913a650685fa64abd
2013-12-19 14:07:03 -08:00
Dmitry Kovalev
431aaefbec Replacing 1 << mi_{width, height}_log2() with lookup tables.
Change-Id: Iba91ff1e797a83517e2cd7c3ab86cba39f39415b
2013-12-19 13:43:45 -08:00
Deb Mukherjee
84b4d8c692 Merge "Begin refactor of frame schedule in rate control" 2013-12-19 11:37:06 -08:00
Yunqing Wang
6ff4f19269 Remove a unused sub-pixel search
The original iterative search was replaced by subpel_tree search,
and was not used anymore.

Change-Id: I998b38e1cb0ee359a08b2410d0766dbf183ab071
2013-12-19 11:20:56 -08:00
Yunqing Wang
09faf55916 Code clean up
Removed unused filter coefficients.

Change-Id: Ib395a51305e23ff41ab69c1808d56946d25961cd
2013-12-19 11:09:23 -08:00
Dmitry Kovalev
c67ee5ea24 Merge "Converting vp9_treecoder.h to vp9_prob.{h, c}" 2013-12-19 11:03:30 -08:00
Dmitry Kovalev
e4b85c9ed8 Merge "Adding get_zbin_mode_boost() function." 2013-12-19 11:03:23 -08:00
Deb Mukherjee
4dbad63a71 Begin refactor of frame schedule in rate control
Various cleanups and streamlining of interfaces as precursor
to further advancements in rate control.
Pre-encode parameter setting for different use cases:
One-pass, first of 2-pass, second of 2-pass, and Svc
are separated out.

There is no change in output with this change.

Change-Id: Ied8ca7d84d610993776aa30ef263fe20452e0e3e
2013-12-19 10:55:38 -08:00
Tom Finegan
46444c268a Merge "test/decode_perf_test: fix msvc build" 2013-12-19 10:35:41 -08:00
Paul Wilkins
ee29b7e85c Adjust gf_group_error_left for arf groups.
Take account of the fact that the overlay frame is usually
very cheap so distribute target bits among the other frames.

Change-Id: I120685122e8cbbe75da8d07d02932f7877059867
2013-12-19 17:26:04 +00:00
Paul Wilkins
cb8659981d Allow arf just before kfs or end of sequence.
This will hurt metrics in some cases (particularly for static
clips at low data rates where there is extra overhead, but it
helps smooth transitions around forced key frames between
stitched kf sections.

Change-Id: I7e1026ae0de6c77bba863061e115136d7f283cc0
2013-12-19 16:52:38 +00:00
Paul Wilkins
e1312c3696 Further q estimate adjustment.
Slightly reduces the mean tendency to undershoot target
rate in vbr, especially when using the memory less mode
and when recodes are disabled.

The effect is primarily at low q.

Change-Id: I59a593b99522cc7da31b4134d1c8a65f5b7b7c53
2013-12-19 15:32:50 +00:00
Paul Wilkins
d99e890840 Remove unused code and data structure.
Remove modified_error_used and adjust_active_maxq().

Change-Id: I8915007128dc1a17e11693104cfb008a6d64e6a2
2013-12-19 15:27:44 +00:00
Dmitry Kovalev
4e84ad1fc6 Reusing FRAME_COUNTS in the encoder.
Replacing: intra_inter_count, y_mode_count, y_uv_mode_count.

Change-Id: I5d70f73288af6effe6176e26400138067a2ae2a3
2013-12-18 18:52:58 -08:00
Tom Finegan
d2fdea1079 test/decode_perf_test: fix msvc build
Change-Id: I46590947dfde0bce727b20c12e3a0a8c27be8433
2013-12-18 18:34:32 -08:00
James Zern
949194db3b Merge "test/partial_idct_test: fix formatting and a warning" 2013-12-18 18:33:49 -08:00
Dmitry Kovalev
829ec56b47 Merge "Reusing FRAME_COUNTS in the encoder." 2013-12-18 18:27:08 -08:00
James Zern
a5768f61e5 test/partial_idct_test: fix msvc build
Change-Id: I7fa72980d17f1ca997959e9c4f0f82501810d7c4
2013-12-18 16:38:41 -08:00
James Zern
19c53534bd test/partial_idct_test: fix formatting and a warning
test/partial_idct_test.cc:74:5: warning: variable 'size' is
used uninitialized whenever 'if' condition is true
[-Wsometimes-uninitialized]
    ASSERT_TRUE(0) << "Wrong Size!";

Change-Id: Ic2f880ae09268561c9f036b4d6de220fde6dc5c4
2013-12-18 15:59:09 -08:00
Johann
dc2c62eba8 Cast away Windows warning
Subtracting the pointers promoted to a signed type.

Change-Id: Ied0e822a1756ed7b2f514efafcb6dce4efb9b9d6
2013-12-18 15:52:51 -08:00
Alex Converse
69384a2510 Merge "Fix arnr for 4:4:4." 2013-12-18 14:58:03 -08:00
Alex Converse
7e731b6cea Fix arnr for 4:4:4.
Change-Id: I80a0cea96c65c0cfb530a71053616dba6edeb896
2013-12-18 14:33:29 -08:00
Marco Paniconi
5bafc2315d Merge "Fix to overflow in asan test (for vp8 encoder)." 2013-12-18 14:18:58 -08:00
Marco Paniconi
6efb0ab9b2 Fix to overflow in asan test (for vp8 encoder).
Change-Id: Ie67339ab3a16ce7669b5366a743812df93c52711
2013-12-18 14:12:29 -08:00
Jingning Han
89b6d40690 Replace cpi->common with cm in vp9_onyx_if
Replace repeated cpi->common fetching with cm variable in a few
places in vp9_onyx_if.c

Change-Id: Ifa16d617f37919b2e0baf8efb256130a647b5eb3
2013-12-18 12:31:41 -08:00
Jingning Han
ae0e383d35 Merge "Make rd_pred_filter update consistent in all bsizes" 2013-12-18 12:31:35 -08:00
Jingning Han
d8557a052c Make rd_pred_filter update consistent in all bsizes
This commit reworks the prediction filter rate-distortion cost update
process consistent for all block sizes.

Change-Id: I5874349ab38df380240f96c2d4ef924072bab68d
2013-12-18 11:54:31 -08:00
Yaowu Xu
f71f581ba2 Merge "Added a test vector that exercises lpf deltas" 2013-12-18 11:41:56 -08:00
Dmitry Kovalev
de49895804 Adding get_zbin_mode_boost() function.
Change-Id: Ia356178d6a3c40b512d3123390781ef94dec72d6
2013-12-18 10:39:08 -08:00
Marco Paniconi
02d5ebcfdc Merge "Updates for 1-pass CBR rate control." 2013-12-18 10:28:33 -08:00
Yaowu Xu
2424ba3d8b Added a test vector that exercises lpf deltas
From frame 2, the lpf deltas are all cleared for for even frames, and
a set of values are set and used for odd frames. The intention is to
exercise decoding code around lpf delta/update decoding.

Change-Id: Ic9ff1bc2c2a023f4805852f8573398f2ec2249d7
2013-12-18 10:08:39 -08:00
Marco Paniconi
1b8b8b0d0d Updates for 1-pass CBR rate control.
Adjustments based on buffer level, frame dropper.

Change-Id: Iaa85b570493526a60c4b9fb7ded4c0226b1b3a33
2013-12-18 09:24:24 -08:00
Johann
bb12bbaefb Merge "Fix incorrect size reading" 2013-12-17 21:26:50 -08:00
Johann
b46da98f3a Merge "Only exclude VP8 when it is included" 2013-12-17 21:26:44 -08:00
Frank Galligan
05d5332407 Merge "Increase required number of external frame buffers" 2013-12-17 21:20:34 -08:00
Jim Bankoski
9d754dcca8 Merge "rename loop filter functions" 2013-12-17 18:56:09 -08:00
Johann
85770264ac Fix incorrect size reading
Guard against incorrect size values moving *data past data_end.

Check read length against the difference of the buffers.

Change-Id: Ie0b54e2db517fd41a0f3ceb23402ee44839a4739
2013-12-17 18:48:55 -08:00
Johann
af416c4daf Only exclude VP8 when it is included
If configured with --disable-vp8 kVP8TestVectors is undefined.

Change-Id: I9d83e805923977ab057ab48042580ce0d817ba68
2013-12-17 18:27:04 -08:00
James Zern
ea8482fe74 Merge "Add external constants." 2013-12-17 18:20:31 -08:00
Frank Galligan
9e41d569d7 Increase required number of external frame buffers
Make applications pass in VPX_MAXIMUM_WORK_BUFFERS as well as
VP9_MAXIMUM_REF_BUFFERS.

Change-Id: I9c07ce83fa19c90ed43227b801b2013690e81edd
2013-12-17 17:34:36 -08:00