summaryrefslogtreecommitdiff
path: root/vp9
AgeCommit message (Collapse)Author
2015-10-02Turn on two-steps scaling in VP9 encoder dynamic resizing.JackyChen
First do a 3/4 scaling and then go down to 1/2 when necessary. Change-Id: I5689c5228ca7e1606baea7f960eb24d0dab04d4d
2015-10-02Merge "Accelerated transform in high bit depth"Debargha Mukherjee
2015-10-02Merge "Two-steps scaling in VP9 encoder dynamic resizing."Marco Paniconi
2015-10-01Two-steps scaling in VP9 encoder dynamic resizing.jackychen
Dynamic resizing now support two-steps scaling: first go down to 3/4 and then 1/2. This feature is under a flag which controls the switch between two-steps scaling and one-step scaling (1/2 only). Change-Id: I3a6c1d3d5668cf8e016a0a02aeca737565604a0f
2015-10-01Small cleanuphui su
Change-Id: I5aeaa94b743f84738d288f8b027fec4c164f2ec3
2015-09-30VP9: remove plane_type from macroblockd_planeScott LaVarnway
Change-Id: Ia5072a3a92212d8565f33359f6c146469bdfbbec
2015-09-30Merge "VP9: remove plane_type checks in loopfilter functions"Scott LaVarnway
2015-09-30vp9_loopfilter: remove unnecessary masksJames Zern
Change-Id: I264e75bf3ddd083ee5311c50a37fb18fe634ddc3
2015-09-29vp9_reset_lfm: harmonize function signatureJames Zern
Change-Id: Ifb0f41fb43564a777be29b4c66443b366fa146a3
2015-09-29VP9: remove plane_type checks in loopfilter functionsScott LaVarnway
vp9_filter_block_plane_ss11() and vp9_filter_block_plane_non420() are only called for the uv planes. Change-Id: Iacd3b3242c8ce581edd37c8f06d95efc8a0f88a3
2015-09-29Merge "VP9: move loopfilter build masks to decode loop"Scott LaVarnway
2015-09-29Merge "aq-mode for SVC: Add consec_zero_mv to layer context."Marco Paniconi
2015-09-29aq-mode for SVC: Add consec_zero_mv to layer context.Marco
Change-Id: I63fadf1c7240d4b2893384f75c519311e9659d47
2015-09-29Fix a macro definitionYaowu Xu
to be consistent with the head file name. Change-Id: I9634332a2b3fac7e7f3b7ef58821ea7c81c5c813
2015-09-29VP9: move loopfilter build masks to decode loopScott LaVarnway
The loopfilter masks are now built in the decode loop. This is done so we can eventually reduce the number of MODE_INFO structs required by the decoder. The encoder builds the masks for the entire frame prior to calling the loopfilter. Change-Id: Ia2146b07e0acb8c50203e586dfae0c4c5b316f11
2015-09-28Accelerated transform in high bit depthJulia Robson
When configured with high bitdepth enabled, the 8bit transform stopped using optimised code. This made 8bit content decode slowly. Change-Id: I67d91f9b212921d5320f949fc0a0d3f32f90c0ea
2015-09-28Merge "vp9/10: improve support for render_width/height."Ronald S. Bultje
2015-09-28Merge "Rename display_{size,width,height} to render_*."Ronald S. Bultje
2015-09-25vp9/10: improve support for render_width/height.Ronald S. Bultje
In the decoder, map this to the output variable vpx_image_t.r_w/h. This is intended as an improved version of VP9D_GET_DISPLAY_SIZE, which doesn't work with parallel frame decoding. In the encoder, map this to a codec control func (VP9E_SET_RENDER_SIZE) that takes a w/h pair argument in a int[2] (identical to VP9D_GET_DISPLAY_SIZE). Also add render_size to the encoder_param_get_to_decoder unit test. See issue 1030. Change-Id: I12124c13602d832bf4c44090db08c1009c94c7e8
2015-09-26Merge "vp9/10 encoder: prevent NULL access on failure"James Zern
2015-09-25Rename display_{size,width,height} to render_*.Ronald S. Bultje
The name "display_*" (or "d_*") is used for non-compatible information (that is, the cropped frame dimensions in pixels, as opposed to the intended screen rendering surface size). Therefore, continuing to use display_* would be confusing to end users. Instead, rename the field to render_*, so that struct vpx_image can include it. Change-Id: Iab8d2eae96492b71c4ea60c4bce8121cb2a1fe2d
2015-09-25Merge "vp9/10 decoder_remove: check pbi pointer"James Zern
2015-09-25Limit cyclic refresh on steady background blocks.Marco
Use the existing QP condition on limiting cyclic refresh, and add addiitonal condition that block has been encoded with zero/small motion x frames in row (where x is at least several times the refresh period). Additional condition only affect non-screen content mode. This helps to improve visual stability for noisy input, where on steady background areas the application of delta_qp may lead to encoding the noise. Also added a change to use the true skip (after encoding) to update the last QP. Change-Id: I234a1128d017d284cf767fdb58ef6c59d809f679
2015-09-24vp9/10 decoder_remove: check pbi pointerJames Zern
fixes crash on error Change-Id: Ibb1ef5565fb833cdee1a49335473d98f1187ef43
2015-09-25Merge "Change size on first frame and change config cause crash."Jacky Chen
2015-09-23vp9/10 encoder: prevent NULL access on failureJames Zern
Change-Id: I1fc8e0b3d48675cd5428b7b36f7cc28ab32cbf71
2015-09-24Merge "VP9: Remove frame_parallel_decoding_mode from macroblockd"James Zern
2015-09-24Merge "Non-rd mode: Limit transform size for intra to 16x16."Marco Paniconi
2015-09-23VP9: Remove frame_parallel_decoding_mode from macroblockdScott LaVarnway
Not used. Change-Id: I71527d0ee43a5730f1a2527e7ab687a77a137db4
2015-09-23Merge "Adjust rd calculation in choose_tx_size_from_rd"Hui Su
2015-09-23Adjust rate-boost threshold in cyclic refresh for seg#2.Marco
Small gain in metrics (average ~0.2dB), small reduction in rate fluctuation. Change-Id: Id75bd89c168486f075308fb474ebd26e3bdfb85b
2015-09-23Non-rd mode: Limit transform size for intra to 16x16.Marco
Limit transform size for intra to 16x16, for non-screen content mode. Little/no change in speed or metrics. 32x32 intra block is rarley selected in RTC (non-screen content) case, but some visual improvement can be seen in some example, e.g., captured_video_dark_whd.yuv. Change-Id: I68e2db87875343b3fb9bb407a7709f0088f84072
2015-09-23Adjust rd calculation in choose_tx_size_from_rdhui su
Coding gain: derflr 0.142% hevclr 0.153% hevcmr 0.124% Change-Id: I63b56ae3a9002c3a266e10e2964135ed43b0ba53
2015-09-21Change size on first frame and change config cause crash.jackychen
Reallocation of mi buffer fails if change size on the first frame and change config in subsequent frames. Add a condition for resolution check to avoid assertion failure. BUG=1074 Change-Id: Ie26ed816a57fa871ba27a72db9805baaaeaba9f3
2015-09-21Non-rd pickmode: Don't skip checking zeromv-last mode.Marco
Reference frame masking logic may skip checking zeromv-last mode. Fix to avoid this and make sure zero-last is always checked. No noticeable change in speed, and PSNR/SSIM metrics on RTC set overall neutral (very small gain ~0.02). Small visual improvement on few RTC clips. Change-Id: I26eacdc449126424001a4a64e5ac31949f064417
2015-09-17Merge "Add SVC codec control to set frame flags and buffer indices."Marco Paniconi
2015-09-17Merge changes from topic 'tile-thread-cleanup'James Zern
* changes: vp9/decode_tiles_mt: move frame count accum from loop VP9Decoder: remove duplicate tile_worker_info vp9/decode_tiles_mt: move some inits from inner loop vp9_accumulate_frame_counts: pass counts directly
2015-09-17Add SVC codec control to set frame flags and buffer indices.Marco
Add SVC codec control to set the frame flags and buffer indices for each spatial layer of the current (super)frame to be encoded. This allows the application to set (and change on the fly) the reference frame configuration for spatial layers. Added an example layer pattern (spatial and temporal layers) in vp9_spatial_svc_encoder for the bypass_mode using new control. Change-Id: I05f941897cae13fb9275b939d11f93941cb73bee
2015-09-16Add support for color-range.Ronald S. Bultje
In decoder, export (eventually) into vpx_image_t.range field. In encoder, use oxcf->color_range to set it (same way as for color_space). See issue 1059. Change-Id: Ieabbb2a785fa58cc4044bd54eee66f328f3906ce
2015-09-15Merge changes from topic 'fix-vp9-bitstream-test'James Zern
* changes: vp9_encoder_parms_get_to_decoder: cosmetics vp9...parms_get_to_decoder: remove unneeded func vp9...parms_get_to_decoder: fix EXPECT param order vp9_encoder_parms_get_to_decoder: delete dead code fix BitstreamParms test vp9_encoder_parms_get_to_decoder: remove vp10 yuvconfig2image(): add explicit cast to avoid conv warning vp9/10 decoder_init: add missing alloc cast vp9/10: set color_space on preview frame vp10: add extern "C" to headers vp9: add extern "C" to headers
2015-09-15Merge "SVC fix to set worst/best_quality per layer."Marco Paniconi
2015-09-15SVC fix to set worst/best_quality per layer.Marco
Allow the worst/best_quality to be set per layer via the VP9E_SET_SVC_PARAMETERS control. Change-Id: Icba5ec8ac757152f3bb7860d6010d9174a7bd578
2015-09-15Add cyclic refresh parameters to svc-layer context.Marco
For 1 pass CBR spatial-SVC: Add cyclic refresh parameters to the svc-layer context. This allows cyclic refresh (aq-mode=3) to be applied to the whole super-frame (all spatial layers). This gives a performance improvement for spatial layer encoding. Addd the aq_mode mode on/off setting as command line option. Change-Id: Ib9c3b5ba3cb7851bfb8c37d4f911664bef38e165
2015-09-15Fix two pass svc encodingDebargha Mukherjee
Fixes temporal scalability. Updates were inadvertently turned off for two pass svc causing crashes due to gf_group.index growing unchecked. Change-Id: Iff759946bf61bbde70630347cc8fa4d51a8c2d2f
2015-09-14Change parameters for VP9 dynamic resizing.jackychen
Use a smaller window in dynamic resizing and wait a shorter time after key frame. Change-Id: I086f840cdec3c6bdaa9acfe11346d919e445973d
2015-09-14Merge "CR: Don't attempt to read qindex_delta for segments CR is unaware of."Alex Converse
2015-09-14CR: Don't attempt to read qindex_delta for segments CR is unaware of.Alex Converse
Found by the remoting VideoEncoderVpxTest.Vp9LossyUnchangedFrame unit test under asan. Change-Id: Icac63051bf37c7355e661837b57c257d58c764fc
2015-09-14For 1 pass: always use the normative filter in vp9_scale_if_required()Marco
The normative (convolve8) filter is optimized/faster than the nonnormative one. Pass usage of scaler (normative/nonomorative) to vp9_scale_if_required(), and always use normative one for 1 pass. Change-Id: I2b71d9ff18b3c7499b058d1325a9554de993dd52
2015-09-11Avoid scaling last_source, unless needed.Marco
Save some encoding time, for the case of spatial layers or under dynamic resizing mode. Change-Id: If4a8eb6f0376c3d2dde8465fde6bfd86ab704920
2015-09-11Remove unneeded/incorrect comment.Marco
Change-Id: I5c923223c284ad4fda0c45572a66bebc8528dd1d