- 29 Nov, 2012 - 1 commit
-
-
Deb Mukherjee authored
This patch allows use of 8x8 and 4x4 ADST correctly for Intra 16x16 modes and Intra 8x8 modes when the block size selected is smaller than the prediction mode. Also includes some cleanups and refactoring. Rebase. Change-Id: Ie3257bdf07bdb9c6e9476915e3a80183c8fa005a
-
- 15 Nov, 2012 - 2 commits
-
-
John Koleszar authored
Tags VP9 tracks with the V_VP9 video type when writing to .webm files, and supports decoding both from vpxdec without specifying --codec. Change-Id: I0ef61dee06f4db2a74032b142a4b4976c51faf6e
-
John Koleszar authored
Change-Id: Ib8f8a66c9fd31e508cdc9caa662192f38433aa3d
-
- 11 Nov, 2012 - 1 commit
-
-
Ronald S. Bultje authored
Change-Id: I962be949845f881df551d101708e6ba9d8a3d6a2
-
- 09 Nov, 2012 - 2 commits
-
-
Ronald S. Bultje authored
Change-Id: Id23917ce2555519d2e9172dd6ce3a283f2235d26
-
Yaowu Xu authored
only call decoding when encoder produce compressed data Change-Id: I1840762246afaaad76db6c6d29032ad15aa38afd
-
- 06 Nov, 2012 - 2 commits
-
-
John Koleszar authored
Change-Id: Ic3e3559384a0e72abdc9b66a19865474c2a41b38
-
John Koleszar authored
Change-Id: I44b3ad780cef6f448fa17ff8e28fea87ef9cd518
-
- 01 Nov, 2012 - 1 commit
-
-
Ronald S. Bultje authored
Change-Id: Ic084c475844b24092a433ab88138cf58af3abbe4
-
- 26 Oct, 2012 - 1 commit
-
-
James Zern authored
suppresses encoder progress Change-Id: Iacc04d98de970f13697c002363ee3a40a03f021b
-
- 11 Oct, 2012 - 1 commit
-
-
Ronald S. Bultje authored
Change-Id: Ibb6ba26e8718d3af27553ca59443a8c6aec7749d
-
- 20 Aug, 2012 - 1 commit
-
-
Yaowu Xu authored
Change-Id: Iaa947e640f27e6f6eaf7d845f243536bca2df513
-
- 14 Aug, 2012 - 1 commit
-
-
Christian Duvivier authored
Change-Id: I4b911e4173da30c164bde7ea50bc80a70fbbb745
-
- 24 Jul, 2012 - 1 commit
-
-
Adrian Grange authored
The "codecs" array is defined as const so too should the local variable that points too it. Change-Id: I536a9ced52257dc44a04fc1a3cad94c1e86f69aa
-
- 23 Jul, 2012 - 1 commit
-
-
Jim Bankoski authored
Change-Id: I74e50b4dfbe73eb98e1dce1695a9973f637220c0
-
- 17 Jul, 2012 - 1 commit
-
-
John Koleszar authored
Approximate the Google style guide[1] so that that there's a written document to follow and tools to check compliance[2]. [1]: http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml [2]: http://google-styleguide.googlecode.com/svn/trunk/cpplint/cpplint.py Change-Id: Idf40e3d8dddcc72150f6af127b13e5dab838685f
-
- 29 Jun, 2012 - 1 commit
-
-
Hui Su authored
This commit adds lossless compression capability to the experimental branch. The lossless experiment can be enabled using --enable-lossless in configure. When the experiment is enabled, the encoder will use lossless compression mode by command line option --lossless, and the decoder automatically recognizes a losslessly encoded clip and decodes accordingly. To achieve the lossless coding, this commit has changed the following: 1. To encode at lossless mode, encoder forces the use of unit quantizer, i.e, Q 0, where effective quantization is 1. Encoder also disables the usage of 8x8 transform and allows only 4x4 transform; 2. At Q 0, the first order 4x4 DCT/IDCT have been switched over to a pair of forward and inverse Walsh-Hadamard Transform (http://goo.gl/EIsfy), with proper scaling applied to match the range of the original 4x4 DCT/IDCT pair; 3. At Q 0, the second order remains to use the previous walsh-hadamard transform pair. However, to maintain the reversibility in second order transform at Q 0, scaling down is applied to first order DC coefficients prior to forward transform, and scaling up is applied to the second order output prior to quantization. Symmetric upscaling and downscaling are added around inverse second order transform; 4. At lossless mode, encoder also disables a number of minor features to ensure no loss is introduced, these features includes: a. Trellis quantization optimization b. Loop filtering c. Aggressive zero-binning, rounding and zero-bin boosting d. Mode based zero-bin boosting Lossless coding test was performed on all clips within the derf set, to verify that the commit has achieved lossless compression for all clips. The average compression ratio is around 2.57 to 1. (http://goo.gl/dEShs) Change-Id: Ia3aba7dd09df40dd590f93b9aba134defbc64e34
-
- 20 Jun, 2012 - 1 commit
-
-
John Koleszar authored
Fix a last few warnings with multithread, arm, 32 bit Change-Id: Ic7c67616c370d0ff87562a232fb1e5df0702dc86
-
- 11 Jun, 2012 - 1 commit
-
-
John Koleszar authored
Allows building the library with the gcc -pedantic option, for improved portabilty. In particular, this commit removes usage of C99/C++ style single-line comments and dynamic struct initializers. This is a continuation of the work done in commit 97b766a4, which removed most of these warnings for decode only builds. Change-Id: Id453d9c1d9f44cc0381b10c3869fabb0184d5966
-
- 04 Jun, 2012 - 1 commit
-
-
Johann authored
Using if(); triggers an empty body warning with clang Change-Id: I0fa2ee676400a974b40f8eaafca9ae668107eebb
-
- 19 May, 2012 - 1 commit
-
-
James Zern authored
aligned buffers improve performace. this change brings vpxenc & vp8_scalable_patterns in line with the other examples. Change-Id: I4cf9f3e4728b901161905dd7ccb092e774ffb15f
-
- 01 May, 2012 - 1 commit
-
-
Yaowu Xu authored
This commit added usage information that was missed in usage output. Change-Id: If1a85bcc20131314f5d047c6db4e76a40d945e66
-
- 27 Apr, 2012 - 2 commits
-
-
Adrian Grange authored
The frame counter was not being reset at the start of the first pass. Change-Id: I2ef7c6edf027e43f83f470c52cbcf95bf152e430
-
Adrian Grange authored
The frame counter was not being reset at the start of the first pass. Change-Id: I2ef7c6edf027e43f83f470c52cbcf95bf152e430
-
- 26 Apr, 2012 - 2 commits
-
-
Ralph Giles authored
Rather than using the static default maximum keyframe spacing provided by vpx_codec_enc_config_default() set the default value to 5 times the frame rate. Five seconds is too long for live streaming applications, but is a compromise between seek efficiency and giving the encoder freedom to choose keyframe locations. The five second value is from James Zern's suggestion in http://article.gmane.org/gmane.comp.multimedia.webm.user/2945 Change-Id: Ib7274dc248589c433c06e68ca07232e97f7ce17f
-
John Koleszar authored
Trap negative values and zero denominators at the point where they're parsed. Change-Id: I1ec9da5d4e95d3ef539860883041330ecec2f345
-
- 11 Apr, 2012 - 1 commit
-
-
Adrian Grange authored
This is the first patch to add superblock (32x32) coding order capabilities. It does not yet do any mode selection at the SB level, that will follow in a further patch. This patch encodes rows of SBs rather than MBs, each SB contains 2x2 MBs. Two intra prediction modes have been disabled since they require reconstructed data for the above-right MB which may not have been encoded yet (e.g. for the bottom right MB in each SB). Results on the one test clip I have tried (720p GIPS clip) suggest that it is somewhere around 0.2dB worse than the baseline version, so there may be bugs. It has been tested with no experiments enabled and with the following 3 experiments enabled: --enable-enhanced_interp --enable-high_precision_mv --enable-sixteenth_subpel_uv in each case the decode buffer matches the recon buffer (using "cmp" to compare the dumped/decoded frames). Note: Testing these experiments individually created errors. Some problems were found with other experiments but it is unclear what state these experiments are in: --enable-comp_intra_pred --enable-newentropy --enable-uvintra This code has not been extensively tested yet, so there is every likelihood that further bugs remain. I also intend to do some code cleanup & refactoring in tandem with the next patch that adds the 32x32 modes. Change-Id: I1eba7f740a70b3510df58db53464535ef881b4d9
-
- 26 Mar, 2012 - 1 commit
-
-
James Berry authored
fixes memory leak bug in vpxenc. Change-Id: I3933026d16177947576c61ebf58f8c58147e4ba0
-
- 15 Mar, 2012 - 4 commits
-
-
Yaowu Xu authored
The commit added a new command line option --test-decode to vpxenc. The option enables encoder to decode compressed frames and test recon buffers from the decode against those from encode for mismatch. There are a few limitations on this option currently, one of them being the match test is not done on a number of lagged frames at the end of an encoding. Change-Id: I80c29b46dcdcea9f48107a506b235743068862fe
-
Yaowu Xu authored
this commit added a command line option to skip first n frames from input file to facilitate debugging and testing. Change-Id: I4ffc5f85fa7e193ea4bdee08cb236717de8beef1
-
Yaowu Xu authored
This is a code snapshot of experimental work currently ongoing for a next-generation codec. The codebase has been cut down considerably from the libvpx baseline. For example, we are currently only supporting VBR 2-pass rate control and have removed most of the code relating to coding speed, threading, error resilience, partitions and various other features. This is in part to make the codebase easier to work on and experiment with, but also because we want to have an open discussion about how the bitstream will be structured and partitioned and not have that conversation constrained by past work. Our basic working pattern has been to initially encapsulate experiments using configure options linked to #IF CONFIG_XXX statements in the code. Once experiments have matured and we are reasonably happy that they give benefit and can be merged without breaking other experiments, we remove the conditional compile statements and merge them in. Current changes include: * Temporal coding experiment for segments (though still only 4 max, it will likely be increased). * Segment feature experiment - to allow various bits of information to be coded at the segment level. Features tested so far include mode and reference frame information, limiting end of block offset and transform size, alongside Q and loop filter parameters, but this set is very fluid. * Support for 8x8 transform - 8x8 dct with 2nd order 2x2 haar is used in MBs using 16x16 prediction modes within inter frames. * Compound prediction (combination of signals from existing predictors to create a new predictor). * 8 tap interpolation filters and 1/8th pel motion vectors. * Loop filter modifications. * Various entropy modifications and changes to how entropy contexts and updates are handled. * Extended quantizer range matched to transform precision improvements. There are also ongoing further experiments that we hope to merge in the near future: For example, coding of motion and other aspects of the prediction signal to better support larger image formats, use of larger block sizes (e.g. 32x32 and up) and lossless non-transform based coding options (especially for key frames). It is our hope that we will be able to make regular updates and we will warmly welcome community contributions. Please be warned that, at this stage, the codebase is currently slower than VP8 stable branch as most new code has not been optimized, and even the 'C' has been deliberately written to be simple and obvious, not fast. The following graphs have the initial test results, numbers in the tables measure the compression improvement in terms of percentage. The build has the following optional experiments configured: --enable-experimental --enable-enhanced_interp --enable-uvintra --enable-high_precision_mv --enable-sixteenth_subpel_uv CIF Size clips: http://getwebm.org/tmp/cif/ HD size clips: http://getwebm.org/tmp/hd/ (stable_20120309 represents encoding results of WebM master branch build as of commit#7a159071) They were encoded using the following encode parameters: --good --cpu-used=0 -t 0 --lag-in-frames=25 --min-q=0 --max-q=63 --end-usage=0 --auto-alt-ref=1 -p 2 --pass=2 --kf-max-dist=9999 --kf-min-dist=0 --drop-frame=0 --static-thresh=0 --bias-pct=50 --minsection-pct=0 --maxsection-pct=800 --sharpness=0 --arnr-maxframes=7 --arnr-strength=3(for HD,6 for CIF) --arnr-type=3 Change-Id: I5c62ed09cfff5815a2bb34e7820d6a810c23183c
-
Yaowu Xu authored
The commit added a new command line option --test-decode to vpxenc. The option enables encoder to decode compressed frames and test recon buffers from the decode against those from encode for mismatch. There are a few limitations on this option currently, one of them being the match test is not done on a number of lagged frames at the end of an encoding. Change-Id: I80c29b46dcdcea9f48107a506b235743068862fe
-
- 14 Mar, 2012 - 1 commit
-
-
Yaowu Xu authored
this commit added a command line option to skip first n frames from input file to facilitate debugging and testing. Change-Id: I4ffc5f85fa7e193ea4bdee08cb236717de8beef1
-
- 08 Mar, 2012 - 1 commit
-
-
Yaowu Xu authored
The maximum psnr has a marginal impact on the overall output in high quality encodings, the change will make sure the psnr output to be consistent with encoder internal stats. Change-Id: I35cf2f85008ec127a7d91c9eb69fa7811798ae32
-
- 02 Mar, 2012 - 1 commit
-
-
Johann authored
Propagate debug setting to the EBML struct. When writing the application name, this allows us to strip the version code and keep the output metadata static. Change-Id: I8e06c6abd743bedbff5af6242bbdae5d55754538
-
- 29 Feb, 2012 - 2 commits
-
-
Yunqing Wang authored
When we do 2-pass encoding, elapsed time is accumulated through whole 2-pass process, which gives incorrect time and fps results for second pass. This change fixed that by resetting the time accumulator for second pass. Change-Id: Ie6cbf0d0e66e6874e7071305e253c6267529cf20
-
Attila Nagy authored
Produce the token partitions on-the-fly, while processing each MB. Context is updated at the beginning of each frame based on the previoud frame's counters. Optimally encoder outputs partitions in separate buffers. For frame based output, partitions are concatenated internally. Limitations: - enabled just in combination with realtime-only mode - number of encoding threads has to be equal or less than the number of token partitions. For this reason, by default the encoder will do 8 token partitions. - vpxenc supports partition output (-P) just in combination with IVF output format (--ivf) Performance: - Realtime encoder can be up to 13% faster (ARM) depending on the number of threads and bitrate settings. Constant gain over the 5-16 speed range. - Token buffer reduced from one frame to 8 MBs Quality: - quality is affected by the delayed context updates. This again dependents on input material, speed...
-
- 16 Feb, 2012 - 3 commits
-
-
John Koleszar authored
Add the ability to specify multiple output streams on the command line. Streams are delimited by --, and most parameters inherit from previous streams. In this implementation, resizing streams is still not supported. It does not make use of the new multistream support in the encoder either. Two pass support runs all streams independently, though it's theoretically possible that we could combine firstpass runs in the future. The logic required for this is too tricky to do as part of this initial implementation. This is mostly an effort to get the parameter passing and independent streams working from the application's perspective, and a later commit will add the rescaling and multiresolution support. Change-Id: Ibf18c2355f54189fc91952c734c899e5c072b3e0
-
John Koleszar authored
Simplify some of the file I/O for later commits which will add multistream support Change-Id: Idf1a05f3a29c95331d0c4a6ea5960904e4897fd4
-
John Koleszar authored
Cosmetic. Allows exiting with an error message without opening a new scope. Change-Id: If227b29b825f0241acea79dd38f19e524552ee18
-