From patchwork Thu Jul 8 11:22:44 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Niedermayer X-Patchwork-Id: 28867 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a5d:965a:0:0:0:0:0 with SMTP id d26csp355564ios; Thu, 8 Jul 2021 04:30:02 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwOLmU2aBDR4GHfpnL61UcNKgNueRsNJX7f3PU9hjMbrwpC0rYJkTXArtLP1XZvdWVb706J X-Received: by 2002:a50:ff09:: with SMTP id a9mr37337945edu.368.1625743802516; Thu, 08 Jul 2021 04:30:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1625743802; cv=none; d=google.com; s=arc-20160816; b=G23iz/ag7oq6Zjof53L7CVyRebEZgNHpTG1sRJCT9vlJfxPUhIg10kyME3wdOjnwmA 1qD5uH17HMazdF7rEgDiXtqyGu4e+SS4bxXI+vfgukvmDOIuRZWrTDc+Hmk1hg1zARz3 dZLHJTPasttL/4mQM+5qOu+N8m+opMxmb2XXQYo4eGtgrwQcSN5tg7ZxfL5uMgLJBOiE yrekCm8ryFI2YdfTlKIxREv+EGgryGE0OCuxixWTCd2m3SYSfzGqmaPETkROVl8kPIXD IxAvz6ygmSbpaSaI5doCJllg+rPH6OU9CHgTkvm3hUlrAHGq36aTUTLSRz+9RsWTE/sD LHOA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:message-id:date:to:from:delivered-to; bh=VY0LJM7fu749IX6tdw5WIQlVkW8UI9xRSmPpuDmyGqc=; b=l5TzczDtCOVb6Zop6dcpJXplUkd4Th8wuc0wlgLw/sqGbyVPdkac9ehcX3gII0jrGb Tzikslv6P7JE/4YIX98/+ZHCTxNTgra64epmMIy1xBUBm1OJI9/h47pOdEK5uGLzw5Us q1WyGATv397gTEP/hmWJg9xLY4NNslsMysNlyBL9jcYzwiRbHsJ15v8s+C/KeBDEMxv1 kPo0hjF93HDIVvmRT6ScvrPqp5jQ4fiMPYxpq/YkLPikXb+rXEkB2+LamIt4hrG89Dhx 9SuVR0LtqfbEH0Pu1PbkD9jPDTogXlIfPaTxfyJDtO8dLdvV1CqKBJ3GMYqt0GFIl2f2 KFLQ== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id o14si1168205edc.64.2021.07.08.04.30.01; Thu, 08 Jul 2021 04:30:02 -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; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3BAD168A4C2; Thu, 8 Jul 2021 14:29:58 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from vie01a-dmta-pe05-1.mx.upcmail.net (vie01a-dmta-pe05-1.mx.upcmail.net [84.116.36.11]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3310968A4C2 for ; Thu, 8 Jul 2021 14:29:52 +0300 (EEST) Received: from [172.31.216.235] (helo=vie01a-pemc-psmtp-pe12.mail.upcmail.net) by vie01a-dmta-pe05.mx.upcmail.net with esmtp (Exim 4.92) (envelope-from ) id 1m1S8A-0054Vu-0F for ffmpeg-devel@ffmpeg.org; Thu, 08 Jul 2021 13:23:46 +0200 Received: from localhost ([213.47.68.29]) by vie01a-pemc-psmtp-pe12.mail.upcmail.net with ESMTP id 1S7BmDbYQljeH1S7BmJUTn; Thu, 08 Jul 2021 13:22:46 +0200 X-Env-Mailfrom: michael@niedermayer.cc X-Env-Rcptto: ffmpeg-devel@ffmpeg.org X-SourceIP: 213.47.68.29 X-CNFS-Analysis: v=2.3 cv=BoHjPrf5 c=1 sm=1 tr=0 a=2hcxjKEKjp0CzLx6oWAm4g==:117 a=2hcxjKEKjp0CzLx6oWAm4g==:17 a=MKtGQD3n3ToA:10 a=1oJP67jkp3AA:10 a=GEAsPZ9sns4A:10 a=ZZnuYtJkoWoA:10 a=I1zYG4jhYNiWqEJIwYcA:9 From: Michael Niedermayer To: FFmpeg development discussions and patches Date: Thu, 8 Jul 2021 13:22:44 +0200 Message-Id: <20210708112245.9378-1-michael@niedermayer.cc> X-Mailer: git-send-email 2.17.1 X-CMAE-Envelope: MS4wfFfFB9ucAw49gtpjubvDEzN0wOUmJzfhFjFokz2hXh5lMB7JTLyAOvLoe/STKpti31ywW9pH57mZUnKQac8VeIQA5WmUoq1qlTtGFhUOAp42JgYlbMgK DMEuX/fSrTz6EPP2nstaXkWQbwKEyV/6SpTwqsE8lLVme0XJSgKrzxgM Subject: [FFmpeg-devel] [PATCH 1/2] swscale/output: Implement dither none for yuv2rgb_write_full() X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 9HdANYr2ed/3 Signed-off-by: Michael Niedermayer --- libswscale/output.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/libswscale/output.c b/libswscale/output.c index e855ad606a..0a3515f3ca 100644 --- a/libswscale/output.c +++ b/libswscale/output.c @@ -1912,6 +1912,17 @@ static av_always_inline void yuv2rgb_write_full(SwsContext *c, int r,g,b; switch (c->dither) { + case SWS_DITHER_NONE: + if (isrgb8) { + r = av_clip_uintp2(R >> 27, 3); + g = av_clip_uintp2(G >> 27, 3); + b = av_clip_uintp2(B >> 28, 2); + } else { + r = av_clip_uintp2(R >> 29, 1); + g = av_clip_uintp2(G >> 28, 2); + b = av_clip_uintp2(B >> 29, 1); + } + break; default: case SWS_DITHER_AUTO: case SWS_DITHER_ED: From patchwork Thu Jul 8 11:22:45 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Niedermayer X-Patchwork-Id: 28866 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a5d:965a:0:0:0:0:0 with SMTP id d26csp355733ios; Thu, 8 Jul 2021 04:30:15 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzqUeo506fr3ef2vUQ2gbyYHc4sbQl6cES2SrQH+6z7/Mg0ZO1m5ZpPfDD0YXkkfI62K+D+ X-Received: by 2002:a17:906:f112:: with SMTP id gv18mr20974428ejb.387.1625743815427; Thu, 08 Jul 2021 04:30:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1625743815; cv=none; d=google.com; s=arc-20160816; b=ita2CzrMWlxwZblJsDmTbKCeXBgTRCZZ6e9p3Hghm/KYIH+Y6qDGkKrWeCk0v7BZll mjMRrWjbaoYjfiYAP2V0adwjHTXEFTtpHthrkGGLUs2fZ7N6wB3I3lHkl30veAV86eMr 5hKInYF1vAiuzeXXakXOOb6vleCoarixKsDLIg4c26hQkk3JOkqbP6BT/EAp1+k4FGLv 0rFvJJXFqCxO1k+4TlFraOqmYVoHvLhTKevOFyQ37i458PrRlgV8C3wTidVWP0JrycXF AvAn8aFWL7X3+Pwh1I7sKJYDkRYfeKXJ+4OSOFt3blxNlzadHYq+OcukG9cd1Eqi7KRm DRnw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:delivered-to; bh=7pTv11Gh4f54o/R128U10fwPBtlaCuAjsoepyraymHk=; b=akfvaVjS6K2SkpKTczxz5G9bVWVlakWqGvCisDm4HeICy8onlrsM+4tKUFCTwO+BeY uzIpVO1C3iDDlLMKfRQ1abBxfW8/zXnPtzSbHnwOwPSFlQYa9YIF2hzcN5C51W2FbgdJ cb3Y30F+ixwcQLnZNe3Ciws2iQjQbUFHz3wUAFt6qcPva3d0qTY4acdZriljqGfYPh2o 8UjPGXITlxfgyv9LgHWeqSIWzD0fQlhJkK4tmXySW1SsE68o/pgxtC5Nf3+rqToAoPWM 1Wm6uyN4TEiEa8pZ49zbCHaxHgevJi/fbLNMT3J29jupBsnnzTCl3ugQvygI6u0bbBts SEIA== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id m15si2700345ejb.707.2021.07.08.04.30.15; Thu, 08 Jul 2021 04:30:15 -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; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6788268A818; Thu, 8 Jul 2021 14:30:12 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from vie01a-dmta-pe05-1.mx.upcmail.net (vie01a-dmta-pe05-1.mx.upcmail.net [84.116.36.11]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A7B8568A818 for ; Thu, 8 Jul 2021 14:30:05 +0300 (EEST) Received: from [172.31.216.235] (helo=vie01a-pemc-psmtp-pe12.mail.upcmail.net) by vie01a-dmta-pe05.mx.upcmail.net with esmtp (Exim 4.92) (envelope-from ) id 1m1S8A-0054Vt-0F for ffmpeg-devel@ffmpeg.org; Thu, 08 Jul 2021 13:23:46 +0200 Received: from localhost ([213.47.68.29]) by vie01a-pemc-psmtp-pe12.mail.upcmail.net with ESMTP id 1S7CmDba4ljeH1S7CmJUUT; Thu, 08 Jul 2021 13:22:46 +0200 X-Env-Mailfrom: michael@niedermayer.cc X-Env-Rcptto: ffmpeg-devel@ffmpeg.org X-SourceIP: 213.47.68.29 X-CNFS-Analysis: v=2.3 cv=BoHjPrf5 c=1 sm=1 tr=0 a=2hcxjKEKjp0CzLx6oWAm4g==:117 a=2hcxjKEKjp0CzLx6oWAm4g==:17 a=MKtGQD3n3ToA:10 a=1oJP67jkp3AA:10 a=GEAsPZ9sns4A:10 a=ZZnuYtJkoWoA:10 a=8kSpN_AR8GgEytLv2nYA:9 From: Michael Niedermayer To: FFmpeg development discussions and patches Date: Thu, 8 Jul 2021 13:22:45 +0200 Message-Id: <20210708112245.9378-2-michael@niedermayer.cc> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210708112245.9378-1-michael@niedermayer.cc> References: <20210708112245.9378-1-michael@niedermayer.cc> X-CMAE-Envelope: MS4wfFfFB9ucAw49gtpjubvDEzN0wOUmJzfhFjFokz2hXh5lMB7JTLyAOvLoe/STKpti31ywW9pH57mZUnKQac8VeIQA5WmUoq1qlTtGFhUOAp42JgYlbMgK DMEuX/fSrTz6EPP2nstaXkWQbwKEyV/6SpTwqsE8lLVme0XJSgKrzxgM Subject: [FFmpeg-devel] [PATCH 2/2] swscale/utils: Use full chroma interpolation for rgb4/8 and dither none X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: m8TuzofFrO67 Dither none is only implemented in full chroma interpolation for these rgb formats Its also a obscure choice (producing less nice images) that implementing it in the other code-paths makes no sense Signed-off-by: Michael Niedermayer --- libswscale/utils.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libswscale/utils.c b/libswscale/utils.c index 3836e20779..176fc6fd63 100644 --- a/libswscale/utils.c +++ b/libswscale/utils.c @@ -1330,7 +1330,7 @@ av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter, if (c->dither == SWS_DITHER_AUTO) c->dither = (flags & SWS_FULL_CHR_H_INT) ? SWS_DITHER_ED : SWS_DITHER_BAYER; if (!(flags & SWS_FULL_CHR_H_INT)) { - if (c->dither == SWS_DITHER_ED || c->dither == SWS_DITHER_A_DITHER || c->dither == SWS_DITHER_X_DITHER) { + if (c->dither == SWS_DITHER_ED || c->dither == SWS_DITHER_A_DITHER || c->dither == SWS_DITHER_X_DITHER || c->dither == SWS_DITHER_NONE) { av_log(c, AV_LOG_DEBUG, "Desired dithering only supported in full chroma interpolation for destination format '%s'\n", av_get_pix_fmt_name(dstFormat));