Граф коммитов

205 Коммитов

Автор SHA1 Сообщение Дата
Marco a250ebf8b8 vpx_temporal_svc_encoder: Update some default settings.
Set flags=0 if layering_mode=0, and set static_thresh=1.

Change-Id: Id9874923b23966a2b1d0e83965add7d5c9d26d16
2015-03-11 14:09:49 -07:00
Marco c76ebffdcc Set the threads/tile_columns in vpx_temporal_svc_encoder.
Change-Id: I794e8b64f26ebe68d7f18c3a11cb7c80e1cd3110
2015-03-06 09:53:55 -08:00
Marco 87a6175d6e vpx_temporal_svc_encoder: Adjust default qp-max setting for vp9.
Change-Id: Iada495f05193a1f645a5405ad792931f4d9113ab
2015-02-12 12:40:02 -08:00
Marco ef6d6ec285 vpx_temporal_svc_encoder: change default setting for static threshold.
Change-Id: Ie45c8344df9415173eae7aa20384ea8ecb05d07a
2015-02-05 12:07:31 -08:00
Tom Finegan 9e96bdc733 Xcode: Fix includes in examples.
The current file's directory, ".", is treated much more literally
when building libvpx examples with Xcode than it is with make, and
clang cannot find common include files included via "./" when those
files actually reside one directory up in the tree.

Change-Id: I5f66a026282e35d80248ca4052ebb882b859172e
2015-02-04 16:11:57 -08:00
Marco af898b56bb Various updates to vp8.
Change-Id: Icc7a816491897107764e4c936288e9000e6319b8
2014-12-03 16:01:28 -08:00
Marco e0b3e213c6 temporal_svc encoder: Change default setting for layering_mode = 0.
Change-Id: I5f723ada144d0bd82ee700ef28a4916fd64ba5e4
2014-11-26 11:13:23 -08:00
Deb Mukherjee 4c12046a7d Changes SvcContext_t to SvcContext
Fixes a borg build.

Change-Id: I8cb510577e8d8bbc7a2e64f9e1bdfe883f49cb61
2014-11-18 12:27:12 -08:00
Marco b64359110b Add more rate control stats to vpx_temporal_svc_encoder.
Average and variance of actual encoding bitrate over fixed short-time window.

Change-Id: Icc3d6d93792c81e1fb9fd3b56008bf47a503b204
2014-11-14 08:51:31 -08:00
Deb Mukherjee 0ba1542f12 Vidyo: Support for one-pass rc-enabled SVC encoder
Adds support for one-pass rc-enabled SVC encoder with callbacks for
getting per-layer packets.
- the callback function registration is implemented as an encoder
control function.
- if the callback function is not registered, the old way of
aggregating packets with superframe will take effect.
- one more control function “VP9E_GET_SVC_LAYER_ID” has been
implemented to get the temporal/spatial id from the encoder
within the callback. This can be used to get the ids to put on RTP
packet.

Change-Id: I1a90e00135dde65da128b758e6c00b57299a111a
2014-11-10 16:08:58 -08:00
Minghai Shang 86c36a504d [spatial svc] Make spatial svc working for one pass rate control
Change-Id: Ibd9114485c3d747f9d148f64f706bf873ea473ac
2014-11-04 11:46:48 -08:00
Deb Mukherjee a349ee3bf5 Resolves some lint errors
And also fixes some style consistency issues.

Change-Id: I3dc6d44e17d2d6075dc9b02c4255a7395046c5e0
2014-10-13 16:05:44 -07:00
James Zern e4caf2250f vp9_spatial_svc_encoder: fix -bit-depth arg parsing
use arg_parse_enum_or_int like vpxenc. this also fixes a warning as
arg_parse_enum is not currently declared in args.h.

Change-Id: If9ce258d6adb6286eb86f529083929d5fe2b3a56
2014-10-11 11:24:52 +02:00
Deb Mukherjee 4bad0e6f12 Adds highbitdepth support to svc examples
Change-Id: I59946642cb5c370726da33f4448a3deaba7d3f11
2014-10-02 16:12:42 -07:00
Tom Finegan c9527aa682 examples/simple_decoder: Correct comments/remove unnecessary include.
Change-Id: Iad3db3ca7601529ae32637f859ac8d552da94c87
2014-09-30 15:07:40 -07:00
Minghai Shang 209ee12110 [spatial svc] Remove vpx_svc_parameters_t and the loop that sets it for each layer
vpx_svc_parameters_t contains id, resolution and min/max qp for each spatial layer.

In this change we will use extra config to send min/max qp and scaling factors, then calculate layer resolution inside encoder.

Change-Id: Ib673303266605fe803c3b067284aae5f7a25514a
2014-09-18 18:05:07 -07:00
Minghai Shang 4f5b2b2892 [spatial svc]Remove quantizers option. Use max/min quantizers for each layer.
Change-Id: I214bc4169f6c5eaee4957cd308a74d309e999005
2014-09-18 11:10:11 -07:00
Minghai Shang 76885de5ad [spatial svc] Use string for quantizers and scale-factors option in the test app
1. This is to align with the ffmpeg implementation
2. Remove APIs for setting quantizers and scale-factors

Change-Id: I6e238d71db790a9fb3254baaeb61e2a5aac58f48
2014-09-17 17:39:16 -07:00
JackyChen bb1a23656c Change the control function of VP9 denoiser.
Change from VP8E_SET_NOISE_SENSITIVITY to VP9E_SET_NOISE_SENSITIVITY

Change-Id: Ia210a7029b26924e30973f0f9798a338e0412407
2014-09-12 16:34:22 -07:00
Minghai Shang e9b6c5f6eb Merge "[spatial svc] Remove handling frame and stats packets in the codec" 2014-09-11 14:12:44 -07:00
Dmitry Kovalev fb285bab1e Merge "Adding lossless encoding example." 2014-09-11 13:43:47 -07:00
Minghai Shang 12aaff560b [spatial svc] Remove handling frame and stats packets in the codec
1. svc_encodeframe.c will not handle frame or stats packets anymore.
   The app will process them.
2. Remove APIs that related to these packets.

Change-Id: Id0d7f8b458dc09c6f77064c0878fd4e572db001b
2014-09-11 11:35:27 -07:00
Dmitry Kovalev cb1f97e880 Adding lossless encoding example.
Change-Id: Ib8498c3127c397b453beff140503b2aca0d11cfc
2014-09-11 11:27:38 -07:00
Tom Finegan 4e94dec352 examples/twopass_encoder: Use good quality.
This speeds up the encode significantly. Also added a comment about using
best quality to keep new developers informed.

Change-Id: I04e8154d4b2c4cae07fe7cc9a71e707f649e9ed4
2014-09-10 11:14:07 -07:00
Dmitry Kovalev 56b9c649a3 Merge "Removing legacy compatibility layer." 2014-09-09 18:24:12 -07:00
Minghai Shang 759afe525c Merge "[svc] Temporal svc with two pass rate control" 2014-09-03 10:51:19 -07:00
Dmitry Kovalev 9cdaa3d72e Removing legacy compatibility layer.
Change-Id: I6fdcea0e0faf42386dd2b8f972a3b3fb2c21b2c7
2014-09-02 18:11:55 -07:00
Minghai Shang be3b08da3e [svc] Temporal svc with two pass rate control
It's built based on current spatial svc code.
We only support one spatial two temporal layers at this time.
Change-Id: I1fdc8584354b910331e626bfae60473b3b701ba1
2014-09-02 12:05:14 -07:00
Dmitry Kovalev 296f2e6b93 Switching back to #define instead of static const int.
To avoid 'variable length array' warnings from gcc.

Change-Id: I426f7e93ce674a10b901e79c0c9d9df5d4e47cb6
2014-09-02 11:29:40 -07:00
Dmitry Kovalev 0c1b9c7999 vp8_multi_resolution_encoder: Huge cleanup.
Change-Id: I65b2c1fbed5a306949843315999d10368a100431
2014-08-28 11:10:28 -07:00
Dmitry Kovalev 1e82bdec92 twopass_encoder: Flush encoder.
Change-Id: Ib04a545b43f3a36c6df7eaf3ed2d802cf41119bb
2014-08-25 19:17:07 -07:00
Dmitry Kovalev 393e5d9cfc twopass_encoder: Separate functions for first and second pass.
Change-Id: Ic5e3ff5f572ed55d7dd3df8c606e57daacf885dc
2014-08-25 13:05:30 -07:00
Jim Bankoski 812506b80c set_maps: add exit to avoid uninitialized variable warning
Change-Id: I08e42adeab9f9fa0337173ba0923f3bc0dd36806
2014-08-21 17:29:01 -07:00
Jim Bankoski 339391a8d4 vpx_temporal_svc_encoder: initialize outfile to avoid warning
Change-Id: I53077092342bc35fd783e1b7dcb80b21677f11c1
2014-08-21 17:28:58 -07:00
Jim Bankoski 116aa2db6c vpx_temporal_svc_encoder.c : removed dead assignment.
Change-Id: Ibc68830f090d55959561d40faa232399893e2b22
2014-08-21 17:28:51 -07:00
Dmitry Kovalev a8e674de4f set_maps: Flush encoder.
According to the current API spec we need to call vpx_codec_encode() until
vpx_codec_get_cx_data() returns NULL.

Change-Id: I4617f8042d50480a8f47b0b7114d4759fa566b14
2014-08-15 17:15:17 -07:00
Dmitry Kovalev 965af79241 vp8cx_set_ref: Flush encoder.
According to the current API spec we need to call vpx_codec_encode() until
vpx_codec_get_cx_data() returns NULL.

Change-Id: Ide0c531dc0d453df8ec1edb8acb894856d6cc22e
2014-08-15 10:26:45 -07:00
Marco Paniconi 8db245b6a1 Add an adaptive denoising mode.
On key frame, will always start with normal denoising mode,
but based on a computed noise metric (normalized mse on source diff)
may switch to aggressive mode (and back down again).

Change-Id: I20330b2dcf3056287be37223302b2cab5fc103eb
2014-08-14 17:29:51 -07:00
Dmitry Kovalev a4e85a5f4f Implementing right flushing for simple_encoder.
simple_encoder: Flush encoder. According to the current API spec we need
to call vpx_codec_encode() until vpx_codec_get_cx_data() returns NULL.

Change-Id: Ibc37706e5257a3d51e5421ca17f77ab41249d9b5
2014-08-11 14:10:33 -07:00
Marco Paniconi 91801176fe vp8: Add an aggressive denoising mode.
Change-Id: Ie4686e1b15af6bcc8d59d585bbeb996f38224522
2014-07-29 11:16:45 -07:00
Marco Paniconi 1094a11b57 temporal_svc sample encoder: setting for denoiser.
Reset it as before commit: https://gerrit.chromium.org/gerrit/#/c/70855/

Change-Id: I93df163c4bb565fb30f0f5283ed71347d01153d3
2014-07-18 10:41:38 -07:00
Deb Mukherjee f1f3d092c2 Merge "Renames interface field in VpxInterface" 2014-07-15 23:01:51 -07:00
Deb Mukherjee f332c6305e Renames interface field in VpxInterface
Renames interface to codec_interface since it is a reserved
word on windows.

Change-Id: I84f2cbf257a4c44f16dc2464127e35ee405c2c3e
2014-07-15 16:55:12 -07:00
Marco Paniconi 21042c7154 vp8: Allow for on/off control of UV temporal denoiser.
Use noise_sensitivity level for enabling UV denoiser.

Change-Id: Ib208786a6fdf654981bcd96a3cf44e8e678025c1
2014-07-15 09:51:03 -07:00
Marco Paniconi c0061cc24f Merge "Fix build for examples/vp8_multi_resolution_encoder." 2014-07-07 17:07:13 -07:00
Marco Paniconi 5f732c2031 Fix build for examples/vp8_multi_resolution_encoder.
Change-Id: I7ec4e0e05487fe80d93e31e0f6a21f326b5c7276
2014-07-07 16:59:07 -07:00
Minghai Shang 83269ff8ff Merge "[spatial svc] Remove encoding modes since we only need one mode at this time." 2014-06-27 11:48:22 -07:00
Minghai Shang df38196453 [spatial svc] Remove encoding modes since we only need one mode at this time.
Change-Id: I1b6ed2e82a7e3e8a9e790bf29d667a3f856a9518
2014-06-25 10:42:04 -07:00
Minghai Shang 41b451eb1f [spatial svc]Remove key frame quantizer settings since key frame is decided by rate control
Change-Id: I7eda0f5e678034f0e9c2ab481c517d2e9b280eb5
2014-06-25 10:36:24 -07:00
Minghai Shang 277338f748 [spatial svc]Implement lag in frames for spatial svc
Change-Id: I930dced169c9d53f8044d2754a04332138347409
2014-06-24 14:01:17 -07:00
Minghai Shang 76bf681338 Merge "[spatial svc] Remove hard coded rc_end_usage setting" 2014-05-22 15:51:19 -07:00
James Zern 21a0371836 vpx_temporal_svc_encoder: fix memory leak on success
more work would be necessary to avoid leaks in all failure cases

Change-Id: I9c92ae1c34e120b17109bc832b6b2789b909761d
2014-05-21 20:04:06 -07:00
Minghai Shang 39aef40236 [spatial svc] Remove hard coded rc_end_usage setting
Change-Id: Ifb09502ddf62664b3bfc62172de46bc36fde8efb
2014-05-21 11:18:06 -07:00
Yaowu Xu 70835601d5 set_map.c: cleanup -wextra warnings
The commit changed to use memset for initialiazation of non-trivial
strucutures, where initialization using {0} caused warnings. Also,
removed {0} initializations where appropriate initialization calls
are in place.

Change-Id: Ifd03e34aa80688e382124eb889c0fc1ec43c48e6
2014-05-15 18:14:00 -07:00
Tom Finegan a77d6d0dbb Rename vpx_temporal_scalable_patterns.c
New name: vpx_temporal_svc_encoder.c
Also, update comment to note that example supports VP8 and VP9.

Change-Id: I6fffab81296f918ebca740192a5c609593852dff
2014-05-14 11:21:15 -07:00
Tom Finegan cea4167030 Rename vp9_spatial_scalable_encoder.
Rename it to vp9_spatial_svc_encoder.

Change-Id: I756936039df5bf6bea2d7525a7edeac01df94352
2014-05-13 15:52:43 -07:00
Tom Finegan 732e49b666 Remove bitrotted example code: example_xma
Doesn't work. Doesn't build. Not supported.

Change-Id: I5a2f9965afdda82370049c10ebcbe77ac4c6c9b9
2014-05-09 10:55:55 -07:00
Tom Finegan f06de3b0a6 Remove decode_with_partial_drops example.
Bitrotted and non-functional. Does one of two things: Crashes or reports
errors and quits.

Change-Id: Ia9c391ecd6e716b183d925247bf3dc0509ce4586
2014-05-07 10:51:18 -07:00
Minghai Shang d899a1c08a [spatial svc] Use VPX_DL_GOOD_QUALITY for vp9_spatial_scalable_encoder
Change-Id: I759f2d7c0e75b44ff4522a5ce57328b1c92730aa
2014-05-02 11:54:45 -07:00
Marco Paniconi a39b201344 Remove the unneeded output_framerate from svc.
And change a parameter setting in vpx_temporal_scalable_patterns.

Change-Id: I7c208296ebcecbc8f73de032f6cdb26a1fc1442b
2014-04-10 13:49:25 -07:00
Marco Paniconi 0eb88c9064 Add codec control function for enabling frame_periodic_boost.
Change-Id: I6371ef7301c6bc3138552bd349e9bd154dee3e08
2014-04-03 15:49:03 -07:00
Marco Paniconi ccdbbe0a2f vpx_temporal_pattern_encoder: add speed setting to command line.
Change-Id: I0abf4401b37e2f786a958c8eb0fb40640f7fc140
2014-03-27 17:39:56 -07:00
Minghai Shang c217423af9 Merge "[svc] Add min/max q and min/max bitrate in svc test app" 2014-03-24 10:54:06 -07:00
Minghai Shang 6c3c66fb7f [svc] Add min/max q and min/max bitrate in svc test app
Change-Id: I67ea45119f23659279d24aa67eb823c751ac86fc
2014-03-21 17:32:30 -07:00
Minghai Shang 03d75182f7 Merge "[svc] Finalize spatial svc first pass rate control" 2014-03-20 15:12:14 -07:00
Marco Paniconi 16c15c1093 Log encoding time/fps in vpx_temporal_scalable_patterns
Change-Id: I368750c3641c5daaa8871f3880af5cfcf5e79bba
2014-03-20 11:32:39 -07:00
Minghai Shang d205335060 [svc] Finalize spatial svc first pass rate control
1. Save stats for each spatial layer
      2. Add frame buffer management for svc first pass rc
      3. Set default spatial layer to 1
      4. Flush encoder at the end of stream in test app
This only supports spatial svc.
Change-Id: Ia89cfa87bb6394e6c0405b921d86c426d0a0c9ae
2014-03-19 11:06:20 -07:00
Marco Paniconi 6b83884ba9 In-frame q adjustment for cyclic background refresh.
Activated using aq_mode=3.

Change-Id: Ied628b9e7bd0e88b0c75790276bca75b19eb5c07
2014-03-18 10:59:21 -07:00
Alex Converse 61ecd7f105 Add VP9 support to the set maps example.
Change-Id: I8c3be3ed4d6bbc5fa3042a2d5637407d4d56afee
2014-03-11 10:44:22 -07:00
Alex Converse b528d4923a Make vp8_set_maps more flexible.
Change-Id: I754a5c5e342cfa7c52c1a75424f18aea8b7657d2
2014-03-11 10:44:22 -07:00
Minghai Shang 2740507142 Merge "[svc] 1. Add two pass RC options in vp9_spatial_scalable_encoder. 2. Add read/write for RC stats file The two pass RC for svc does not work yet. This is just the first step. We need further development to make it working. Change-Id: I8ef0e177dff0b5ed3c97a916beea5123717cc6f2" 2014-03-07 14:02:35 -08:00
James Zern ee77a1a589 vp8cx_set_ref: fix variable assignment
assign vpx_ref_frame_t members explicitly avoiding incompatibility in
visual studio builds

Change-Id: I22df4c5ebb772d65b4d72f22949fbde53543d7ec
2014-03-06 21:12:47 -08:00
James Zern 87a3129e52 Merge "move resize_util.c to examples/" 2014-03-06 11:42:19 -08:00
Dmitry Kovalev c3cd6b3e5c Merging force-keyframe example into simple_encoder.
The only difference between two examples was usage of VPX_EFLAG_FORCE_KF
flag for frame encoding. Moving this functionality into simple_encoder
with additional command line option.

Change-Id: Ia3c4209be073eeb541d4ac6b41bd0f12812f6676
2014-03-05 12:01:56 -08:00
Dmitry Kovalev cb4eb7901d Converting vp8cx_set_ref example to use new API.
Change-Id: I8e40811c85c2246da75d9f06c4fda1a5079fcc71
2014-03-05 10:38:17 -08:00
James Zern 98e16b1b3d move resize_util.c to examples/
Change-Id: I0bc68e129ea408095869c9e7b0b15d83e22dbf4e
2014-03-03 18:03:23 -08:00
Dmitry Kovalev 6440e2955d Merge "Merging error-resilient example into simple_encoder." 2014-03-03 12:10:37 -08:00
Minghai Shang b0c146eea9 [svc] 1. Add two pass RC options in vp9_spatial_scalable_encoder.
2. Add read/write for RC stats file
The two pass RC for svc does not work yet. This is just the first
step. We need further development to make it working.
Change-Id: I8ef0e177dff0b5ed3c97a916beea5123717cc6f2
2014-02-28 14:22:57 -08:00
Dmitry Kovalev 2dad0e1238 Adding sse_to_psnr function to tools_common.{h, c}.
Change-Id: Id5f974172416499ff55b0929e315b12d16ff1b1b
2014-02-27 14:00:41 -08:00
Minghai Shang 20da0653f4 Merge "Change for adding QP settings for key frames" 2014-02-27 10:50:02 -08:00
Marco Paniconi d32e000ae0 Update some comments in vpx_temporal_scalable_patterns.
Change-Id: I747d26c544cc56feaaf7c75403f2f4c16a496bb7
2014-02-26 14:30:09 -08:00
Minghai Shang c79bd22a5f Change for adding QP settings for key frames
Change-Id: I4dcabb60cb1185eb9a2efa18b50f17af272d2cd6
2014-02-26 11:19:06 -08:00
Dmitry Kovalev 194e6f2983 Merging error-resilient example into simple_encoder.
The only difference between two examples was a setting of
g_error_resilient flag in error-resilient example. Moving this
functionality into simple_encoder with additional command line option.

Change-Id: I0245793320125926e1bf208cc1e87aef39ca478d
2014-02-25 16:34:49 -08:00
Marco Paniconi c30cc9f2e4 vpx_temporal_scalable_patterns: fix to encoding_bitrate computation.
Change-Id: I56fcb82c4334c7591b765b55b3c2912778af6db5
2014-02-24 15:37:22 -08:00
James Zern 20eb5cb653 move vp9_spatial_scalable_encoder.c to examples/
Change-Id: Id5c889cb87ad33a21d83a415a23e957e8ee3218f
2014-02-21 17:57:27 -08:00
Tom Finegan 18e3415a55 Merge "twopass_encoder.c: Silence MSVC data loss warnings." 2014-02-20 14:03:37 -08:00
Marco Paniconi 8f69ce2a47 vpx_temporal_scalable_patterns: set rc_target_bitrate correct.
Current setting was specific to 1 layer case.
rc_target_bitrate is total bitrate for whole stream,
so set it to ts_target_bitrate for highest/top temporal layer.

Change-Id: I83de73364956fa21c0a7c971c9f390d4840457e6
2014-02-20 11:45:15 -08:00
James Zern 3fa7c9eaaf Merge "vp8_set_maps.c: Silence signed/unsigned mismatch MSVC warnings." 2014-02-19 22:55:40 -08:00
Tom Finegan 34d02b060d vp8cx_set_ref.c: Silence MSVC data loss warning.
Change-Id: I1210ce23cf8f98950c445a17ef51a73c6852c89f
2014-02-19 16:20:14 -08:00
Tom Finegan 560119c4bc vp8_set_maps.c: Silence signed/unsigned mismatch MSVC warnings.
Use unsigned loop counters in set_roi_map() and set_active_map().

Change-Id: I9bbaed38b51ef73b82ba4ad4c4bc18ca5d2399f9
2014-02-19 16:13:15 -08:00
Tom Finegan 3118aba32c twopass_encoder.c: Silence MSVC data loss warnings.
Use unsigned int instead of uint64_t for duration and deadline
arguments to functions get_frame_stats() and encode_frame().

Change-Id: I1f26a7afc38ae89916b2c67415ced26fdc9d53e7
2014-02-19 14:44:35 -08:00
James Zern 33bb443550 Merge "decode_with_drops.c: Cast away MSVC data loss warning." 2014-02-19 14:04:34 -08:00
James Zern 68d49038c8 Merge "simple_decoder.c: Silence MSVC data loss warning." 2014-02-19 14:04:20 -08:00
James Zern 8491e3c882 Merge "postproc.c: Cast away MSVC data loss warning." 2014-02-19 14:04:01 -08:00
Tom Finegan 1ea12f5b5f Merge "vpx_temporal_scalable_patterns.c: Silence MSVC warnings." 2014-02-19 12:38:41 -08:00
Tom Finegan ebf4550990 simple_decoder.c: Silence MSVC data loss warning.
Change-Id: I138d7f62ac7e905642405e60a49ac3d282695e3f
2014-02-19 12:08:18 -08:00
Tom Finegan a3c521e143 postproc.c: Cast away MSVC data loss warning.
Change-Id: Ib80d4f394692a981e369dc5fecd5432cbec488d1
2014-02-19 11:58:28 -08:00
Tom Finegan 6811dbc4c8 decode_with_drops.c: Cast away MSVC data loss warning.
Change-Id: Ib8ee2b9a4cb785176ca1054489df5dced004837a
2014-02-19 11:55:06 -08:00
Tom Finegan 14e3d317cd Merge "error_resilient.c: Cast away MSVC data loss warning." 2014-02-19 11:45:58 -08:00
Tom Finegan a63a8e1037 Merge "decode_to_md5.c: Silence warning with cast." 2014-02-19 11:45:11 -08:00