From patchwork Sun Aug 12 23:59:40 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Mina X-Patchwork-Id: 9961 Delivered-To: ffmpegpatchwork@gmail.com Received: by 2002:a02:104:0:0:0:0:0 with SMTP id c4-v6csp2561254jad; Sun, 12 Aug 2018 16:59:52 -0700 (PDT) X-Google-Smtp-Source: AA+uWPysbxYxSpMeGBVjCMZWnhI1G3pzd63MQVUfqauw3fuwFtoPoB1MeJ9PFoaYrPzJ2lrDlU9h X-Received: by 2002:a1c:bb86:: with SMTP id l128-v6mr6566353wmf.26.1534118392808; Sun, 12 Aug 2018 16:59:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1534118392; cv=none; d=google.com; s=arc-20160816; b=IdNguqHEG+7tjRjv/0Cs+MzjAH7gZnijmKOwuhMbc9zqoi/sdEjraGawW2kGPVwU+d tjR+hTonUa5V1Z2I9C2C4cJs6rjfjTAm9orZZrXpipyd0AnSfpI3zlGKWjbMgPu/5IKv N1V18gscxind6TdXlJmYOQE9n/zYAyAB89omFDVhnBo+PAoRH/ljno9z2K8i6brI0hG3 g44xDD/EFXEHoVdTOZbWwNLlj9ZgcizeTo4+9fb2FIA3CWF1hFlTVYO5hpkKUQ5u03ok 4G5BrMn4eGE/DasOQJDA5iHMm0ZeQ5r3+w8yQOgsEAE1XhbkrxIQP2slE/hlfuFyuqc8 pEsw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:reply-to:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:subject :content-language:mime-version:user-agent:date:message-id:from:to :dkim-signature:delivered-to:arc-authentication-results; bh=/AihvQXqLYtNMU/3cMbwOwZeZ3G3OZeBmPhFpsK/voU=; b=jE1B5H6/VYMH8580alHeym/OichEwklgCmxGi5oHuV3JgW+pLwH6mPNb6q11P1qrpL tIjAasieovfVgeLB0zruYq81/fy1qVDCap78InkWtL16ygUj6ayCFk66YBimEMU/ZMT5 21LG9DNFvi2im1O9xN5a746GHCFIZRWMpEVLKe8k651YRvyZF2ZjKUXXG38iO92r1AqB ZS8uK+9s8EAXmChsHq+Yx6w5roypKpk2uoJ37OqBgc+YR5OQRjxafSOeHeE2unXv6Z+C gZ93kcnlIJj0Kw96b7iigpJAwVBh/OogZUH5RH/YqOlJDtUR5ItYTe4XT71boR672EiF DLhg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=o13ftqfc; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id s194-v6si6270040wmb.165.2018.08.12.16.59.51; Sun, 12 Aug 2018 16:59:52 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=o13ftqfc; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 180FD68A58A; Mon, 13 Aug 2018 02:59:27 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f46.google.com (mail-wr1-f46.google.com [209.85.221.46]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5064B68A517 for ; Mon, 13 Aug 2018 02:59:20 +0300 (EEST) Received: by mail-wr1-f46.google.com with SMTP id f12-v6so12720553wrv.12 for ; Sun, 12 Aug 2018 16:59:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=to:cc:from:subject:message-id:date:user-agent:mime-version :content-language; bh=hgHkrisGW2peUoDKKL1uAfRzBhJs/NARcT0PP/ZAKXE=; b=o13ftqfc8FeB9Xth0EltksbSwpLWpnYDTn+fMTNfmIsC1WKzm/e0Q70KIBhqhLCzn8 GVKJ76lu/V4T403u4L0ujqiX8nF5idm7dL74tdhX6UaVjFmN2DrQfvR6dkVmB+nbzLeB WEoZhMTh0VUf1FinzMVtPJw6ovNJn49Bb0KpMt6xU/JmbNEAXQXbDReLFlw84L8jsLwV Ybj9P7c/aQYuLZBAaStnY8rsxmtt3nBVpyXYGWNJtxy9hh37rGPd9MKk/lVFfjW5+fnB p7IbX8eUk3+U5whQ0cGPfyfKqDaMZAVSTgsak3NtpOpXUmwkLl9Cz0sTmQdNXGxkZD4j vIZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:to:cc:from:subject:message-id:date:user-agent :mime-version:content-language; bh=hgHkrisGW2peUoDKKL1uAfRzBhJs/NARcT0PP/ZAKXE=; b=nSSpegYzAnIdpFl/lWL3N695Ra/bCtNNnJ3CyEwpyEzQUSHp+ww7c+GNN5OHzpnemU 12Z7L7JSnhJAh4n1ulbMW8qRANtasxE5zxaEsfkn7w3Md+MJ1C4K1p3oZ38VyEP39VKT 2hIkL6yei9IRyMvlybaUAfGP47Aa7JpKia6yfEV7Zr39s4/SxYQR7sazxluwuriiLbYx bMxseCI7qoG/0IT6RdnoI0usbmYzohUDX7DF8gdIDTvBrwsdeWeJu65005Adselbimje lYkwkCJoTXjxmy216xl6sIz/YXjWJ33cvLLlAno/FBGcPcUvbckN8PduLzivzdf9qjDv /3Gg== X-Gm-Message-State: AOUpUlFg1fThiccXYpAFxRdk9pMg5YhBTu85LhTv0X9TWSYp7FY5xkOa nJ5LBB+ujNGyZF71h+iig0c= X-Received: by 2002:adf:b583:: with SMTP id c3-v6mr9511559wre.79.1534118382592; Sun, 12 Aug 2018 16:59:42 -0700 (PDT) Received: from [192.168.1.106] ([41.234.207.203]) by smtp.gmail.com with ESMTPSA id c129-v6sm11532224wmh.2.2018.08.12.16.59.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 12 Aug 2018 16:59:41 -0700 (PDT) To: FFmpeg development discussions and patches From: Mina Message-ID: <31bc06cb-c06c-1157-d592-d7f9ab4fc850@gmail.com> Date: Mon, 13 Aug 2018 01:59:40 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 Content-Language: en-US Subject: [FFmpeg-devel] [GSOC] [PATCH 1/2] lavfi/vf_colorconstancy: changing options ranges X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Thilo Borgmann Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Hi,   This patch changes the maximum value for minknorm to a more sane value and fixes check for sigma value when difford > 0. It also itroduces some minor cosmetic edits(spaces and so). Thanks. From 8f4270e4aad285a8652e1831e828439cdb13620a Mon Sep 17 00:00:00 2001 From: Mina Date: Mon, 13 Aug 2018 01:29:28 +0200 Subject: [PATCH 1/2] lavfi/vf_colorconstancy: changing options ranges Signed-off-by: Mina --- doc/filters.texi | 6 +++--- libavfilter/vf_colorconstancy.c | 20 ++++++++++---------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/doc/filters.texi b/doc/filters.texi index d6c15837f2..267bd04a43 100644 --- a/doc/filters.texi +++ b/doc/filters.texi @@ -9955,13 +9955,13 @@ The order of differentiation to be applied on the scene. Must be chosen in the r @item minknorm The Minkowski parameter to be used for calculating the Minkowski distance. Must -be chosen in the range [0,65535] and default value is 1. Set to 0 for getting +be chosen in the range [0,20] and default value is 1. Set to 0 for getting max value instead of calculating Minkowski distance. @item sigma The standard deviation of Gaussian blur to be applied on the scene. Must be -chosen in the range [0,1024.0] and default value = 1. Sigma can't be set to 0 -if @var{difford} is greater than 0. +chosen in the range [0,1024.0] and default value = 1. floor( @var{sigma} * break_off_sigma(3) ) +can't be euqal to 0 if @var{difford} is greater than 0. @end table @subsection Examples diff --git a/libavfilter/vf_colorconstancy.c b/libavfilter/vf_colorconstancy.c index 7194688dfa..e3bb39e51b 100644 --- a/libavfilter/vf_colorconstancy.c +++ b/libavfilter/vf_colorconstancy.c @@ -28,7 +28,6 @@ * J. van de Weijer, Th. Gevers, A. Gijsenij "Edge-Based Color Constancy". */ -#include "libavutil/bprint.h" #include "libavutil/imgutils.h" #include "libavutil/opt.h" #include "libavutil/pixdesc.h" @@ -42,6 +41,8 @@ #define GREY_EDGE "greyedge" +#define SQRT3 1.73205080757 + #define NUM_PLANES 3 #define MAX_DIFF_ORD 2 #define MAX_META_DATA 4 @@ -145,7 +146,7 @@ static int set_gauss(AVFilterContext *ctx) sum1 = 0.0; for (i = 0; i < filtersize; ++i) { s->gauss[1][i] = - (GINDX(filtersize, i) / pow(sigma, 2)) * s->gauss[0][i]; - sum1 += s->gauss[1][i] *GINDX(filtersize, i); + sum1 += s->gauss[1][i] * GINDX(filtersize, i); } for (i = 0; i < filtersize; ++i) { @@ -595,7 +596,6 @@ static int diagonal_transformation(AVFilterContext *ctx, void *arg, int jobnr, i ThreadData *td = arg; AVFrame *in = td->in; AVFrame *out = td->out; - double sqrt3 = pow(3.0, 0.5); int plane; for (plane = 0; plane < NUM_PLANES; ++plane) { @@ -610,7 +610,7 @@ static int diagonal_transformation(AVFilterContext *ctx, void *arg, int jobnr, i unsigned i; for (i = slice_start; i < slice_end; ++i) { - temp = src[i] / (s->white[plane] * sqrt3); + temp = src[i] / (s->white[plane] * SQRT3); dst[i] = av_clip_uint8((int)(temp + 0.5)); } } @@ -657,12 +657,12 @@ static int config_props(AVFilterLink *inlink) double sigma = s->sigma; int ret; - if (!sigma && s->difford) { - av_log(ctx, AV_LOG_ERROR, "Sigma can't be set to 0 when difford > 0.\n"); + if (!floor(break_off_sigma * sigma + 0.5) && s->difford) { + av_log(ctx, AV_LOG_ERROR, "floor(%f * sigma) must be > 0 when difford > 0.\n", break_off_sigma); return AVERROR(EINVAL); } - s->filtersize = 2 * floor(break_off_sigma * s->sigma + 0.5) + 1; + s->filtersize = 2 * floor(break_off_sigma * sigma + 0.5) + 1; if (ret=set_gauss(ctx)) { return ret; } @@ -735,9 +735,9 @@ static const AVFilterPad colorconstancy_outputs[] = { #if CONFIG_GREYEDGE_FILTER static const AVOption greyedge_options[] = { - { "difford", "set differentiation order", OFFSET(difford), AV_OPT_TYPE_INT, {.i64=1}, 0, 2, FLAGS }, - { "minknorm", "set Minkowski norm", OFFSET(minknorm), AV_OPT_TYPE_INT, {.i64=1}, 0, 65535, FLAGS }, - { "sigma", "set sigma", OFFSET(sigma), AV_OPT_TYPE_DOUBLE, {.dbl=1}, 0.0, 1024.0, FLAGS }, + { "difford", "set differentiation order", OFFSET(difford), AV_OPT_TYPE_INT, {.i64=1}, 0, 2, FLAGS }, + { "minknorm", "set Minkowski norm", OFFSET(minknorm), AV_OPT_TYPE_INT, {.i64=1}, 0, 20, FLAGS }, + { "sigma", "set sigma", OFFSET(sigma), AV_OPT_TYPE_DOUBLE, {.dbl=1}, 0.0, 1024.0, FLAGS }, { NULL } }; -- 2.17.0