Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Video Encoding > New and alternative video codecs

Reply
 
Thread Tools Search this Thread Display Modes
Old 10th May 2014, 18:58   #121  |  Link
zerowalker
Registered User
 
Join Date: Jul 2011
Posts: 1,121
Ah, both good and bad news there, explains the situation at the very least.

Quote:
This leads back to your initial question of null frames
Fun fact that it indeed brings it back to my initial question which wasn't intended.
Didn't know that codecs could have null frames except if the codec itself accept it as a feature.

Please do, the only reason i see not to include it is that it can cause decoding issues in editing softwares.
But then again, that may be prevented in the decoding part, but worth noting, Lagarith does have this issue, but from my mind i know it occurs at certain cases.

For example.

You edit a file with After Effects, and in the beginning you have an image that shows for, 3 sec perhaps, and then you render it and save it with Lagarith - Null Frame.

The rendered file will be "corrupted", it will display the first frame 1 time, and then go on with the video, leaving the audio out of sync.

Now i haven't done any deep tests in this, but i have stumbled upon similar issues with other codecs, and it seems to occur if the first frame is repeated (not sure if 1 is enough).

So if you look into it, it can be worth looking into that case.


Thanks
zerowalker is offline   Reply With Quote
Old 13th May 2014, 23:08   #122  |  Link
Ignus2
Registered User
 
Join Date: Dec 2005
Posts: 250
I took a look at null frames, and based on websites and forum posts it seems it gives more trouble than advantages. Most software doesn't support it properly.
So for now I think it is not worth the trouble, I think most of the time it would be disabled anyway. Also, capture software usually detect null frames anyhow, and software which support null-frames properly (like vdub) doesn't need codec support too.
So for 1.0 final, it will definitely not be included, but if there is more need for it, I'll consider implementing it later.

Thanks for your time testing btw, if you encounter any other problems, feel free to tell me.

Also, the things we discussed about preventing upscaling of YUV formats is on the way, so stay tuned

Greets,
I.
__________________
http://magicyuv.com - MagicYUV: a new fast lossless video codec for the 4K and multi-core era...
Ignus2 is offline   Reply With Quote
Old 13th May 2014, 23:15   #123  |  Link
zerowalker
Registered User
 
Join Date: Jul 2011
Posts: 1,121
Ah, true enough. It's only in rare cases it's useful, and MagicYUV isn't really aimed for that, it's usually Game captures or Photos in editing softwares etc, which you normally would encode or something, leaving the lossless part out.

Thanks for looking into it though.

Still find it hard to understand how an application can put null frames into a codec and it can be handled, even when the codec itself doesn't support it, to me it's like having Stereo sound in the middle of a Mono file;P

No problem from my part, i like playing around and testing, and if it can somehow help in your development, it's a Win/Win situation
So if you need some testing done, just ask

That's great, a feature i really need!


PS: A question i have been thinking about.

My CPU doesn't support AVX, and the latest SIMD is SSE4.2.

I am wondering, does this Codec use anything beyond that, and if so, what is the performance increase in the instructions alone?
If that can be answered at all of course.

Thanks
zerowalker is offline   Reply With Quote
Old 13th May 2014, 23:30   #124  |  Link
Ignus2
Registered User
 
Join Date: Dec 2005
Posts: 250
As for null-frames, it is a feature of the AVI, and it just tells the software to use the previous frame, whether compressed or not. So it should work with any codec.

The codec uses SSE2 only. SSE2 is nice, as almost any CPU commonly in use nowadays support that.
The next logical option would be to use AVX. I would skip anything between SSE2 and AVX. AVX might give some speed increase, but not much.
Another interesting path would be Kaveri, but I guess it's not widely popular yet.

Greets,
I.
__________________
http://magicyuv.com - MagicYUV: a new fast lossless video codec for the 4K and multi-core era...
Ignus2 is offline   Reply With Quote
Old 13th May 2014, 23:39   #125  |  Link
zerowalker
Registered User
 
Join Date: Jul 2011
Posts: 1,121
Quote:
As for null-frames, it is a feature of the AVI, and it just tells the software to use the previous frame, whether compressed or not. So it should work with any codec.
Ah, that explains it better, it's pretty much like a Monitor, if the next image hasn't come yet, it just displays the previous.

Quote:
The codec uses SSE2 only. SSE2 is nice, as almost any CPU commonly in use nowadays support that.
Okay, can't believe how many applications optimize for SSE2.

Quote:
The next logical option would be to use AVX. I would skip anything between SSE2 and AVX. AVX might give some speed increase, but not much.
I have no idea how good it is or anything, just find it fascinating that it's been there for a lifetime, and it's still used, while the other newer are pretty much only used in Emulators and such things.

Hmm, thought AVX would give better speed increase than that, seeing the time between the instructions and the "talk" about AVX using 128-bit or what it was that has been awaited for ages, not that it tells me much;P

Quote:
Another interesting path would be Kaveri, but I guess it's not widely popular yet.
Kaveri, searched on it just to be safe, it's the AMD CPU architecture right?
Isn't that the CPU/GPU thing that AMD aims for.

Not really sure what you mean with path there, does it have something that can be used, and if so wouldn't that leave the other CPUs alone?

Thanks
zerowalker is offline   Reply With Quote
Old 14th May 2014, 00:01   #126  |  Link
Ignus2
Registered User
 
Join Date: Dec 2005
Posts: 250
AVX is good if you have lots of vectorizable code and the algorithm spends most of it's time there. The codec only spends a part of it's time in vectorizable code, and SSE2 is a very good common ground for that.

Yes, Kaveri is the new AMD hybrid CPU/GPU with unified memory. Which is very nice, as no time is spent uploading/downloading data for GPU processing (which is usually a major bottleneck of performance when doing GPGPU processing), it remains in the same place. GPU is unbeatable for vectorizable code, and the regular CPU part can be used for the rest. It's just not widespread (yet).
Implementing support for it would simply mean that for people with Kaveri CPU the codec would have better performance.

Greets,
I.
__________________
http://magicyuv.com - MagicYUV: a new fast lossless video codec for the 4K and multi-core era...

Last edited by Ignus2; 14th May 2014 at 00:04.
Ignus2 is offline   Reply With Quote
Old 14th May 2014, 00:47   #127  |  Link
zerowalker
Registered User
 
Join Date: Jul 2011
Posts: 1,121
Quote:
AVX is good if you have lots of vectorizable code and the algorithm spends most of it's time there. The codec only spends a part of it's time in vectorizable code, and SSE2 is a very good common ground for that.
Ah, okay, so it's like a middle ground.

Quote:
Yes, Kaveri is the new AMD hybrid CPU/GPU with unified memory. Which is very nice, as no time is spent uploading/downloading data for GPU processing (which is usually a major bottleneck of performance when doing GPGPU processing), it remains in the same place. GPU is unbeatable for vectorizable code, and the regular CPU part can be used for the rest. It's just not widespread (yet).
Certainly hope it get's more well known and used with Intel etc as well, as it will benefit more of everything, GPGPU is barely used cause of the bottleneck.

Thanks for the explanation, sorry for bringing into a bit of an off topic course, happens a lot, never seems to be able to predict my own actions.

To point it towards the main goal, may i ask when you expect a release for the 1.0?

Thanks

Last edited by zerowalker; 14th May 2014 at 01:05.
zerowalker is offline   Reply With Quote
Old 16th May 2014, 02:45   #128  |  Link
Ignus2
Registered User
 
Join Date: Dec 2005
Posts: 250
I'm pleased to announce that MagicYUV 1.0rc2 is out.

Some minor features were added, like support for I420 format and compatibility options for Avisynth.

Decoder-side conversions can now be disabled on a per-format/per-target basis. This way YV12 can be prevented to be decoded as YV24 for example, while still keeping YV12-->RGB decoding.

This release can be considered final in terms of 1.0 features, only bug-fixes are expected (if any is found) for 1.0.

Link: http://magicyuv.com

Greets,
I.
__________________
http://magicyuv.com - MagicYUV: a new fast lossless video codec for the 4K and multi-core era...

Last edited by Ignus2; 16th May 2014 at 02:47.
Ignus2 is offline   Reply With Quote
Old 16th May 2014, 02:54   #129  |  Link
zerowalker
Registered User
 
Join Date: Jul 2011
Posts: 1,121
Much Appreciated!

Good work!

(Decompression Settings is Grayed?)
zerowalker is offline   Reply With Quote
Old 16th May 2014, 03:07   #130  |  Link
Ignus2
Registered User
 
Join Date: Dec 2005
Posts: 250
Quote:
Originally Posted by zerowalker View Post
Much Appreciated!

Good work!

(Decompression Settings is Grayed?)
From VirtualDub and the like, it wouldn't be persistent from there anyway (Vdub store settings temporarily).
It can be set from the start menu "MagicYUV" -> "MagicYUV codec configuration"

EDIT: Normally I would never do this, but as only you downloaded it so far, I pulled it back and uploaded a new version with a tooltip on the button to avoid confusion.

Greets,
I.
__________________
http://magicyuv.com - MagicYUV: a new fast lossless video codec for the 4K and multi-core era...

Last edited by Ignus2; 16th May 2014 at 03:17.
Ignus2 is offline   Reply With Quote
Old 16th May 2014, 04:23   #131  |  Link
zerowalker
Registered User
 
Join Date: Jul 2011
Posts: 1,121
Ah, okay.


Checked it, but wondering, should it be set to YV12 -> YV12 and RGB, YUY2 -> YUY2 and RGB etc?
zerowalker is offline   Reply With Quote
Old 16th May 2014, 08:20   #132  |  Link
Ignus2
Registered User
 
Join Date: Dec 2005
Posts: 250
Quote:
Originally Posted by zerowalker View Post
Ah, okay.


Checked it, but wondering, should it be set to YV12 -> YV12 and RGB, YUY2 -> YUY2 and RGB etc?
The no-conversion path (same format like YV12->YV12) are by default always on and cannot be prevented (there is no checkbox for it), as those don't count as 'conversion'. Would be quite funny if you could disable it for a lossless codec I think :-)

Greets,
I.
__________________
http://magicyuv.com - MagicYUV: a new fast lossless video codec for the 4K and multi-core era...
Ignus2 is offline   Reply With Quote
Old 16th May 2014, 08:28   #133  |  Link
zerowalker
Registered User
 
Join Date: Jul 2011
Posts: 1,121
No didn't mean that, i meant, isn't YV12 set by default to allow upsampling to YUY2?
Or am i misreading the settings?
zerowalker is offline   Reply With Quote
Old 16th May 2014, 08:33   #134  |  Link
Ignus2
Registered User
 
Join Date: Dec 2005
Posts: 250
Quote:
Originally Posted by zerowalker View Post
No didn't mean that, i meant, isn't YV12 set by default to allow upsampling to YUY2?
Or am i misreading the settings?
Ah, sorry. Yes, thats allowed, but not a problem, as avisynth tries YV12 before YUY2, so it will not upsample.
__________________
http://magicyuv.com - MagicYUV: a new fast lossless video codec for the 4K and multi-core era...
Ignus2 is offline   Reply With Quote
Old 16th May 2014, 08:53   #135  |  Link
zerowalker
Registered User
 
Join Date: Jul 2011
Posts: 1,121
Ah, seem to have forgotten, thought it went YV24 - > YUY2 -> YV12.
But that explains it, then everything is as it should!

Thanks
zerowalker is offline   Reply With Quote
Old 17th May 2014, 09:18   #136  |  Link
Gargamel
Registered User
 
Gargamel's Avatar
 
Join Date: Aug 2010
Location: Bretagne, France
Posts: 48
Thank you, Ignus2 !
Gargamel is offline   Reply With Quote
Old 19th May 2014, 11:31   #137  |  Link
Jeroi
Registered User
 
Join Date: Feb 2008
Location: Finland
Posts: 141
I would vote for null frames and delta frames as well! The main advatages are compression benefits. You will only save first or xorred image data which is full of null pixels. These are really good benefits for Lossless encoder since reduced image data affects directly to filesize. How ever there is the MSU codecs successos ScreenPressor which costs like 25$ and can compress quite good screens and game data with lossless capture.

Last edited by Jeroi; 19th May 2014 at 11:34.
Jeroi is offline   Reply With Quote
Old 20th May 2014, 03:56   #138  |  Link
zerowalker
Registered User
 
Join Date: Jul 2011
Posts: 1,121
I would like to benchmark MagicYUV in comparison to other similar codecs, is there a recommended way for this?
As playing in a media player can only do so much, would be easier with some number crunching instead.
zerowalker is offline   Reply With Quote
Old 20th May 2014, 09:56   #139  |  Link
Ignus2
Registered User
 
Join Date: Dec 2005
Posts: 250
Quote:
Originally Posted by zerowalker View Post
I would like to benchmark MagicYUV in comparison to other similar codecs, is there a recommended way for this?
As playing in a media player can only do so much, would be easier with some number crunching instead.
For benchmarking codec speed, it is best to eliminate all other factors, like:
- Disk access
- Other frame processing
- Rendering
- CPU frequency scaling
etc.

So I would use a ramdisk at minimum, and preferably some command line app, like vdub with sylia script, or my avibench tool or similar. Make sure to avoid comparing apples to oranges, I mean set up all codecs the same way regarding color spaces and conversion (so to avoid situation where one codec compresses YV12 because of implicit conversion, while another YUY2, etc.)
Also, make sure to set your PC to performance mode (max CPU freq) to get consistent results.
For starters... :-)

Greets,
I.
__________________
http://magicyuv.com - MagicYUV: a new fast lossless video codec for the 4K and multi-core era...
Ignus2 is offline   Reply With Quote
Old 20th May 2014, 14:57   #140  |  Link
zerowalker
Registered User
 
Join Date: Jul 2011
Posts: 1,121
Ah, quite much that needs to be taken into account.

Will see if i get around to trying it out, i have only done some fast testings, and with that i saw pretty much that MagicYUV as expected is very lightweighted, but doesn't waste space as to boldly put it.
This is very attractive to the point you are making for the codec to be primary for Editing software.

Thanks
zerowalker is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 02:48.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.