summaryrefslogtreecommitdiff
path: root/vp9
AgeCommit message (Collapse)Author
2015-10-06vp9: simplify extrabits encodingAlex Converse
Change-Id: I5a2abd35cb303d8f6354b3119ab95acf90405116
2015-10-06Add first_spatial_layer_to_encode to SVC.Marco
Use the existing VP9_SET_SVC control to set the first spatial layer to encode. Since we loop over all spatial layers inside the encoder, the setting of spatial_layer_id via VP9_SET_SVC has no relevance. Use it instead to set the first_spatial_layer_to_encode, which allows an application to skip encoding lower layer(s). Change only affects the 1 pass CBR SVC. Change-Id: I5d63ab713c3e250fdf42c637f38d5ec8f60cd1fb
2015-10-05Add the check of resolution in VP9 dynamic resizing.jackychen
The resolution check fixs the issue which resets resize_pending unnecessarily and causes not-bitexact with previous one-step version. Change-Id: I4e7660b3c8f34f59781e2e61ca30d61080c322de
2015-10-05Merge "Fix to denoiser with dynamic resize."Marco Paniconi
2015-10-05Merge "Stabilize the encoder buffer from going too negative."Marco Paniconi
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-02Fix to denoiser with dynamic resize.Marco
Temporary fix to denoiser when dynamic resizing is on. -Reallocate denoiser buffers on resized frame. -Force golden update on resized frame. -Don't denoise resized frame, and copy source into denoised buffers. Change-Id: Ife7638173b76a1c49eac7da4f2a30c9c1f4e2000
2015-10-02Stabilize the encoder buffer from going too negative.Marco
For screen-content mode, with frame dropper off, put a limit on how low encoder buffer can go. Under hard slide changes, the buffer level can go too low and then take long time to come back up (in particular when frame-dropping is not used), which will affect the active_worst and target frame size. Change-Id: Ie9fca097e05cd71141f978ec687f852daf9de332
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