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

762 Коммитов

Автор SHA1 Сообщение Дата
Jingning Han b64d58c773 Merge "Enable variable block size test in non-RD mode decision" 2014-03-19 18:54:42 -07:00
Dmitry Kovalev 4c0cede2bc Merge "Cleaning up vp9_onyx_if.c and vp9_onyx_int.h." 2014-03-19 18:36:09 -07:00
Jingning Han 60f9ebc3f1 Enable variable block size test in non-RD mode decision
This is an initial attempt to allow variable block size partition
in non-RD coding flow. It tests 8x8, 16x16 and 32x32 block size per
64x64 block, all using non-RD mode decision and the associated rate
distortion costs from modeling, then selects the best block size to
encode the entire 64x64 block. Such operations are triggered every
other 3 frames. The blocks of intermediate frames will reuse the
collocated block's partition type.

It improves the compression performance by 13.2%. Note that the gains
are not evenly distributed. For many hard clips, the compression
performance is improved by 20% to 28%. Local speed test shows that
it will also increase runtime by 50%, as compared to speed -7. It is
now enabled in speed -6 setting.

Change-Id: Ib4fb8659d21621c9075b3c369ddaa9ecb0a4b204
2014-03-19 16:10:29 -07:00
Minghai Shang d205335060 [svc] Finalize spatial svc first pass rate control
1. Save stats for each spatial layer
      2. Add frame buffer management for svc first pass rc
      3. Set default spatial layer to 1
      4. Flush encoder at the end of stream in test app
This only supports spatial svc.
Change-Id: Ia89cfa87bb6394e6c0405b921d86c426d0a0c9ae
2014-03-19 11:06:20 -07:00
Yaowu Xu 9aa88c476b Merge "Remove an unused function" 2014-03-19 09:04:35 -07:00
Dmitry Kovalev 8dfbda6d4e Cleaning up vp9_onyx_if.c and vp9_onyx_int.h.
Change-Id: I5136c45d3f5f435005a88d04652addcd835f4bfe
2014-03-18 11:49:23 -07:00
Marco Paniconi 6b83884ba9 In-frame q adjustment for cyclic background refresh.
Activated using aq_mode=3.

Change-Id: Ied628b9e7bd0e88b0c75790276bca75b19eb5c07
2014-03-18 10:59:21 -07:00
Yaowu Xu aec5e1ed65 Remove an unused function
Change-Id: Iaaea882e59dfec38c0a9a24deaf8525a0fb62515
2014-03-17 14:03:14 -07:00
Dmitry Kovalev 8228ead7df Moving defines from vp9_onyx_int.h to suitable *.c files.
Change-Id: I0d39bdbb8166ee44561f1008d1a2e76e70b36f30
2014-03-17 12:54:51 -07:00
Dmitry Kovalev 7c6337ba9e Merge "Adding vp9_swap_mi_and_prev_mi() function." 2014-03-13 17:47:27 -07:00
Marco Paniconi 07fbd70e38 Merge "Move svc layer_context to separate file." 2014-03-13 14:49:15 -07:00
Marco Paniconi 78664081d1 Move svc layer_context to separate file.
Change-Id: Ie47c139d48cb18409d71f98f6a5b9eeb9f9437a9
2014-03-13 14:39:45 -07:00
Dmitry Kovalev e65c564c78 Adding vp9_swap_mi_and_prev_mi() function.
Change-Id: I18b3939f0b51085cdd25c9182c3a9c7536ca7e3e
2014-03-13 13:55:33 -07:00
Deb Mukherjee 954dbb282b Merge "Preliminary code for variance based paritioning" 2014-03-13 04:09:13 -07:00
Dmitry Kovalev 06b7b575c1 Moving declaration of vp9_encode_frame() to vp9_encodeframe.h.
Change-Id: I14adfd32622152abdc22c16429db38f6724628a4
2014-03-12 17:29:37 -07:00
Deb Mukherjee e39ecfaa98 Preliminary code for variance based paritioning
Brings back most of Jim's previous patch for choosing
partitioning based on variance while making it compatible
with the current state of the code. Also adds a
nonrd_use_partition() function to recursively encode  for any
arbitrary sb_type decisions within a 64x64 block; and
includes some refactoring.

Currently, when the VAR_BASED_PARTITIONING mode is turned on
for speed 7, there is a 10+% speed-up observed.

Experiments/improvements with this new partitioning method
will be conducted subsequently.

Change-Id: Ie6f43bfbde30583e941f450bf07c3b48828c9571
2014-03-12 15:06:20 -07:00
Dmitry Kovalev af9ca7d5be Fixing typo in cal_nmvjointsadcost().
Change-Id: I7be6675c68db330d69c541bd9341a7b8e91351d9
2014-03-12 14:44:14 -07:00
Yaowu Xu 6f5a1e033f Increase redo_frequency to 4 and cleanups
Clean-ups include
a. redundant code in rt -5 speed feature settings
b. code that guarantees square block availability in
rd_auto_partition_range()

Change-Id: Ic7b04d45b6dc15c461e0edbbb4e78aec20348291
2014-03-11 17:33:24 -07:00
Dmitry Kovalev 1f08824d6d Merge "Using enums instead of integers." 2014-03-10 20:50:58 -07:00
Dmitry Kovalev e3e1b49331 Merge "Moving static_scene_max_gf_interval to RATE_CONTROL struct." 2014-03-10 20:50:09 -07:00
Dmitry Kovalev b2c34d5539 Using enums instead of integers.
Change-Id: Ic0d74ab3a4c0c854fbcf59d9df5212c218bc68f9
2014-03-10 18:33:08 -07:00
Dmitry Kovalev d6b8709eb0 Moving static_scene_max_gf_interval to RATE_CONTROL struct.
Change-Id: Id63e114a8f0615dbafd6a816019cdebffb983d2c
2014-03-10 17:29:15 -07:00
Jingning Han 29af074fb5 Fix use of uninitialized bsize in non-RD mode
The block size used for non-RD mode decision in FIXED_PARTITION
setting was uninitialized. This commit fixes it by setting block
size to be BLOCK_16X16.

Change-Id: Ief04c9f1ab668de69297d9ab3dc15e2fa0bc4e95
2014-03-10 15:50:13 -07:00
Deb Mukherjee 44a203f5cd Merge "Support for a fast diamond search" 2014-03-10 09:53:21 -07:00
Deb Mukherjee bead2e8fb4 Support for a fast diamond search
Adds a fast diamond search which is about 5% faster than FAST_HEX
with only a 0.1% drop in psnr when turned on for both speeds 5 and 7.
This search is turned on for speed 7.

Change-Id: I497630aa88a5148926086bb3038e7975e5f4eb98
2014-03-07 17:15:09 -08:00
Dmitry Kovalev cca347ed4e Adding const to FIRSTPASS_STATS pointers.
Change-Id: Ia94d757de1d1b24609128cd40e68558078f50a38
2014-03-06 18:58:17 -08:00
Yaowu Xu 4fd6ba9da0 Adjust some speed features for --rt (-5)
Change-Id: Ibabd8440ff5c9dd7f300f317e2c9d50e8e84aab9
2014-03-05 16:08:58 -08:00
Jingning Han 3dfa93b058 Merge "Move set_speed_feature out of frame encoding" 2014-03-05 16:00:50 -08:00
Yaowu Xu 023d2a21aa vp9_picklpf.c: remove unused functions and params
Change-Id: Ib4d850227cef35694c663feb157765a2cbf84699
2014-03-05 14:07:36 -08:00
Alex Converse e609ab46a1 Merge "Prune RT mode decisions for BLOCK_32x32 and up" 2014-03-05 11:57:04 -08:00
Jingning Han a57cff2132 Move set_speed_feature out of frame encoding
Set speed features before running frame encoding. This avoids
redundant RD threshold calculation in key frame coding.

Change-Id: If8e3cf2c02976baa59b310c1c23af9eea0c46e36
2014-03-04 18:49:56 -08:00
Alex Converse bbc8c9d29a Prune RT mode decisions for BLOCK_32x32 and up
* Remove all non-DC intra modes for BLOCK_32x32 and up
* Remove all intra modes for blocks bigger than BLOCK_32x32
* Remove ZEROMV for BLOCK_32x32 and up
* Only consider NEARESTMV for blocks bigger than BLOCK_32x32

Change-Id: Ia18351a238213e2f072f9e481d622949346a245f
2014-03-04 09:48:31 -08:00
Dmitry Kovalev fe7b1d0a8d Removing VP9_PTR.
Change-Id: Ib49d8dbc67c590f22a1a70251ff607c9f38febd7
2014-03-03 16:50:16 -08:00
Jim Bankoski b247c14c07 Merge "cost_coefs approximation speed up" 2014-03-03 14:08:24 -08:00
Jim Bankoski 9c63e887e6 cost_coefs approximation speed up
This patch adds a new speed feature which doesn't do the rather
expensive entropy context lookup or save to the table,  while
doing costing.

The speed up on desktop36p.y4m is around 10% other clips much less.

On the RTC test set this was + 1% in overall datarate.

Change-Id: Ia5144bbf45270671e7be9c8e4055369909e2f738
2014-03-03 11:49:13 -08:00
Yunqing Wang 5b2190b2bf Reset search_method for non-rd pick mode
Reset FAST_HEX search_method, which was lost because of code merging.

Change-Id: Ic2b2cb9ec2f1751e96f7db0f9226310f605fcc83
2014-03-03 11:12:11 -08:00
Yaowu Xu dac3d0cebd vp9_lookahead_push(): remove unused parameters
Change-Id: Ia319bd924401677b5c30b0f46d1ab2be6a1f446e
2014-03-02 14:34:59 -08:00
Yaowu Xu 673621c8ba vp9_firstpass.c: remove unused functions & params
Change-Id: I111c5bd0dd47db7b1f6952c18056bee548bb42e9
2014-03-02 13:46:03 -08:00
Yaowu Xu 2f4eb5f096 Remove vp9_create_common()
The function has evolved over time, now only calls vp9_rtcd(), so this
commit removes the function and changes to call vp9_rtcd() directly.

Change-Id: I8cfa6190daa4b28f6f3d1e11bb3a07f9c95322bf
2014-03-01 10:59:24 -08:00
Yaowu Xu a257058aa3 Merge "Fix unused parameters in vp9_extend_frame_borders" 2014-02-28 17:34:38 -08:00
Dmitry Kovalev 37bb11f5cb Merge "Removing unnecessary casts from quantization code." 2014-02-28 16:08:24 -08:00
Yaowu Xu 0fa4d89042 Fix unused parameters in vp9_extend_frame_borders
Change-Id: I7255b3bc47d760333f58ac4878becbcc8ad30967
2014-02-28 15:50:32 -08:00
Deb Mukherjee f872a98b1b Adds speed 8 to vp9 as reference
Adds a speed 8 to VP9 where only the nearestmv (0 mv) is searched.
This seems to be about the same speed as vp8 speed 5.

Adds a new speed feature to disable inter modes based on a mask for
each blocksize.

Adds code for having lower complexity motion search methods
in nonrd pick mode function, even though speed 7 still uses DIAMOND
search for now.

Also uses HEX search for speed 6 rather than FAST_HEX which improves
psnr by 0.56% without any noticeable speed drop (tested on gipsmotion).

Change-Id: Ic13176572dbd3aed5884a26786940a4b1bbd8a75
2014-02-28 12:29:23 -08:00
Dmitry Kovalev e869869d22 Removing unnecessary casts from quantization code.
Change-Id: I64172710654e95a90ee754d14d7104337d28010f
2014-02-28 11:59:50 -08:00
Dmitry Kovalev c63e27b6d8 Cleaning up vp9_bitstream.{c, h} files.
Change-Id: Ida712a91694e89e318181f93afee2d0ee4f4ad94
2014-02-27 15:32:11 -08:00
Deb Mukherjee ed5755445c Turns variance based partitioning on in Speed 7
Improves coding efficiency by about 1%, increases speed by
about 15-20% over exsiting speed 7.

Change-Id: Ibf5b9b5a5c8548e863ce19047c42b579aac21d19
2014-02-27 12:09:12 -08:00
Alex Converse 104d8ec034 Merge "Don't let GOLDEN_FRAME turn off LAST_FRAME as a reference when GOLDEN_FRAME is disabled." 2014-02-26 18:50:00 -08:00
Dmitry Kovalev e4118e253a Merge "Adding vpx_sse_to_psnr() function." 2014-02-26 18:38:26 -08:00
Alex Converse 801f136be2 Don't let GOLDEN_FRAME turn off LAST_FRAME as a reference when GOLDEN_FRAME is disabled.
There was a bug in the previous code that if GOLDEN was better than
LAST neither would be used. LAST would get turned off due to superior
GOLDEN quality then all GOLDEN modes would get skipped.

Change-Id: I173f3720451707dab7b2cbbe8b8e6a047089bde7
2014-02-26 16:46:21 -08:00
Dmitry Kovalev 7d5bffc452 Adding vpx_sse_to_psnr() function.
Removing all copies of identical vp8_mse2psnr/vp9_mse2psnr functions.
Using vpx_sse_to_psnr() instead in all places.

Change-Id: I15beef9834d43d8fc8a8a7a2d1fc5de3d658fed8
2014-02-26 16:21:12 -08:00
Yaowu Xu fe0c09c2aa Reduce the frequency of partition size adjsutment
The commit change to use partitions sizes directly from last frame
for frames directly where last frame selects partitions sizes based
on coding efficiency.

On --rt --cpu-used=-5, the change hurts compression by 4% but reduces
encoding time by ~20%

Change-Id: Ia68665e5c8489b7bfcf5fac7768332fba88928e6
2014-02-26 09:52:38 -08:00
Deb Mukherjee 276e568997 Merge "Adds variance based fixed size partitioning" 2014-02-25 13:46:21 -08:00
Deb Mukherjee 10bae82510 Adds variance based fixed size partitioning
Adds a method for determining a fixed size partition based on
variance of a 64x64 SB. This method is added to rtc speed 6.
Also fixes a bug in rtc_use_partition() and includes some
refactoring related to partitioning search, and some cosmetics.

Currently compared to speed 5, the coding efficiency of speed 6
is -19% and that of speed 7 is -55%, in cbr mode.

Change-Id: I057e04125a8b765906bb7d4bf7a36d1e575de7c6
2014-02-25 12:20:59 -08:00
Yunqing Wang da47b3415b Merge "Disable adaptive pred filter for non-split mode" 2014-02-25 08:28:03 -08:00
Yunqing Wang fee045d13a Disable adaptive pred filter for non-split mode
If sf->disable_split_mask is DISABLE_ALL_SPLIT, disable
sf->adaptive_pred_interp_filter to avoid unnecessary operations.

Change-Id: Icb59174b2f4e9a3c3c16a696deb8018e5bd999eb
2014-02-24 14:05:06 -08:00
Deb Mukherjee 5f542408b4 Adds an intermediate speed level for rtc
Moves the existing speed 6 to speed 7 and adds an
intermediate level 6 which is roughly in between
speeds 6 and 7 in both speed and coding efficiency.
Also includes some minor fixes/adjustments.

Change-Id: I98befc4d82d750e79fe426c457c4a2571f6b6cc7
2014-02-24 12:15:33 -08:00
Yaowu Xu f1633e5844 Merge "Remove an unused variable" 2014-02-21 22:44:05 -08:00
Jingning Han abf5b8d5eb Force alt reference frame off in rtc mode
When non-RD coding decision is used in rtc mode, the alt reference
is not used for inter frame prediction. This commit disabled alt ref
option whenever speed -6 is used.

Change-Id: I0b33ca03661de1db2d9bef1bcbff848cd4c9396f
2014-02-20 15:27:16 -08:00
Yaowu Xu c58e1c7be9 Remove an unused variable
Change-Id: I8eeec70a7d4403243762f14d0b560792801645e8
2014-02-20 14:49:44 -08:00
Yunqing Wang cde6b50cb1 Merge "Use fast HEX search in real time mode" 2014-02-20 12:07:10 -08:00
Alex Converse 1d34991139 Merge "Only track mode_chosen_counts if CONFIG_INTERNAL_STATS." 2014-02-20 12:03:48 -08:00
Marco Paniconi fd402e1374 Condition alt-ref entropy context setting on svc.
Avoid special context setting for alt-ref in svc mode.

Change-Id: I5337d0739abe16aab7854bcaa3c8537191c4b60c
2014-02-20 09:55:29 -08:00
Alex Converse 657519192e Only track mode_chosen_counts if CONFIG_INTERNAL_STATS.
Change-Id: Ia9252ad0caa4d2bda529a3fe93efcb31e7eb2da0
2014-02-19 18:52:04 -08:00
Paul Wilkins 98bf47df16 Merge "Remove comment from calls to vp9_clear_system_state." 2014-02-19 05:14:51 -08:00
Dmitry Kovalev a7f8624458 Cleaning up vp9_onyx_if.c.
Change-Id: I389790f1ad0dd40816a7ae1ddad4a5c46278cff3
2014-02-19 10:59:53 +01:00
Yaowu Xu f4ce20c530 Removed unnecessary type cast
Change-Id: I0f2d5155ec042e9b5cbe9a9d6b186b121ed7737f
2014-02-18 21:03:47 -08:00
Adrian Grange 9b9c33a2b8 Remove comment from calls to vp9_clear_system_state.
Removed the comment "// __asm emms;" from all calls
to vp9_clear_system_state.

Change-Id: Ib4dae69c1cdf3f185b04184a870cd70c4d703f10
2014-02-18 15:43:42 -08:00
Jingning Han f11a85127b Merge "Initialize internal buffer pointers in rtc mode" 2014-02-18 14:51:38 -08:00
Yunqing Wang 360c80cfb9 Use fast HEX search in real time mode
In good quality mode motion search, the best matches are normally
found after searching in a large area. In real time mode, to make
encoding fast, a center-biased fast HEX search is used, which
converges quickly most of the time. A 4-point diamond search is
also carried out as the following refining search, which gives more
precise results, and maintains good motion search quality.

At speed 5, the borg test on rtc set showed an overall PSNR loss of
0.936%. The encoding speed gain is 4% - 5%.

Change-Id: I42cd68bb56a09ca1b86293c99d5f7312225ca7ae
2014-02-18 14:35:16 -08:00
Jim Bankoski 6c5f6b306b vp9_onyx_if.c resolve vs warnings
Change-Id: I02cc50648b62768e20d2f465b5ad09648b1abe93
2014-02-15 21:02:18 -08:00
Tom Finegan 6a6c427710 vp9/encoder/vp9_onyx_if: Fix compute_qdelta_by_rate() warnings
- Rename and make static
  s/vp9_compute_qdelta_by_rate/compute_qdelta_by_rate/
- Make base_q_index an integer.
- Add a cast.

Change-Id: Iea8d1397fd2717e7373b182ec51f5db960ef2cca
2014-02-14 21:14:33 -08:00
Deb Mukherjee 56835f1bdd Make cpi->speed always positive
Minor fix to ensure that positive and negative cpu_used
values produce the same output.

Change-Id: I9157d05cb9a7c0bd57a4d8a9f268205a825b9b0b
2014-02-14 14:28:58 -08:00
Yaowu Xu 8d646becb6 Merge "Removed the reset of mode_info from previous frame" 2014-02-13 17:03:50 -08:00
Alex Converse edec808787 Disable using golden frame modes if golden frames are not being used
Change-Id: I662c480ad49a242e10f1edb0c339ddbe2c6bccf4
2014-02-13 13:38:59 -08:00
Yaowu Xu 896d79a57e Removed the reset of mode_info from previous frame
Prior to this commit, both encoder and decoder reset mode/mv info from
previous frame in error resilient mode to ensure bitstreams are able to
decode when there is loss of frame in decoder side. However, this is
not necessary. This commit changed to remove the reset, so encoder can
continue to use mode/mv/partition information from previously encoded
frame without affecting decodeablilty under loss of frame.

Change-Id: I0279f862900dc647fb471ae3389770bb1b9f454f
2014-02-13 12:48:08 -08:00
Jingning Han cc10ee0add Initialize internal buffer pointers in rtc mode
In rtc coding mode, the encoder is running non-RD mode decision. It
does not need dual buffer swap as was the case in the RD mode. This
commit initializes the internal buffer pointers outside the block
coding loop for rtc mode.

Change-Id: Ie076705c60d6b7919217e3f1dfd49e7db5064ac2
2014-02-13 11:41:08 -08:00
Paul Wilkins d84978b84f Merge changes I121fe66c,I94f57f8a
* changes:
  Remove some cases for turning off arf.
  Modified Aq1 and Aq2
2014-02-13 09:31:53 -08:00
Jingning Han 91b5145673 Merge "Remove unused using_small_partition_info functions" 2014-02-12 17:51:18 -08:00
Jingning Han 25479e94a4 Remove unused using_small_partition_info functions
This function is deprecated after the re-design of partition search
that runs big block size, then four-way split, followed by
rectangular block sizes. This commit removes the related functions.

Change-Id: I417549c8e0fa3cf35bd29816b805dd4e7c3660c6
2014-02-12 12:24:10 -08:00
Adrian Grange 4618952a59 Merge "Minor cleanup." 2014-02-12 11:14:10 -08:00
Deb Mukherjee cf479baa03 Merge "Removes active_worst_quality feedback" 2014-02-12 09:20:31 -08:00
Adrian Grange 896a9ab934 Minor cleanup.
Change-Id: I6ef0ce5371ed9e2a415dd8c08c93ad603f0ad7b2
2014-02-12 09:18:00 -08:00
Deb Mukherjee d23e339202 Removes active_worst_quality feedback
Removes certain cases of feedback of active_worst_quality,
and removes it from the RATE_CONTROL structure. Now active
worst quality is expected to be computed locally in the
q picking function during the encode.
Making temporal filter strength depend on avg_frame_qindex
rather than on active_worst_quality actually improves
performance esp. for yt.
derf: +0.038%
yt: +0.359%

Change-Id: I1fe5a343034b55af9322289165321f00ac0827b1
2014-02-11 16:59:56 -08:00
Yunqing Wang 507fd5220b Enable encode_breakout in real time encoding
In real time encoding, we enable encode_breakout to make encoding
fast. A speed feature "use_encode_breakout" is defined to set
encode_breakout thresholds for different speeds.

However, currently, static_thresh is an encoder option. The encode_
breakout can be turned off if user sets static_thresh=0 specifically.

The rtc set borg test result: (need to set --static_thresh=1)
speed -5, psnr loss -3.543%;
speed -4, psnr loss -2.358%;
speed -3, psnr loss -0.771%.

Encoding speed test:
speed -5, 11% - 60% speedup;
speed -4, 5.5% - 28% speedup;
speed -3, 0.8% - 7% speedup.

Change-Id: Icde592ffbe77eac7446f872a2e9eb2051733677b
2014-02-11 15:30:54 -08:00
Jingning Han 220e9a932e Merge "Use more meaningful names for speed features" 2014-02-11 08:49:35 -08:00
Paul Wilkins f30b323180 Modified Aq1 and Aq2
Aq 1 only updates segment map on kf and arf and
only uses 3 segments. With these settings AQ1 is
+ for most clips in SSIM but negative in psnr.
However, the penalty in PSNR is much less than
previously.

Old version aq1 average results for std hd
-20.899% psnr, -5.809% SSIM
New version aq1 for std hd
-3.57% psnr, +1.23% SSIM

Aq2 Now uses only 2 segments and rd.
This mode is still slightly negative for most clips on
psnr and SSIM but seems to have a much bigger visual
impact on several problem clips than aq mode 1.

Old results for std hd:
-2.578% psnr, -1.151% SSIM
New results for std hd:
-1.561% psnr, -0.85% SSIM

Change-Id: I94f57f8a73121629ce598fb921aad761c1450e1c
2014-02-11 16:27:05 +00:00
Frank Galligan d51ca0db00 Merge "Add get release decoder frame buffer functions." 2014-02-11 08:19:37 -08:00
Deb Mukherjee 992500b8cb Merge "Further one-pass vbr rate control changes" 2014-02-10 16:38:19 -08:00
Jingning Han 734938dc6b Use more meaningful names for speed features
Use frame_parameter_update to precisely describe the functionality.

Change-Id: Ia9a55ba8efef7b987e30d949dd00ac716189bdb9
2014-02-10 15:20:11 -08:00
Yaowu Xu 3da25f29f5 Merge "Merged two similar functions to reduce duplication" 2014-02-10 14:50:01 -08:00
Deb Mukherjee 15fb5510a8 Further one-pass vbr rate control changes
Some parameter changes and fixes on one-pass rate control.
derfraw300 is now only 10% below 2-pass speed 0 rate control.

Change-Id: I1940eef8a5a035dc18e71b880d5e00cabd1f01b9
2014-02-10 14:27:19 -08:00
Frank Galligan e8e152799b Add get release decoder frame buffer functions.
This CL changes libvpx to call a function when a frame buffer
is needed for decode. Libvpx will call a release callback when
no other frames reference the frame buffer. This CL adds a
default implementation of the frame buffer callbacks. Currently
only VP9 is supported. A future CL will add support for
applications to supply their own frame buffer callbacks.

Change-Id: I1405a320118f1cdd95f80c670d52b085a62cb10d
2014-02-10 14:08:11 -08:00
Yaowu Xu 855070e254 Merged two similar functions to reduce duplication
Function encode_rtc_frame_internal() and encode_frame_internal() only
differed by a couple of speed features, this commit relocation those
difference into the setup of speed features and merged two functions
into one to remove duplication.

It also fixed a subtle bug super_fast_rtc was used before it was
initialized.

Change-Id: I234a5a1d11a4450930e5b4943dbab434208d5030
2014-02-10 11:36:42 -08:00
Marco Paniconi 812bacc919 Some updates and fixes for layered CBR mode.
-Properly set the average frame size for each layer.

-Allow each layer to update its average/last Q stats after encoding.

-Initialize for some layer context variables.

Change-Id: Iaa37d144fcf4f30ff4283a4e8db8b9ca8bf4c815
2014-02-10 10:21:20 -08:00
Dmitry Kovalev cd0ffb4228 Removing references to nonexistent functions.
Change-Id: Ib093d2b9030006806ef9eba16c114f25a58e8f6b
2014-02-07 16:45:19 -08:00
Deb Mukherjee b2209c3346 Parameter fixes for one-pass non-cbr mode
Fixes some of the parameters for 1-pass non-cbr mode.
Also includes some cleanups, inlcuding refactoring of the
recode_loop options.

Results on derfraw300 improve by about 5-6%, so that the one-pass
mode is now 13% below the 2-pass mode in speed 0.

Change-Id: I844cc2638694c7574f3be00d41d60b23dc1016f0
2014-02-06 13:49:52 -08:00
Marco Paniconi 4864ab21b0 Layer based rate control for CBR mode.
This patch adds a buffer-based rate control for temporal layers,
under CBR mode.

Added vpx_temporal_scalable_patters.c encoder for testing temporal
layers, for both vp9 and vp8 (replaces the old vp8_scalable_patterns).

Updated datarate unittest with tests for temporal layer rate-targeting.

Change-Id: I8900a854288b9354d9c697cfeb0243a9fd6790b1
2014-02-06 09:24:45 -08:00
Dmitry Kovalev a1cfcc0af8 Merge "Cleaning up encode_frame_to_data_rate()." 2014-02-05 18:03:56 -08:00
Dmitry Kovalev 66188f3a78 Cleaning up recode_loop_test().
Change-Id: Iaa6d01221a1f82ce9b500c85e186ab53b92aae9a
2014-02-05 15:46:11 -08:00
Dmitry Kovalev 2f05847dbc Cleaning up encode_frame_to_data_rate().
Change-Id: Ib76a31e68aef5cb9eeba57dc58d9c30c9c98ed95
2014-02-05 15:35:37 -08:00