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 > MPEG-4 AVC / H.264

Reply
 
Thread Tools Search this Thread Display Modes
Old 28th May 2011, 13:34   #1241  |  Link
Underground78
Registered User
 
Underground78's Avatar
 
Join Date: Oct 2004
Location: France
Posts: 567
Quote:
Originally Posted by schweinsz View Post
Could you re-upload it to http://www.megaupload.com/?
I found that I can't connect to the mediafire still.
http://www.megaupload.com/?d=Q4CZVG54
Underground78 is offline   Reply With Quote
Old 28th May 2011, 14:03   #1242  |  Link
06_taro
soy sauce buyer
 
Join Date: Mar 2010
Location: United Kingdom
Posts: 164
MU:test5-secondary audio commentary track, misc subtitle tracks.rar
actually i'm not sure whether this issue is caused by diavc or madvr....
06_taro is offline   Reply With Quote
Old 31st May 2011, 18:35   #1243  |  Link
schweinsz
Registered User
 
Join Date: Nov 2005
Posts: 497
The DiAVC v1.2.6 is available on di-avc.com.
Change:
Add the support for dynamic format change.

I will try to code a software de-interlacing algorithm recently.
schweinsz is offline   Reply With Quote
Old 31st May 2011, 18:47   #1244  |  Link
madshi
Registered Developer
 
Join Date: Sep 2006
Posts: 9,140
Quote:
Originally Posted by schweinsz View Post
I will try to code a software de-interlacing algorithm recently.
IVTC or video mode deinterlacing or both? Is it really worth it, considering that ATI/NVidia DXVA deinterlacing works reasonably well?
madshi is offline   Reply With Quote
Old 1st June 2011, 08:51   #1245  |  Link
schweinsz
Registered User
 
Join Date: Nov 2005
Posts: 497
Quote:
Originally Posted by madshi View Post
IVTC or video mode deinterlacing or both? Is it really worth it, considering that ATI/NVidia DXVA deinterlacing works reasonably well?
Do you think that it is useless? Then I can concentrate on the x64 version.
schweinsz is offline   Reply With Quote
Old 1st June 2011, 09:27   #1246  |  Link
madshi
Registered Developer
 
Join Date: Sep 2006
Posts: 9,140
I wouldn't say "useless".

A lot depends on whether you want to deinterlace movies or video content (or both), because *totally* different kind of deinterlacers are needed in either case.

For movies you need IVTC, and IMHO there's not a good IVTC deinterlacer available for h264 at the moment. Even the NVidia/ATI hardware IVTC isn't optimal because they are not able to reduce frame rate from 60i to 24p, AFAIK. Instead they produce 30p or 60p output, I believe, so the typical NTSC 3:2 motion judder is still there. Implementing proper 60i -> 24p IVTC in software shouldn't be too hard, so that might be something worth thinking about. You could compare the DScaler IVTC Mod decoder source code to the original DScaler decoder source code to get some ideas on how to implement IVTC inside of your decoder, it's really not very hard to do.

However, video mode deinterlacing is a whole different beast. With movies/IVTC all the pixels are there and it's only a matter of weaving the correct fields together. In contrast with video content half of the pixels are really missing and you have to find a good way to "guess"/interpolate them, which is not too easy if you want to achieve best possible quality. Also there are some relatively good video mode deinterlacers out there already, e.g. yadif (ffdshow). So I'm not sure if writing another video mode deinterlacer would be worth it, especially because Nvidia & ATI have a pretty good hardware deinterlacing implementation for video mode content.

So to sum up: Writing a quick and easy IVTC algorithm might be worth a thought, because it's relatively easy to do and would bring a good benefit. I would recommend against writing a video mode deinterlacing, though.

Another problem is this: Writing an IVTC deinterlacer and/or a video mode deinterlacer alone is one thing. If you want the user to lay back and not have to change settings all the time, you'd even have to implement an automatic movie / video content detection. You might even have to support mixed movie / video content. This would all be getting very very complicated and time consuming. If you do IVTC, only, that'd be fine and should be easy to do, but the user would have to manually switch IVTC on/off whenever he's switching between movie and video content.

Personally, I would rather like to see you work on x64, 9/10bit decoding and eventually MVC decoding, instead of working on a deinterlacer. But that's just my personal opinion. FWIW, libav/ffmpeg are supporting 9/10bit decoding now, CoreAVC has it on its to do list. So if you don't do it you'll be falling behind your competition. There isn't much native 9/10bit content out there today. But it seems that even with original 8bit content (e.g. Blu-Ray), if you re-encode it, encoding to 9/10bit seems to help compression efficiency. So I think in the future we might see more (reencoded) 9/10bit h264 content appear.
madshi is offline   Reply With Quote
Old 1st June 2011, 21:08   #1247  |  Link
CruNcher
Registered User
 
CruNcher's Avatar
 
Join Date: Apr 2002
Location: Germany
Posts: 4,929
Quote:
Originally Posted by madshi View Post
I wouldn't say "useless".

A lot depends on whether you want to deinterlace movies or video content (or both), because *totally* different kind of deinterlacers are needed in either case.

For movies you need IVTC, and IMHO there's not a good IVTC deinterlacer available for h264 at the moment. Even the NVidia/ATI hardware IVTC isn't optimal because they are not able to reduce frame rate from 60i to 24p, AFAIK. Instead they produce 30p or 60p output, I believe, so the typical NTSC 3:2 motion judder is still there. Implementing proper 60i -> 24p IVTC in software shouldn't be too hard, so that might be something worth thinking about. You could compare the DScaler IVTC Mod decoder source code to the original DScaler decoder source code to get some ideas on how to implement IVTC inside of your decoder, it's really not very hard to do.

However, video mode deinterlacing is a whole different beast. With movies/IVTC all the pixels are there and it's only a matter of weaving the correct fields together. In contrast with video content half of the pixels are really missing and you have to find a good way to "guess"/interpolate them, which is not too easy if you want to achieve best possible quality. Also there are some relatively good video mode deinterlacers out there already, e.g. yadif (ffdshow). So I'm not sure if writing another video mode deinterlacer would be worth it, especially because Nvidia & ATI have a pretty good hardware deinterlacing implementation for video mode content.

So to sum up: Writing a quick and easy IVTC algorithm might be worth a thought, because it's relatively easy to do and would bring a good benefit. I would recommend against writing a video mode deinterlacing, though.

Another problem is this: Writing an IVTC deinterlacer and/or a video mode deinterlacer alone is one thing. If you want the user to lay back and not have to change settings all the time, you'd even have to implement an automatic movie / video content detection. You might even have to support mixed movie / video content. This would all be getting very very complicated and time consuming. If you do IVTC, only, that'd be fine and should be easy to do, but the user would have to manually switch IVTC on/off whenever he's switching between movie and video content.

Personally, I would rather like to see you work on x64, 9/10bit decoding and eventually MVC decoding, instead of working on a deinterlacer. But that's just my personal opinion. FWIW, libav/ffmpeg are supporting 9/10bit decoding now, CoreAVC has it on its to do list. So if you don't do it you'll be falling behind your competition. There isn't much native 9/10bit content out there today. But it seems that even with original 8bit content (e.g. Blu-Ray), if you re-encode it, encoding to 9/10bit seems to help compression efficiency. So I think in the future we might see more (reencoded) 9/10bit h264 content appear.
This would be a heavy split and indeed it could happen like back then with DivX, user content dominating a move to 10 bit this time for consumers it will be interesting to watch if that happens, indeed it would be slowly time to leave the 8 bit age for consumer Video use and approach the 10 bit age (new devices,new software) and i mean after the 3D Buzz industry needs something new and that could be very well moving the professional 10 Bit usage into consumer space finally (not to forget a buzz marketing name for it) and even appeal user that way that didn't found the 3D move interesting @ all
The biggest OSS Video projects (most influencing) already started on that move anyways
And yeah the time to implement a own Software Realtime Deinterlacing in times of GPUs seems wasted, and if you need deinterlacing software wise then implementing yadiff seems the most efficient choice for not wasting to much time
__________________
all my compares are riddles so please try to decipher them yourselves :)

It is about Time

Join the Revolution NOW before it is to Late !

http://forum.doom9.org/showthread.php?t=168004

Last edited by CruNcher; 1st June 2011 at 21:41.
CruNcher is offline   Reply With Quote
Old 2nd June 2011, 10:38   #1248  |  Link
schweinsz
Registered User
 
Join Date: Nov 2005
Posts: 497
I think that I should concentrate on the x64 version.
schweinsz is offline   Reply With Quote
Old 3rd June 2011, 07:03   #1249  |  Link
schweinsz
Registered User
 
Join Date: Nov 2005
Posts: 497
Quote:
Originally Posted by 06_taro View Post
MU:test5-secondary audio commentary track, misc subtitle tracks.rar
actually i'm not sure whether this issue is caused by diavc or madvr....
I tested the sample by the graphstudio. When the filter chain is haali media splitter-DiAVC or CoreAVC-renderer, both are without the subtitles. When the DirectVobSub is inserted between the renderer and the decoder, both are with subtitles. What is your filter chain when you play the sample with CoreAVC or DiAVC?
schweinsz is offline   Reply With Quote
Old 3rd June 2011, 07:20   #1250  |  Link
mariner
Registered User
 
Join Date: Nov 2005
Posts: 583
Quote:
Originally Posted by schweinsz View Post
Quote:
Originally Posted by mariner View Post
Thanks for the new version, schweinsz.

The MBAFF problem has not been solved. See this:

http://img192.imageshack.us/i/beyonceue.jpg/
http://yfrog.com/5cbeyonceuej

Best regards.
I decide to code a software de-interlacing algorithm recently.
Thanks for the new build, schweinsz.

Most decoders do not provide software de-interlacing functionality, relying instead on the GPU hardware to do the job by raising the appropriate interlace flag. Isn't this something relatively straight forward to add to DiAVC?

Best regards.
mariner is offline   Reply With Quote
Old 3rd June 2011, 08:31   #1251  |  Link
ForceX
Registered User
 
Join Date: Oct 2006
Posts: 150
Quote:
Originally Posted by schweinsz View Post
I tested the sample by the graphstudio. When the filter chain is haali media splitter-DiAVC or CoreAVC-renderer, both are without the subtitles. When the DirectVobSub is inserted between the renderer and the decoder, both are with subtitles. What is your filter chain when you play the sample with CoreAVC or DiAVC?
I am having similar problems where subtitles do not work. Regardless of whether I use Haali splitter or MPC-HC's built-in Matroska splitter, subtitles just do not work with DiAVC+madVR, when using MPC-HC's internal subtitle renderer.

Of course, if you're using Graphstudio, you need to put DirectVobSub in the filterchain, or there would not be any subtitle renderer. But MPC-HC has its built-in subtitle renderer, so you don't need to use DirectVobSub. However, MPC-HC's subtitle renderer is not working with DiAVC+madVR, it doesn't matter which splitter is used. Any other decoder (CoreAVC/FFDshow/DivX) works with madVR and MPC-HC's internal subtitle renderer.

Last edited by ForceX; 3rd June 2011 at 08:35.
ForceX is offline   Reply With Quote
Old 3rd June 2011, 09:00   #1252  |  Link
schweinsz
Registered User
 
Join Date: Nov 2005
Posts: 497
Quote:
Originally Posted by mariner View Post
Most decoders do not provide software de-interlacing functionality, relying instead on the GPU hardware to do the job by raising the appropriate interlace flag. Isn't this something relatively straight forward to add to DiAVC?

Best regards.
I can provide the option in the property page, it is easy.
schweinsz is offline   Reply With Quote
Old 9th June 2011, 07:04   #1253  |  Link
tormento
Acid fr0g
 
tormento's Avatar
 
Join Date: May 2002
Location: Italy
Posts: 2,144
Quote:
Originally Posted by schweinsz View Post
I think that I should concentrate on the x64 version.
Oh yes.
__________________
@turment on Telegram
tormento is offline   Reply With Quote
Old 9th June 2011, 14:31   #1254  |  Link
mariner
Registered User
 
Join Date: Nov 2005
Posts: 583
Quote:
Originally Posted by schweinsz View Post
I can provide the option in the property page, it is easy.
That would be a good start, before you embark on the ambitious software de-interlacer project.

JanWillem32 has just posted something which you may find useful:

Quote:
Originally Posted by JanWillem32 View Post
A slight correction, deinterlacing is a mixer/renderer task, not a decoding task. There are complex and less complex deinterlacing methods. The basic types hardly require any processing power at all.
For processing, the VMR-9 and EVR mixer can offload this to the GPU. Deinterlacing was one of the first GPU video filters to be implemented for usage with VMR.
From a correct rendering perspective, it's wrong to deinterlace while the chroma is still sub-sampled (4:2:0 or 4:2:2), as that will always lower chroma quality (saturation, sharpness in color contrasts, color-to-grayscale resolution and color accuracy). That's why it's quite understandable that DirectShow and Media Foundation allow interlacing flags for decoders to signal the mixer that it should perform deinterlacing. It's unfortunate that still not all decoders offer an interlacing-compatible color format and set the correct interlacing flags on the output pin (even while DirectShow exists since the introduction of Windows 98).
For even more advanced solutions, a renderer shouldn't use a non-linear colorspace (like those used with most encoded videos) when performing color blending and no 8-bit working surfaces, because of the big quantization errors. I'm currently trying to improve the current implementation for the mixing tasks in the VMR-9 r. and EVR CP renderers, so I've been studying these subjects a bit lately.

I've just downloaded an interlaced VC-1 sample, it plays fine with the default Windows 7 codec. For the output pin:
Code:
Filter : WMVideo Decoder DMO - CLSID : {94297043-BD82-4DFD-B0DE-8177739C6D20}

- Connected to:

CLSID: {FA10746C-9B63-4B6C-BC49-FC300EA5F256}
Filter: Enhanced Video Renderer (custom presenter)
Pin: EVR Input0

- Connection media type:

Video: NV12 2048x1080 (16:9) 25.00fps

AM_MEDIA_TYPE: 
majortype: MEDIATYPE_Video {73646976-0000-0010-8000-00AA00389B71}
subtype: MEDIASUBTYPE_NV12 {3231564E-0000-0010-8000-00AA00389B71}
formattype: FORMAT_VideoInfo2 {F72A76A0-EB0A-11D0-ACE4-0000C0CC16BA}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 3317760
cbFormat: 1152

VIDEOINFOHEADER:
rcSource: (0,0)-(1920,1080)
rcTarget: (0,0)-(1920,1080)
dwBitRate: 0
dwBitErrorRate: 0
AvgTimePerFrame: 400000

VIDEOINFOHEADER2:
dwInterlaceFlags: 0x000000a5
dwCopyProtectFlags: 0x00000000
dwPictAspectRatioX: 16
dwPictAspectRatioY: 9
dwControlFlags: 0x00000000
dwReserved2: 0x00000000

Last edited by mariner; 9th June 2011 at 16:38.
mariner is offline   Reply With Quote
Old 30th June 2011, 10:32   #1255  |  Link
schweinsz
Registered User
 
Join Date: Nov 2005
Posts: 497
I am sorry that the x64 version is not finished still. I am delayed by some things in the middle of the month. The x64 version will be available before July 12 in my current estimation.
schweinsz is offline   Reply With Quote
Old 30th June 2011, 11:48   #1256  |  Link
LigH
German doom9/Gleitz SuMo
 
LigH's Avatar
 
Join Date: Oct 2001
Location: Germany, rural Altmark
Posts: 6,562
No panic.

Quality over speed.
__________________

New German Gleitz board
MediaFire: x264 | x265 | VPx | AOM | Xvid
LigH is offline   Reply With Quote
Old 7th July 2011, 07:16   #1257  |  Link
tormento
Acid fr0g
 
tormento's Avatar
 
Join Date: May 2002
Location: Italy
Posts: 2,144
Quote:
Originally Posted by schweinsz View Post
I am sorry that the x64 version is not finished still. I am delayed by some things in the middle of the month. The x64 version will be available before July 12 in my current estimation.
It's ok, pal.
__________________
@turment on Telegram
tormento is offline   Reply With Quote
Old 22nd July 2011, 20:46   #1258  |  Link
schweinsz
Registered User
 
Join Date: Nov 2005
Posts: 497
The DiAVC x64 first version is finished. I provide a totally free version now. It is free for non-comercial and personal use. It is without any ads. and time limitation.
The current x64 version is without lossless support and DG tools support. I will add it recently.
schweinsz is offline   Reply With Quote
Old 22nd July 2011, 21:38   #1259  |  Link
schweinsz
Registered User
 
Join Date: Nov 2005
Posts: 497
I plan to add 9, 10bits support for the DiAVC next.
schweinsz is offline   Reply With Quote
Old 22nd July 2011, 23:04   #1260  |  Link
Underground78
Registered User
 
Underground78's Avatar
 
Join Date: Oct 2004
Location: France
Posts: 567
Quote:
Originally Posted by schweinsz View Post
I provide a totally free version now. It is free for non-comercial and personal use. It is without any ads. and time limitation.
Nice ! Will you release a free version for x86 ?

Also have you some benchmark for x64 vs x86 ?
Underground78 is offline   Reply With Quote
Reply

Tags
avc, diavc, fastest decoder, h.264, software

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 07:56.


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