<div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">пт, 10 февр. 2023 г., 13:12 Laurent Pinchart <<a href="mailto:laurent.pinchart@ideasonboard.com">laurent.pinchart@ideasonboard.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello Andrew,<br>
<br>
(CC'ing the linux-media mailing list, as the discussion you've forwarded<br>
already occured on a public list I assume that's not an issue)<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto">sure. (adding our list + Terje who actually look for card or other way to input analog video with max. quality)</div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
пт, 10 февр. 2023 г., 06:03, Andrew Randrianasulu:<br>
> пт, 10 февр. 2023 г., 04:37 Terje J. Hanssen via Cin <<a href="mailto:cin@lists.cinelerra-gg.org" target="_blank" rel="noreferrer">cin@lists.cinelerra-gg.org</a>>:<br>
> <br>
> > We have some threads this month discussing the performance of UVC<br>
> > HDMI-USB3 Vide Capture stics/dongles or devices.<br>
> > If technical specs are available, sadly often deficient, they may manage<br>
> > 422 chroma subsampling, but limited to 8-bit "Deep color" (4KVC00) or<br>
> > "YUY2" (ms2130)<br>
> ><br>
> > 1. To repeate the illustrative article 8-Bit vs 10-Bit Video Color<br>
> > Explained (millions/banding vs billion shades):<br>
> ><br>
> > <a href="https://fujifilm-x.com/en-us/series/the-filmmakers-handbook/8-bit-or-10-bit-video-color-explained/" rel="noreferrer noreferrer" target="_blank">https://fujifilm-x.com/en-us/series/the-filmmakers-handbook/8-bit-or-10-bit-video-color-explained/</a><br>
> ><br>
> ><br>
> > 2. In a couple of learn.microsoft articles, 10- and 16-bit YUV Video<br>
> > Formats are recommended for capturing, processing, and displaying video,<br>
> > while 8-bit YUV color formats that are recommended for video rendering. To<br>
> > extract and learn the most relevant YUV formats in this context from the<br>
> > table<br>
> ><br>
> > <a href="https://learn.microsoft.com/en-us/windows/win32/medfound/10-bit-and-16-bit-yuv-video-formats#preferred-yuv-formats" rel="noreferrer noreferrer" target="_blank">https://learn.microsoft.com/en-us/windows/win32/medfound/10-bit-and-16-bit-yuv-video-formats#preferred-yuv-formats</a><br>
> ><br>
> > YUY2     4:2:2     Packed     8 bits pr channel<br>
> > Y210     4:2:2     Packed     10<br>
> > NV12     4:2:0     Planar     8<br>
> > P010     4:2:0     Planar     10<br>
> ><br>
> > 3. So I found an interesting discussion on the Digital Photography Review<br>
> > forum:<br>
> > Cheapest (and decent) way to record 10 bits HDMI on Windows?<br>
> > <a href="https://www.dpreview.com/forums/thread/4562209" rel="noreferrer noreferrer" target="_blank">https://www.dpreview.com/forums/thread/4562209</a><br>
> ><br>
> > Extract here an interesting section from the first reply of Mar 19, 2021:<br>
> ><br>
> > It almost looks like 10-bit may not be part of the UVC specs unless the<br>
> > device does hardware H.264 or HEVC decoding, there are no 10-bit color<br>
> > formats that appear in<br>
> > <a href="https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/media/usb/uvc/uvcvideo.h?h=v5.11.7" rel="noreferrer noreferrer" target="_blank">https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/media/usb/uvc/uvcvideo.h?h=v5.11.7</a><br>
> > such as p010, and I would expect that if the UVC spec supported p010 video<br>
> > it would have appeared in the Linux kernel by now.<br>
><br>
> Isn't such question more for Maintainer?<br>
> <br>
> "USB VIDEO CLASS<br>
> <br>
> M:    Laurent Pinchart <<a href="mailto:laurent.pinchart@ideasonboard.com" target="_blank" rel="noreferrer">laurent.pinchart@ideasonboard.com</a>><br>
> L:    <a href="mailto:linux-media@vger.kernel.org" target="_blank" rel="noreferrer">linux-media@vger.kernel.org</a><br>
> S:    Maintained<br>
> W:    <a href="http://www.ideasonboard.org/uvc/" rel="noreferrer noreferrer" target="_blank">http://www.ideasonboard.org/uvc/</a><br>
> T:    git git://<a href="http://linuxtv.org/media_tree.git" rel="noreferrer noreferrer" target="_blank">linuxtv.org/media_tree.git</a><br>
> F:    drivers/media/usb/uvc/<br>
> F:    include/uapi/linux/uvcvideo.h<br>
> <br>
> "<br>
> <br>
> from<br>
> <a href="https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/MAINTAINERS" rel="noreferrer noreferrer" target="_blank">https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/MAINTAINERS</a><br>
> <br>
> I looked at (hopefully) uvc spec, but mostly for interlace info<br>
> <br>
> <a href="https://www.spinelelectronics.com/pdf/UVC%25201.5%2520Class%2520specification.pdf" rel="noreferrer noreferrer" target="_blank">https://www.spinelelectronics.com/pdf/UVC%25201.5%2520Class%2520specification.pdf</a><br>
> <br>
> I'll look for guid info some more..<br>
<br>
The UVC specification standardizes very few pixel formats, but allows<br>
for devices to expose additional frame-based formats. In practice<br>
devices use the same GUIDs as Windows in that case, and the uvcvideo<br>
driver supports many of those already. See include/media/v4l2-uvc.h in<br>
the latest mainline kernel for a list. This could easily be extended<br>
with 10-bit YUV formats.<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">I think I found other reference to similar problem</div><div dir="auto"><br></div><div dir="auto"><a href="https://lists.cinelerra-gg.org/pipermail/cin/2023-February/006312.html">https://lists.cinelerra-gg.org/pipermail/cin/2023-February/006312.html</a><br></div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto">thing is, I personally do not have any fancy card, so I personally can't test this specific aspect.</div><div dir="auto"><br></div><div dir="auto">But thanks for answer, if we ever put our collective hands on some strange usb device we surely will try to make it work (in 10 bit, if hw support this) as outlined in 2019 thread.</div><div dir="auto"><br></div><div dir="auto">I think cheap sticks based on ms2109/2130 can't do 10-bit at usb end ...</div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
> > If someone can confirm this is the case also today, we don't need to search<br>
> > for cheap or inexpensive HDMI-USB3 Video capture stick/dongles with 10-bit<br>
> > 422 output support.<br>
> > Down In the same thread also some high-priced UVC compliant devices are<br>
> > mentioned, but they tend to support 10-bit on HDMI input and so downscale<br>
> > it to 8-bit on USB3 output.<br>
> <br>
> Apparently hacked Cx driver can output 16 bits as ADC, but then we have<br>
> question of feeding it with good enough signal (vhs-decode just vampires<br>
> into VCR guts.)<br>
> <br>
> Is any real external vhs (ish) sources worth 10 bits path?<br>
> <br>
> <a href="https://github.com/happycube/cxadc-linux3" rel="noreferrer noreferrer" target="_blank">https://github.com/happycube/cxadc-linux3</a><br>
> <br>
> ===<br>
> <br>
> cxadc is an alternative Linux driver for the Conexant CX2388x series of<br>
> video decoder/encoder chips used on many PCI TV tuner and capture cards.<br>
> <br>
> *Note!* cx23885 and cx23888 are incompatible chips.<br>
> <br>
> The new driver configures the CX2388x to capture in its raw output mode in<br>
> 8-bit or 16-bit unsigned samples from the video input ports, allowing these<br>
> cards to be used as a low-cost 28-54Mhz 10bit ADC for SDR and similar<br>
> applications.<br>
> <br>
> ====<br>
> <br>
> vhs-decode wiki has some ffmpeg command encoding raw captures  into prores<br>
> 10bit file<br>
> <br>
> <a href="https://github.com/oyvindln/vhs-decode" rel="noreferrer noreferrer" target="_blank">https://github.com/oyvindln/vhs-decode</a><br>
> <br>
> ===<br>
> <br>
> VHS-Decode produces two timebase corrected 16-bit GREY16 headerless files<br>
> separated into chroma/luma composite video signals in the .tbc format<br>
> alongside .json and .log files, usable with the LD-Decode family of tools<br>
> ld-analyse, ld-process-vbi, ld-process-vits and ld-dropout-correct.<br>
> <br>
> The gen chroma scrips will use decoded .tbc files and generate standard<br>
> video files by default a lossless, interlaced top field first and<br>
> high-bitrate (roughly 70-100 Mb/s) FFV1 codec video which, which although<br>
> ideal for archival and further processing.<br>
> <br>
> <br>
> For editing due to lack of support of FFV1 and sharing online without<br>
> de-interlacing is not supported properly, as such the two commands are<br>
> provided below to make suitable files for this use.<br>
> <br>
> Both commands will automatically use the last file generated as the input.<br>
> <br>
> For editors this transcodes an FFV1/V210 output to a "*near complient*"<br>
> interlaced ProRes HQ file:<br>
> <br>
> ffmpeg -hide_banner -i "$1.mkv" -vf setfield=tff -flags +ilme+ildct<br>
> -c:v prores -profile:v 3 -vendor apl0 -bits_per_mb 8000 -quant_mat hq<br>
> -mbs_per_slice 8 -pixel_format yuv422p10lep -color_range tv<br>
> -color_primaries bt709 -color_trc bt709 -colorspace bt709 -c:a s24le<br>
> -vf setdar=4/3,setfield=tff "$1_ProResHQ.mov"<br>
> <br>
> For basic online sharing you can use this command to convert the FFV1<br>
> output to a de-interlaced lossy upscaled MP4:<br>
> <br>
> ffmpeg -hide_banner -i "$1.mkv" -vf<br>
> scale=in_color_matrix=bt601:out_color_matrix=bt709:1440x1080,bwdif=1:0:0<br>
> -c:v libx264 -preset veryslow -b:v 15M -maxrate 15M -bufsize 8M<br>
> -pixel_format yuv420p -color_primaries bt709 -color_trc bt709<br>
> -colorspace bt709 -aspect 4:3 -c:a libopus -b:a 192k -strict -2<br>
> -movflags +faststart -y "$1_1440x1080_lossy.mp4"<br>
> <br>
> ====<br>
> <br>
> Maaay be we still can use pci-e capture card with normal inputs, just<br>
> process raw captures to see if there any difference between 8 and 10 bit?<br>
<br>
-- <br>
Regards,<br>
<br>
Laurent Pinchart<br>
</blockquote></div></div></div>