View Full Version : CoreCodec/H.264 Codec "CoreAVC"
videomixer9
14th January 2006, 18:57
Making this thread a sticky must be the best idea I've seen in this thread yet!
Go for it :D !
GhengisKhan :cool:
That must be of the most useless posts in this threads here though ...
As to ideas, I'd wonder if CoreAVC or only the DShow filter could output some stats like Haali Media Splitter does too, maybe some infos about bitrates or maybe also about the connections in the graph for the DShow version and which colorspaces, I really hate that most filters don't show you any nice stats and debug infos. It'd be nice if filters all had this as you always need ppl to get GraphEdit for debugging.
GhengisKhan
14th January 2006, 20:27
That must be of the most useless posts in this threads here though ...
As to ideas, I'd wonder if CoreAVC or only the DShow filter could output some stats like Haali Media Splitter does too, maybe some infos about bitrates or maybe also about the connections in the graph for the DShow version and which colorspaces, I really hate that most filters don't show you any nice stats and debug infos. It'd be nice if filters all had this as you always need ppl to get GraphEdit for debugging.
:eek:
First off, :thanks: -I am honored to deserve such recognition from... you,
The top priority right now with CoreAVC is supporting AVC to the fullest (same goes for the Dshow filter), right after that is making it as fast as possible.
I fail to see how much more important seeing info is compared to making and using the application... maybe it's just me.
GhengisKhan :cool:
3ngel
14th January 2006, 20:38
After some tests, i've found that the "best looking" output of NeroDigital decoder (both in ASP and AVC mode) is because its output is in every case straight to RGB32. In this sense, Nero Digital does itself the color space conversion and fires to the GPU the best possible raw data RGB32.
So, i think that is even more important that CoreAVC, in both versions (filter and exe) supports the RGBs output (and do a best possible color-conversion), to avoid (as said by someone in this thread before), buggy or difficult color-conversions done by the graphic cards.
videomixer9
14th January 2006, 20:41
GhengisKhan, I fail to see where I said to put this on top priority, usual feature request as done anywhere without ppl making dumb comments on it, and certainly has more to do with this than you playing the bootlicker imo :)
As to my idea from before with colorspace conversions, I stated that I don't wanna have it the way it's done with overlay but having the calculation being done by the GPU rather than by using the CPU, last year some compilers were presented that can compile to do certain operations all on GPU and had outstanding performance. This way a performance loss could be kept minimal, however seeing CoreAVC also works for mobile PCs I'd wonder if this would be an issue for code portability, besides only ATI and nVidia really support this, besides you could do all the encoding then via this O_o lol.
Besides this, I'd really wonder if we need all these conversion in the decoders ... I dunno if it gives you quality gain because of actual decoding interaction, but imo there should be one HQ Filter that can do those conversions, and not the cheap hack via using ffdshow for uncompressed video which will prolly work with CoreAVC too :)
Isochroma
14th January 2006, 21:28
3ngel: yes! I use the Nero decoder for MPEG 1/2/4/AVC for that exact reason, though ffdshow with output set to RGB24/32 only works well - excepting the brightness difference.
3ngel
14th January 2006, 21:36
@Isochroma
Exactly :) But at this point i think that NeroDigital has an upgear in the space-color conversion routine too, comparing to FFDShow (not considering the brightness problem). Even in RGB32 i found FFDShow inferior as global visual effect compared to ND.
I hope CoreAVC developers, will take good suggestions from our experiences :)
Scoty
14th January 2006, 21:45
how can i use the CoreAVC codec in WMP 10 ??
molinacabaleiro
14th January 2006, 21:51
nice, but this has nothing to do with coreavc
not nice, but this has nothing to do with coreavc :D
register it ;)
"thank you" but I'd already guessed THAT much
SeeMoreDigital
14th January 2006, 22:02
how can i use the codec in WMP 10 ??I've included some installation instructions (and "bat" files) to the latest version of CoreAVC_DSDec.zip (http://81.98.148.105/Uploaded_Files/Doom9_Forum_files/CoreAVC_DSDec.zip)
Hope that helps you out ;)
Cheers
bond
14th January 2006, 22:07
actually i wont make this thread a sticky, cause i am absolutely against making discussion threads sticky
being sticky means carrying general information people should look at before posting and using search
a 20 and increasing pages discussion thread is definitely not useable for this
if we dont make such a limitation there could be lots of threads with some useful info somewhere being made sticky, which would definitely be an overkill
that said, if you want coreavc info in a sticky, wait till i update the info and decoder thread with coreavc
Isochroma
14th January 2006, 22:19
Yes, the XviD directshow filter has a very good output colorspace selector; this would be great to have in CoreAVC!
Scoty
14th January 2006, 23:18
please People help me. i can not use the CoreAVC in MPC and WPM 10. which settings in MPC and WPM 10 i need ?
calinb
15th January 2006, 00:01
Well actually the conversion is done just right, but there is a difference with video and PC levels. In video levels reference black is at 16 and reference white at 235 (0 and 255 in PC levels).
It is problematic for mixed use PCs. One either calibrates display for video or PC levels, but not for both. One can also expand the 16-235 range to 0-255 to use with a display calibrated to PC levels. This of course isn't a lossless operation (banding may occur when done at low precision). The other problem with expanding levels from the video to pc range is levels outside the "permitted" video level range sometimes occur--the so called "blacker than black levels." They will be clipped in the expansion. When using the video range, it's still possible to properly adjust your display to render them (supported by some monitor/TV calibration DVDs), whereas they are simply lost when expanded to the PC range.
dk75
15th January 2006, 00:03
please People help me. i can not use the CoreAVC in MPC and WPM 10. which settings in MPC and WPM 10 i need ?
regsvr32 /s CoreAVCDecoder.ax
And you shouldn't uninstall ffdshow.
You should change decoding option in codec settings: "H.264" to "disabled" and "RAW" to "supported all".
With this, you could do color space conversion with ffdshow for CoreAVC decoded stream.
Zero1
15th January 2006, 01:01
The speed is remarkable, excellent job. This will help bring H.264 to many more people now :)
Such a shame it won't become a part of FFDShow(/libavcodec). Let's just hope they are able to speed up also. We already have the best ASP decoder :D
sillKotscha
15th January 2006, 15:56
I wonder, would it be possible to place some "user settings" that can be accessed and adjusted via the filters "Properties" widow: -
Cheers
at least some kind of infos... would it be possible to show the profile that was used for the encode?? like ffdshow does via osd (bframes, gmc, etc.)
that would be very nice :)
btw, enjoy the nice sunday
bond
15th January 2006, 17:13
ok before this non-avc related discussion evolves too much, note that this thread is about coreavc, the _AVC_ decoder ;)
if you want to discuss different things, like mpeg-2, .ts, streaming or whatever start new threads where they belong plz
lexor
15th January 2006, 17:16
ok before this non-avc related discussion evolves too much, note that this thread is about coreavc, the _AVC_ decoder ;)
if you want to discuss different things, like mpeg-2, .ts, streaming or whatever start new threads where they belong plz
it is? I thought it was about TCMPM which reached mature stage and just got coreAVC, I thought decoder discussion was just a bonus based on BetaBoy's first post.
bond
15th January 2006, 21:10
guys, betaboy started an own thread for tcpmp in the software player forum (where it belongs):
http://forum.doom9.org/showthread.php?t=103199
post there your non-coreavc issues
PicardGK
16th January 2006, 12:13
I'am checking rgb32/24 mmx transformation. It will cost speed for sure (like ffdshow). Alone the bytes written to memory is almost 3 times as many. Benchmark performance with Null output will suffer more because of lower memory latency which doesn't really hide the mmx transformation.
Why people use rgb32 for video playback? I heard some Nvidia card has crappy yuv colorspace transformation, but I'am not sure why.
Does all VMR9 driver support YUY2 input? I also have the brightness problem in this scenario, but it can be adjusted by the decoder (like ColorYUV(levels="TV->PC")), although I'am not sure how much quality loss there is because of the 8bit channel resolution.
bond
16th January 2006, 12:53
Why people use rgb32 for video playback? I heard some Nvidia card has crappy yuv colorspace transformation, but I'am not sure why.well i used to notice jerky playback in rare cases with my old nvidia tnt2 pro with yv12, that happened with gabest's realvideo dshow stuff iirc
especially i noticed jerkyness with yv12 anamorphic resize (with asp)
this would speak for that the old tnt2 has problems with yv12
than there is the thing that anamorphic resize works in mplayer, tough i am not sure it really uses yv12 (altough it says so)
tcpmp also works fine it seems (does it output yv12?)
so this might indicate that there are simply some issues with the dshow filters i used (ffdshow for asp) and yv12 works fine on the tnt2
than there is that mf once told me that these cards have problems with yv12 overlay but i wasnt able to find any info about this anywhere in the web, so i am not sure about this
also after i upgraded to win2000 i dont seem to get these issues that clearly anymore (eg yv12 anamorphic resize with coreavc seems to work fine)
the thing is the jerks are hardly spotable, so its hard to say whether there are problems or not, especially if you are testing with avc on a pentium3 866mhz pc you never know if lack of cpu kicks in
so all in all my tnt2 is an old card and i still cant say for sure if it has problems or not
Does all VMR9 driver support YUY2 input?on my tnt2 vmr9 only wants to directly connect to coreavc if it outputs yuy2. when coreavc outputted yuy2 only it force a colorspace converter in between
I also have the brightness problem in this scenario, but it can be adjusted by the decoder (like ColorYUV(levels="TV->PC")), although I'am not sure how much quality loss there is because of the 8bit channel resolution. if you add something that means quality loss make sure to add an option for the user to en- or disable it plz
PicardGK
16th January 2006, 13:08
tcpmp also works fine it seems (does it output yv12?)
YV12 is the deafult if the DirectDraw overlay supports it. But I will add some options in settings dialog to be able to override.
on my tnt2 vmr9 only wants to directly connect to coreavc if it outputs yuy2. when coreavc outputted yuy2 only it force a colorspace converter in between
I guess the second part was about YV12. My Radeon 9600 doesn't support YV12 either with VMR9. I guess because it's planar.
if you add something that means quality loss make sure to add an option for the user to en- or disable it plz
Of course. Btw the only problem with TV->PC yuv level transformation that scaling [16..235] to [0..255] means the result will have some gaps, but I guess it's not visible. But it may cost little performance, so everything is optional.
videomixer9
16th January 2006, 13:46
I think many ppl want to convert the ranges as you can clearly see any encoding glitch in VMR9 with YV12 video. I have lots of encodes that look fine in overlay but you'll see how crappy they really are in VMR9. Besides it's kinda awkward seeing a grey tone instead of black even though this is the correct way of displaying it. Where this doesn't matter should be HTPCs or if you use VMR9 on your TV screen otherwise, of course.
Imo the problem clearly is that there's no hardware accelerated colorspace conversion available as part of VMR9 and imo MS should fix this.
Besides the bonus of being able to have lots of accelerated videos running at the same, I don't see much bonus in using VMR9 (excl. all uses for videos in games). If you got an graphics adapter with bad hardware resizer you'll prolly lack the power to correct this via software anyways, seeing that high quality lanczos resizing or even hq bicubic resizing takes lots of power in realtime.
Whatever, VMR9 sounds cool and is new, thus many ppl will keep using it and some might actually gain quality with it, but sure not those with old pcs and graphics cards that have broken support for things like YV12, and those sure aren't the new top modells of nvidia and ati ...
3ngel
16th January 2006, 13:55
Why people use rgb32 for video playback?
Because doing YUY2->RGB32 conversion in software avoid possibile bad conversion, and any visualization problem you can imagine cause of the grafic card hardware routine.
Doing in software a good conversion (with a good routine) you are sure to send to the GPU the raw video stream (already converted in the color space used by the GPU that is RGB) and so the GPU has only to send to video without any other operation. And so there are no problems at all (and a maximum quality visualization).
PicardGK
16th January 2006, 14:01
I hope CoreAVC can have these color conversion options :
ColorMatrix("Rec.709->Rec.601")
ColorMatrix("Rec.601->Rec.709")
ColorYUV(levels="TV->PC")
Because vmr7&9 seems to need PC scale YUV
and overlay needs Rec.709 for HD.
I checked and AVC does have a way to signal input yuv levels and whether it's BT601 or BT709. So by default the decoder will use this info (example all Apple 1080p trailers us BT709, but 720p and lower are BT601). Not sure if there is a need to be able to override it. On the other hand the output properties should be optional, because I don't know any way to detect them.
At the moment BT601 vs BT709 transformation will only work with RGB output. (btw maybe it's just me, I see almost no different on my LCD monitor between this modes...)
I think many ppl want to convert the ranges as you can clearly see any encoding glitch in VMR9 with YV12 video.
Sure. It will be supported (optional). This an output property.
Btw I don't understand why would VMR9 look good on TV? This would mean the gray on monitor looks black on TV, which means an old overlay black would be more black or something.
Imo the problem clearly is that there's no hardware accelerated colorspace conversion available as part of VMR9 and imo MS should fix this.
You mean whem CoreAVC outputs YUY2 to VMR9, it's transformed by the video driver software and not pixelshader or something? This would mean there is not much perfomance loss if CoreAVC would do the transformtion (with correct yuv level and colormatrix usage).
Inventive Software
16th January 2006, 14:52
Guys, I'm impressed! For the first time I can play 720x576@25 AVC content on my Celeron 800. You should have an award! This stuff is revolutionary, no joke.
As yet, I haven't tried ASP content with all the bells and whistles, but that time will come soon!
CruNcher
16th January 2006, 14:56
This stuff is revolutionary, no joke.
It isn't really, it shows that good clean low level coding can be very powerfull but sadly alot of developers today go more in the direction of .Net and stuff loseing all this knowledge :(
breez
16th January 2006, 14:58
Btw I don't understand why would VMR9 look good on TV? This would mean the gray on monitor looks black on TV, which means an old overlay black would be more black or something.
Old overlay with a TV would look bad as supposedly gray colors would be black (and white when dealing with light gray).
BetaBoy
16th January 2006, 18:03
mmx color transformation code has been added to SVN for TCPMP and also to the CoreAVC filter.. it's up to Toff to listen to the proposals from you 'SMD' to add the about dialog controls so the user has more options.
videomixer9
16th January 2006, 18:24
You mean whem CoreAVC outputs YUY2 to VMR9, it's transformed by the video driver software and not pixelshader or something? This would mean there is not much perfomance loss if CoreAVC would do the transformtion (with correct yuv level and colormatrix usage).
Actually I thought that MS could implement VMR9 to accept almost anything and give video drivers the chance to pass over colorspace conversion to the graphics hardware, all I know is that MS currently delivers this odd colorspace conversion filter that's not really brilliant. Or can VMR9 do conversions via PixelShaders or sth. similar already without the player, or are there any shaderscripts you can e.g. use with MPC to do conversions e.g. to RGB?
Oh well seeing how skillful CoreAVC is done I guess you'd do something nice for this thing too, maybe better than fake hardware acceleration we all know :)
As to TV it seems funky as classic overlay and VMR9 look almost perfectly the same here. Dunno what nvidias drivers or hardware do there ...
Isochroma
16th January 2006, 19:34
Agreed. Until M$ gets its OS act together (Vista?) on this issue, it seems wise that decoders provide their users the option of software colorspace conversion. The default could be none, thus incurring no speed penalty.
niknik
17th January 2006, 18:42
It isn't really, it shows that good clean low level coding can be very powerfull but sadly alot of developers today go more in the direction of .Net and stuff loseing all this knowledge :(
Tell me about it, I do real time image analysis with micro controllers running at 25Mhz and having the "massive" amount of 16Kb on-chip ram...
My next project will face an upgrade to 25Mhz and 32Kb ram... Just try and do the same with a PC! :)
There really is no excuse to how bloated programming has become... and worse: people are now used that, in order to write a letter, they need a 2Gb program to do it! geeee :scared:
Back on topic: great work! 264 to the masses! :)
TheBashar
18th January 2006, 02:27
This thread started out so promising. Sigh.... Can someone please split off all the non CoreAVC related crud. Yes, including this.
bond
19th January 2006, 00:11
i will clean up the thread tomorrow and once i cleaned it up everyone who posts something here not belonging to coreavc will get striked for rule 15 (and this means also non-coreavc tcpmp issues are a nono in this thread)
so if you have a new issue not yet discussed here, start a new thread or post in threads already existing fitting the topic!
you have been warned...
BetaBoy
19th January 2006, 04:02
/me hugs bond
DeathTheSheep
19th January 2006, 05:08
/me hugs bond
That's ... awkward ;) Mmm, snuggly bond XD Well, Happy cleanin' to ya bond (tomorrow, not today I hope, cuz I just posted :D)
PS: Are their any pending plans for CoreAVC lossless support? If so, could you enlighten me as to thier to-do priority as opposed to the implementation of interlace support? Thank you.
dk75
19th January 2006, 21:51
Is CoreAVC decoding HigProfile?
I have some file from QuickTime encoded with MainProfile and this files was played OK. But, i have some other files encoded by myself, probably HighProfile (everything that i can switch in x264 ;PPPp) and i can't play these files with CoreAVC. At least files with B-Frames. I have one file with everything on but B-Frames and this file was played ok to.
bond
19th January 2006, 22:59
i had fun cleaning up the mess in this thread and splitted things to new threads:
http://forum.doom9.org/showthread.php?t=105966
http://forum.doom9.org/showthread.php?t=105967
http://forum.doom9.org/showthread.php?t=105969
http://forum.doom9.org/showthread.php?t=105970
http://forum.doom9.org/showthread.php?t=105971
http://forum.doom9.org/showthread.php?t=105977
http://forum.doom9.org/showthread.php?t=105978
http://forum.doom9.org/showthread.php?t=105979
http://forum.doom9.org/showthread.php?t=105980
http://forum.doom9.org/showthread.php?t=105981
http://forum.doom9.org/showthread.php?t=105982
http://forum.doom9.org/showthread.php?t=105984
http://forum.doom9.org/showthread.php?t=105985
http://forum.doom9.org/showthread.php?t=105986
http://forum.doom9.org/showthread.php?t=105987
http://forum.doom9.org/showthread.php?t=105988
http://forum.doom9.org/showthread.php?t=105989
http://forum.doom9.org/showthread.php?t=105990
http://forum.doom9.org/showthread.php?t=105991
enjoy :D
CruNcher
19th January 2006, 23:46
@dk75
What for problems you have @ playback High Profile should work there was a bug with b-frames for High Profile in the first versions of CoreAVC but that should be fixed in the latest, maybe you are still useing an older version ?
@bond
nice work :)
blubberbirne
20th January 2006, 14:44
Little Problems with CoreAVC and 1920x1080 Endoced File.
Yesterday i created some Testfiles with x264 and MeGui. (HQ Slow Profile)
Problem is now, that this files only Playbacks with ~26fps, instead of 29,97.
CPU Usage is only 48% with my AMD X2 3800+. For Testing i encodet this Video @1440x816 and everythink works fine. CPU usage was only 34% :D
Any Idea what happens? Is it a CoreAVC Problem (no SMP support at this time i know), or whats going frong?
SeeMoreDigital
20th January 2006, 17:47
...Problem is now, that this files only Playbacks with ~26fps, instead of 29,97.
CPU Usage is only 48% with my AMD X2 3800+. For Testing i encodet this Video @1440x816 and everythink works fine. CPU usage was only 34% :D
Any Idea what happens?Have you cross checked the "reported" FPS speed of your encodes?
If your streams have been placed within the MP4 container you can use YAMB to check them!
bkman
20th January 2006, 17:50
CoreAVC simply has no SMP support, I would guess, and just one of your cores isn't powerful enough to decode the video at full speed.
handtruck
20th January 2006, 19:53
Didn't know whether to start a new thread in the software players forum, but since this may be AVC codec related, I'll post here. Let me know if I should start one in the other forum.
All these issues are with x264 video and mp3 audio (vbr and cbr)
MKV container (muxed with mkv merge):
-Choppy play on any videos with b-frames (I encoded one video with and without to make sure). The video plays fine in all other containers I've used in tcpmp windows. This problem does NOT occur in the Palm OS version of tcpmp.
MP4 container (muxed with mp4box):
-If I scroll through the video, the audio goes blank for a while and then it starts again. The farther I go into a video, the longer it takes for the audio to start up again. I originally thought it was a cbr/vbr issue with the mp3, but I reproduced the error with cbr. For some reason, this doesn't always happen, but I haven't figured out the difference between the successful and unsuccessful files. This happens in both the Palm OS and windows version of tcpmp. This problem does not happen in MPC or mplayer, however, so I think it might be a software issue.
sjchmura
20th January 2006, 21:04
Wow wow wow. I am STUNNED at the quality of the decoder and the low CPU time. On my AMD X2 I get <20% CPU time playinh back 720p clips scaled to 1920x1080p (HP 65" set).
SIMPLY STUNNING WORK.
So am I missing something? Is there some "deblocking" not going on that I would see if had lower (crappier) bit rate encodes? The color looks great - I mean - just shockingly good.
Strong work - will CoreAVC Decoder be a donationware project? I would definitely pay pal a few USD
Steve
nm
20th January 2006, 21:10
Magic ;)
BetaBoy
20th January 2006, 22:03
Wow wow wow. I am STUNNED at the quality of the decoder and the low CPU time.
Strong work - will CoreAVC Decoder be a donationware project? I would definitely pay pal a few USD
Steve
Thanx... No, not donationware... we will be live with www.coreavc.com in about 2 weeks and will sell CoreAVC at that time... there is alot going on... and as we progress further i'll let everyone know more details.
bob0r
20th January 2006, 22:09
Sell? Means i can't put the CoreAVCDecoder.ax with the x264 installer package?
dk75
20th January 2006, 22:10
What for problems you have @ playback High Profile should work there was a bug with b-frames for High Profile in the first versions of CoreAVC but that should be fixed in the latest, maybe you are still useing an older version ?
I think i have latest version (20060113) but i have update about this.
CoreAVC works with my encodings up to "-qp16" (my latest encoding, with B-Frames) but don't work with "-qp0" encoded file (older one).
I've didn't checked at which point (-qp settings) it's stop to work.
bond
20th January 2006, 22:12
I think i have latest version (20060113) but i have update about this.
CoreAVC works with my encodings up to "-qp16" (my latest encoding, with B-Frames) but don't work with "-qp0" encoded file (older one).
I've didn't checked at which point (-qp settings) it's stop to work.qp0 is propably lossless, which coreavc doesnt support yet
BetaBoy
20th January 2006, 23:03
I should have been more specific... but I also am not going to spell it all out at once... CoreAVC will be offered for windows on CoreAVC.com, be featured in other DS based media players... and as we will expand outwards we have larger goals in mind.
Some of those 'goals' is that CoreAVC will also be featured in TCPMP and in as many as 40 million devices by the end of 2006 alone ;-)
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.