summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_encoder.c
diff options
context:
space:
mode:
authorJingning Han <jingning@google.com>2014-10-23 16:54:45 -0700
committerJingning Han <jingning@google.com>2014-10-24 10:00:27 -0700
commiteee201c221cdff90a4e74d4cf8917875684f0e2a (patch)
tree432e64d7772cf2fe3bff2dcfe44c37b7811b69c0 /vp9/encoder/vp9_encoder.c
parent9363425daa8311f518184bf516e1f3c709addb8e (diff)
downloadlibvpx-eee201c221cdff90a4e74d4cf8917875684f0e2a.tar
libvpx-eee201c221cdff90a4e74d4cf8917875684f0e2a.tar.gz
libvpx-eee201c221cdff90a4e74d4cf8917875684f0e2a.tar.bz2
libvpx-eee201c221cdff90a4e74d4cf8917875684f0e2a.zip
Tile based adaptive mode search in RD loop
Make the spatially adaptive mode search in rate-distortion optimization loop inter tile independent. Experiments suggest that this does not significantly change the coding staticstics. Single tile, speed 3: pedestrian_area 1080p 1500 kbps 59192 b/f, 40.611 dB, 101689 ms blue_sky 1080p 1500 kbps 58505 b/f, 36.347 dB, 62458 ms mobile_cal 720p 1000 kbps 13335 b/f, 35.646 dB, 45655 ms as compared to 4 column tiles, speed 3: pedestrian_area 1080p 1500 kbps 59329 b/f, 40.597 dB, 101917 ms blue_sky 1080p 1500 kbps 58712 b/f, 36.320 dB, 62693 ms mobile_cal 720p 1000 kbps 13191 b/f, 35.485 dB, 45319 ms Change-Id: I35c6e1e0a859fece8f4145dec28623cbc6a12325
Diffstat (limited to 'vp9/encoder/vp9_encoder.c')
-rw-r--r--vp9/encoder/vp9_encoder.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/vp9/encoder/vp9_encoder.c b/vp9/encoder/vp9_encoder.c
index 0ea129b90..ff9fc1f17 100644
--- a/vp9/encoder/vp9_encoder.c
+++ b/vp9/encoder/vp9_encoder.c
@@ -164,6 +164,8 @@ static void dealloc_compressor_data(VP9_COMP *cpi) {
cm->fc = NULL;
vpx_free(cm->frame_contexts);
cm->frame_contexts = NULL;
+ vpx_free(cpi->tile_data);
+ cpi->tile_data = NULL;
// Delete sementation map
vpx_free(cpi->segmentation_map);
@@ -1392,6 +1394,7 @@ VP9_COMP *vp9_create_compressor(VP9EncoderConfig *oxcf) {
cm->current_video_frame = 0;
cpi->partition_search_skippable_frame = 0;
+ cpi->tile_data = NULL;
// Create the encoder segmentation map and set all entries to 0
CHECK_MEM_ERROR(cm, cpi->segmentation_map,