summaryrefslogtreecommitdiff
path: root/vp8/vp8_cx_iface.c
AgeCommit message (Collapse)Author
2011-04-26Merge remote branch 'origin/master' into experimentalJohn Koleszar
Conflicts: vp8/common/alloccommon.c vp8/encoder/rdopt.c Change-Id: I142167d31d1b9cffe143774f6915bca463df67f0
2011-04-25Merge "Change rc undershoot/overshoot semantics"John Koleszar
2011-04-25Add rc_max_intra_bitrate_pct controlJohn Koleszar
Adds a control to limit the maximum size of a keyframe, as a function of the per-frame bitrate. See this thread[1] for more detailed discussion: [1]: http://groups.google.com/a/webmproject.org/group/codec-devel/browse_thread/thread/271b944a5e47ca38 Change-Id: I7337707642eb8041d1e593efc2edfdf66db02a94
2011-04-13Merge remote branch 'origin/master' into experimentalJohn Koleszar
Change-Id: I231e4dd65adcf4f5c158e3749880a18b8c36cbe4
2011-04-12Change rc undershoot/overshoot semanticsJohn Koleszar
This patch changes the rc_undershoot_pct and rc_overshoot_pct controls to set the "aggressiveness" of rate adaptation, by limiting the amount of difference between the target buffer level and the actual buffer level which is applied to the target frame rate for this frame. This patch was initially provided by arosenberg at logitech.com as an attachment to issue #270. It was modified to separate these controls from the other unrelated modifications in that patch, as well as to use the pre-existing variables rather than introducing new ones. Change-Id: Id542e3f5667dd92d857d5eabf29878f2fd730a62
2011-04-12Merge "Fix encoder range check for frame width and height"John Koleszar
2011-04-12Fix encoder range check for frame width and heightAttila Nagy
14 bits available in the bistream => valid range [1..16383] Removed unused local vars. Change-Id: Icf3385e47a9fa13af70053129c2248671f285583
2011-04-11Set cpu_used range to [-16, 16] in real-time modeYunqing Wang
Remove encoding speed limitation in real-time mode. Change-Id: Ib5e35d8bb522b2a25f3e4ad5cfe2788ebebb3617
2011-03-11Merge remote branch 'origin/master' into experimentalJohn Koleszar
Change-Id: Ibc4a75dbbc8b35ce298477e055e5a88df080d4b3
2011-03-10Removed firstpass motion mapAdrian Grange
The firstpass motion map consists of an 8-bit flag for each MB indicating how strongly the firstpass code believes it should be filtered during the second pass ARNR filtering. For long or large format material the motion map can become extremely large and hamper the operation of the encoding process. This change removes the motion map altogether, leaving the second pass to rely on the magnitude of the motion compensated error to determine the filter weight to use for the MB during ARNR filtering. Tests on the derf set indicate that the effect of this change is neutral, with some small wins and losses. The motion map has therefore been removed based on a cost/benefit evaluation. Change-Id: I53e07d236f5ce09a6f0c54e7c4ffbb490fb870f6
2011-03-05Merge remote branch 'origin/master' into experimentalJohn Koleszar
Change-Id: I70ac5a4f8388a7bfa058178c0ae53f6bdb0bb6e5
2011-03-04Merge "Fix counter of fixed keyframe distance"John Koleszar
2011-03-03Merge remote branch 'origin/master' into experimentalJohn Koleszar
Conflicts: vp8/vp8_cx_iface.c Change-Id: Ib30d0cfbdaeb605ee4b846f683d204cd07e0c028
2011-02-23Handle mem allocation failure in vp8e_initAttila Nagy
Change-Id: I0d0445c57eb0889082f83de1948852d57b38fefb
2011-02-18Merge remote branch 'origin/master' into experimentalJohn Koleszar
Change-Id: I8999a33db82d38eb85482f3c423db238d6ee3ed9
2011-02-10Fix relative include pathsJohn Koleszar
Allow compiling without adding vp8/{common,encoder,decoder} to the include paths. Change-Id: Ifeb5dac351cdfadcd659736f5158b315a0030b6c
2011-02-10Merge remote branch 'origin/master' into experimentalJohn Koleszar
Change-Id: Ie85d40c44bb23d56a519010356b2856c02fb4c05
2011-02-08vp8e_get_preview fixed for resized framesJames Berry
preview_img d_w and d_h along with w and h would not be updated for resized frames. now uses sd.y_width and sd.y_height Change-Id: I52241de4cc1de5e73f865e668bd70a7cbd954390
2011-02-07Fix counter of fixed keyframe distanceAndoni Morales Alastruey
When the keyframe distance is fixed the first interval has the right distance but, the next ones have kf_distance + 1. Change-Id: I44f1190fe7146124bd07660a5e0ef08829e3ae07
2011-02-01Merge remote branch 'origin/master' into experimentalJohn Koleszar
Change-Id: Id1d4bbe257cd126bb5f44347b896ddb659724f0b
2011-01-31validate min_q against max_qJohn Koleszar
min_q is required to be <= max_q. Change-Id: I28eccf96df3b52a94913762b54c4fbe0d021ce5e
2011-01-19Merge remote branch 'origin/master' into experimentalJohn Koleszar
Change-Id: I7125984ec28a7094195b640d6659590c6eead533
2011-01-18Fix encoder real-time only configuration.Attila Nagy
Remove allocation/deallocation of stats storage. Remove full search functions in machine specific encoder inits. Remove last pass validation in validate_config. Change-Id: I7f29be69273981a4fef6e80ecdb6217c68cbad4e
2011-01-18Merge remote branch 'origin/master' into experimentalJohn Koleszar
Change-Id: I3e51945a61446e1ee70caaf97ff7cf0c740bf1da
2011-01-17Fix CQ range and experimental KF sizing changes.Paul Wilkins
The CQ level was not using the q_trans[] array to convert to a 0-127 range as per min and maxq Experimental change to try and match the reconstruction error for forced key frames approximately to that of the previous frame by means of the recode loop. Though this may cause extra recodes and the recode behavior has not been optimized, it can only happen on forced key frames. Change-Id: I1f7e42d526f1b1cb556dd461eff1a692bd1b5b2f
2011-01-08Merge remote branch 'origin/master' into experimentalJohn Koleszar
Change-Id: Ib34bc09a295141eb65c8c0478bde6136f178909b
2011-01-07CQ ModePaul Wilkins
The merge includes hooks to for CQ mode and other code changes merged from the test branch. CQ mode attempts to maintain a more stable quantizer within a clip whilst also trying to adhere to a guidline maximum bitrate. The existing target data rate parameter is used to specify the guideline maximum bitrate. A new parameter allows the user to specify a target CQ level. For normal (non kf/gf/arf) frames, the quantizer will not drop BELOW the user specified value (0-63). However, in some cases the encoder may choose to impose a target CQ that is above that specified by the user, if it estimates that consistent use of the target value is not compatible with guideline maximum bitrate. Change-Id: I2221f9eecae8cc3c431d36caf83503941b25e4c1
2010-12-21Merge remote branch 'origin/master' into experimentalJohn Koleszar
Conflicts: vp8/vp8_cx_iface.c Change-Id: I76f302448f11b28772efd4b5643f86a7cc69a8c2
2010-12-17Add psnr/ssim tuning optionJohn Koleszar
Add a new encoder control, VP8E_SET_TUNING, to allow the application to inform the encoder that the material will benefit from certain tuning. Expose this control as the --tune option to vpxenc. The args helper is expanded to support enumerated arguments by name or value. Two tunings are provided by this patch, PSNR (default) and SSIM. Activity masking is made dependent on setting --tune=ssim, as the current implementation hurts speed (10%) and PSNR (2.7% avg, 10% peak) too much for it to be a default yet. Change-Id: I110d969381c4805347ff5a0ffaf1a14ca1965257
2010-11-30Merge remote branch 'origin/master' into experimentalJohn Koleszar
2010-11-24allow dimensions as low as 1 pixelPascal Massimino
remove warning comment in vpxenc.c: in case of 1x1 picture, detect_bytes will be equal to '3' and we'll fall back to RAW_TYPE. fix read_frame() by tracking the pre-read buffer length in the struct detect Change-Id: If1ed86ee5260dcdbc8f9d10da6cbb84a4cc2f151
2010-11-24Merge remote branch 'origin/master' into experimentalJohn Koleszar
2010-11-17Disable compile warning for ERROR macroJohn Koleszar
The ERROR macro collides wiith the MS SDK on Windows. Since we're not making any win32 calls in this function, just #undef it first to take ownership. Change-Id: Ic18c60dfa3a33c52e6c49d3f4f8d3e7e3ac3341d
2010-11-11Merge remote branch 'origin/master' into experimentalJohn Koleszar
Conflicts: configure Change-Id: Ifa63e4610657f75cb953aa7ca08f997267612cc0
2010-11-10postproc : Re-work posproc calling to allow more flags.Fritz Koenig
Debugging in postproc needs more flags to allow for specific block types to be turned on or off in the visualizations. Must be enabled with --enable-postproc-visualizer during configuration time. Change-Id: Ia74f357ddc3ad4fb8082afd3a64f62384e4fcb2d
2010-11-05Merge remote branch 'origin/master' into experimentalJohn Koleszar
Conflicts: configure ivfenc.c vp8/common/alloccommon.c vp8/common/onyxc_int.h vp8/vp8_cx_iface.c
2010-10-21Change altref times to preceding pts+1.Frank Galligan
Change the pts of the altref frame to be as close as possible to the pts of the preceding frame and still be strictly increasing. Change-Id: Iae3033a4c89ae5a9d0e5c4198e9196e5f3ee57c7
2010-10-21Move firstpass motion map to stats packetJohn Koleszar
The first implementation of the firstpass motion map for motion compensated temporal filtering created a file, fpmotionmap.stt, in the current working directory. This was not safe for multiple encoder instances. This patch merges this data into the first pass stats packet interface, so that it is handled like the other (numerical) firstpass stats. The new stats packet is defined as follows: Numerical Stats (16 doubles) -- 128 bytes Motion Map -- 1 byte / Macroblock Padding -- to align packet to 8 bytes The fpmotionmap.stt file can still be generated for debugging purposes in the same way that the textual version of the stats are available (defining OUTPUT_FPF in firstpass.c) Change-Id: I083ffbfd95e7d6a42bb4039ba0e81f678c8183ca
2010-10-19Update arnr strength range form 1-6 to 0-6.Frank Galligan
Change-Id: I8eb49c56f7509f0a8074d440e8345b9e3344b85b
2010-09-30Changed defaults & range checking for AltRef paramsAdrian Grange
Modified the range checking of parameters used in the AltRef temporal filter (arnr-max-frames, arnr-strength, arnr-type) and default values for each of them. Change-Id: Ib261028d501b9523f6e44cb4790cc52167b6e92b
2010-09-23Add getter functions for the interface data symbolsJohn Koleszar
Having these symbols be available as functions rather than data is occasionally more convenient. Implemented this way rather than a get-codec-by-id style to avoid creating a link-time dependency between the encoder and the decoder. Fixes issue #169 Change-Id: I319f281277033a5e7e3ee3b092b9a87cce2f463d
2010-09-20Add high limit check for unsigned parametersGuillermo Ballester Valor
The patch related with issue #55 (5a72620) fixed some warnings, but the fix was not optimal. It actually was a trick to confuse compiler rather than a fix. This patch fixes it by creating a new macro used when needed just a high limit check for an unsigned. Change-Id: I94b322e0f7fb07604b3b1df1f9321185f48cfcb5
2010-09-09Use WebM in copyright notice for consistencyJohn Koleszar
Changes 'The VP8 project' to 'The WebM project', for consistency with other webmproject.org repositories. Fixes issue #97. Change-Id: I37c13ed5fbdb9d334ceef71c6350e9febed9bbba
2010-09-02encoder: remove postproc dependencyJames Zern
Remove the dependency on postproc.c for the encoder in general, the only unchecked need for it is when CONFIG_PSNR is enabled. All other cases are already wrapped in CONFIG_POSTPROC. In the CONFIG_PSNR case the file will still be included. Additionally, when VP8_SET_POSTPROC is used with the encoder when post processing has been disabled an error will be returned. This addresses issue #153. Change-Id: Ia6dfe20167f7077734a6058cbd1d794550346089
2010-09-02Disable frame dropping by defaultJohn Koleszar
This is not the behavior that most users expect. Change-Id: I226126ea400c22cf1f7918e80ea7fe0771c569cb
2010-08-20increase rate control buffer level precisionJohn Koleszar
The external API exposes the RC initial/optimal/full buffer level in milliseconds, but this value was truncated internally to seconds. This patch allows the use of the full precision during the conversion from time to bits. Change-Id: If8dd2a87614c05747f81432cbe75dd9e6ed2f04e
2010-07-19Parameter limit change.Paul Wilkins
Change maximum ARNR filter width to 15. Change-Id: I3b72450ea08e96287445ec18810630ee2292954c
2010-06-18cosmetics: trim trailing whitespaceJohn Koleszar
When the license headers were updated, they accidentally contained trailing whitespace, so unfortunately we have to touch all the files again. Change-Id: I236c05fade06589e417179c0444cb39b09e4200d
2010-06-14vp8_cx_iface: set default cpu used to 0John Koleszar
Change-Id: I7b35f4717cdd204224112f72471b551617262417
2010-06-14Fix compiler warningsGuillermo Ballester Valor
Change-Id: I2a97f08cc3c7808ce5be39e910cc5147ecf03a1d