Received: by 10.223.185.116 with SMTP id b49csp1879438wrg; Thu, 22 Feb 2018 04:47:20 -0800 (PST) X-Google-Smtp-Source: AH8x227OmLUqtxnUuZR/Vlo2FCLgWfuoG16rtFLdHFEXSDRcmStpaSoWM2MiCKBRfpftsoCWk4Tb X-Received: by 10.99.121.203 with SMTP id u194mr5792662pgc.232.1519303640714; Thu, 22 Feb 2018 04:47:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519303640; cv=none; d=google.com; s=arc-20160816; b=IoX9dxCkEp4TwJU8WkIvIkJCAr3tZmTczdiRiKQGHzs0bi4DRvgF2zRS/F7wOSU8Cw Wk08mwROANAw2bcT5nnujX/ctJPUZH932vZC1kMIqWauC9J2+CCzAnH6vzWBbkuHUgrq eNK/MXWwXonThL6twif+MVjSjJZZv7f/I4Gxk5HJ+5eFMZCX2g0FAkpkbr9CRaYHTTJy i6qpzLoIEfosoaKqhvaVrDD+S5GzNufe+656/wbAfWWVE2abgfKeuZ+fr5+CrkE+4bjI d8w24wCQHKycYObNeCdA8CDq/j0nflevA3WeFLqjDnkMzhkv2dDWA6BEXONY4zRg9Gou 4Zsg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:organization:message-id:date:subject:cc:to :from:dkim-signature:arc-authentication-results; bh=2mXh+oCxw5l6kw2l5R87cg/6VhMedm/myl1Ds1azn6o=; b=CQpRckmzFcxxzpwYH07t1u9jx5O7NXtz2QYdUWNTfdDjCxznApVmV5Sra+7ur+9GX6 PmedKLkJUFWGTmcebhZb+4C80MMvU1hurV3sXhL4A7B/ek6FWsVJFT+bWBsy1ifyVDQ5 +U3kPQNC0OGoJWUYal30ELSa6mZqxb0E78aQ2gafWchI27aGHYl10oNPJJs0FD74QI07 hmzBq/NSN8NEAt73IYS5qFyCEZuEpSu9v8m6d0B+bQzYlJzPBtXakkynAVp5I8t1a2NC 4STQ64DQf3mR8dJjclBG+5v5/GVlgvPZhoFPkG5+qpAAy4CqgNq6Z8Ya7uglN4J6hYuP ItGw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=uKu/B9Dy; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v22si16247pfd.22.2018.02.22.04.47.05; Thu, 22 Feb 2018 04:47:20 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=uKu/B9Dy; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932317AbeBVMq0 (ORCPT + 99 others); Thu, 22 Feb 2018 07:46:26 -0500 Received: from galahad.ideasonboard.com ([185.26.127.97]:34006 "EHLO galahad.ideasonboard.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753719AbeBVMqY (ORCPT ); Thu, 22 Feb 2018 07:46:24 -0500 Received: from avalon.localnet (dfj612ybrt5fhg77mgycy-3.rev.dnainternet.fi [IPv6:2001:14ba:21f5:5b00:2e86:4862:ef6a:2804]) by galahad.ideasonboard.com (Postfix) with ESMTPSA id 49041200AD; Thu, 22 Feb 2018 13:44:39 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1519303479; bh=VX9iwEaPYG23LgI+dbTMnfSUHhYy+cfmXp7poSVmr+o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uKu/B9Dy7I44vIqjtIR1L8Kd/w3rtFdolzQ8vH5SDYMB642N7+Vomk4T2oyHLNuyD 87l7A/RSmsSKWTVfwEJmifV/rjwbDi73Ab09CHnFc3Hsa4y9ZQ21dHlYDyGioLz0Rq I1pWVjVTM8kQitjER1urcm3IBKN9F/jwl7Ilmdv8= From: Laurent Pinchart To: jacopo mondi Cc: Jacopo Mondi , magnus.damm@gmail.com, geert@glider.be, hverkuil@xs4all.nl, mchehab@kernel.org, festevam@gmail.com, sakari.ailus@iki.fi, robh+dt@kernel.org, mark.rutland@arm.com, pombredanne@nexb.com, linux-renesas-soc@vger.kernel.org, linux-media@vger.kernel.org, linux-sh@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v9 11/11] media: i2c: ov7670: Fully set mbus frame fmt Date: Thu, 22 Feb 2018 14:47:06 +0200 Message-ID: <4525290.Vz7vJ24K7t@avalon> Organization: Ideas on Board Oy In-Reply-To: <20180222123600.GM7203@w540> References: <1519059584-30844-1-git-send-email-jacopo+renesas@jmondi.org> <2864762.IPlziE6Y0S@avalon> <20180222123600.GM7203@w540> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Jacopo, On Thursday, 22 February 2018 14:36:00 EET jacopo mondi wrote: > On Thu, Feb 22, 2018 at 02:14:53PM +0200, Laurent Pinchart wrote: > > On Thursday, 22 February 2018 14:04:12 EET jacopo mondi wrote: > >> On Wed, Feb 21, 2018 at 10:28:06PM +0200, Laurent Pinchart wrote: > >>> On Tuesday, 20 February 2018 10:58:57 EET jacopo mondi wrote: [snip] > >>>> This actually makes me wonder if those informations (ycbcb_enc, > >>>> quantization and xfer_func) shouldn't actually be part of the > >>>> supported format list... I blindly added those default fields in the > >>>> try_fmt function, but I doubt they applies to all supported formats. > >>>> > >>>> Eg. the sensor supports YUYV as well as 2 RGB encodings (RGB444 and > >>>> RGB 565) and 1 raw format (BGGR). I now have a question here: > >>>> > >>>> 1) ycbcr_enc transforms non-linear R'G'B' to Y'CbCr: does this > >>>> applies to RGB and raw formats? I don't think so, and what value is > >>>> the correct one for the ycbcr_enc field in this case? I assume > >>>> xfer_func and quantization applies to all formats instead.. > >>> > >>> There's no encoding for RGB formats if I understand things correctly, > >>> so I'd set ycbcr_enc to V4L2_YCBCR_ENC_DEFAULT. The transfer function > >>> and the quantization apply to all formats, but I'd be surprised to find > >>> a sensor outputting limited range for RGB. > >> > >> Ack, we got the same understanding for RGB formats. I wonder if for > >> those formats we wouldn't need a V4L2_YCBCR_ENC_NONE or similar... > > > > That, or explicitly documenting that when the format is not YUV the field > > should be set by both drivers and applications to V4L2_YCBCR_ENC_DEFAULT > > when written and ignored when read. > > Well, if no encoding is performed because the color encoding scheme is > RGB, the colorspace does anyway define an encoding method, so it seems > to me the latter is more appropriate (use DEFAULT and ignore when read). > > That's anyway just my opinion, but I could send a patch for > documentation and see what feedback it gets. > > >>> Have you been able to check whether the sensor outputs limited range > >>> of full range YUV ? If it outputs full range you can hardcode > >>> quantization to V4L2_QUANTIZATION_FULL_RANGE for all formats. > >> > >> In YUYV mode, I see values > 0xf0 ( > 240, which is the max value for > >> CbCr samples in limited quantization range), so I assume quantization > >> is full range. > > > > It should be, yes. What's the minimum and maximum values you get ? > > From a white surface: > min = 0x39 > max = 0xfc > > From a black surface: > min = 0x00 (with 62 occurrences) > max = 0x8b > > I guess that's indeed full range quantization Could you check Y and UV separately ? #!/usr/bin/python import sys def main(argv): if len(argv) != 2: print('Usage: %s ' % argv[0]) return 1 data = open(argv[1], 'rb').read() y_min = 255 y_max = 0 uv_min = 255 uv_max = 0 for i in range(len(data) // 2): y = data[2*i] uv = data[2*i] y_min = min(y_min, y) y_max = max(y_max, y) uv_min = min(uv_min, uv) uv_max = max(uv_max, uv) print('Y [%u, %u] UV [%u, %u]' % (y_min, y_max, uv_min, uv_max)) return 0 if __name__ == '__main__': sys.exit(main(sys.argv)) > > > Actually the hardest part here was having a white enough surface to > > > point the sensor to :) > > > > Pointing a flashlight to the sensor usually does the trick. > > I had a yellowish light that didn't work that well, I ended up putting > a white paper sheet in front of it and then took the picture. Time to get a white flashlight ? :-) -- Regards, Laurent Pinchart