diff options
author | John Stebbins <[email protected]> | 2019-03-18 17:33:36 -0600 |
---|---|---|
committer | John Stebbins <[email protected]> | 2019-05-02 08:50:07 -0600 |
commit | 28bac379078b23d98e2ba91597c155c0cc7c5145 (patch) | |
tree | 8a9f097c36f0b0bb259de0d513d3bb1d4cfee585 | |
parent | 6d9d23d9103ad7086880b36ad671190fe1ab6519 (diff) |
deblock: replace pp7 with avfilter vf_deblock
Adds deblock presets and tunes.
Old preset values are converted upon preset import.
Old PictureDeblock preset key is now PictureDeblockPreset.
-rw-r--r-- | gtk/src/callbacks.c | 5 | ||||
-rw-r--r-- | gtk/src/ghb.m4 | 68 | ||||
-rw-r--r-- | gtk/src/hb-backend.c | 24 | ||||
-rw-r--r-- | gtk/src/makedeps.py | 3 | ||||
-rw-r--r-- | gtk/src/presets.c | 5 | ||||
-rw-r--r-- | gtk/src/queuehandler.c | 49 | ||||
-rw-r--r-- | libhb/deblock.c | 483 | ||||
-rw-r--r-- | libhb/hb_dict.c | 5 | ||||
-rw-r--r-- | libhb/hb_dict.h | 1 | ||||
-rw-r--r-- | libhb/hbavfilter.c | 17 | ||||
-rw-r--r-- | libhb/param.c | 95 | ||||
-rw-r--r-- | libhb/preset.c | 43 | ||||
-rw-r--r-- | libhb/preset_builtin.h | 397 | ||||
-rw-r--r-- | preset/preset_builtin.json | 385 | ||||
-rw-r--r-- | preset/preset_builtin.list | 2 | ||||
-rw-r--r-- | preset/preset_cli_default.json | 5 | ||||
-rw-r--r-- | preset/preset_template.json | 5 | ||||
-rw-r--r-- | test/test.c | 66 |
18 files changed, 809 insertions, 849 deletions
diff --git a/gtk/src/callbacks.c b/gtk/src/callbacks.c index f73892ba9..a84e2115f 100644 --- a/gtk/src/callbacks.c +++ b/gtk/src/callbacks.c @@ -2472,7 +2472,6 @@ ghb_update_summary_info(signal_user_data_t *ud) gboolean detel, comb_detect, deint, decomb, deblock, nlmeans, denoise; gboolean unsharp, lapsharp, rot, gray; const char * sval; - int ival; sval = ghb_dict_get_string(ud->settings, "PictureDetelecine"); detel = sval != NULL && !!strcasecmp(sval, "off"); @@ -2481,8 +2480,8 @@ ghb_update_summary_info(signal_user_data_t *ud) sval = ghb_dict_get_string(ud->settings, "PictureDeinterlaceFilter"); deint = sval != NULL && !strcasecmp(sval, "deinterlace"); decomb = sval != NULL && !strcasecmp(sval, "decomb"); - ival = ghb_dict_get_int(ud->settings, "PictureDeblock"); - deblock = ival >= 5; + sval = ghb_dict_get_string(ud->settings, "PictureDeblockPreset"); + deblock = sval != NULL && !!strcasecmp(sval, "off"); sval = ghb_dict_get_string(ud->settings, "PictureDenoiseFilter"); nlmeans = sval != NULL && !strcasecmp(sval, "nlmeans"); denoise = sval != NULL && !strcasecmp(sval, "hqdn3d"); diff --git a/gtk/src/ghb.m4 b/gtk/src/ghb.m4 index a9cb6ea8b..6a7ecc964 100644 --- a/gtk/src/ghb.m4 +++ b/gtk/src/ghb.m4 @@ -2965,34 +2965,80 @@ filter_output([ <property name="halign">start</property> <property name="valign">start</property> <child> - <object class="GtkLabel" id="label41"> + <object class="GtkLabel" id="PictureDeblockPresetLabel"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="halign">start</property> - <property name="label" translatable="yes">Deblock:</property> + <property name="label" translatable="yes">Deblock Filter:</property> </object> <packing> - <property name="top_attach">0</property> + <property name="top_attach">1</property> <property name="left_attach">0</property> <property name="width">1</property> <property name="height">1</property> </packing> </child> <child> - <object class="GtkScale" id="PictureDeblock"> + <object class="GtkComboBox" id="PictureDeblockPreset"> + <property name="valign">GTK_ALIGN_CENTER</property> + <property name="width_request">100</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> + <property name="tooltip_text" translatable="yes">The deblocking filter removes a common type of compression artifact. +If your source exhibits 'blockiness', this filter may help clean it up.</property> + <signal name="changed" handler="denoise_filter_changed_cb" swapped="no"/> + </object> + <packing> + <property name="top_attach">1</property> + <property name="left_attach">1</property> + <property name="width">1</property> + <property name="height">1</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="PictureDeblockTuneLabel"> <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="halign">start</property> + <property name="label" translatable="yes">Deblock Tune:</property> + </object> + <packing> + <property name="top_attach">2</property> + <property name="left_attach">0</property> + <property name="width">1</property> + <property name="height">1</property> + </packing> + </child> + <child> + <object class="GtkComboBox" id="PictureDeblockTune"> + <property name="valign">GTK_ALIGN_CENTER</property> <property name="width_request">100</property> - <property name="can_focus">True</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> <property name="tooltip_text" translatable="yes">The deblocking filter removes a common type of compression artifact. If your source exhibits 'blockiness', this filter may help clean it up.</property> - <property name="adjustment">adjustment20</property> - <property name="digits">0</property> - <property name="value_pos">right</property> - <signal name="format-value" handler="format_deblock_cb" swapped="no"/> - <signal name="value-changed" handler="setting_widget_changed_cb" swapped="no"/> + <signal name="changed" handler="setting_widget_changed_cb" swapped="no"/> </object> <packing> - <property name="top_attach">0</property> + <property name="top_attach">2</property> + <property name="left_attach">1</property> + <property name="width">1</property> + <property name="height">1</property> + </packing> + </child> + <child> + <object class="GtkEntry" id="PictureDeblockCustom"> + <property name="can_focus">True</property> + <property name="tooltip_text" translatable="yes">Custom deblock filter string format + +strength=weak|strong:thresh=0-100:blocksize=4-512</property> + <property name="width-chars">8</property> + <signal name="changed" handler="setting_widget_changed_cb" swapped="no"/> + </object> + <packing> + <property name="top_attach">3</property> <property name="left_attach">1</property> <property name="width">1</property> <property name="height">1</property> diff --git a/gtk/src/hb-backend.c b/gtk/src/hb-backend.c index b80bed556..6d70fb300 100644 --- a/gtk/src/hb-backend.c +++ b/gtk/src/hb-backend.c @@ -360,6 +360,18 @@ typedef struct gboolean preset; } filter_opts_t; +static filter_opts_t deblock_preset_opts = +{ + .filter_id = HB_FILTER_DEBLOCK, + .preset = TRUE +}; + +static filter_opts_t deblock_tune_opts = +{ + .filter_id = HB_FILTER_DEBLOCK, + .preset = FALSE +}; + static filter_opts_t deint_preset_opts = { .filter_id = HB_FILTER_DECOMB, @@ -565,6 +577,18 @@ combo_name_map_t combo_name_map[] = filter_opt_get }, { + "PictureDeblockPreset", + &deblock_preset_opts, + filter_opts_set, + filter_opt_get + }, + { + "PictureDeblockTune", + &deblock_tune_opts, + filter_opts_set, + filter_opt_get + }, + { "PictureDenoiseFilter", &denoise_opts, small_opts_set, diff --git a/gtk/src/makedeps.py b/gtk/src/makedeps.py index 2cbd1bcb1..5294eb88c 100644 --- a/gtk/src/makedeps.py +++ b/gtk/src/makedeps.py @@ -26,6 +26,9 @@ dep_map = ( DepEntry("PictureDeinterlaceFilter", "PictureDeinterlacePresetLabel", "off", True, True), DepEntry("PictureDeinterlaceFilter", "PictureDeinterlaceCustom", "off", True, True), DepEntry("PictureDeinterlacePreset", "PictureDeinterlaceCustom", "custom", False, True), + DepEntry("PictureDeblockPreset", "PictureDeblockTune", "off|custom", True, True), + DepEntry("PictureDeblockPreset", "PictureDeblockTuneLabel", "off|custom", True, True), + DepEntry("PictureDeblockPreset", "PictureDeblockCustom", "custom", False, True), DepEntry("PictureDenoiseFilter", "PictureDenoisePreset", "off", True, True), DepEntry("PictureDenoiseFilter", "PictureDenoisePresetLabel", "off", True, True), DepEntry("PictureDenoiseFilter", "PictureDenoiseTune", "nlmeans", False, True), diff --git a/gtk/src/presets.c b/gtk/src/presets.c index 9284b94f7..e522c88f6 100644 --- a/gtk/src/presets.c +++ b/gtk/src/presets.c @@ -1694,11 +1694,6 @@ ghb_settings_to_preset(GhbValue *settings) ghb_dict_set_string(preset, "VideoFramerateMode", "vfr"); } - if (ghb_dict_get_int(preset, "PictureDeblock") < 5) - { - ghb_dict_set_int(preset, "PictureDeblock", 0); - } - GhbValue *alist, *adict; gint count, ii; diff --git a/gtk/src/queuehandler.c b/gtk/src/queuehandler.c index d00dc4a66..b1ee364e3 100644 --- a/gtk/src/queuehandler.c +++ b/gtk/src/queuehandler.c @@ -328,16 +328,19 @@ add_to_queue_list(signal_user_data_t *ud, GhbValue *queueDict, GtkTreeIter *pite preset_modified = ghb_dict_get_bool(uiDict, "preset_modified"); name = ghb_dict_get_string(uiDict, "PresetFullName"); + escape = g_markup_escape_text(name, -1); markers = ghb_dict_get_bool(uiDict, "ChapterMarkers"); if (preset_modified) { - XPRINT(_("<b>Modified Preset Based On:</b> <small>%s</small>\n"), name); + XPRINT(_("<b>Modified Preset Based On:</b> <small>%s</small>\n"), + escape); } else { - XPRINT(_("<b>Preset:</b> <small>%s</small>\n"), name); + XPRINT(_("<b>Preset:</b> <small>%s</small>\n"), escape); } + g_free(escape); // Next line in the display (Container type) // Format: XXX Container @@ -439,12 +442,12 @@ add_to_queue_list(signal_user_data_t *ud, GhbValue *queueDict, GtkTreeIter *pite // Next line in the display (Filter settings) // Filters: - Deinterlace - gint deblock, denoise, deint; - const gchar *deint_preset, *detel_preset, *denoise_preset; - const gchar *denoise_tune; - const gchar *deint_cust, *detel_cust, *denoise_cust; + gint denoise, deint; + const gchar *deint_preset, *detel_preset, *deblock_preset, *denoise_preset; + const gchar *deblock_tune, *denoise_tune; + const gchar *deint_cust, *detel_cust, *deblock_cust, *denoise_cust; gchar *deint_opt, *denoise_opt; - gboolean grayscale, detel, filters; + gboolean grayscale, deblock, detel, filters; deint = ghb_settings_combo_int(uiDict, "PictureDeinterlaceFilter"); deint_opt = ghb_settings_combo_option(uiDict, "PictureDeinterlaceFilter"); @@ -459,7 +462,12 @@ add_to_queue_list(signal_user_data_t *ud, GhbValue *queueDict, GtkTreeIter *pite detel = detel_preset != NULL && !!strcasecmp(detel_preset, "off"); detel_cust = ghb_dict_get_string(uiDict, "PictureDetelecineCustom"); - deblock = ghb_dict_get_int(uiDict, "PictureDeblock"); + deblock_preset = ghb_lookup_filter_name(HB_FILTER_DEBLOCK, + ghb_dict_get_string(uiDict, "PictureDeblockPreset"), 1); + deblock_tune = ghb_lookup_filter_name(HB_FILTER_DEBLOCK, + ghb_dict_get_string(uiDict, "PictureDeblockTune"), 0); + deblock = deblock_preset != NULL && !!strcasecmp(deblock_preset, "off"); + deblock_cust = ghb_dict_get_string(uiDict, "PictureDeblockCustom"); denoise = ghb_settings_combo_int(uiDict, "PictureDenoiseFilter"); denoise_opt = ghb_settings_combo_option(uiDict, "PictureDenoiseFilter"); @@ -474,10 +482,9 @@ add_to_queue_list(signal_user_data_t *ud, GhbValue *queueDict, GtkTreeIter *pite grayscale = ghb_dict_get_bool(uiDict, "VideoGrayScale"); - filters = detel || grayscale || + filters = detel || grayscale || deblock || deint != HB_FILTER_INVALID || - denoise != HB_FILTER_INVALID || - (deblock >= 5); + denoise != HB_FILTER_INVALID; if (filters) { const char *prefix = " "; @@ -528,9 +535,25 @@ add_to_queue_list(signal_user_data_t *ud, GhbValue *queueDict, GtkTreeIter *pite } prefix = " - "; } - if (deblock >= 5) + if (deblock) { - XPRINT(_("%sDeblock: %d"), prefix, deblock); + XPRINT(_("%sDeblock:"), prefix); + const char *preset; + preset = ghb_dict_get_string(uiDict, "PictureDeblockPreset"); + if (preset && !strcasecmp(preset, "custom")) + { + XPRINT(" %s", deblock_cust); + } + else + { + XPRINT(" %s", deblock_preset); + const char *tune; + tune = ghb_dict_get_string(uiDict, "PictureDeblockTune"); + if (deblock_tune != NULL && strcasecmp(tune, "none")) + { + XPRINT(",%s", deblock_tune); + } + } prefix = " - "; } if (grayscale) diff --git a/libhb/deblock.c b/libhb/deblock.c index c334b4ef2..31efc1d15 100644 --- a/libhb/deblock.c +++ b/libhb/deblock.c @@ -1,464 +1,85 @@ -/* - Copyright (C) 2005 Michael Niedermayer <[email protected]> +/* deblock.c - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. + Copyright (c) 2003-2015 HandBrake Team + This file is part of the HandBrake source code + Homepage: <http://handbrake.fr/>. + It may be used under the terms of the GNU General Public License v2. + For full terms see the file COPYING file or visit http://www.gnu.org/licenses/gpl-2.0.html + */ - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. +#include "common.h" +#include "avfilter_priv.h" - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ +static int deblock_init(hb_filter_object_t * filter, hb_filter_init_t * init); -#include "hb.h" -#include "hbffmpeg.h" - -#define PP7_QP_DEFAULT 5 -#define PP7_MODE_DEFAULT 2 - -#define XMIN(a,b) ((a) < (b) ? (a) : (b)) -#define XMAX(a,b) ((a) > (b) ? (a) : (b)) - -typedef short DCTELEM; - -//===========================================================================// -static const uint8_t __attribute__((aligned(8))) pp7_dither[8][8] = -{ - { 0, 48, 12, 60, 3, 51, 15, 63, }, - { 32, 16, 44, 28, 35, 19, 47, 31, }, - { 8, 56, 4, 52, 11, 59, 7, 55, }, - { 40, 24, 36, 20, 43, 27, 39, 23, }, - { 2, 50, 14, 62, 1, 49, 13, 61, }, - { 34, 18, 46, 30, 33, 17, 45, 29, }, - { 10, 58, 6, 54, 9, 57, 5, 53, }, - { 42, 26, 38, 22, 41, 25, 37, 21, }, -}; - -struct hb_filter_private_s -{ - int pp7_qp; - int pp7_mode; - int pp7_mpeg2; - int pp7_temp_stride; - uint8_t * pp7_src; - - hb_filter_init_t input; - hb_filter_init_t output; -}; - -static int hb_deblock_init( hb_filter_object_t * filter, - hb_filter_init_t * init ); - -static int hb_deblock_work( hb_filter_object_t * filter, - hb_buffer_t ** buf_in, - hb_buffer_t ** buf_out ); - -static void hb_deblock_close( hb_filter_object_t * filter ); - -static const char deblock_template[] = - "qp=^"HB_INT_REG"$:mode=^([012])$:disable=^"HB_BOOL_REG"$"; +const char deblock_template[] = + "strength=^"HB_ALL_REG"$:thresh=^"HB_INT_REG"$:blocksize=^"HB_INT_REG"$:" + "disable=^"HB_BOOL_REG"$"; hb_filter_object_t hb_filter_deblock = { .id = HB_FILTER_DEBLOCK, .enforce_order = 1, - .name = "Deblock (pp7)", + .skip = 1, + .name = "Deblock", .settings = NULL, - .init = hb_deblock_init, - .work = hb_deblock_work, - .close = hb_deblock_close, + .init = deblock_init, + .work = hb_avfilter_null_work, + .close = hb_avfilter_alias_close, .settings_template = deblock_template, }; -static inline void pp7_dct_a( DCTELEM * dst, uint8_t * src, int stride ) -{ - int i; - - for( i = 0; i < 4; i++ ) - { - int s0 = src[0*stride] + src[6*stride]; - int s1 = src[1*stride] + src[5*stride]; - int s2 = src[2*stride] + src[4*stride]; - int s3 = src[3*stride]; - int s = s3+s3; - - s3 = s - s0; - s0 = s + s0; - s = s2 + s1; - s2 = s2 - s1; - - dst[0] = s0 + s; - dst[2] = s0 - s; - dst[1] = 2*s3 + s2; - dst[3] = s3 - s2*2; - - src++; - dst += 4; - } -} - -static void pp7_dct_b( DCTELEM * dst, DCTELEM * src ) -{ - int i; - - for( i = 0; i < 4; i++ ) - { - int s0 = src[0*4] + src[6*4]; - int s1 = src[1*4] + src[5*4]; - int s2 = src[2*4] + src[4*4]; - int s3 = src[3*4]; - int s = s3+s3; - - s3 = s - s0; - s0 = s + s0; - s = s2 + s1; - s2 = s2 - s1; - - dst[0*4] = s0 + s; - dst[2*4] = s0 - s; - dst[1*4] = 2*s3 + s2; - dst[3*4] = s3 - s2*2; - - src++; - dst++; - } -} - -#define N (1<<16) -#define N0 4 -#define N1 5 -#define N2 10 -#define SN0 2 -#define SN1 2.2360679775 -#define SN2 3.16227766017 - -static const int pp7_factor[16] = -{ - N/(N0*N0), N/(N0*N1), N/(N0*N0),N/(N0*N2), - N/(N1*N0), N/(N1*N1), N/(N1*N0),N/(N1*N2), - N/(N0*N0), N/(N0*N1), N/(N0*N0),N/(N0*N2), - N/(N2*N0), N/(N2*N1), N/(N2*N0),N/(N2*N2), -}; - -static int pp7_threshold[99][16]; - -static void pp7_init_threshold( void ) -{ - int qp, i; - int bias = 0; - - for( qp = 0; qp < 99; qp++ ) - { - for( i = 0; i < 16; i++ ) - { - pp7_threshold[qp][i] = - ((i&1)?SN2:SN0) * ((i&4)?SN2:SN0) * - XMAX(1,qp) * (1<<2) - 1 - bias; - } - } -} - -static int pp7_hard_threshold( DCTELEM * src, int qp ) -{ - int i; - int a; - - a = src[0] * pp7_factor[0]; - for( i = 1; i < 16; i++ ) - { - unsigned int threshold1 = pp7_threshold[qp][i]; - unsigned int threshold2 = (threshold1<<1); - int level= src[i]; - if( ((unsigned)(level+threshold1)) > threshold2 ) - { - a += level * pp7_factor[i]; - } - } - return (a + (1<<11)) >> 12; -} - -static int pp7_medium_threshold( DCTELEM * src, int qp ) -{ - int i; - int a; - - a = src[0] * pp7_factor[0]; - for( i = 1; i < 16; i++ ) - { - unsigned int threshold1 = pp7_threshold[qp][i]; - unsigned int threshold2 = (threshold1<<1); - int level= src[i]; - if( ((unsigned)(level+threshold1)) > threshold2 ) - { - if( ((unsigned)(level+2*threshold1)) > 2*threshold2 ) - { - a += level * pp7_factor[i]; - } - else - { - if( level>0 ) - { - a += 2*(level - (int)threshold1) * pp7_factor[i]; - } - else - { - a += 2*(level + (int)threshold1) * pp7_factor[i]; - } - } - } - } - return (a + (1<<11)) >> 12; -} - -static int pp7_soft_threshold( DCTELEM * src, int qp ) +/* Deblock presets and tunes + * + * There are currently no presets and tunes for deblock + * The custom deblock string is converted to an avformat filter graph string + */ +static int deblock_init(hb_filter_object_t * filter, hb_filter_init_t * init) { - int i; - int a; + hb_filter_private_t * pv = NULL; - a = src[0] * pp7_factor[0]; - for( i = 1; i < 16; i++ ) + pv = calloc(1, sizeof(struct hb_filter_private_s)); + filter->private_data = pv; + if (pv == NULL) { - unsigned int threshold1 = pp7_threshold[qp][i]; - unsigned int threshold2 = (threshold1<<1); - int level= src[i]; - if( ((unsigned)(level+threshold1))>threshold2 ) - { - if( level>0 ) - { - a += (level - (int)threshold1) * pp7_factor[i]; - } - else - { - a += (level + (int)threshold1) * pp7_factor[i]; - } - } + return 1; } - return (a + (1<<11)) >> 12; -} + pv->input = *init; -static int ( * pp7_requantize )( DCTELEM * src, int qp ) = pp7_hard_threshold; - -static void pp7_filter( hb_filter_private_t * pv, - uint8_t * dst, - uint8_t * src, - int width, - int height, - uint8_t * qp_store, - int qp_stride, - int is_luma) -{ - int x, y; + hb_dict_t * settings = filter->settings; - const int stride = is_luma ? pv->pp7_temp_stride : ((width+16+15)&(~15)); - uint8_t * p_src = pv->pp7_src + 8*stride; - DCTELEM * block = (DCTELEM *)(pv->pp7_src); - DCTELEM * temp = (DCTELEM *)(pv->pp7_src + 32); - - if( !src || !dst ) - { - return; - } + int thresh = -1, blocksize = 8; + char * strength = NULL; - for( y = 0; y < height; y++ ) - { - int index = 8 + 8*stride + y*stride; - memcpy( p_src + index, src + y*width, width ); + hb_dict_extract_string(&strength, settings, "strength"); + hb_dict_extract_int(&thresh, settings, "thresh"); + hb_dict_extract_int(&blocksize, settings, "blocksize"); - for( x = 0; x < 8; x++ ) - { - p_src[index - x - 1] = p_src[index + x ]; - p_src[index + width + x ] = p_src[index + width - x - 1]; - } - } + hb_dict_t * avfilter = hb_dict_init(); + hb_dict_t * avsettings = hb_dict_init(); - for( y = 0; y < 8; y++ ) + if (strength != NULL) { - memcpy( p_src + ( 7-y)*stride, - p_src + ( y+8)*stride, stride ); - memcpy( p_src + (height+8+y)*stride, - p_src + (height-y+7)*stride, stride ); + hb_dict_set_string(avsettings, "filter", strength); + free(strength); } + hb_dict_set_int(avsettings, "block", blocksize); - for( y = 0; y < height; y++ ) + if (thresh > 0) { - for( x = -8; x < 0; x += 4 ) - { - const int index = x + y*stride + (8-3)*(1+stride) + 8; - uint8_t * src = p_src + index; - DCTELEM * tp = temp+4*x; - - pp7_dct_a( tp+4*8, src, stride ); - } - - for( x = 0; x < width; ) - { - const int qps = 3 + is_luma; - int end = XMIN(x+8, width); - - int qp; - if( pv->pp7_qp ) - { - qp = pv->pp7_qp; - } - else - { - qp = qp_store[ (XMIN(x, width-1)>>qps) + - (XMIN(y, height-1)>>qps) * qp_stride ]; - - if( pv->pp7_mpeg2 ) - { - qp >>= 1; - } - } - - for( ; x < end; x++ ) - { - const int index = x + y*stride + (8-3)*(1+stride) + 8; - uint8_t * src = p_src + index; - DCTELEM * tp = temp+4*x; - int v; - - if( (x&3) == 0 ) - { - pp7_dct_a( tp+4*8, src, stride ); - } - - pp7_dct_b( block, tp ); - - v = pp7_requantize( block, qp ); - v = (v + pp7_dither[y&7][x&7]) >> 6; - if( (unsigned)v > 255 ) - { - v = (-v) >> 31; - } - dst[x + y*width] = v; - } - } - } -} - -static int hb_deblock_init( hb_filter_object_t * filter, - hb_filter_init_t * init ) -{ - filter->private_data = calloc( sizeof(struct hb_filter_private_s), 1 ); - hb_filter_private_t * pv = filter->private_data; - - pv->input = *init; - pv->pp7_qp = PP7_QP_DEFAULT; - pv->pp7_mode = PP7_MODE_DEFAULT; - pv->pp7_mpeg2 = 1; /*mpi->qscale_type;*/ - - hb_dict_extract_int(&pv->pp7_mode, filter->settings, "mode"); - hb_dict_extract_int(&pv->pp7_qp, filter->settings, "qp"); - - if( pv->pp7_qp < 0 ) - { - pv->pp7_qp = 0; - } - - pp7_init_threshold(); + double alpha, beta, gamma, delta; - switch( pv->pp7_mode ) - { - case 0: - pp7_requantize = pp7_hard_threshold; - break; - case 1: - pp7_requantize = pp7_soft_threshold; - break; - case 2: - pp7_requantize = pp7_medium_threshold; - break; + alpha = thresh * 0.010; + beta = gamma = delta = alpha / 2; + hb_dict_set_double(avsettings, "alpha", alpha); + hb_dict_set_double(avsettings, "beta", beta); + hb_dict_set_double(avsettings, "gamma", gamma); + hb_dict_set_double(avsettings, "delta", delta); } + hb_dict_set(avfilter, "deblock", avsettings); + pv->avfilters = avfilter; - int h = (init->geometry.height + 16 + 15) & (~15); - - pv->pp7_temp_stride = (init->geometry.width + 16 + 15) & (~15); - - pv->pp7_src = (uint8_t*)malloc( pv->pp7_temp_stride*(h+8)*sizeof(uint8_t) ); pv->output = *init; return 0; } - -static void hb_deblock_close( hb_filter_object_t * filter ) -{ - hb_filter_private_t * pv = filter->private_data; - - if( !pv ) - { - return; - } - - free( pv ); - filter->private_data = NULL; -} - -static int hb_deblock_work( hb_filter_object_t * filter, - hb_buffer_t ** buf_in, - hb_buffer_t ** buf_out ) -{ - hb_filter_private_t * pv = filter->private_data; - hb_buffer_t * in = *buf_in, * out; - - if (in->s.flags & HB_BUF_FLAG_EOF) - { - *buf_out = in; - *buf_in = NULL; - return HB_FILTER_DONE; - } - - if( /*TODO: mpi->qscale ||*/ pv->pp7_qp ) - { - out = hb_frame_buffer_init(pv->output.pix_fmt, - in->f.width, in->f.height ); - out->f.color_prim = pv->output.color_prim; - out->f.color_transfer = pv->output.color_transfer; - out->f.color_matrix = pv->output.color_matrix; - out->f.color_range = pv->output.color_range ; - - pp7_filter( pv, - out->plane[0].data, - in->plane[0].data, - in->plane[0].stride, - in->plane[0].height, - NULL, /* TODO: mpi->qscale*/ - 0, /* TODO: mpi->qstride*/ - 1 ); - - pp7_filter( pv, - out->plane[1].data, - in->plane[1].data, - in->plane[1].stride, - in->plane[1].height, - NULL, /* TODO: mpi->qscale*/ - 0, /* TODO: mpi->qstride*/ - 0 ); - - pp7_filter( pv, - out->plane[2].data, - in->plane[2].data, - in->plane[2].stride, - in->plane[2].height, - NULL, /* TODO: mpi->qscale*/ - 0, /* TODO: mpi->qstride*/ - 0 ); - - out->s = in->s; - - *buf_out = out; - } - else - { - *buf_in = NULL; - *buf_out = in; - } - - return HB_FILTER_OK; -} diff --git a/libhb/hb_dict.c b/libhb/hb_dict.c index 2894c62ac..6e075cef0 100644 --- a/libhb/hb_dict.c +++ b/libhb/hb_dict.c @@ -469,6 +469,11 @@ void hb_dict_set(hb_dict_t * dict, const char *key, hb_value_t *value) json_object_set_new(dict, key, value); } +void hb_dict_merge(hb_dict_t * dict, hb_dict_t *value) +{ + json_object_update(dict, value); +} + void hb_dict_case_set(hb_dict_t * dict, const char *key, hb_value_t *value) { char * lower = makelower(key); diff --git a/libhb/hb_dict.h b/libhb/hb_dict.h index 74fc50a58..3984d1a0d 100644 --- a/libhb/hb_dict.h +++ b/libhb/hb_dict.h @@ -43,6 +43,7 @@ int hb_dict_elements(hb_dict_t * dict); /* add value to dictionary. dictionary takes ownership of value */ void hb_dict_set(hb_dict_t * dict, const char * key, hb_value_t * value); +void hb_dict_merge(hb_dict_t * dict, hb_dict_t *value); void hb_dict_case_set(hb_dict_t * dict, const char *key, hb_value_t *value); /* remove value from dictionary. releases reference to value */ diff --git a/libhb/hbavfilter.c b/libhb/hbavfilter.c index 2719c1beb..36e34c424 100644 --- a/libhb/hbavfilter.c +++ b/libhb/hbavfilter.c @@ -259,22 +259,11 @@ void hb_avfilter_combine( hb_list_t * list) switch (filter->id) { case HB_FILTER_AVFILTER: - { - settings = pv->avfilters; - } break; - case HB_FILTER_ROTATE: - { - settings = pv->avfilters; - } break; case HB_FILTER_DEINTERLACE: - { - settings = pv->avfilters; - } break; - case HB_FILTER_PAD: - { - settings = pv->avfilters; - } break; + case HB_FILTER_DEBLOCK: case HB_FILTER_CROP_SCALE: + case HB_FILTER_PAD: + case HB_FILTER_ROTATE: { settings = pv->avfilters; } break; diff --git a/libhb/param.c b/libhb/param.c index 1782651ca..ba4590f1b 100644 --- a/libhb/param.c +++ b/libhb/param.c @@ -40,6 +40,27 @@ static hb_filter_param_t nlmeans_tunes[] = { 0, NULL, NULL, NULL } }; +static hb_filter_param_t deblock_presets[] = +{ + { 0, "Off", "off", "disable=1" }, + { 1, "Custom", "custom", NULL }, + { 2, "Ultralight", "ultralight", "strength=weak:thresh=20" }, + { 3, "Light", "light", "strength=weak:thresh=50" }, + { 4, "Medium", "medium", "strength=strong:thresh=20" }, + { 5, "Strong", "strong", "strength=strong:thresh=50" }, + { 5, "Stronger", "stronger", "strength=strong:thresh=75" }, + { 5, "Very Strong", "verystrong", "strength=strong:thresh=100" }, + { 0, NULL, NULL, NULL } +}; + +static hb_filter_param_t deblock_tunes[] = +{ + { 1, "Small (4x4)", "small", "blocksize=4" }, + { 2, "Medium (8x8)", "medium", NULL }, + { 3, "Large (16x16)", "large", "blocksize=16" }, + { 0, NULL, NULL, NULL } +}; + static hb_filter_param_t hqdn3d_presets[] = { { 1, "Custom", "custom", NULL }, @@ -236,6 +257,10 @@ static filter_param_map_t param_map[] = { HB_FILTER_DEINTERLACE, deinterlace_presets, NULL, sizeof(deinterlace_presets) / sizeof(hb_filter_param_t), 0, }, + { HB_FILTER_DEBLOCK, deblock_presets, deblock_tunes, + sizeof(deblock_presets) / sizeof(hb_filter_param_t), + sizeof(deblock_tunes) / sizeof(hb_filter_param_t), }, + { HB_FILTER_INVALID, NULL, NULL, 0, 0, }, }; @@ -1130,42 +1155,44 @@ filter_param_get_entry(hb_filter_param_t *table, const char *name, int count) return NULL; } -static hb_dict_t * -generate_generic_settings(int filter_id, const char *preset, const char *custom) +static hb_value_t * +generate_generic_settings(int filter_id, const char * preset, + const char * tune, const char * custom) { - int preset_count; - hb_filter_param_t *preset_table; - hb_filter_param_t *preset_entry; - - if (preset == NULL || !strcasecmp(preset, "custom")) + if ((preset == NULL || !strcasecmp(preset, "custom"))) { return hb_parse_filter_settings(custom); } - preset_table = filter_param_get_presets_internal(filter_id, &preset_count); - preset_entry = filter_param_get_entry(preset_table, preset, preset_count); - if (preset_entry != NULL && preset_entry->settings != NULL) - { - return hb_parse_filter_settings(preset_entry->settings); - } - return NULL; -} + int count; + hb_filter_param_t *table; + hb_filter_param_t *entry; -static hb_value_t * -generate_deblock_settings(const char * preset, const char * custom) -{ - hb_dict_t * settings = NULL; + hb_value_t * settings, * tune_settings; - // Deblock "presets" are just the QP value. 0 disables. - if ((preset == NULL || !strcasecmp(preset, "custom"))) + table = filter_param_get_presets_internal(filter_id, &count); + entry = filter_param_get_entry(table, preset, count); + if (entry != NULL && entry->settings != NULL) { - settings = hb_parse_filter_settings(custom); - } - else - { - settings = hb_dict_init(); - int qp = strtol(preset, NULL, 0); - hb_dict_set(settings, "qp", hb_value_int(qp)); + settings = hb_parse_filter_settings(entry->settings); + if (settings == NULL) + { + return NULL; + } + + table = filter_param_get_tunes_internal(filter_id, &count); + entry = filter_param_get_entry(table, tune, count); + if (entry != NULL && entry->settings != NULL) + { + tune_settings = hb_parse_filter_settings(entry->settings); + if (tune_settings == NULL) + { + hb_value_free(&settings); + return NULL; + } + hb_dict_merge(settings, tune_settings); + hb_value_free(&tune_settings); + } } return settings; @@ -1187,11 +1214,6 @@ static void check_filter_status(int filter_id, hb_value_t *settings) int hflip = hb_dict_get_int(settings, "hflip"); disable = angle == 0 && hflip == 0; } break; - case HB_FILTER_DEBLOCK: - { - int qp = hb_dict_get_int(settings, "qp"); - disable = qp < 5; - } break; default: { } break; @@ -1210,9 +1232,6 @@ hb_generate_filter_settings(int filter_id, const char *preset, const char *tune, switch (filter_id) { - case HB_FILTER_DEBLOCK: - settings = generate_deblock_settings(preset, custom); - break; case HB_FILTER_PAD: case HB_FILTER_ROTATE: case HB_FILTER_CROP_SCALE: @@ -1234,12 +1253,14 @@ hb_generate_filter_settings(int filter_id, const char *preset, const char *tune, case HB_FILTER_UNSHARP: settings = generate_unsharp_settings(preset, tune, custom); break; + case HB_FILTER_DEBLOCK: case HB_FILTER_COMB_DETECT: case HB_FILTER_DECOMB: case HB_FILTER_DETELECINE: case HB_FILTER_HQDN3D: case HB_FILTER_DEINTERLACE: - settings = generate_generic_settings(filter_id, preset, custom); + settings = generate_generic_settings(filter_id, preset, + tune, custom); break; default: fprintf(stderr, diff --git a/libhb/preset.c b/libhb/preset.c index 644eac209..b135475e7 100644 --- a/libhb/preset.c +++ b/libhb/preset.c @@ -1475,14 +1475,16 @@ int hb_preset_apply_filters(const hb_dict_t *preset, hb_dict_t *job_dict) } // Deblock filter - char *deblock = hb_value_get_string_xform( - hb_dict_get(preset, "PictureDeblock")); + const char * deblock = hb_value_get_string( + hb_dict_get(preset, "PictureDeblockPreset")); if (deblock != NULL) { + const char * deblock_tune = hb_value_get_string( + hb_dict_get(preset, "PictureDeblockTune")); const char * deblock_custom = hb_value_get_string( hb_dict_get(preset, "PictureDeblockCustom")); filter_settings = hb_generate_filter_settings(HB_FILTER_DEBLOCK, - deblock, NULL, deblock_custom); + deblock, deblock_tune, deblock_custom); if (filter_settings == NULL) { hb_error("Invalid deblock filter settings (%s)", deblock); @@ -1500,7 +1502,6 @@ int hb_preset_apply_filters(const hb_dict_t *preset, hb_dict_t *job_dict) hb_value_free(&filter_settings); } } - free(deblock); // Rotate filter char *rotate = hb_value_get_string_xform( @@ -2489,6 +2490,28 @@ static hb_value_t * import_hierarchy_29_0_0(hb_value_t *presets) return hb_value_dup(presets); } +static void import_deblock_35_0_0(hb_value_t *preset) +{ + int deblock = hb_dict_get_int(preset, "PictureDeblock"); + + if (deblock < 5) + { + hb_dict_set_string(preset, "PictureDeblockPreset", "off"); + } + else if (deblock < 7) + { + hb_dict_set_string(preset, "PictureDeblockPreset", "medium"); + } + else + { + hb_dict_set_string(preset, "PictureDeblockPreset", "strong"); + } + hb_dict_set_string(preset, "PictureDeblockTune", "medium"); + hb_dict_set_string(preset, "PictureDeblockCustom", + "strength=strong:thresh=20"); + hb_dict_remove(preset, "PictureDeblock"); +} + static void import_video_scaler_25_0_0(hb_value_t *preset) { hb_dict_set(preset, "VideoScaler", hb_value_string("swscale")); @@ -3106,9 +3129,16 @@ static void import_video_0_0_0(hb_value_t *preset) } } +static void import_35_0_0(hb_value_t *preset) +{ + import_deblock_35_0_0(preset); +} + static void import_25_0_0(hb_value_t *preset) { import_video_scaler_25_0_0(preset); + + import_35_0_0(preset); } static void import_20_0_0(hb_value_t *preset) @@ -3216,6 +3246,11 @@ static int preset_import(hb_value_t *preset, int major, int minor, int micro) import_25_0_0(preset); result = 1; } + else if (cmpVersion(major, minor, micro, 35, 0, 0) <= 0) + { + import_35_0_0(preset); + result = 1; + } preset_clean(preset, hb_preset_template); } return result; diff --git a/libhb/preset_builtin.h b/libhb/preset_builtin.h index da0fc7c87..7b0de1f6f 100644 --- a/libhb/preset_builtin.h +++ b/libhb/preset_builtin.h @@ -44,8 +44,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"fast\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -149,8 +150,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"fast\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -254,8 +256,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"fast\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -359,8 +362,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"fast\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -464,8 +468,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -569,8 +574,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -674,8 +680,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -779,8 +786,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -898,8 +906,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -1017,8 +1026,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -1136,8 +1146,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -1255,8 +1266,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -1374,8 +1386,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -1493,8 +1506,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -1612,8 +1626,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -1731,8 +1746,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -1843,8 +1859,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -1948,8 +1965,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -2053,8 +2071,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -2158,8 +2177,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -2263,8 +2283,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -2368,8 +2389,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -2473,8 +2495,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -2578,8 +2601,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -2690,8 +2714,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -2795,8 +2820,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -2900,8 +2926,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -3005,8 +3032,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -3124,8 +3152,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -3243,8 +3272,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -3362,8 +3392,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -3481,8 +3512,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -3600,8 +3632,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -3705,8 +3738,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -3824,8 +3858,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -3943,8 +3978,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -4062,8 +4098,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -4181,8 +4218,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -4300,8 +4338,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -4405,8 +4444,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -4524,8 +4564,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -4629,8 +4670,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -4734,8 +4776,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -4856,8 +4899,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -4975,8 +5019,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -5094,8 +5139,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -5199,8 +5245,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -5304,8 +5351,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -5409,8 +5457,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -5514,8 +5563,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -5619,8 +5669,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -5724,8 +5775,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -5843,8 +5895,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -5962,8 +6015,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -6074,8 +6128,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -6179,8 +6234,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -6284,8 +6340,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -6389,8 +6446,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -6494,8 +6552,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -6599,8 +6658,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -6704,8 +6764,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -6809,8 +6870,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -6914,8 +6976,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -7019,8 +7082,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -7122,8 +7186,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -7225,8 +7290,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -7328,8 +7394,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -7431,8 +7498,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -7534,8 +7602,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -7637,8 +7706,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -7740,8 +7810,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -7843,8 +7914,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -7946,8 +8018,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"default\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"decomb\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -8058,8 +8131,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"off\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"off\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -8163,8 +8237,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"off\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"off\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -8268,8 +8343,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"off\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"off\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -8373,8 +8449,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"off\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"off\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -8492,8 +8569,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"off\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"off\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -8613,8 +8691,9 @@ const char hb_builtin_presets_json[] = " \"PictureCombDetectCustom\": \"\", \n" " \"PictureCombDetectPreset\": \"off\", \n" " \"PictureDARWidth\": 0, \n" -" \"PictureDeblock\": 0, \n" -" \"PictureDeblockCustom\": \"qp=0:mode=2\", \n" +" \"PictureDeblockCustom\": \"strength=strong:thresh=20:blocksize=8\", \n" +" \"PictureDeblockPreset\": \"off\", \n" +" \"PictureDeblockTune\": \"medium\", \n" " \"PictureDeinterlaceCustom\": \"\", \n" " \"PictureDeinterlaceFilter\": \"off\", \n" " \"PictureDeinterlacePreset\": \"default\", \n" @@ -8677,7 +8756,7 @@ const char hb_builtin_presets_json[] = " \"x264Option\": \"\", \n" " \"x264UseAdvancedOptions\": false\n" " }, \n" -" \"VersionMajor\": 35, \n" +" \"VersionMajor\": 36, \n" " \"VersionMicro\": 0, \n" " \"VersionMinor\": 0\n" " }\n" diff --git a/preset/preset_builtin.json b/preset/preset_builtin.json index 030f5d74c..2caa45bd6 100644 --- a/preset/preset_builtin.json +++ b/preset/preset_builtin.json @@ -42,8 +42,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "fast", "PictureDeinterlaceCustom": "", @@ -150,8 +151,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "fast", "PictureDeinterlaceCustom": "", @@ -258,8 +260,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "fast", "PictureDeinterlaceCustom": "", @@ -366,8 +369,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "fast", "PictureDeinterlaceCustom": "", @@ -474,8 +478,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -582,8 +587,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -690,8 +696,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -798,8 +805,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -920,8 +928,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -1042,8 +1051,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -1164,8 +1174,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -1286,8 +1297,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -1408,8 +1420,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -1530,8 +1543,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -1652,8 +1666,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -1774,8 +1789,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -1889,8 +1905,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -1997,8 +2014,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -2105,8 +2123,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -2213,8 +2232,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -2321,8 +2341,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -2429,8 +2450,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -2537,8 +2559,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -2645,8 +2668,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -2760,8 +2784,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -2868,8 +2893,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -2976,8 +3002,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -3084,8 +3111,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -3206,8 +3234,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -3328,8 +3357,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -3450,8 +3480,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -3572,8 +3603,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -3694,8 +3726,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -3802,8 +3835,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -3924,8 +3958,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -4046,8 +4081,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -4168,8 +4204,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -4290,8 +4327,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -4412,8 +4450,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -4520,8 +4559,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -4642,8 +4682,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -4750,8 +4791,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -4858,8 +4900,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -4983,8 +5026,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -5105,8 +5149,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -5227,8 +5272,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -5335,8 +5381,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -5443,8 +5490,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -5551,8 +5599,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -5659,8 +5708,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -5767,8 +5817,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -5875,8 +5926,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -5997,8 +6049,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -6119,8 +6172,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -6234,8 +6288,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -6342,8 +6397,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -6450,8 +6506,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -6558,8 +6615,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -6666,8 +6724,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -6774,8 +6833,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -6882,8 +6942,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -6990,8 +7051,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -7098,8 +7160,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -7206,8 +7269,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -7313,8 +7377,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -7420,8 +7485,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -7527,8 +7593,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -7634,8 +7701,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -7741,8 +7809,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -7848,8 +7917,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -7955,8 +8025,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -8062,8 +8133,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -8169,8 +8241,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "default", "PictureDeinterlaceCustom": "", @@ -8284,8 +8357,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "off", "PictureDeinterlaceCustom": "", @@ -8392,8 +8466,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "off", "PictureDeinterlaceCustom": "", @@ -8500,8 +8575,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "off", "PictureDeinterlaceCustom": "", @@ -8608,8 +8684,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "off", "PictureDeinterlaceCustom": "", diff --git a/preset/preset_builtin.list b/preset/preset_builtin.list index 3c51542a3..5662a7b2f 100644 --- a/preset/preset_builtin.list +++ b/preset/preset_builtin.list @@ -1,6 +1,6 @@ <resources> <section name="PresetTemplate"> - <integer name="VersionMajor" value="35" /> + <integer name="VersionMajor" value="36" /> <integer name="VersionMinor" value="0" /> <integer name="VersionMicro" value="0" /> <json name="Preset" file="preset_template.json" /> diff --git a/preset/preset_cli_default.json b/preset/preset_cli_default.json index 3d05c1902..412b9e625 100644 --- a/preset/preset_cli_default.json +++ b/preset/preset_cli_default.json @@ -47,8 +47,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "off", "PictureDeinterlaceCustom": "", diff --git a/preset/preset_template.json b/preset/preset_template.json index 179ca261f..ed1125d7b 100644 --- a/preset/preset_template.json +++ b/preset/preset_template.json @@ -47,8 +47,9 @@ "PictureRightCrop": 0, "PictureTopCrop": 0, "PictureDARWidth": 0, - "PictureDeblock": 0, - "PictureDeblockCustom": "qp=0:mode=2", + "PictureDeblockPreset": "off", + "PictureDeblockTune": "medium", + "PictureDeblockCustom": "strength=strong:thresh=20:blocksize=8", "PictureCombDetectCustom": "", "PictureCombDetectPreset": "off", "PictureDeinterlaceCustom": "", diff --git a/test/test.c b/test/test.c index 7d94ed2be..9f82d3bee 100644 --- a/test/test.c +++ b/test/test.c @@ -56,7 +56,7 @@ #define COMB_DETECT_DEFAULT_PRESET "default" #define HQDN3D_DEFAULT_PRESET "medium" #define ROTATE_DEFAULT "angle=180:hflip=0" -#define DEBLOCK_DEFAULT "qp=5" +#define DEBLOCK_DEFAULT_PRESET "medium" /* Options */ static int debug = HB_DEBUG_ALL; @@ -79,7 +79,9 @@ static int deinterlace_disable = 0; static int deinterlace_custom = 0; static char * deinterlace = NULL; static int deblock_disable = 0; +static int deblock_custom = 0; static char * deblock = NULL; +static char * deblock_tune = NULL; static int hqdn3d_disable = 0; static int hqdn3d_custom = 0; static char * hqdn3d = NULL; @@ -617,6 +619,7 @@ cleanup: free(encoder_level); free(rotate); free(deblock); + free(deblock_tune); free(detelecine); free(deinterlace); free(decomb); @@ -1219,6 +1222,9 @@ static void showFilterDefault(FILE* const out, int filter_id) case HB_FILTER_COMB_DETECT: preset = COMB_DETECT_DEFAULT_PRESET; break; + case HB_FILTER_DEBLOCK: + preset = DEBLOCK_DEFAULT_PRESET; + break; default: break; } @@ -1233,6 +1239,7 @@ static void showFilterDefault(FILE* const out, int filter_id) case HB_FILTER_DETELECINE: case HB_FILTER_HQDN3D: case HB_FILTER_COMB_DETECT: + case HB_FILTER_DEBLOCK: { hb_dict_t * settings; settings = hb_generate_filter_settings(filter_id, preset, @@ -1266,9 +1273,6 @@ static void showFilterDefault(FILE* const out, int filter_id) case HB_FILTER_ROTATE: fprintf(out, "%s", ROTATE_DEFAULT); break; - case HB_FILTER_DEBLOCK: - fprintf(out, "%s", DEBLOCK_DEFAULT); - break; default: break; } @@ -1765,11 +1769,18 @@ static void ShowHelp() fprintf( out, " Applies to lapsharp presets only (does not affect\n" " custom settings)\n" -" -7, --deblock[=string] Deblock video with pp7 filter\n"); +" -7, --deblock[=string] Deblock video with avfilter deblock\n"); + showFilterPresets(out, HB_FILTER_DEBLOCK); showFilterKeys(out, HB_FILTER_DEBLOCK); showFilterDefault(out, HB_FILTER_DEBLOCK); fprintf( out, " --no-deblock Disable preset deblock filter\n" +" --deblock-tune <string>\n" +" Tune deblock filter\n"); + showFilterTunes(out, HB_FILTER_DEBLOCK); + fprintf( out, +" Applies to deblock presets only (does not affect\n" +" custom settings)\n" " --rotate[=string] Rotate image or flip its axes.\n" " angle rotates clockwise, can be one of:\n" " 0, 90, 180, 270\n" @@ -2152,6 +2163,7 @@ static int ParseOptions( int argc, char ** argv ) #define SSA_BURN 321 #define FILTER_CHROMA_SMOOTH 322 #define FILTER_CHROMA_SMOOTH_TUNE 323 + #define FILTER_DEBLOCK_TUNE 324 for( ;; ) { @@ -2228,6 +2240,7 @@ static int ParseOptions( int argc, char ** argv ) { "no-deinterlace", no_argument, &deinterlace_disable, 1 }, { "deblock", optional_argument, NULL, '7' }, { "no-deblock", no_argument, &deblock_disable, 1 }, + { "deblock-tune",required_argument, NULL, FILTER_DEBLOCK_TUNE }, { "denoise", optional_argument, NULL, '8' }, { "hqdn3d", optional_argument, NULL, '8' }, { "no-hqdn3d", no_argument, &hqdn3d_disable, 1 }, @@ -2680,15 +2693,19 @@ static int ParseOptions( int argc, char ** argv ) break; case '7': free(deblock); - if( optarg != NULL ) + if (optarg != NULL) { deblock = strdup(optarg); } else { - deblock = strdup(DEBLOCK_DEFAULT); + deblock = strdup(DEBLOCK_DEFAULT_PRESET); } break; + case FILTER_DEBLOCK_TUNE: + free(deblock_tune); + deblock_tune = strdup(optarg); + break; case '8': free(hqdn3d); if (optarg != NULL) @@ -3085,7 +3102,18 @@ static int ParseOptions( int argc, char ** argv ) "Incompatible options --deblock and --no-deblock\n"); return -1; } - if (hb_validate_filter_string(HB_FILTER_DEBLOCK, deblock)) + if (!hb_validate_filter_preset(HB_FILTER_DEBLOCK, deblock, + deblock_tune, NULL)) + { + // Nothing to do, but must validate preset before + // attempting to validate custom settings to prevent potential + // false positive + } + else if (!hb_validate_filter_string(HB_FILTER_DEBLOCK, deblock)) + { + deblock_custom = 1; + } + else { fprintf(stderr, "Invalid deblock option %s\n", deblock); return -1; @@ -4403,14 +4431,26 @@ static hb_dict_t * PreparePreset(const char *preset_name) hb_value_string(lapsharp)); } } - if (deblock_disable) + if (deblock != NULL) { - hb_dict_set(preset, "PictureDeblock", hb_value_string("0")); + if (!deblock_custom) + { + hb_dict_set_string(preset, "PictureDeblockPreset", deblock); + if (deblock_tune != NULL) + { + hb_dict_set_string(preset, "PictureDeblockTune", + deblock_tune); + } + } + else + { + hb_dict_set_string(preset, "PictureDeblockPreset", "custom"); + hb_dict_set_string(preset, "PictureDeblockCustom", deblock); + } } - if (deblock != NULL) + if (deblock_disable) { - hb_dict_set(preset, "PictureDeblock", hb_value_string("custom")); - hb_dict_set(preset, "PictureDeblockCustom", hb_value_string(deblock)); + hb_dict_set_string(preset, "PictureDeblockPreset", "off"); } if (rotate != NULL) { |