Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(87)

Side by Side Diff: source/libvpx/vp8_multi_resolution_encoder.c

Issue 11974002: libvpx: Pull from upstream (Closed) Base URL: svn://chrome-svn/chrome/trunk/deps/third_party/libvpx/
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « source/libvpx/vp8/vp8dx.mk ('k') | source/libvpx/vp9/common/generic/vp9_systemdependent.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved. 2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 int show_psnr = 0; 209 int show_psnr = 0;
210 uint64_t psnr_sse_total[NUM_ENCODERS] = {0}; 210 uint64_t psnr_sse_total[NUM_ENCODERS] = {0};
211 uint64_t psnr_samples_total[NUM_ENCODERS] = {0}; 211 uint64_t psnr_samples_total[NUM_ENCODERS] = {0};
212 double psnr_totals[NUM_ENCODERS][4] = {{0,0}}; 212 double psnr_totals[NUM_ENCODERS][4] = {{0,0}};
213 int psnr_count[NUM_ENCODERS] = {0}; 213 int psnr_count[NUM_ENCODERS] = {0};
214 214
215 /* Set the required target bitrates for each resolution level. 215 /* Set the required target bitrates for each resolution level.
216 * If target bitrate for highest-resolution level is set to 0, 216 * If target bitrate for highest-resolution level is set to 0,
217 * (i.e. target_bitrate[0]=0), we skip encoding at that level. 217 * (i.e. target_bitrate[0]=0), we skip encoding at that level.
218 */ 218 */
219 unsigned int target_bitrate[NUM_ENCODERS]={1400, 500, 100}; 219 unsigned int target_bitrate[NUM_ENCODERS]={1000, 500, 100};
220 /* Enter the frame rate of the input video */ 220 /* Enter the frame rate of the input video */
221 int framerate = 30; 221 int framerate = 30;
222 /* Set down-sampling factor for each resolution level. 222 /* Set down-sampling factor for each resolution level.
223 dsf[0] controls down sampling from level 0 to level 1; 223 dsf[0] controls down sampling from level 0 to level 1;
224 dsf[1] controls down sampling from level 1 to level 2; 224 dsf[1] controls down sampling from level 1 to level 2;
225 dsf[2] is not used. */ 225 dsf[2] is not used. */
226 vpx_rational_t dsf[NUM_ENCODERS] = {{2, 1}, {2, 1}, {1, 1}}; 226 vpx_rational_t dsf[NUM_ENCODERS] = {{2, 1}, {2, 1}, {1, 1}};
227 227
228 if(argc!= (5+NUM_ENCODERS)) 228 if(argc!= (5+NUM_ENCODERS))
229 die("Usage: %s <width> <height> <infile> <outfile(s)> <output psnr?>\n", 229 die("Usage: %s <width> <height> <infile> <outfile(s)> <output psnr?>\n",
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
344 die_codec(&codec[0], "Failed to initialize encoder"); 344 die_codec(&codec[0], "Failed to initialize encoder");
345 345
346 /* The extra encoding configuration parameters can be set as follows. */ 346 /* The extra encoding configuration parameters can be set as follows. */
347 /* Set encoding speed */ 347 /* Set encoding speed */
348 for ( i=0; i<NUM_ENCODERS; i++) 348 for ( i=0; i<NUM_ENCODERS; i++)
349 { 349 {
350 int speed = -6; 350 int speed = -6;
351 if(vpx_codec_control(&codec[i], VP8E_SET_CPUUSED, speed)) 351 if(vpx_codec_control(&codec[i], VP8E_SET_CPUUSED, speed))
352 die_codec(&codec[i], "Failed to set cpu_used"); 352 die_codec(&codec[i], "Failed to set cpu_used");
353 } 353 }
354 /* Set static thresh for highest-resolution encoder. Set it to 1000 for 354
355 * better performance. */ 355 /* Set static threshold. */
356 for ( i=0; i<NUM_ENCODERS; i++)
356 { 357 {
357 unsigned int static_thresh = 1000; 358 unsigned int static_thresh = 1;
358 if(vpx_codec_control(&codec[0], VP8E_SET_STATIC_THRESHOLD, static_thresh ))
359 die_codec(&codec[0], "Failed to set static threshold");
360 }
361 /* Set static thresh = 0 for other encoders for better quality */
362 for ( i=1; i<NUM_ENCODERS; i++)
363 {
364 unsigned int static_thresh = 0;
365 if(vpx_codec_control(&codec[i], VP8E_SET_STATIC_THRESHOLD, static_thresh )) 359 if(vpx_codec_control(&codec[i], VP8E_SET_STATIC_THRESHOLD, static_thresh ))
366 die_codec(&codec[i], "Failed to set static threshold"); 360 die_codec(&codec[i], "Failed to set static threshold");
367 } 361 }
362
368 /* Set NOISE_SENSITIVITY to do TEMPORAL_DENOISING */ 363 /* Set NOISE_SENSITIVITY to do TEMPORAL_DENOISING */
369 for ( i=0; i< NUM_ENCODERS; i++) 364 /* Enable denoising for the highest-resolution encoder. */
365 if(vpx_codec_control(&codec[0], VP8E_SET_NOISE_SENSITIVITY, 1))
366 die_codec(&codec[0], "Failed to set noise_sensitivity");
367 for ( i=1; i< NUM_ENCODERS; i++)
370 { 368 {
371 if(vpx_codec_control(&codec[i], VP8E_SET_NOISE_SENSITIVITY, 0)) 369 if(vpx_codec_control(&codec[i], VP8E_SET_NOISE_SENSITIVITY, 0))
372 die_codec(&codec[i], "Failed to set noise_sensitivity"); 370 die_codec(&codec[i], "Failed to set noise_sensitivity");
373 } 371 }
374 372
373
375 frame_avail = 1; 374 frame_avail = 1;
376 got_data = 0; 375 got_data = 0;
377 376
378 while(frame_avail || got_data) 377 while(frame_avail || got_data)
379 { 378 {
380 vpx_codec_iter_t iter[NUM_ENCODERS]={NULL}; 379 vpx_codec_iter_t iter[NUM_ENCODERS]={NULL};
381 const vpx_codec_cx_pkt_t *pkt[NUM_ENCODERS]; 380 const vpx_codec_cx_pkt_t *pkt[NUM_ENCODERS];
382 381
383 flags = 0; 382 flags = 0;
384 frame_avail = read_frame_p(infile, &raw[0]); 383 frame_avail = read_frame_p(infile, &raw[0]);
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
477 476
478 /* Try to rewrite the file header with the actual frame count */ 477 /* Try to rewrite the file header with the actual frame count */
479 if(!fseek(outfile[i], 0, SEEK_SET)) 478 if(!fseek(outfile[i], 0, SEEK_SET))
480 write_ivf_file_header(outfile[i], &cfg[i], frame_cnt-1); 479 write_ivf_file_header(outfile[i], &cfg[i], frame_cnt-1);
481 fclose(outfile[i]); 480 fclose(outfile[i]);
482 } 481 }
483 printf("\n"); 482 printf("\n");
484 483
485 return EXIT_SUCCESS; 484 return EXIT_SUCCESS;
486 } 485 }
OLDNEW
« no previous file with comments | « source/libvpx/vp8/vp8dx.mk ('k') | source/libvpx/vp9/common/generic/vp9_systemdependent.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698