- 06 Nov, 2013 - 1 commit
-
-
Ivan Maltz authored
SVC multiple layer per frame encoding is invoked with vpx_svc_init and vpx_svc_encode. These interfaces are designed to be invoked from ffmpeg. Additional improvements: - make dummy frame handling a bit more explicit - fixed bug with single layer encodes - track individual frame sizes and psnrs instead of averages - parameterized quantizer, 16th scalefactors, more logging, - enabled single layer encodes to generate baseline - include new mode for 3 layer I frame with 5 total layers Change-Id: I46cfa600d102e208c6af8acd6132e0cc25cda8d4
-
- 29 Oct, 2013 - 1 commit
-
-
Dmitry Kovalev authored
Warning was: "implicit conversion from enumeration type 'VPX_SCALING_MODE' (aka 'enum vpx_scaling_mode_1d') to different enumeration type 'VPX_SCALING'". Change-Id: I45689e439a8775bc1e7534d0ea1ff7c729f2c7f5
-
- 24 Oct, 2013 - 1 commit
-
-
Yaowu Xu authored
set_active_map() set_roi_map() The APIs need be implemented and tested later, to insure consistency with VP9 codec internals Change-Id: I198124ee318f0883b58d1d36cea3c7ccd742a57e
-
- 22 Oct, 2013 - 1 commit
-
-
James Zern authored
This reverts commit a82001b1, reversing changes made to f6d870f7. This commit breaks windows builds and needs some work to fix those and some additional comments. Change-Id: Ic0b0228e36704b127e5e399ce59db26182cfffe7
-
- 21 Oct, 2013 - 1 commit
-
-
Ivan Maltz authored
These changes were originally made in the Stratacaster team-review repository commit e114bffcd82ad74c3696ec58e13c0ac895d6c82d Author: Charles 'Buck' Krasic <ckrasic@google.com> Date: Mon Oct 14 16:52:13 2013 -0700 Make dummy frame handling a bit more explicit, fixing bug with single layer encodes. Squashed commit of the following: commit 1ebbfd976c0fadb02bf1ea562a2d0e3f0206daad Merge: ac468dde 54e88b7 Author: Ivan Maltz <ivanmaltz@google.com> Date: Fri Oct 11 17:29:58 2013 -0700 Move SVC code from vp9_spatial_scalable_encoder to libvpx module accessible from ffmpeg commit 54e88b78b160becc9569fc3c6cb6b0a8c95dc357 Author: Ivan Maltz <ivanmaltz@google.com> Date: Tue Oct 8 09:08:40 2013 -0700 common svc encoding code for sample app and ffmpeg added svc_encodeframe.c, svc_context.h, svc_test.cc vp9_spatial_scalable_encoder uses vpx_svc_encode commit 5616ec8e2e3d3e8d277333d8a9242f6c70151162 Merge: 4528014 e29137df Author: Ivan Maltz <ivanmaltz@google.com> Date: Tue Oct 8 08:47:58 2013 -0700 Merge branch 'master' into stratacaster commit 45280148450b1f3d61e390df8aadedf85cd5bce1 Merge: bb2b675 1ab60f7b Author: Sujeevan Rajayogam <sujee@google.com> Date: Fri Oct 4 10:22:31 2013 -0700 Merge branch 'master' into stratacaster commit bb2b675e595dc9bfc8551e963edf56800c3aea61 Author: Sujeevan Rajayogam <sujee@google.com> Date: Wed Oct 2 12:37:26 2013 -0700 Track individual frame sizes and psnrs instead of averages. commit c6d303b714795c81e7ceb4173967115c9f8ff5b7 Merge: fa87df9 35830879 Author: Sujeevan Rajayogam <sujee@google.com> Date: Fri Sep 27 10:05:35 2013 -0700 Merge branch 'master' into stratacaster commit fa87df94fba923d9f7aeb8ae20c6e15f777e00b5 Merge: bf22d71 3c465af2 Author: Sujeevan Rajayogam <sujee@google.com> Date: Thu Sep 26 16:10:31 2013 -0700 Merge branch 'master' into stratacaster commit bf22d7144895a82e0c348ac177c8a261b9e2b88e Author: Sujeevan Rajayogam <sujee@google.com> Date: Thu Sep 26 11:10:34 2013 -0700 Parameterized quantizer, 16th scalefactors, more logging, enabled single layer encodes to generate baseline. commit ceffd7e6025b765f9886b5ea0f324248aa37e327 Author: Sujeevan Rajayogam <sujee@google.com> Date: Thu Sep 19 10:04:49 2013 -0700 - Include new mode for 3 layer I frame with 5 total layers. - Refactor svc api. Change-Id: Ie4d775e21e006fa597d884c59488dc999478e9b5
-
- 16 Oct, 2013 - 1 commit
-
-
Marco Paniconi authored
Change-Id: I58c5436f5c95f6012fb2891cd2a02f76e4870b6a
-
- 10 Oct, 2013 - 1 commit
-
-
Jingning Han authored
Change-Id: Ifef756a3a91423bb9f5411f06fa092027be21ecf
-
- 05 Oct, 2013 - 1 commit
-
-
Jim Bankoski authored
Change-Id: I4f66d6f1aebe7d47ad01cda9b03c600725240680
-
- 26 Sep, 2013 - 1 commit
-
-
Dmitry Kovalev authored
vp9/vp9_cx_iface.c:92: warning: type qualifiers ignored on function return type Change-Id: I6f130e280e2db261506a4af8ce11fc788ad13198
-
- 23 Sep, 2013 - 1 commit
-
-
Deb Mukherjee authored
Adds modeled functions to decide the qp for altref frames in constant q mode similar to other functions in use in bitrate mode. Also turns on the constrained quality mode (end-usage=2) option which was turned off before. Basic testing shows the mode works in principle, to cap bitrate to the target-bitrate specified, while allowing lower bitrate depending on the cq-level specified. The mode will need to be improved over time. Results for constant quality vs bitrate control mode: derfraw300/fullderfraw: +3.0% at constant quality over bitrate control. fullstdhdraw: +4.341% stdhdraw250: +5.361% Change-Id: If5027c9ec66c8e88d33e47062c6cb84a07b1cda9
-
- 19 Sep, 2013 - 1 commit
-
-
Yaowu Xu authored
Change-Id: I76f440a917832c02d7a727697b225bac66b99f56
-
- 17 Sep, 2013 - 1 commit
-
-
Yaowu Xu authored
Change-Id: I16633269582a640809dca27572bbe99efa6369fc
-
- 12 Sep, 2013 - 1 commit
-
-
Jim Bankoski authored
Convert from refframe_type_t to VP9_REFFRAME Change-Id: Iff4043c3fdb3e1c9c2b412bdffd5da8ed913ec13
-
- 09 Sep, 2013 - 1 commit
-
-
Ivan Maltz authored
Sample app: vp9_spatial_scalable_encoder vpx_codec_control extensions: VP9E_SET_SVC VP9E_SET_WIDTH, VP9E_SET_HEIGHT, VP9E_SET_LAYER VP9E_SET_MIN_Q, VP9E_SET_MAX_Q expanded buffer size for vp9_convolve modified setting of initial width in vp9_onyx_if.c so that layer size can be set prior to initial encode Default number of layers set to 3 (VPX_SS_DEFAULT_LAYERS) Number of layers set explicitly in vpx_codec_enc_cfg.ss_number_layers Change-Id: I2c7a6fe6d665113671337032f7ad032430ac4197
-
- 06 Sep, 2013 - 1 commit
-
-
Deb Mukherjee authored
Adds a new end-usage option for constant quality encoding in vpx. This first version implemented for VP9, encodes all regular inter frames using the quality specified in the --cq-level= option, while encoding all key frames and golden/altref frames at a quality better than that. The current performance on derfraw300 is +0.910% up from bitrate control, but achieved without multiple recode loops per frame. The decision for qp for each altref/golden/key frame will be improved in subsequent patches based on better use of stats from the first pass. Further, the qp for regular inter frames may also be varied around the provided cq-level. Change-Id: I6c4a2a68563679d60e0616ebcb11698578615fb3
-
- 04 Sep, 2013 - 1 commit
-
-
Jim Bankoski authored
Vp9 postproc is disabled for now as its not been shown to help and may be merged with vp8. Change-Id: I25620d6cd34c6e10331b18c7b5ef7482e39c6057
-
- 21 Aug, 2013 - 1 commit
-
-
Deb Mukherjee authored
Currently, the best quality mode in VP9 is not very well developed, and unnecessarily makes the encode too slow. Hence the command line default is changed to "good" quality. Also, the number of passes default is changed to 2 passes as well, since 1-pass encoding is not very efficient in VP9. Besides, a number of VP9 defaults are set to the currently recommended settings. With these changes, vpxenc run with --codec=vp9 --kf-max-dist=9999 --cpu-used=0 should work about the same as our borg results. Note when the --cpu-used=0 option is dropped there will be a slight difference in the output, because of a difference in the cpu-used value for the first pass. Specifically, the default when unspecified is to use cpu_used=1 for the first pass and cpu_used=0 for the second pass. But when specified, both passes will use the cpu-used value specified. Note that this also changes the default for VP8 as being "good" but other options stay unchanged. Change-Id: Ib23c...
-
- 16 Jul, 2013 - 1 commit
-
-
James Zern authored
s/frame_rate/framerate/g Change-Id: I6fc3e088e419c5f46e3a9390dd8a2cad2677a2fc
-
- 03 Jul, 2013 - 1 commit
-
-
Scott LaVarnway authored
This patch allows the frame_parallel_decoding_mode flag to be set instead of returning a codec error. Change-Id: I4a1631c625723ac8873290d0fd0211074a87d112
-
- 23 May, 2013 - 1 commit
-
-
Dmitry Kovalev authored
Change-Id: Ia74e7cf626db46ab47a74fe003602a55b949244c
-
- 15 May, 2013 - 1 commit
-
-
Dmitry Kovalev authored
Change-Id: I8b2687138df636b2b78c8cc5156e3882b0009de0
-
- 10 May, 2013 - 1 commit
-
-
John Koleszar authored
Make framebuffer allocations according to the chroma subsamping factors in use. A bit is placed in the raw part of the frame header for each of the two subsampling factors. This will be moved in a future commit to make them part of the TBD feature set bits, probably only set on keyframes, etc. Change-Id: I59ed38d3a3c0d4af3c7c277617de28d04a001853
-
- 15 Apr, 2013 - 1 commit
-
-
Adrian Grange authored
This is work-in-progress, it implements multiple ARF encoding behind an experimental flag. It adds the ability to insert multiple ARF frames into a single ARF group. This patch implements the reordering of the coded frames, and implements a fixed-length coding pattern. It applies a fixed quantizer strategy based on where the frame is in the coding sequence. Further work to modify the rate control strategy is ongoing and will be submitted via a set of future patches. In this first step, each ARF group is recursively bisected and an ARF frame added at that position in the sequence. The recursion continues until ARF frames are within MIN_GF_INTERVAL frames. The code sits behind the "multiple-arf" experimental flag ("CONFIG_MULTIPLE_ARF"). The experimental flag "oneshotq" ("CONFIG_ONESHOTQ") also needs to be enabled for this patch to work correctly. Change-Id: Ie473b05ebb43ac473c0cfb659b2b8042823085e2
-
- 27 Mar, 2013 - 1 commit
-
-
John Koleszar authored
Restore ABI compatibility with the master branch. Change-Id: Ic57e7e1de09ab33bd37990e52a63ba7c8f1432a4
-
- 20 Mar, 2013 - 1 commit
-
-
Dmitry Kovalev authored
Renaming Width to width, Height to height and Version to version in several structs and function signatures. Change-Id: I084c3f7e747cb2ce3345aff27a3dff9b13a87543
-
- 14 Mar, 2013 - 2 commits
-
-
John Koleszar authored
Updates the YV12_BUFFER_CONFIG structure to be crop-aware. The exiting width/height parameters are left unchanged, storing the width and height algined to a 16 byte boundary. The cropped dimensions are added as new fields. This fixes a nasty visual pulse when switching between scaled and unscaled frame dimensions due to a mismatch between the scaling ratio and the 16-byte aligned sizes. Change-Id: Id4a3f6aea6b9b9ae38bdfa1b87b7eb2cfcdd57b6
-
John Koleszar authored
This is like VP8_COPY_REFERENCE, but returns a pointer to the reference frame rather than a copy of it. This is useful when the application doesn't know what the size of the reference is, as is the case when scaling is in effect. Change-Id: I63667109f65510364d0e397ebe56217140772085
-
- 12 Mar, 2013 - 1 commit
-
-
John Koleszar authored
If a superframe (ARF) is generated while flushing the lagged frames at the end of the clip, the buffer pointer wasn't being properly updated to account for the size of the index, causing the next frame to overwrite the index on the previous frame. Change-Id: Ib158cc8e4183d663bdfb9ba002dd4c98916abdc9
-
- 05 Mar, 2013 - 1 commit
-
-
John Koleszar authored
A 'superframe' is a group of frames that share the same PTS, but have a defined decoding order. This commit adds the ability to append an index to such a group of frames, allowing for random access to the constituent frames. This could be useful for frame-level parallelism or partial decoding in a multilayer scenario. Decoding the stream serially without such an index should work as a fallback, and VP9/TestSuperframeIndexIsOptional verifies that. Change-Id: Idff83b7560e1a7077d8fb067bfbc45b567e78b1c
-
- 04 Mar, 2013 - 1 commit
-
-
Jingning Han authored
Fixed a couple of variable/function definitions, as well as header handling to support 16K sequence coding at high bit-rates. The width and height are each specified by two bytes in the header. Use an extra byte to explicitly indicate the scaling factors in both directions, each ranging from 0 to 15. Tested coding up to 16400x16400 dimension. Change-Id: Ibc2225c6036620270f2c0cf5172d1760aaec10ec
-
- 20 Feb, 2013 - 1 commit
-
-
Yaowu Xu authored
Change-Id: I7b7b8d4fda3a23699e0c920d727f8c15d37d43aa
-
- 13 Feb, 2013 - 1 commit
-
-
Ronald S. Bultje authored
These allow sending partial bitstream packets over the network before encoding a complete frame is completed, thus lowering end-to-end latency. The tile-rows are not independent. Change-Id: I99986595cbcbff9153e2a14f49b4aa7dee4768e2
-
- 12 Feb, 2013 - 1 commit
-
-
Ronald S. Bultje authored
This is after discussion with the hardware team. Update the unit test to take these sizes into account. Split out some duplicate code into a separate file so it can be shared. Change-Id: I8311d11b0191d8bb37e8eb4ac962beb217e1bff5
-
- 08 Feb, 2013 - 1 commit
-
-
John Koleszar authored
Allows inter-frames to change resolution. Currently these are almost equivalent to keyframes, as only intra prediction modes are allowed, but without the other context resets that occur on keyframes. Change-Id: Icd1a2a5af0d9462cc792588427b0a1f5b12e40d3
-
- 05 Feb, 2013 - 1 commit
-
-
Ronald S. Bultje authored
This patch adds column-based tiling. The idea is to make each tile independently decodable (after reading the common frame header) and also independendly encodable (minus within-frame cost adjustments in the RD loop) to speed-up hardware & software en/decoders if they used multi-threading. Column-based tiling has the added advantage (over other tiling methods) that it minimizes realtime use-case latency, since all threads can start encoding data as soon as the first SB-row worth of data is available to the encoder. There is some test code that does random tile ordering in the decoder, to confirm that each tile is indeed independently decodable from other tiles in the same frame. At tile edges, all contexts assume default values (i.e. 0, 0 motion vector, no coefficients, DC intra4x4 mode), and motion vector search and ordering do not cross tiles in the same frame. t log Tile independence is not maintained between frames ATM, i.e. tile 0 of frame 1 is free to use motion vect...
-
- 26 Jan, 2013 - 1 commit
-
-
Deb Mukherjee authored
Adds a flag to disable features that would inhibit frame parallel decoding. This includes backward adaptation and MV sorting based on search in ref frame buffer. Also includes some minor clean-ups. Change-Id: I434846717a47b7bcb244b37ea670c5cdf776f14d
-
- 24 Jan, 2013 - 1 commit
-
-
Deb Mukherjee authored
Adds an error-resilient mode where frames can be continued to be decoded even when there are errors (due to network losses) on a prior frame. Specifically, backward updates are turned off and probabilities of various symbols are reset to defaults at the beginning of each frame. Further, the last frame's mvs are not used for the mv reference list, and the sorting of the initial list based on search on previous frames is turned off as well. Also adds a test where an arbitrary set of frames are skipped from decoding to simulate errors. The test verifies (1) that if the error frames are droppable - i.e. frame buffer updates have been turned off - there are no mismatch errors for the remaining frames after the error frames; and (2) if the error-frames are non droppable, there are not only no decoding errors but the mismatch PSNR between the decoder's version of the post-error frames and the encoder's version is at least 20 dB. Change-Id: Ie6e2bcd436b1e8643270356d3a930e8989ff52a5
-
- 27 Nov, 2012 - 1 commit
-
-
John Koleszar authored
Support for gyp which doesn't support multiple objects in the same static library having the same basename. Change-Id: Ib947eefbaf68f8b177a796d23f875ccdfa6bc9dc
-
- 15 Nov, 2012 - 2 commits
-
-
John Koleszar authored
Modify the decoder to return the ending position of the bool decoder and use that as the starting position for the next frame. The constant-space algorithm for parsing the appended frame lengths is O(n^2), which is a potential DoS concern if n is unbounded. Revisit the appended lengths for use as partition lengths when multipartition support is added. In addition, this allows decoding of raw streams outside of a container without additional framing information, though it's insufficient to be able to remux said stream into a container. Change-Id: I71e801a9c3e37abe559a56a597635b0cbae1934b
-
John Koleszar authored
Change-Id: Ib8f8a66c9fd31e508cdc9caa662192f38433aa3d
-