- 10 Oct, 2014 - 1 commit
-
-
James Zern authored
set_vt_partitioning does double math Change-Id: I8e9d73d5c89b937a5326abf04164d24d9d88c5ef
-
- 09 Oct, 2014 - 2 commits
-
-
Jingning Han authored
This parameter is deprecated. Its function is replaced with other explicit condition check. Change-Id: I61337e350ba8ca9eb50382db8b4d4acbf45cb7eb
-
James Zern authored
double -> int64 + make threshold_multiplier an int Change-Id: I6d3607fdf13d670f57c9d9b04a80acb2be1346a0
-
- 07 Oct, 2014 - 3 commits
-
-
Jim Bankoski authored
The concept: There's too much noise in source pixels for variance and at low bitrate the reconstructed looks nothing like the source so we have problems getting good partitionings with either. This skirts the issue by using a box blur scaled down version for variance calculations. To compare against source_var_ moved keyframe to be rd based like source_var. Change-Id: Ie3babdbfadae324b7b5a76bea192893af27f0624
-
Jingning Han authored
Change-Id: If0ea98aa139d14d40cd924114e18396aff36b5a5
-
Jingning Han authored
The functions b_width_log2 and b_height_log2 only do direct table fetch. This commit unifies such use cases by using the table directly and removes these functions. Change-Id: I3103fc6ba959c1182886a2799d21b8b77c8a7b6b
-
- 06 Oct, 2014 - 1 commit
-
-
Paul Wilkins authored
Adjustments to the GF interval choice and minimum boost. Adjustment to the calculation of 2 pass worst q. Compared to 09/29 head there is metrics hit on derf of (-0.123%,-0.191%) Compared to the September 29 head and a baseline on September 18 baseline the accuracy of the VBR rate control measured on the derf set is as follows:- Mean error % / Mean abs(error %) Sept 18 baseline (-7.0% / 14.76%) Sept 29 head (-15.7%, 19.8%) This check in (-1.5% / 14.4%) The mean undershoot is reduced slightly but the worst case overshoot on e.g. harbour/highway is increased. This will be addressed in a later patch. Change-Id: Iffd9b0ab7432a131c98fbaaa82d1e5b40be72b58
-
- 03 Oct, 2014 - 3 commits
-
-
Yaowu Xu authored
This commit adds proper initialization of segment id for variance AQ mode in non-rd coding path. It fixes the enc/dec mismatch issue of rt=7 with --aq-mode=1, as reported in issue #816 Change-Id: I02fa41b96345bf2e66077d5ea553f85ba800f7bb
-
Jingning Han authored
Change-Id: Icbcfe7b56d88474f4398b4c5b52f6719d551ab4a
-
Jingning Han authored
This commit enables the encoder to skip split partition search if the bigger block size has all non-zero quantized coefficients in low frequency area and the total rate cost is below a certain threshold. It logarithmatically scales the rate threshold according to the current block size. For speed 3, the compression performance loss: derf -0.093% stdhd -0.066% Local experiments show 4% - 20% encoding speed-up for speed 3. blue_sky_1080p, 1500 kbps 51051 b/f, 35.891 dB, 67236 ms -> 50554 b/f, 35.857 dB, 59270 ms (12% speed-up) old_town_cross_720p, 1500 kbps 14431 b/f, 36.249 dB, 57687 ms -> 14108 b/f, 36.172 dB, 46586 ms (19% speed-up) pedestrian_area_1080p, 1500 kbps 50812 b/f, 40.124 dB, 100439 ms -> 50755 b/f, 40.118 dB, 96549 ms (4% speed-up) mobile_calendar_720p, 1000 kbps 10352 b/f, 35.055 dB, 51837 ms -> 10172 b/f, 35.003 dB, 44076 ms (15% speed-up) Change-Id: I412e34db49060775b3b89ba1738522317c3239c8
-
- 26 Sep, 2014 - 1 commit
-
-
Yunqing Wang authored
This patch re-enabled the feature in Pengchong's patch (commit 12861260). Originally, it was turned on while use_lastframe_partitioning > 0(not used anymore). Now it was added as a feature, and turned on while speed >= 2. As described in the original patch, this feature helps speed up the slideshows in YouTube. Change-Id: I1b0f18d65da1ee1c8d1e117dabba910c5207c471
-
- 25 Sep, 2014 - 1 commit
-
-
Deb Mukherjee authored
Change-Id: I6f67b171022bbc8199c6d674190b57f6bab1b62f
-
- 24 Sep, 2014 - 1 commit
-
-
Yunqing Wang authored
Simplified the code and removed some code that was not used anymore. This patch didn't change encoding result. Change-Id: I7e54a74c8f35a6726dfc8a1c55b337448b7ea124
-
- 20 Sep, 2014 - 1 commit
-
-
hkuang authored
mi_grid_* are arrays of pointer to pointer. They save the pointers that point to the MIs in cm->mi. But they are unnecessary and complicated. The original goal was to remove MODE_INFO_t copy. But with an extra MODE_INFO_t pointer inside MODE_INFO_t, same goal could be achieved. This commit totally removes the mi_grid_* structures. But there are still many dummy MODE_INFO_t inside cm->mi which are a waste of memory. Next commit will do on-demand MODE_INFO_t allocation in order to save these memories. Change-Id: I3a05cf1610679fed26e0b2eadd315a9ae91afdd6
-
- 12 Sep, 2014 - 1 commit
-
-
Yunqing Wang authored
The code covers both x->skip=0 & x->skip=1 cases. Change-Id: I09745c10e5994dc700ae4c01b4b62979cdaf3306
-
- 09 Sep, 2014 - 1 commit
-
-
Yunqing Wang authored
The use of use_lastframe_partitioning is totally removed in good- quality encoding. Its usage in real-time encoding needs to be evaluated to see if it can be removed too. The Borg tests at speed 4 showed: stdhd set: 0.220% psnr gain, 0.166% ssim gain; derf set: 0.329% psnr gain, 0.476% ssim gain. Speed test on selected clips showed 1.54% speedup.(Worst case: pedestrian_area_1080p25.y4m, speed loss: 1.5%) Change-Id: I1c844d329b0b5678558439b887297c1be7ddab00
-
- 03 Sep, 2014 - 1 commit
-
-
Yaowu Xu authored
This commit removes the special case for key frame, as transform size decision is controlled by the appropriate speed feature for all lossy coding modes: tx_size_search_method. Change-Id: I9677171e3f2432ec23705f7c5ea8170dd4562fae
-
- 28 Aug, 2014 - 1 commit
-
-
Yunqing Wang authored
In the partition search, the encoder checks all possible partitionings in the superblock's partition search tree. This patch proposed a set of criteria for partition search early termination, which effectively decided whether or not to terminate the search in current branch based on the "skippable" result of the quantized transform coefficients. The "skippable" information was gathered during the partition mode search, and no overhead calculations were introduced. This patch gives significant encoding speed gains without sacrificing the quality. Borg test results: 1. At speed 1, stdhd set: psnr: +0.074%, ssim: +0.093%; derf set: psnr: -0.024%, ssim: +0.011%; 2. At speed 2, stdhd set: psnr: +0.033%, ssim: +0.100%; derf set: psnr: -0.062%, ssim: +0.003%; 3. At speed 3, stdhd set: psnr: +0.060%, ssim: +0.190%; derf set: psnr: -0.064%, ssim: -0.002%; 4. At speed 4, stdhd set: psnr: +0.070%, ssim: +0.143%; derf set: psnr: -0.104%, ssim: +0.039%; The speedup ranges from several percent to 60+%. speed1 speed2 speed3 speed4 (1080p, 100f): old_town_cross: 48.2% 23.9% 20.8% 16.5% park_joy: 11.4% 17.8% 29.4% 18.2% pedestrian_area: 10.7% 4.0% 4.2% 2.4% (720p, 200f): mobcal: 68.1% 36.3% 34.4% 17.7% parkrun: 15.8% 24.2% 37.1% 16.8% shields: 45.1% 32.8% 30.1% 9.6% (cif, 300f) bus: 3.7% 10.4% 14.0% 7.9% deadline: 13.6% 14.8% 12.6% 10.9% mobile: 5.3% 11.5% 14.7% 10.7% Change-Id: I246c38fb952ad762ce5e365711235b605f470a66
-
- 25 Aug, 2014 - 2 commits
-
-
Dmitry Kovalev authored
The variable is never read. Change-Id: I94141c1667fa5d10604cd6f83c5f64df107dee94
-
Dmitry Kovalev authored
Change-Id: I2b9609dd22bacbf26e669f70bf155613b0316eb3
-
- 15 Aug, 2014 - 2 commits
-
-
Pengchong Jin authored
Add a speed feature to give the tighter partition search range. Before partition search, calculate the histogram of the partition sizes of the left, above and previous co-located blocks of the current block. If the variance of observed partition sizes is small enough, adjust the search range around the mean partition size, which will be tigher. The feature is currently turned on at speed 2. Experiments on sample youtube clips show on average the runtime is reduced by 3-7%. For hard stdhd clips: park_joy_1080p @ 15000kbps: 509251 ms -> 491953 ms (3.3%) pedestrian_area_1080p @ 2000kbps: 223941 ms -> 214226 ms (4.3%) The PSNR performance is changed: derf: -0.112% yt: -0.099% hd: -0.090% stdhd:-0.102% Change-Id: Ie205ec5325bf92ec5676c243e30ba9d0adca10f2
-
Yunqing Wang authored
Removed disable_split_var_thresh, which is not used anymore. Change-Id: I50119b150442e1571157433b5effc6aae0dbe0fd
-
- 14 Aug, 2014 - 2 commits
-
-
Jingning Han authored
When aq mode is on, the quantizer will be reset later in the same function (line 571). Change-Id: I20635db31261d136d04d5deeb881ad3957078bf1
-
Yaowu Xu authored
In the encoder, current_video_frame is used in a couple of places to decide encoding strategy, this commit replaces with more appropriate variables. Change-Id: I3d3d8d8e2ea02c489e4639b9d4c446a63e357d29
-
- 13 Aug, 2014 - 1 commit
-
-
Yaowu Xu authored
The function is called only once, right after all stats counters are reset to 0. Therefore all the computations have zero effect on return values. This commmit to removed those effectless code. Change-Id: I50d27c0802547921fa36c60aa4bd92d76247f595
-
- 08 Aug, 2014 - 1 commit
-
-
Dmitry Kovalev authored
We had a very complicated way to initialize cpi->pass from cfg->g_pass: switch (cfg->g_pass) { case VPX_RC_ONE_PASS: oxcf->mode = ONE_PASS_GOOD; break; case VPX_RC_FIRST_PASS: oxcf->mode = TWO_PASS_FIRST; break; case VPX_RC_LAST_PASS: oxcf->mode = TWO_PASS_SECOND_BEST; break; } cpi->pass = get_pass(oxcf->mode). Now pass is moved to VP9EncoderConfig and initialization is simple: switch (cfg->g_pass) { case VPX_RC_ONE_PASS: oxcf->pass = 0; break; case VPX_RC_FIRST_PASS: oxcf->pass = 1; break; case VPX_RC_LAST_PASS: oxcf->pass = 2; break; } Change-Id: I8f582203a4575f5e39b071598484a8ad2b72e0d9
-
- 07 Aug, 2014 - 3 commits
-
-
Alex Converse authored
Fix the interaction between active map and reuse_inter_pred_sby. The reuse_inter_pred_sby feature expects inter predictors to already be built, but blocks with active map on skip this step. Change-Id: Ibb2bf0d228f678935d82a0ede9cb0919ab7c8878
-
Alex Converse authored
Change-Id: Ib7497ba08696765cbc1b2cc4218d37f4298f278c
-
Dmitry Kovalev authored
Change-Id: Ia3001ae5c44faee3978fc3eb7a027cd9712a0373
-
- 06 Aug, 2014 - 1 commit
-
-
Jingning Han authored
This commit integrates the fast transform and quantization process into skip_recode scheme in the rate-distortion optimization loop. Previously the fast transform and quantization process was only enabled for non-RD coding flow. Change-Id: Ib7db4d39b7033f1495c75897271f769799198ba8
-
- 05 Aug, 2014 - 2 commits
-
-
Pengchong Jin authored
This patch allows the encoder to directly split the block in partition search, therefore skip searching NONE. It computes a score which measures whether 16x16 motion vectors from the first pass in the current block are consistent with each others. If they are inconsistent and we have enough Q to encode, split the block directly, and skip searching NONE. This feature is under flag CONFIG_FP_MB_STATS. In speed 2, it further gives a speedup of 3-8% on sample yt clips as compared to the previous version under the same flag. Overall, the features under the flag will give 7-15% on typical yt clips at up to 6000kbps data rate. The speedup at very high data rate is not significant. For hard stdhd clips: park_joy_1080p @ 15000kbps: 504541ms -> 506293ms (-0.35%) pedestrian_area_1080p @ 2000kbps: 326610ms -> 290090ms (+11.2%) The compression performance using the features under the flag: derf: -0.068% yt: -0.189% hd: -0.318% stdhd:-0.183% To use the feature, set CONFIG_FP_MB_STATS and turn on cpi->use_fp_mb_stats. Change-Id: Iad58a2966515c8861aa9eb211565b1864048d47f
-
Jingning Han authored
Change-Id: Ieae182d72d625d0d3fd4ed7c7d24cb521a0f21b0
-
- 04 Aug, 2014 - 2 commits
-
-
Pengchong Jin authored
Re-organize the one-byte structure for 16x16 first pass block. Add bits to indicate motion vector directions. Change-Id: Id10754ba343dfc712c7fed5bcc85c67fa0bbcb89
-
Jim Bankoski authored
Change-Id: I1b3c5337f018dde27dc819ab18bd081d169a91e8
-
- 31 Jul, 2014 - 1 commit
-
-
Jingning Han authored
The mb_energy value is used by aq-mode. Turn off computing its value when aq-mode is off. Change-Id: I26c239f124eca45a5ee58b90d19eae00d9a7cda5
-
- 30 Jul, 2014 - 3 commits
-
-
Pengchong Jin authored
This patch allows the encoder to skip the search for partition SPLIT, HORZ, VERT after the search for partition NONE is done in RD optimization. It uses the first pass block-wise statistics to make the decision. If all 16x16 blocks in the current partition have zero motions and small residues from the frist pass statistics, and it has small difference variance, further partition search is skipped. For speed 2 setting, experiments on general youtube clips show that the speedup varies from 1% - 10%, 5% on average. On the performance side in PSNR, derf 0.004%, yt -0.059%, hd -0.106%, stdhd 0.032%. For hard stdhd clips: park_joy_1080p, 502952 ms -> 503307 ms (-0.07%) pedestrian_area_1080p, 227049 ms -> 220531 ms (+3%) This feature is under the compilation flag CONFIG_FP_MB_STATS and it is off in current setting. Change-Id: I554537e9242178263b65ebe14a04f9c221b58bae
-
Jingning Han authored
Remove the variable that indicates the relative block index. This is explicitly covered by the use of pc_tree. Change-Id: Ib13142582fff926c85e375bde656aa050add8350
-
Jingning Han authored
This commit enables a chessboard pattern constrained partition search for 720p and above resolutions. The scheme applies stricter partition search to alternative blocks based on its above/left neighboring blocks' partition range, as well as that of the collocated blocks in the previous frame. It is currently turned on at 16x16 block size level. The chessboard pattern is flipped per coding frame. The speed 3 runtime is reduced: park_joy_1080p, 652832 ms -> 607738 ms (7% speed-up) pedestrian_area_1080p, 215998 ms -> 200589 ms (8% speed-up) The compression performance is changed: hd -0.223% stdhd -0.295% Change-Id: I2d4d123ae89f7171562f618febb4d81789575b19
-
- 29 Jul, 2014 - 2 commits
-
-
Jingning Han authored
This commit replace the repetitive retrieve of max and min allowed partition from speed_feature with local variables max_size and min_size. Change-Id: Ib06f11f16615e4876e4dd5fb6a968c6bf5f7b216
-
Jingning Han authored
The get_chessboard_index() used to call the entire VP9_COMMON struct pointer to retrieve the chessboard pattern index. This cl makes it call the frame index directly. Change-Id: I3cad9d209ea2e77a358085a04fe1ff0ddec5ba03
-