Yaowu Xu [Thu, 15 Jan 2015 19:42:04 +0000 (11:42 -0800)]
Fix doxygen warning with usage.dox
Change-Id: I3ee8974a66f186fb0eb15b1078a3c7b9cbf5ec80
Yaowu Xu [Thu, 15 Jan 2015 02:09:14 +0000 (18:09 -0800)]
Remove obsolete doxygen tags
Change-Id: I38a42ed1d0be4fbfce6c9f3f5d021055107933d7
Yaowu Xu [Thu, 15 Jan 2015 18:46:20 +0000 (10:46 -0800)]
Merge "Fix comments for doxygen"
Yunqing Wang [Thu, 15 Jan 2015 17:21:31 +0000 (09:21 -0800)]
Merge "Align thread data in vp9_ethread"
Yaowu Xu [Tue, 13 Jan 2015 22:32:09 +0000 (14:32 -0800)]
Fix comments for doxygen
Change-Id: Iaad3dc3cdd25275939b475706eb7d136a5a10174
Yaowu Xu [Thu, 15 Jan 2015 04:25:18 +0000 (20:25 -0800)]
Merge "Clarify purpose of VP9_INVERT_TILE_DECODE_ORDER"
Yaowu Xu [Thu, 15 Jan 2015 01:53:49 +0000 (17:53 -0800)]
Merge "Add comments for two SVC related controls"
Yaowu Xu [Thu, 15 Jan 2015 01:53:42 +0000 (17:53 -0800)]
Merge "Add comments for two SVC related controls"
Yaowu Xu [Thu, 15 Jan 2015 00:28:57 +0000 (16:28 -0800)]
Merge "Add comments for control VP9E_SET_TUNE_CONTENT"
Yaowu Xu [Thu, 15 Jan 2015 00:28:41 +0000 (16:28 -0800)]
Merge "Add comments for VP9E_SET_FRAME_PERIODIC_BOOST"
Yaowu Xu [Tue, 13 Jan 2015 20:19:46 +0000 (12:19 -0800)]
Clarify purpose of VP9_INVERT_TILE_DECODE_ORDER
Change-Id: I1eb98f4576994c5c9fa5ba748d85cd186910ee4f
Yunqing Wang [Wed, 14 Jan 2015 23:51:56 +0000 (15:51 -0800)]
Align thread data in vp9_ethread
On some platforms, such as 32bit Windows and 32bit Mac, the allocated
memory isn't aligned automatically. The thread data is aligned to
ensure the correct access in SIMD code.
Change-Id: I1108c145fe982ddbd3d9324952758297120e4806
Yaowu Xu [Wed, 14 Jan 2015 23:32:35 +0000 (15:32 -0800)]
Merge "Fix comments for encoder controls"
Yaowu Xu [Wed, 14 Jan 2015 22:14:34 +0000 (14:14 -0800)]
Merge "Add encoder control for setting color space"
Frank Galligan [Wed, 14 Jan 2015 20:17:42 +0000 (12:17 -0800)]
Merge "Switch remaining Neon variance functions to shifts"
Frank Galligan [Wed, 14 Jan 2015 20:17:20 +0000 (12:17 -0800)]
Merge "Add 64x64 sub_pel_variance Neon function"
Yaowu Xu [Wed, 14 Jan 2015 20:02:46 +0000 (12:02 -0800)]
Add comments for two SVC related controls
VP9E_SET_SVC
VP9E_SET_SVC_PARAMETERS
Change-Id: Ie32ffad48b6b53c5a2c44c42ec655bfedf8d2903
Yaowu Xu [Wed, 14 Jan 2015 19:48:29 +0000 (11:48 -0800)]
Add comments for two SVC related controls
VP9E_GET_SVC_LAYER_ID
VP9E_REGISTER_CX_CALLBACK
Change-Id: I92060bde1a4830268c8e07190d4ee4c37bc05334
Yaowu Xu [Wed, 14 Jan 2015 19:17:09 +0000 (11:17 -0800)]
Add comments for control VP9E_SET_TUNE_CONTENT
Change-Id: If1fb5d9f1545cb9753eeda22e699b1ab778452b4
Yaowu Xu [Wed, 14 Jan 2015 17:07:02 +0000 (09:07 -0800)]
Add comments for VP9E_SET_FRAME_PERIODIC_BOOST
Change-Id: Id6decd0024b87da82d85d62ec2f4bdff416faa39
Yaowu Xu [Tue, 13 Jan 2015 20:39:42 +0000 (12:39 -0800)]
Fix comments for encoder controls
This commit added coments for the following encoder controls:
VP9E_SET_LOSSLESS
VP9E_SET_TILE_COLUMNS
VP9E_SET_TILE_ROWS
VP9E_SET_FRAME_PARALLEL_DECODING
VP9E_SET_AQ_MODE
Change-Id: I2f75afd9cce01394f202b8e25f36bf763be0ddeb
Yaowu Xu [Tue, 13 Jan 2015 18:07:20 +0000 (10:07 -0800)]
Add encoder control for setting color space
This commit adds encoder side control for vp9 to set color space info
in the output compressed bitstream.
It also amends the "vp9_encoder_params_get_to_decoder" test to verify
the correct color space information is passed from the encoder end to
decoder end.
Change-Id: Ibf5fba2edcb2a8dc37557f6fae5c7816efa52650
Yaowu Xu [Wed, 14 Jan 2015 18:04:15 +0000 (10:04 -0800)]
Merge "Enable decoder to pass through color space info"
Frank Galligan [Wed, 14 Jan 2015 07:01:06 +0000 (23:01 -0800)]
Add 64x64 sub_pel_variance Neon function
On Nexus 7 speed -5, -6, -7, and -8 saw about a 15% increase
in perf for 480p. Speeds -5, -6, -7, and -8 saw about a 10%
increase in perf for 720p.
Tested on Nexus 7, built with ndk r10d, gcc 4.9.
Change-Id: I2fa5315845e3021c9a6e2ea47e52e68b398d8334
Frank Galligan [Wed, 14 Jan 2015 15:22:49 +0000 (07:22 -0800)]
Switch remaining Neon variance functions to shifts
Saves 5 instructions on 8x8 and 16x16 and 8 instructions
on 32x32, when compiled with 4.9.
Change-Id: Id3da613a36a9d27d8c5169c59ba45d247c920c6c
Frank Galligan [Wed, 14 Jan 2015 06:38:58 +0000 (22:38 -0800)]
Merge "Add 64x variance Neon functions"
Minghai Shang [Tue, 13 Jan 2015 23:39:04 +0000 (15:39 -0800)]
[twopass temporal svc] Fix decoding error on seek.
Don't put small empty frame in front of a key frame. We will
put key frame flag in webm container if there's a visible key
frame. But there will be decoding error when we seek to here
if we put the small empty frame, which will be inter frame,
in front of it.
Change-Id: Id50c2c1fd31da0405ff6faa7375cc2f49c55402d
Yaowu Xu [Fri, 9 Jan 2015 21:04:48 +0000 (13:04 -0800)]
Enable decoder to pass through color space info
This commit added a field to vpx_image_t for indicating color space,
the field is also added to YUV_BUFFER_CONFIG. This allows the color
space information pass through the decoder from input stream to the
output buffer.
The commit also updated compare_img() function with added verification
of matching color space to ensure the color space information to be
correctly passed from encode to decoder in compressed vp9 streams.
Change-Id: I412776ec83defd8a09d76759aeb057b8fa690371
Frank Galligan [Tue, 13 Jan 2015 19:15:24 +0000 (11:15 -0800)]
Add 64x variance Neon functions
Add optimized Neon functions of:
vp9_variance32x64
vp9_variance64x32
vp9_variance64x64
On Nexus 7 speed -5 and -6 saw about a 4% increase in perf.
Speeds -7 and -8 saw about a 6% increase in perf.
Tested on Nexus 7, built with ndk r10d, gcc 4.9.
Change-Id: I5a81f13c9897eb927fa39662530f5524a0f768fa
Yaowu Xu [Tue, 13 Jan 2015 17:20:13 +0000 (09:20 -0800)]
Merge "Added plumbing for setting color space"
JackyChen [Tue, 13 Jan 2015 01:33:34 +0000 (17:33 -0800)]
Merge "Unit test for turning VP8 denoiser on/off periodically."
Marco [Sun, 11 Jan 2015 23:26:44 +0000 (15:26 -0800)]
vp8: Fix to crash in pick_inter.
Added unittest that triggers the crash without this fix.
Issue: https://code.google.com/p/webm/issues/detail?id=911
Change-Id: If5208ceb210c821891675fdf3d9951ab83d52ae6
Yaowu Xu [Sun, 11 Jan 2015 22:01:36 +0000 (14:01 -0800)]
Merge "Fix comments and color format"
JackyChen [Thu, 8 Jan 2015 21:10:50 +0000 (13:10 -0800)]
Unit test for turning VP8 denoiser on/off periodically.
Change-Id: Id537d1126f25c0218adcfb4d6ee641ee81a2169a
Yaowu Xu [Fri, 9 Jan 2015 18:52:33 +0000 (10:52 -0800)]
Added plumbing for setting color space
Change-Id: If64052cc6e404abc8a64a889f42930d14fad21d3
Yaowu Xu [Fri, 9 Jan 2015 18:36:43 +0000 (10:36 -0800)]
Fix comments and color format
Replaced "color space" with "color format" in comments where color
sampling format is concerned, so to differentiate from the concept
defined in COLOR_SPACE.
Change-Id: I8c935034c166b24307a99352dab1686531276bb8
Paul Wilkins [Fri, 9 Jan 2015 14:05:11 +0000 (06:05 -0800)]
Merge "Use 64 bit to accumulate frame sse."
Jingning Han [Fri, 9 Jan 2015 01:56:53 +0000 (17:56 -0800)]
Merge "Refactor mc reference block fetch in denoiser"
James Zern [Thu, 8 Jan 2015 23:53:37 +0000 (15:53 -0800)]
Merge "vp9: add per-tile longjmp error handling"
James Zern [Thu, 8 Jan 2015 23:53:02 +0000 (15:53 -0800)]
Merge "vp9: fix -Wclobbered (longjmp + local variables)"
Jingning Han [Thu, 8 Jan 2015 21:58:35 +0000 (13:58 -0800)]
Merge "Use lookup table to find pixel numbers in block"
Johann [Thu, 8 Jan 2015 20:47:52 +0000 (12:47 -0800)]
Merge "Disable vp9 _8_ loopfilters"
Jingning Han [Thu, 8 Jan 2015 20:15:30 +0000 (12:15 -0800)]
Refactor mc reference block fetch in denoiser
This commit refactors the motion compensated reference block fetch
process in denoiser. It skips the stage that generates motion
compensated reference block if denoiser decides to use copy block
mode. For high motion clips, this could speed up the denoising
process by about 10%.
Change-Id: I8ef4fa5fe766a8c4529119b9ec01faefb3d4ef53
Jingning Han [Thu, 8 Jan 2015 02:36:47 +0000 (18:36 -0800)]
Use lookup table to find pixel numbers in block
This could save one multiplication in each threshold funtion
called by the denoiser per block.
Change-Id: I35f437e09999f0a087180878ef7805f0d86e5819
Jingning Han [Thu, 8 Jan 2015 19:16:14 +0000 (11:16 -0800)]
Merge "Refactor denoiser frame buffer update"
Jingning Han [Thu, 8 Jan 2015 18:55:03 +0000 (10:55 -0800)]
Merge "Initalize zeromv_sse and newmv_sse in vp9_pick_inter_mode"
Jingning Han [Thu, 8 Jan 2015 17:59:10 +0000 (09:59 -0800)]
Merge "Use vp9_convolve_copy in denoiser output"
hkuang [Thu, 8 Jan 2015 17:15:32 +0000 (09:15 -0800)]
Merge "Remove unnecessary init_macroblockd."
Zoe Liu [Thu, 8 Jan 2015 10:32:15 +0000 (02:32 -0800)]
Merge "Removed redundant local variables in the forward hybrid transforms."
JackyChen [Thu, 8 Jan 2015 07:36:16 +0000 (23:36 -0800)]
Merge "Unit test for turning VP9 denoiser on/off periodically."
Jingning Han [Thu, 8 Jan 2015 02:30:50 +0000 (18:30 -0800)]
Refactor denoiser frame buffer update
Use frame buffer pointer swap instead of memcpy when possible.
These two CLs make the denoiser when running on vidyo1 720p at
speed -6 over 10% faster.
Change-Id: I64fe8a2422cafca6787a50c7f4dfb961191c0a9d
JackyChen [Thu, 8 Jan 2015 00:34:25 +0000 (16:34 -0800)]
Unit test for turning VP9 denoiser on/off periodically.
Change-Id: Ifd2813e8ccd8af189a8dc89b24efb6a5681714c7
Jingning Han [Thu, 8 Jan 2015 02:20:38 +0000 (18:20 -0800)]
Use vp9_convolve_copy in denoiser output
Replace copy_block with vp9_convolve_copy for speed performance
improvement.
Change-Id: I3a08c4d01dff2253b6ee573efd02f65ccdc1b5a5
Zoe Liu [Thu, 8 Jan 2015 00:38:29 +0000 (16:38 -0800)]
Removed redundant local variables in the forward hybrid transforms.
Change-Id: I60f7ccbbc8dc624134e325bdce6042bc183075b6
Yaowu Xu [Thu, 8 Jan 2015 00:24:57 +0000 (16:24 -0800)]
Merge "Refactor calculation of tile_cols"
Jingning Han [Wed, 7 Jan 2015 23:54:06 +0000 (15:54 -0800)]
Merge "Always check and free denoiser buffer memory space"
Jingning Han [Wed, 7 Jan 2015 19:41:56 +0000 (11:41 -0800)]
Initalize zeromv_sse and newmv_sse in vp9_pick_inter_mode
These two parameters are used to control the denoiser cut-off
thresholds. They should be properly initialized when starting
mode search of a given block.
Change-Id: Iba8a25487026a0dbe0d350c347d7e4e4e237b637
JackyChen [Wed, 7 Jan 2015 22:57:46 +0000 (14:57 -0800)]
Merge "Use qdiff to adjust the threshold of sad and variance in MFQE."
Yaowu Xu [Wed, 7 Jan 2015 16:49:43 +0000 (08:49 -0800)]
Refactor calculation of tile_cols
Change-Id: I2c38ea2bcf6d221a0b6b2fb9be4cebbee21006a3
Jingning Han [Wed, 7 Jan 2015 22:06:55 +0000 (14:06 -0800)]
Merge "Fix best ref frame rd cost update in sub8x8 non-RD mode search"
Jingning Han [Wed, 7 Jan 2015 22:06:06 +0000 (14:06 -0800)]
Merge "Format fix in vp9_pick_inter_mode_sub8x8"
Jingning Han [Wed, 7 Jan 2015 19:57:36 +0000 (11:57 -0800)]
Fix best ref frame rd cost update in sub8x8 non-RD mode search
This fixes the issue that sub8x8 inter blocks always end up
with GOLDEN_FRAME.
Change-Id: Id0c25cbb9c2003f43b4dff8fb1572512c246e077
Jingning Han [Wed, 7 Jan 2015 19:49:07 +0000 (11:49 -0800)]
Format fix in vp9_pick_inter_mode_sub8x8
Replace ref_frame++ with ++ref_frame.
Change-Id: Ic39793081156c314bf1b85d5ab76def97f3bff52
Jingning Han [Wed, 7 Jan 2015 19:30:15 +0000 (11:30 -0800)]
Merge "Fix denoiser chroma component initialization"
Jingning Han [Wed, 7 Jan 2015 19:30:07 +0000 (11:30 -0800)]
Merge "Skip duplicate denoiser frame buffer allocation"
Jingning Han [Wed, 7 Jan 2015 19:29:54 +0000 (11:29 -0800)]
Merge "Turn denoiser sensitivity on starting from kf in unit test"
Johann [Wed, 7 Jan 2015 19:07:54 +0000 (11:07 -0800)]
Merge "Rearrange loopfilter functions"
Johann [Wed, 7 Jan 2015 19:07:12 +0000 (11:07 -0800)]
Merge "Add missing tests for neon _16_ filters"
Deb Mukherjee [Wed, 7 Jan 2015 17:38:32 +0000 (09:38 -0800)]
Merge "Moves inter mode count updates to update_stats"
JackyChen [Tue, 6 Jan 2015 18:31:41 +0000 (10:31 -0800)]
Use qdiff to adjust the threshold of sad and variance in MFQE.
When qdiff is larger, the sad/variance threshold should also be
higher which indicates a more aggressive action on MFQE.
Change-Id: I44c5c93572805458d4f87fdc7619cc9d8a522185
Jingning Han [Wed, 7 Jan 2015 00:17:05 +0000 (16:17 -0800)]
Always check and free denoiser buffer memory space
The vp9_denoiser_free() function will internally check if the
buffer pointers are NULL. This commit makes the encoder always
call vp9_denoiser_free() after finishing encoding. It protects the
case where noise_sensitivity_level is changed during encoding
process and happen to be turned off towards the end of sequence,
which could result memory space allocated to denoiser not being
released.
Change-Id: Ie20dc2f2e6e5fb6333fbab3356bc153978a6a0f8
Jingning Han [Sun, 4 Jan 2015 04:46:13 +0000 (20:46 -0800)]
Fix denoiser chroma component initialization
Use the correct frame size and stride value for chroma components
when setting the initial values. These control parameters are
assigned when the denoiser buffer was allocated and initialized.
Change-Id: Ia6318194c7738aff540bcbd34f77f0dac46221a1
Jingning Han [Sat, 3 Jan 2015 20:00:46 +0000 (12:00 -0800)]
Skip duplicate denoiser frame buffer allocation
Allocate the frame buffer allocation for denoiser once during the
encoder initialization. This avoids allocating frame buffer
multiple times and overwriting the buffer pointer without proper
releasing.
Change-Id: I9b3baa6283449d86fd164534d344c036bb035700
Paul Wilkins [Fri, 19 Dec 2014 16:58:05 +0000 (16:58 +0000)]
Use 64 bit to accumulate frame sse.
When testing frame sse to choose a loop filter value and
when checking ambient error in kf Q selection, use 64 bit
values for accumulating the sse, to avoid risk of overflow
for large image formats.
Change-Id: I03765d16c843d0ade61a45b0cd46312472697e57
Johann [Fri, 19 Dec 2014 23:00:04 +0000 (15:00 -0800)]
Disable vp9 _8_ loopfilters
Investigating https://code.google.com/p/chromium/issues/detail?id=443839
Change-Id: Ibb7485d835c5aa5e1d40f31715596ba8d208eedb
Johann [Tue, 6 Jan 2015 22:13:03 +0000 (14:13 -0800)]
Rearrange loopfilter functions
Separate functions and rename files. This will make it easier to disable
some functions later to help work around a compiler issue in chromium.
Change-Id: I7f30e109f77c4cd22e2eda7bd006672f090c1dc5
Johann [Tue, 6 Jan 2015 22:13:41 +0000 (14:13 -0800)]
Add missing tests for neon _16_ filters
Change-Id: I47174884efa257f331a369410a2fa7440368250b
Yaowu Xu [Wed, 7 Jan 2015 01:31:13 +0000 (17:31 -0800)]
Merge "Use -1 consistently as invalid buffer idx"
Deb Mukherjee [Tue, 6 Jan 2015 18:37:08 +0000 (10:37 -0800)]
Moves inter mode count updates to update_stats
This makes the inter_mode counts update consistent with other symbols.
Also, forward updates should work corerctly now.
Change-Id: Id98be26fd08875162e644bb8f1de6f0918f85396
Yaowu Xu [Tue, 6 Jan 2015 21:50:18 +0000 (13:50 -0800)]
Use -1 consistently as invalid buffer idx
Instead of mixed use of both -1 and INT_MAX.
This also fixes a vp9 fuzzing test failure.
Change-Id: I950ea94b44ec7cdb5232773bee30b104e342f52a
Deb Mukherjee [Tue, 6 Jan 2015 22:59:08 +0000 (14:59 -0800)]
Merge "Enable coefficient range checking for 10-/12-bit"
Frank Galligan [Tue, 6 Jan 2015 19:06:33 +0000 (11:06 -0800)]
Fix encode perf test.
JSON was missing a comma.
Change-Id: I7e6b6251b17bc4e74b0197a449ef0313255997e7
Jingning Han [Tue, 6 Jan 2015 18:04:56 +0000 (10:04 -0800)]
Turn denoiser sensitivity on starting from kf in unit test
The denoiser sensitivity level should be set to 1 starting from
key frame. The internal function of denoiser should make the
temporal denoising operations cut off in key frame coding.
Change-Id: Id3e704a73e98e4ea801284a2cbbab2ea9c371d23
Yaowu Xu [Tue, 6 Jan 2015 16:01:47 +0000 (08:01 -0800)]
Merge "Fix compiler warnigns for msvc2013"
Yaowu Xu [Tue, 6 Jan 2015 16:01:40 +0000 (08:01 -0800)]
Merge "Return error on wrong sync code"
Yaowu Xu [Tue, 6 Jan 2015 16:01:30 +0000 (08:01 -0800)]
Merge "Properly validate data size"
Paul Wilkins [Tue, 6 Jan 2015 12:18:20 +0000 (04:18 -0800)]
Merge "Deleted unused #define"
Deb Mukherjee [Tue, 6 Jan 2015 01:43:26 +0000 (17:43 -0800)]
Enable coefficient range checking for 10-/12-bit
Also fixes a broken build with --enable-coefficient-range-checking
configuration option.
Change-Id: Icc536f53088e8cec59dfb8f635668555fdb9125e
Yaowu Xu [Mon, 5 Jan 2015 17:00:06 +0000 (09:00 -0800)]
Properly validate data size
With "show_existing_frame" frames:
Minimum data size for profile 0 and 1 is 1 byte (8bits)
Minimum data size for profile 2 and 3 is 2 bytes (9bits)
Otherwise:
Minimum data size is 8 bytes.
This resolves the VP9 failure in fuzzing test build #56.
Change-Id: I146d9d37688f535dd68d24aacc76d464ccffdf04
Yaowu Xu [Mon, 5 Jan 2015 23:37:26 +0000 (15:37 -0800)]
Fix compiler warnigns for msvc2013
Change-Id: I1e32bf8f6872a6fb7e9cabe86483e94805e2f790
Yaowu Xu [Mon, 5 Jan 2015 18:49:06 +0000 (10:49 -0800)]
Return error on wrong sync code
Not initialize codec stream info
This fixes vp8 fuzzing issue reported at build #56
Change-Id: I307ac839b4f4bda3a02a551019c0d688dba19c86
Jingning Han [Mon, 5 Jan 2015 23:28:29 +0000 (15:28 -0800)]
Merge "Fix denoised video output function"
JackyChen [Mon, 5 Jan 2015 18:41:12 +0000 (10:41 -0800)]
Adopt weighted averaging in MFQE.
By using weighted averaging in the calculation of the frames to be
displayed, we get an average gain of more than 1 db for key frames
whose base qp are 20 higher than non-key frames.
Change-Id: I7bcb2e7b9c6420ea3f73f33204d18b072dffd17c
Jingning Han [Sat, 3 Jan 2015 20:34:44 +0000 (12:34 -0800)]
Fix denoised video output function
This commit fixes the buffer alignment control in denoised video
output function. The encoder is now able to properly store the
denoised input video into provided file when enabled.
Change-Id: I258e272c8d4a9b52592e16d6d09976c6f5c21728
Jingning Han [Fri, 2 Jan 2015 22:48:27 +0000 (14:48 -0800)]
Merge "Remove redundant local variable for segment_id"
Yaowu Xu [Fri, 2 Jan 2015 20:36:57 +0000 (12:36 -0800)]
Add help info for --enable-vp9-highbitdepth
This fixes issue# 903.
Change-Id: I649d8584898a93681073e1ac1b444ff66e240050
Jingning Han [Fri, 2 Jan 2015 20:21:44 +0000 (12:21 -0800)]
Remove redundant local variable for segment_id
Use mbmi->segment_id directly in vp9_pick_inter_mode. The value is
set outside this function, hence no need to assign it again.
Change-Id: I3d63cdd2e4fadf62ccdefada638b00d979eb3741
Jingning Han [Fri, 2 Jan 2015 19:50:57 +0000 (11:50 -0800)]
Merge "Add bsize check condition in nonrd_use_partition"
Jingning Han [Fri, 2 Jan 2015 18:10:49 +0000 (10:10 -0800)]
Add bsize check condition in nonrd_use_partition
Check if block size is below 8x8 for rectangular block coding. It
is added to support 4x8 and 8x4 block coding for RTC mode.
Change-Id: I760b328f45b98ae48adc45ed5a39fb643cd8aebd
Jingning Han [Fri, 2 Jan 2015 18:00:45 +0000 (10:00 -0800)]
Merge "Use less tmp motion vectors in vp9_pick_inter_mode_sub8x8"