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