- 17 Dec, 2014 1 commit
-
-
Yaowu Xu authored
This commit removes undefined value options of cpu-used for VP9 and changed vpxenc prompt to reflect the usable range of [-8,8] Change-Id: Ib80fef3dbb6ec9aabac45ed13e8ab6fbaf94f55e
-
- 04 Dec, 2014 1 commit
-
-
Yunqing Wang authored
Currently, VP9 supports column-tile encoding, which allows a frame to be encoded in multiple column tiles independently. The number of column tiles are set by encoder option "--tile-columns". This provides a way to encode a frame in parallel. Based on previous set of patches, this patch implemented the tile- based multi-threaded encoder. Each thread processes one or more tiles. Usage: For HD clips: --tile-columns=2 --threads=1/2/3/4 While using 4 threads, tests showed that the encoder achieved 2.3X - 2.5X speedup at good-quality speed 3, and 2X speedup at realtime speed 5. Change-Id: Ied987f8f2618b1283a8643ad255e88341733c9d4
-
- 13 Nov, 2014 1 commit
-
-
Adrian Grange authored
Prepare for the introduction of frame-size change logic into the recode loop. Separated the speed dependent features into separate static and dynamic parts, the latter being those features that are dependent on the frame size. Change-Id: Ia693e28c5cf069a1a7bf12e49ecf83e440e1d313
-
- 11 Nov, 2014 1 commit
-
-
Deb Mukherjee authored
Adds support for one-pass rc-enabled SVC encoder with callbacks for getting per-layer packets. - the callback function registration is implemented as an encoder control function. - if the callback function is not registered, the old way of aggregating packets with superframe will take effect. - one more control function “VP9E_GET_SVC_LAYER_ID” has been implemented to get the temporal/spatial id from the encoder within the callback. This can be used to get the ids to put on RTP packet. Change-Id: I1a90e00135dde65da128b758e6c00b57299a111a
-
- 27 Oct, 2014 1 commit
-
-
Yaowu Xu authored
0 means that golden boost is off, and uses average frame target rate, a non-zero number means the percentage of boost over average frame bitrate is given initially to golden frames in CBR mode. Change-Id: If4334fe2cc424b65ae0cce27f71b5561bf1e577d
-
- 24 Oct, 2014 1 commit
-
-
Yaowu Xu authored
Change-Id: I205de3611622cff7f751ea8baf9f82784581730a
-
- 20 Oct, 2014 1 commit
-
-
Paul Wilkins authored
Extend --auto-alt-ref from parameter so we can use it to turn multi-arf on and off from the command line. For now the range is 0-off, 1-on, 2-multi-arf on. Rename play_alternate to enable_auto_arf Change-Id: Id7b64407cfbe76ba0090a83b588a03e22a240386
-
- 16 Oct, 2014 2 commits
-
-
Minghai Shang authored
We encode a empty invisible frame in front of the base layer frame to avoid using prev_mi. Since there's a restriction for reference frame scaling factor, we have to make it smaller and smaller gradually until its size is 16x16. Change remerged. Change-Id: I9efab38bba7da86e056fbe8f663e711c5df38449
-
Paul Wilkins authored
This reverts commit c113457a. Temporary revert to allow clean revert of another commit. Change-Id: Ia9b7b755e6c48e1b6e383329f121fef175a24b27
-
- 14 Oct, 2014 1 commit
-
-
Minghai Shang authored
We encode a empty invisible frame in front of the base layer frame to avoid using prev_mi. Since there's a restriction for reference frame scaling factor, we have to make it smaller and smaller gradually until its size is 16x16. Change-Id: I60b680314e33a60b4093cafc296465ee18169c19
-
- 02 Oct, 2014 1 commit
-
-
Deb Mukherjee authored
Change-Id: I034b73bb27e8023733aae63e6f8565f0a64c7267
-
- 30 Sep, 2014 1 commit
-
-
Deb Mukherjee authored
Change-Id: Ie9fb6a4078eb6a3fb7c4ff1453831ab9afe23121
-
- 19 Sep, 2014 1 commit
-
-
Minghai Shang authored
vpx_svc_parameters_t contains id, resolution and min/max qp for each spatial layer. In this change we will use extra config to send min/max qp and scaling factors, then calculate layer resolution inside encoder. Change-Id: Ib673303266605fe803c3b067284aae5f7a25514a
-
- 18 Sep, 2014 1 commit
-
-
Minghai Shang authored
Overhead goes down from 8% to 3% for 1080 60p Change-Id: Idf3e5ca8712402a914a8cb79df17d3cdab63b163
-
- 12 Sep, 2014 2 commits
-
-
JackyChen authored
Change from VP8E_SET_NOISE_SENSITIVITY to VP9E_SET_NOISE_SENSITIVITY Change-Id: Ia210a7029b26924e30973f0f9798a338e0412407
-
Deb Mukherjee authored
Adds various high bitdepth transform functions and tests. Much of the changes are related to using typedefs tran_low_t and tran_high_t for the final transform cofficients and intermediate stages of the transform computation respectively rather than fixed types int16_t/int. When vp9_highbitdepth configure flag is off, these map tp int16_t/int32_t, but when the flag is on, they map to int32_t/int64_t to make space for needed extra precision. Change-Id: I3c56de79e15b904d6f655b62ffae170729befdd8
-
- 11 Sep, 2014 1 commit
-
-
Minghai Shang authored
Change-Id: I97d0cf095e9cfefdfa0f65eb5e96d6848cc9ffca
-
- 04 Sep, 2014 2 commits
-
-
Dmitry Kovalev authored
Change-Id: Ifa3c1cc2317c1bc21d1042b9662b35056d1e9ed0
-
Dmitry Kovalev authored
Change-Id: I811526a9ee9f237604f72abe7fc677e39e0f457f
-
- 03 Sep, 2014 1 commit
-
-
Dmitry Kovalev authored
Change-Id: I5a03496de035fbcf31e4527cd25fcae4627a57a0
-
- 02 Sep, 2014 2 commits
-
-
Deb Mukherjee authored
Adds config parameter vp9_highbitdepth, to support highbitdepth profiles. Also includes most vpx level high bit-depth functions. However encode/decode in the highbitdepth profiles will not work until the rest of the code is in place. Change-Id: I34c53b253c38873611057a6cbc89a1361b8985a6
-
Minghai Shang authored
It's built based on current spatial svc code. We only support one spatial two temporal layers at this time. Change-Id: I1fdc8584354b910331e626bfae60473b3b701ba1
-
- 28 Aug, 2014 1 commit
-
-
Dmitry Kovalev authored
In order to understand memory layout consider the declaration of the following structs. The first one is a part of our API: struct vpx_codec_ctx { // ... struct vpx_codec_priv *priv; }; The second one is defined in vpx_codec_internal.h: struct vpx_codec_priv { // ... }; The following struct is defined 4 times for encoder/decoder VP8/VP9: struct vpx_codec_alg_priv { struct vpx_codec_priv base; // ... }; Private data allocation for the given ctx: struct vpx_codec_ctx *ctx = <get> struct vpx_codec_alg_priv *alg_priv = <allocate> ctx->priv = (struct vpx_codec_priv *)alg_priv; The cast works because vpx_codec_alg_priv has a vpx_codec_priv instance as a first member 'base'. Change-Id: I10d1afc8c9a7dfda50baade8c7b0296678bdb0d0
-
- 26 Aug, 2014 3 commits
-
-
Dmitry Kovalev authored
Change-Id: Icfacc695a711ec325b1d8f2b5d927a720e2bd6b4
-
Dmitry Kovalev authored
Change-Id: Icab9a4399c5687453f4bec14b8cb5000464335e5
-
Dmitry Kovalev authored
We don't output invisible frames with VP9. Change-Id: I7b874d3ac454c1b2966d5d7d72e12a864b49afae
-
- 25 Aug, 2014 1 commit
-
-
Minghai Shang authored
We can use one frame context for each layer so that we don't have to reset the probs every frame. But we can't use prev_mi since we may drop enhancement layers. So we have to generate a non vp9 compatible bitstream and modify it in the player. 1. We need to code all frames as invisible frame to let prev_mi not to be used. But in the bitstream we need to code the show_frame flag to 1 so that the publisher will know it's supposed to be a visible frame. 2. In the player we need to change the show_frame flag to 0 for all frames. Then add an one byte frame into the super frame to tell the decoder which layer we want to show. Change-Id: I75b7304cf31f0ab952f043e33c034495e88f01f3
-
- 22 Aug, 2014 2 commits
-
-
Dmitry Kovalev authored
This patch fixes slow first pass problem. Mode could only be determined from the deadline value during frame encode call. Unfortunately, we use mode value before any encode calls during the first pass encoding (see set_speed_features() logic). The mode for the first pass must be different from BEST to make first pass fast. Change-Id: I562a7d32004ff631695d91c09a44d8a9076fd6b5
-
Jim Bankoski authored
Change-Id: I3f56a4d64828a74c370a5b3247a5f00e554a922c
-
- 21 Aug, 2014 2 commits
-
-
Dmitry Kovalev authored
Change-Id: Id21f1e77f1d030fbe3f5f30486d2a7ecb2bccdf5
-
Dmitry Kovalev authored
We don’t need to introduce new macro for the null value. Change-Id: I59dbae25feeebb4e8359095801aecc8bb17d7764
-
- 20 Aug, 2014 1 commit
-
-
Dmitry Kovalev authored
The iface pointer is already in vpx_codec_ctx struct. Change-Id: I9fffe27c613a7c94476f185a1e5a53ff6d99f1c6
-
- 19 Aug, 2014 3 commits
-
-
Dmitry Kovalev authored
We have just one default set of extra config values, g_usage is never used with VP9. Change-Id: I0f1939b0a2da4522a87a393d85be8c8acf7f364c
-
Dmitry Kovalev authored
Change-Id: I76aab1e4f56a790597104b5c9b0d3543d6982eae
-
Dmitry Kovalev authored
After that change oxcf->pass and oxcf->mode become two orthogonal variables. Change-Id: I1501f83cd2805480e8118135e6d4045fb41e26d5
-
- 12 Aug, 2014 1 commit
-
-
Yaowu Xu authored
Change-Id: I87255d8a25ef8c7d235cbf3c8887d7bed7892cfe
-
- 11 Aug, 2014 1 commit
-
-
Minghai Shang authored
[spatial svc]Remove CONFIG_SPATIAL_SVC for ss_enable_auto_alt_ref in vpx_codec_enc_cfg to fix heap-overflow issue in asan config Change-Id: Icdf08501db5f416285f751d316941dfacd2c69ba
-
- 08 Aug, 2014 3 commits
-
-
Dmitry Kovalev authored
Framerate changes over time, VP9EncoderConfig supposed to have static read-only data. Change-Id: I36580a7ee71243c1eabb57691089691731d03e67
-
Dmitry Kovalev authored
We had a very complicated way to initialize cpi->pass from cfg->g_pass: switch (cfg->g_pass) { case VPX_RC_ONE_PASS: oxcf->mode = ONE_PASS_GOOD; break; case VPX_RC_FIRST_PASS: oxcf->mode = TWO_PASS_FIRST; break; case VPX_RC_LAST_PASS: oxcf->mode = TWO_PASS_SECOND_BEST; break; } cpi->pass = get_pass(oxcf->mode). Now pass is moved to VP9EncoderConfig and initialization is simple: switch (cfg->g_pass) { case VPX_RC_ONE_PASS: oxcf->pass = 0; break; case VPX_RC_FIRST_PASS: oxcf->pass = 1; break; case VPX_RC_LAST_PASS: oxcf->pass = 2; break; } Change-Id: I8f582203a4575f5e39b071598484a8ad2b72e0d9
-
Adrian Grange authored
Replaced encoder and decoder functions to get a pointer to a reference frame with a common function, vp9_get_ref_frame, and simplified it. Change-Id: Icb206fcce8caace3bfd1db3dbfa318dde79043ee
-