Commit Graph

115 Commits

Author SHA1 Message Date
Adrian Grange
086ae99235 Fixed handling of regularly placed keyframes
The encoder was not handling requests to place keyframes at
fixed intervals, i.e. kf_min_dist == kf_max_dist, correctly.

In this case when looking to place the next keyframe it was
accumulating stats all the way up to the end of the firstpass
file. This patch corrects this behavior.

Change-Id: I948ad9f1d7faa0c05861df588136cce3bb61d7e7
2014-04-23 16:59:43 -07:00
Dmitry Kovalev
ef003078e8 Renaming "onyx" to "encoder".
Actual renames:
  vp9_onyx_if.c -> vp9_encoder.c
  vp9_onyx_int.h -> vp9_encoder.h

Change-Id: I80532a80b118d0060518e6c6a0d640e3f411783c
2014-04-22 14:57:05 -07:00
Adrian Grange
4fa3e98876 Merge "Force ARNR filtering to be centered on the ARF frame" 2014-04-22 10:39:02 -07:00
Adrian Grange
59e733ca81 Force ARNR filtering to be centered on the ARF frame
ARNR filtering is now forced to be centered on the ARF
frame and the other two options have been removed.

The other modes of constructing the ARNR frame were
not used and there does not seem to be any good
reason to maintain them.

This is purely an encoder-side change.

Change-Id: Ic772636d23f280752973852b9740083532a49de2
2014-04-22 08:03:25 -07:00
Deb Mukherjee
02104ebbdc Merge "Adds test code for supplemental superframe data" 2014-04-22 06:53:18 -07:00
Paul Wilkins
de43d2c67e Merge "Change naming of end_usage parameter." 2014-04-21 18:29:22 -07:00
Deb Mukherjee
26210c672a Adds test code for supplemental superframe data
Adds test code to verify that supplemental superframe information
that precedes the normal superframe information will not break
decoding.

Change-Id: Ia252b887d7ee138f51dc9a778376ff739402c455
2014-04-21 11:58:36 -07:00
Paul Wilkins
4c7af859d7 Change naming of end_usage parameter.
The end_useage parameter  is confusingly named since it
now actually defines the rate control method used.

Change-Id: I98912caabfe556b7af0b939a645d1336409e4d71
2014-04-21 11:49:38 -07:00
Dmitry Kovalev
513743bd2c Inlining and removing encoder_common_init().
Change-Id: I35f948fe1ac107950c8d8e4ba06e5a95ac4ec30e
2014-04-18 18:17:43 -07:00
Dmitry Kovalev
07f86d0944 Renaming VP9_CONFIG to VP9EncoderConfig.
Change-Id: Id48edd12c6f649c82113128491ef6ea7410e93b2
2014-04-18 11:01:36 -07:00
Dmitry Kovalev
2c8c1f5370 Replacing cpu_used with speed in VP9_CONFIG.
Change-Id: I86b85b5c11388e84a48f8936330c0d920df5d1f0
2014-04-16 18:31:42 -07:00
Dmitry Kovalev
617a367c54 Merge "Consistent mode names." 2014-04-15 22:59:37 -07:00
Dmitry Kovalev
f3739f9052 Consistent mode names.
Change-Id: Icb4851d98c951506fe5d73d8d5a8ac7e53fecfd0
2014-04-14 14:09:39 -07:00
Adrian Grange
f7bd1274e3 Enable vpxenc to specify internal coded frame size
Added command line flags "resize-width" & "resize-height"
to allow the user to specify the frame size to encode at.

These two flags are ignored if the "resize-allowed" switch
is not set to 1.

All frames in the clip are then encoded at this size, which
must be smaller than the raw frame size.

Change-Id: I3d64bd9303d5c0bd678461a866a1ea621700d744
2014-04-14 10:54:19 -07:00
Dmitry Kovalev
d1a396d8b9 Moving q_trans[] table to vp9_quantize.{c, h}.
Change-Id: I1324c339815a47004ddccdaf651d24c60382b92f
2014-04-09 13:35:39 -07:00
Dmitry Kovalev
a30ff3458d Merge "Applying q_trans[] inside set_encoder_config()." 2014-04-09 10:25:59 -07:00
Dmitry Kovalev
5db5154029 Applying q_trans[] inside set_encoder_config().
Change-Id: Ib64edeb58b3e25488fb85bbe85c9decb15b4d0a1
2014-04-08 19:43:08 -07:00
Deb Mukherjee
d35df2d8ea High-level hooks for Profile 2 (10/12 bit)
Adds some high-level hooks for profile 2 before further
progress on the implementation.

According to the definitiion in this patch:
1. Profile 2 only supports 10 or 12 bit color but not 8
2. Profile 2 supports all color sampling modes: 444, 422 and 420,
and alpha plane.
3. Profile 3 is currently undefined.

Please consider the definition carefully and suggest modifications
to the definition as needed.

Change-Id: I5b284fc679e54ac5aee171af72fa7994cfd28995
2014-04-08 16:18:34 -07:00
Dmitry Kovalev
b5e12dda52 Cleaning up vp9_{cx, dx}_iface.c files.
Change-Id: Ib4e31ba74c4b882bd93942ef743f4a189892738d
2014-04-07 10:38:51 -07:00
Marco Paniconi
0eb88c9064 Add codec control function for enabling frame_periodic_boost.
Change-Id: I6371ef7301c6bc3138552bd349e9bd154dee3e08
2014-04-03 15:49:03 -07:00
Deb Mukherjee
97f4fb7b5f Rate ctrl changes to track target bitrates closer
Turns off the DISABLE_RC_LONG_TERM_MEM macro and makes other changes
in the way the bits are updated, to make 2-pass rate control track
target bitrates closer.

Change-Id: I5f3be4b11c2908e6a9a9a1dd4fcf4e65531c44d8
2014-04-02 11:16:20 -07:00
Dmitry Kovalev
79b168f388 Cleaning up vp9_cx_iface.c file.
Change-Id: I4de07d3ef81ebba759a983207d9ca768a65220a6
2014-04-01 17:14:55 -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
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
Dmitry Kovalev
016bc2e744 Removing output_partition from vp9.
Change-Id: I5e0c558b86cf300722ab34fa45ab4ad7c81bd4df
2014-03-21 16:10:51 -07:00
Yaowu Xu
98ed74d942 Change the min/max q validation in lossless mode
This commit changed how q is validated in lossless mode. With this
commit, when --lossless=1 is specificed at commandline, --min-q and
--max-q are now ignored. This is to make the option non-ambiguious.

Change-Id: I33e85690460537509d33be75d6a3597be4affc09
2014-03-20 19:22:27 -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
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
Dmitry Kovalev
b8bc2d337a Fixing warnings/errors from c++ compiler.
Change-Id: Ia561dda53f2dd10e3a10a2df2adb8027ab19397a
2014-03-18 10:47:51 -07:00
Dmitry Kovalev
a91467a0dd Merge "Cleaning up vp9_cx_iface.c file." 2014-03-13 13:45:19 -07:00
Dmitry Kovalev
286669d50d Cleaning up vp9_cx_iface.c file.
Change-Id: I491fc2330734517c466f62c99b82e46d46b98875
2014-03-12 16:57:15 -07:00
Dmitry Kovalev
a518632cd6 Renaming vp8_cfg to extra_cfg + cleanup.
Change-Id: I9a67dec9c198ce1dca90c086be55ad050c5c6f6c
2014-03-12 15:49:49 -07:00
Alex Converse
75272c97cb Merge "Add a conservative RD based active map in vp9." 2014-03-11 13:39:33 -07:00
Dmitry Kovalev
b2c34d5539 Using enums instead of integers.
Change-Id: Ic0d74ab3a4c0c854fbcf59d9df5212c218bc68f9
2014-03-10 18:33:08 -07:00
Alex Converse
29a487c77f Add a conservative RD based active map in vp9.
Change-Id: I47b3c38aadfd8f3ea08515a18a5948aa1375c650
2014-03-10 15:48:43 -07:00
Dmitry Kovalev
ab1f905438 Cleaning up rd_pick_sb_modes() function.
Changing aq_mode type from int to AQ_MODE enum.

Change-Id: Ib7b5f0b70d02ded58a31dfade9c05a347f73beca
2014-03-10 10:58:32 -07:00
Dmitry Kovalev
3f1ab25812 Removing vp9_onyx.h and moving its content to the encoder.
Change-Id: I03451c88536bc498edddbe0cd9773ff79da085c2
2014-03-05 23:33:22 -08:00
Dmitry Kovalev
fe7b1d0a8d Removing VP9_PTR.
Change-Id: Ib49d8dbc67c590f22a1a70251ff607c9f38febd7
2014-03-03 16:50:16 -08:00
Paul Wilkins
fdc73955f0 Silence int64 to int warning
Change-Id: Ic97ddd5143425a7b63fac4e40d9740a10a0491ad
2014-03-03 15:30:13 +00:00
Minghai Shang
8c196b27b3 [svc] Add target bitrate settings for each layers.
Change-Id: Ia7677fb436667bc4f76db71f65e4784f433f7826
2014-02-26 13:30:50 -08:00
Yaowu Xu
f1633e5844 Merge "Remove an unused variable" 2014-02-21 22:44:05 -08:00
Yaowu Xu
c58e1c7be9 Remove an unused variable
Change-Id: I8eeec70a7d4403243762f14d0b560792801645e8
2014-02-20 14:49:44 -08:00
Jingning Han
aa7c495472 Rename vp8_cfg to vp9_cfg in vp9_cx_iface
This variable takes control parameters for vp9 encoder, hence
renamed vp9_cfg.

Change-Id: I9b253c41a06e44d97fe699f26005cd71e2eeb36c
2014-02-19 13:46:48 -08:00
Jim Bankoski
24025c0477 vp9_cx_iface vp9_dx_iface vpxdec vs warnings
Change-Id: I747982e7d1157a8b45f4034ddf207306f9f957e0
2014-02-15 09:14:02 -08:00
Tom Finegan
ad2fa5e7d5 vp9/vp9_cx_iface: Silence ts_number_layers MSVC warnings
Silence signed/unsigned mismatch warnings by adding casts where
ts_number_layers does not match the sign of the variable to which
it is being compared.

Change-Id: Iab25e18c877d158b2b2b417de7da94669648b2fa
2014-02-13 11:41:16 -08:00
Adrian Grange
896a9ab934 Minor cleanup.
Change-Id: I6ef0ce5371ed9e2a415dd8c08c93ad603f0ad7b2
2014-02-12 09:18:00 -08:00
James Zern
ab4b17a4d4 Merge "Remove unnecessary local variables." 2014-02-07 16:45:24 -08:00
Adrian Grange
f0e896c120 Merge "Remove out of date comment." 2014-02-06 13:40:42 -08:00
Adrian Grange
37d7cb607e Remove unnecessary local variables.
Change-Id: I1cdcd847f258967534ef30ba15894b486f1519a8
2014-02-06 13:38:00 -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