user57 Posted November 29, 2024 Posted November 29, 2024 well yuv is a old compression the idea wasnt that bad going back to only have the contrast first it was a question how much luminence that pixel had adding the colors was next so what i remember is that they had created a signal modell for 3 wires (4 signals , 2 and 2) 4 for luminence 2 for chroma blue 2 for chroma red in since of 3 wires the data win is 2 times 50 % less there was a YUV 4:4:4 mode that is lossless but the data is a lot more so we can say yuv 4:2:0 or 4:2:2 are compressions - or also must be seen as compressions https://en.wikipedia.org/wiki/Chroma_subsampling then there where already different modes for this transition yuv to rgb or rgb to yuv but there are more compression tricks, today even more - to discuss all of them it would be a long story to really make a decision we need compares with a current encoder the heic decedents would be such encoders(vp9, svt), maybe also the codec from frauenhofer is from consideration (h.266) those have modern compression tricks then we need a compare filesize and pixels to figure what is better if 10 bit is better ok , if 8 bit is better then its 8 bit but coming from a different end netflix and other stream providers longly used that h.264 codec it seems a bit much to provide a even better quality then a common stream provider as we are rather normal people but dont get me wrong on that 10 bit question if it can be proofen to be better at similiar filesize, i certainly would agree to that decision but also back to the h.265 player question, i think i can do it - but it would be a lot of work - not just a going there and its done if that LAV is the right decision, i doubt that LAV is the right choose - that i already pointed out for my perspectiv i would have to lern that entire LAV engine and its use on a player - that also is extra work where i think i will fail really hard because i think the encoder might is at a spot that cant be programmed from XP (one idea was maybe the driver dont accept the control code - maybe it can but its closed source) if this would be the case the entire lern for the LAV and player engine would be a waste but going forward - what are the next possible idea´s for this project ? we could start with players for xp that actually can play the h.265 codec , and if so what modes, are they open source, ect.
j7n Posted November 30, 2024 Posted November 30, 2024 The linked thread claims that the "undocumented" feature of downconverting 10-bit video already existed in CUVID in 2016 (maybe not in the XP branch of driver), so perhaps the driver doesn't need a modification. But I don't know anything about programming if CUVID. 10-bit h.265 was added in LAV 0.70.0 (MPC-HC 1.7.13), but apparently not on XP, which it still supported in this version. I don't have any VP9 samples to check that. It was a short lived Web codec. "- NEW: CUVID support for VP9 8/10-bit and HEVC 10/12-bit decoding" It is probably time for XP users to update if not for this alone then collectively for other reasons.
user57 Posted November 30, 2024 Posted November 30, 2024 (edited) that refers all to a grafic card doing the encoding/decoding and using a engine (maybe through more engines) (engines like dx9 to dx11 can change and just say "no i dont support this", what then? that just raise the question to install win10 and use the dx11 engine) i looked neither one engine does say clearly what it supports for XP(like modes "10bit" or codecs "h264") , and some engines dont say anything about XP (therefore what should we think ? probaly xp is not supported) so lerning that engine or engine"s" would take a lot of time and probaly lead to a dead end also they have the inner source code of these engines, so they can stop the "support" anytime , version 1.001 is here now - xp is not supported anymore the website of nvidia names: vulkan (no OS said) directx video(only directx11 and 12) nvidia video codec sdk (says directx9 but not what exactly what mode can be done with d3d9, if lets say its the h264 codec and cant do h265 codec it is directly dead end) PyNvVideoCodec (no OS said) namely says CUDA but with CUDA there again is nothing about the OS said so that are 5 engines by name nvidia video codec sdk: to me that nvidia video codec sdk seems to be a engine to control the directx engine (i often wrote about that - engines for engines - and the cpu power lost by doing so) (why i think it use up directx? because later on it writes "nativ api interface directx9-12") since cuda is also a engine it raise the questions if it supports h265 for XP, then you also need a grafic card that can do that mode it might say directx9 but not what modes directx9 support, if its the h264 codec only it is not useable vulkan: someone already name the vulkan engine https://msfn.org/board/topic/186252-vulkan-api/ i do not know if that is just the right/full information but opengl 4.5 ? i dont know ... sounds like a never touched part - and nothing says that the grafic card is used on xp, there is just no information if opengl4.5 is doing that on xp the websites rather says vulkan is something for linux, android, mac, fuchsia, iOS (but we need xp) but important to see is that this vulkan engine rely on the OS grafic drivers, what if the driver isnt doing it on XP while on win10 it can (aka you might get it to run opengl4.5 but then it dont play anyways on xp while on win10 it do, maybe the code reaction is missing for xp while 10 has it) then again its a thing to lern - where might actually again reach just a dead end (but what i know opengl is a pre engine, the real thing happens later in the operating system and the grafic card driver) directx video: (dx11 and dx12) - directly out of question (dx11-12 are win7-11) CUDA: cuda sounds interesting, but it dont say what it actually supports it says that there are CUDA versions but like version 1.0 up to 12.5, hard to say if XP has the latest version available then again its a engine (with versions), hard to say anything if xp can do anything here and the nvidia information says not even a operating system ... its a closed source too - the cuda engine has again to be said a internal code that has a deeper controlment (+ maybe the related driver after the cuda engine) PyNvVideoCodec: nothing said, but you can see that it says it use CUDA, and since phyton is something like java that "phyton engine" probaly uses up cuda (engine for a engine) but this is what i pointed out at the very first talks about LAV and the MPC-HC player (that the MPC-HC author started to rely on engines) and these are all engines and engines are often very OS limited and version limited (therefore MPC-HC is no longer self contained - it rely on engines of certain operating systems (that might also be a dead end for that player - because many others can do that also, if mpc-hc would have a XP support it would make mpc-hc a special player - but like this it is "the same old - there are other players that can use that new engines on win10 ect. too")) ------------------------ the x265 i called out - dont rely on any engine, nor OS, nor driver, nor grafic card, nor unsuppored directx 11/12 engine (dx10 is probaly dead) i dont think the CPU is to slow the decoding process is faster then the encode option "ultrafast" https://msfn.org/board/topic/185879-winxp-hevcheifheic-image-encoderdecoder/ also the video frame will not be written with a file engine, therefore it can go directly into the video frame buffer (what also is a lot faster) the decoder also is generally a lot faster then the ultrafast encoder -------- i must say that i dont write this as absolution i want to try to create a positiv talk about this and if some have more specific information - i would be happy to hear that informations and i like to be corrected up ----- but again guys notice this : they made this codec bound to a engine and what this engine do is closed source in win10/11 or a closed source from the grafic card company (such as intel, nvidia) so if you actually try to use win10 engines you probaly fail (because you only can use win10, where only win10 has that engine to function) very important to know would be what players can play the h265 codec in XP or maybe what players played that codec in the past - that might be a good question to be answered one is worth of a try and says it has h265 into playable formats, and says it works for xp https://en.wikipedia.org/wiki/VLC_media_player#Input_formats -- one word to that cuda engine nvidia might tells us a "engine(aka cuda)" that we should use to do this: https://upload.wikimedia.org/wikipedia/commons/5/59/CUDA_processing_flow_(En).PNG but they dont tell us how this is really done (if we would know this we could write a own control code and use the grafic card and encode h265 with the grafic card) but in this case its "the engine is doing it - or not" if for example we would have what in the picture is called "copy the result" in our case that would be the "decoded h265 RGB buffer" - we could control that memory to the player or directly into the video frame buffer the other things we would need is how it make the control code (like decode this h265 data 8 bit - there should be a control code, as always) the input data where and how has to be given to the grafic card (a h265 file we will give it, or at least enough data in steps from that file) in win10 or "aka directx 11) this is not a problem because the engine "dx11" is doing that for you but thats a problem many todays programmers have - they dont have insight how things really work anymore - and have to rely on a high language/script/or multiple engines again that x265 code let you see what actually really happens ... (and this with the engines are solutions for a win10 player/stream/video solution, you actually dont see! how that decoder/maybe encoder really work - with the x265 source code you can see exactly that) Edited November 30, 2024 by user57
D.Draker Posted December 1, 2024 Posted December 1, 2024 On 11/30/2024 at 2:10 PM, user57 said: vulkan: someone already name the vulkan engine https://msfn.org/board/topic/186252-vulkan-api/ i do not know if that is just the right/full information directx video: (dx11 and dx12) - directly out of question (dx11-12 are win7-11) PyNvVideoCodec: nothing said, but you can see that it says it use CUDA, and since phyton is something like java that "phyton engine" probaly uses up cuda (engine for a engine) Neither of those will work with XP. Even DX9Ex and DXx10 are missing from XP, not mention 11 and 12. Vulkan drivers DON'T exist for XP. It's more like for Vista. With Vista those work, but I'm not gonna go into details since it would be off-topic. 1
D.Draker Posted December 1, 2024 Posted December 1, 2024 On 11/29/2024 at 10:28 PM, j7n said: I don't have any VP9 samples to check that. Those are easily obtainable from YT (8 and 10 bit, both).
D.Draker Posted December 1, 2024 Posted December 1, 2024 On 11/29/2024 at 3:36 PM, user57 said: YUV 4:4:4 sRGB always gives better depth and colours, I always used it via SCART (with dedicated RGB pins), even on a simple old 29 inch TV. 1
D.Draker Posted December 1, 2024 Posted December 1, 2024 11 hours ago, D.Draker said: Vulkan drivers DON'T exist for XP. I forgot to tell, Mature Vulkan started to be released in 37x.xx (if we talk Nvidia), earlier were in beta mode, buggy as hell. Last XP driver is 368.xx.
j7n Posted December 1, 2024 Posted December 1, 2024 You write many words. The "Video Engine" in the context of nVidia is part of the GPU processor, which is talked to by CUDA. OpenGL or Direct3D can be used to put the decoded picture on screen with acceleration: allowing to rotate and stretch it for free without using the CPU. Very minimal functionality is needed. "X" doesn't do the decoding. It draws two triangles or one rectangle with the raw video as texture for them. OpenGL is supplied entirely as part of the driver as a giant DLL (Installable Client Driver). It works on WinXP. Since OpenGL is practically no longer developed in favor of Vulkan, it works on XP as well as it can. OpenGL is awesome because it doesn't need any updated Microsoft components that they use to sell new Windows. It also uses less memory by keeping the game in video memory without using Paged Pool, which is importat on 32-bit Windows and big games. To retrieve the picture from the Video Engine, the CUVID API has to be set up in a certain way, which needed some changes for 10-bits. MPC-HC uses FFMPEG for decoding. That is its "engine". Many years have gone into development of FFMPEG, and almost all players now use parts of it instead of writing their own. It is more or less self-contained because the DLLs are supplied with the player and don't need to be registered in the system.
user57 Posted December 2, 2024 Posted December 2, 2024 i personally like that you guys are writing with me i also lern the things everytime a bit more, neither where the direction goes well first to x265 you are right its rather a encoder (also rather no pictures, rather for video) this is the case because that encoder (x265) is rather using a command line for encoding (it has no command line or extra function for the oposite piece) that HEIF also rather use a command line to call x265 up ... to x265 there is its counter part called libde265 but here is the catch those libde265 routines looked pretty much the same to the ones from x265 ffmpeg is working like a command line too, just want to point that out. (you get it and you call it) so x265 should be able to be reversed to a decoder, but certainly not with a command line i looked some of the codes, names and such they are very alike but i did not study every compression method because i dont see much sence to that going with that logic, what can create that picture can also display that picture - it just has to be the reverse input (RGB buffer for example) -> output (encoder x265) -> back to input (RGB frame) if you have a good argument why that dont work i will listen (i dont think i didnt just read all the routines so exactly) i also get now why windows 10 besides the fact it use many engines over next engines still got some speed so it is right that windows 10 got a slow high language code ... and many engines that use other engines so in this case (aka win10) that slow engines are called up - but not doing the de/encoding stuff it is given to a grafic card thats why ... win10 despite the fact win10 has a very slow code .. win10 can encode/decode with enough speed a normal CPU can handle the "inefficient engines and highlanguage code" going backwards yes the idea to use a hardware unit for a software is a old idea the grafic card is doing that this time - to me it raise the question what method was used: 1: a firmware or a source code that use a "core on the grafic card" - GPU and CPU at some point are the same (rather only different schematics) 2: a pure hardware unit, a "core" that has the firmware on the hardware schematics if its 2: the schematics cant be upgraded if its 1: it raise questions to do so, you have a multicores today then we just use a other CPU and that is basicly the same (+ the XMM registers are pretty fast) quote: "Direct3D can be used to put the decoded picture on screen with acceleration: allowing to rotate and stretch it for free without using the CPU" this one i like special, that is right but that is exactly the problem that engine is bound to directx11-12 so it need this d3d engine to use the next engine (what maybe is cuda) and that is exactly the problem it are already 2 engines that maybe already are limited to win7+ therefore we cant use that with CUDA the problem seems that for XP there is no newer version = the cuda engine we have on XP dont support the controlment for the driver = we would need the control engine (aka the internal code of cuda) to control the driver (and the grafic card) then we could use a grafic card that supports the h265 de/encoding (the only question remains what version of cuda still works in XP and what en/decode modes that "newest version of CUDA for xp" support) https://youtu.be/H3AQnlpxk0c https://developer.nvidia.com/video-codec-sdk that LAV going the same direction, the LAV engine might be open source but the right question made to it are different first : it tells us a problem many dont seems to understand a engine always has a "internal code" that it uses up (this time we see it, but only that it use non xp functions/engines/apis) so using the LAV engine you are bond to what the LAV engine programmer used internal (and that is also going away from XP) the LAV engine seems not to have a very deep level either, if LAV use up DX10/11/12 its rather something to script the DX10-12 engine and the DX10-12 engine already is in favor of win7+ its not going like we use LAV and that works on XP LAV dont make the h265 encoding either its a in between engine going to FFmpeg "FFmpeg has supported NVDEC since 2017" that tells us ffmpeg already use NVDEC what at best has limited support for XP FFmpeg is a nice fork for codecs , but rather ffmpeg wants to use command lines and in the end calls up a engine https://trac.ffmpeg.org/wiki/Encode/H.265 maybe ffmpeg would be a option ... quote: "which is talked to by CUDA. OpenGL can be used to put the decoded picture on screen with acceleration" if that is right opengl4.5 still cant do it because cuda isnt doing it on xp if i follow that logic opengl4.5 calls up the cuda "engine" where it finds a outdated version - and then it would just not do its job going into a different direction the player "VLC media player" claims to work on XP and that it can play h265, and its open source do we know something here ? because open source means we can see what that player actually do we could copy paste the code too - or have our own interpratation sounds good to me that with x265 or libde265 we already had but even on x265 going with a try (as if x265 would be the encoder): RGB to HEIC (a few losses yes its a compression after all) but now it should be possible to convert it back the same way HEIC (logic reverted) to RGB what im trying to say is if you know the encode code you know the decode code i 100 % agree that x265 has no engine or command line code to do so to me the VLC media player and the x265/libde265 sounds most relyable for xp for the grafic card we could try if nvidia helps us and either makes a working engine for XP or at least nvidia tells us how we programm the grafic card without these engine (cuda ect.) cuda is also just a code that control input/output and "controlment code" for that grafic card unit i agree its much to talk, but so we sort out the stuff we dont need
j7n Posted December 2, 2024 Posted December 2, 2024 VP9 with profile 0 works in MPC-HC 1.7.13. There seems to be a regression in Windows 2008 R2 and newer drivers. Only DXVA2-copyback works. Others show erratic jumping pictures and high load. The memory use has increased. Note that the picture size of this example is extreme. Seeking on Windows 2003 is not stable though. The picture gets lost sometimes. But there are only a handful of VP9 videos to be found. This codec only exists because of Not Invented Here syndrome and patents for which we don't pay anyway. VP9 with profile 1 (10-bit) does not work. Windows 2003: https://i.imgur.com/WtLktKo.png Windows 2008: https://i.imgur.com/RLX3foN.png
user57 Posted December 2, 2024 Posted December 2, 2024 13 hours ago, j7n said: VP9 with profile 0 works in MPC-HC 1.7.13. There seems to be a regression in Windows 2008 R2 and newer drivers. Only DXVA2-copyback works. Others show erratic jumping pictures and high load. The memory use has increased. Note that the picture size of this example is extreme. Seeking on Windows 2003 is not stable though. The picture gets lost sometimes. But there are only a handful of VP9 videos to be found. This codec only exists because of Not Invented Here syndrome and patents for which we don't pay anyway. VP9 with profile 1 (10-bit) does not work. Windows 2003: https://i.imgur.com/WtLktKo.png Windows 2008: https://i.imgur.com/RLX3foN.png what about this player ? https://www.videolan.org/vlc/releases/3.0.20.html
Grishanenko Posted February 6 Posted February 6 (edited) I can run MPC-BE 1.6.11.7z and MPC-HC 2.1.7.2.7z on Win XP. But if I try to open MPC-HC: Options - Playback - Output - Audio Renderer - MPC Audio Renderer - Settings MPC-BE: Audio - Audio Renderer - MPC Audio Renderer - Properties Both MPC-HC and MPC-BE crash with error. The same I see on the One Core API 4.0.0 with original mpc-he and mpc-be. MPC Audio Renderer can change speed without pitch change. There is some way to path mpc-hc.exe or mpc-be.exe or MpcAudioRenderer.ax https://github.com/Aleksoid1978/MPC-BE/releases/download/1.6.6/standalone_filters-mpc-be.1.6.6.x86.7z or install any external filter with that possibility? Edited February 6 by Grishanenko
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now