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

Closed Thread
 
Thread Tools Search this Thread Display Modes
Old 9th October 2008, 04:03   #541  |  Link
meatwad
Registered User
 
meatwad's Avatar
 
Join Date: Jun 2007
Posts: 106
I do believe another donation will be heading your way soon. Thanks again.
meatwad is offline  
Old 9th October 2008, 04:42   #542  |  Link
meatwad
Registered User
 
meatwad's Avatar
 
Join Date: Jun 2007
Posts: 106
I just gave it a test drive and it works GREAT! Hopefully Pookie will have the same results.
meatwad is offline  
Old 10th October 2008, 19:59   #543  |  Link
Quark.Fusion
Registered User
 
Quark.Fusion's Avatar
 
Join Date: Jun 2008
Posts: 177
Is it ever possible to generate index on the fly, if target request frames in linear pattern? This can greatly reduce time for encoding stream.
Quark.Fusion is offline  
Old 10th October 2008, 20:17   #544  |  Link
Guest
Guest
 
Join Date: Jan 2002
Posts: 21,924
Quote:
Originally Posted by Quark.Fusion View Post
Is it ever possible to generate index on the fly, if target request frames in linear pattern? This can greatly reduce time for encoding stream.
If you aren't using random access, there's no need for an index at all.

What is this great time reduction you are talking about? The time for indexing is small compared to encoding.
Guest is offline  
Old 10th October 2008, 21:36   #545  |  Link
Quark.Fusion
Registered User
 
Quark.Fusion's Avatar
 
Join Date: Jun 2008
Posts: 177
Indexing time isn't so small if you encode BD to some small device at realtime speed. And before encoding I'm usually set cropping and denoise filters — which I can't before index completes.

So how to open file without indexing, will «AVCSource("00001.m2ts")» work? (Your documentation says that it need dga file)
Tried with DGAVCDecode — it says:
Quote:
Avisynth open failure:
AVCSource: The input file is not a DGA project file.
Quark.Fusion is offline  
Old 10th October 2008, 21:42   #546  |  Link
Sagekilla
x264aholic
 
Join Date: Jul 2007
Location: New York
Posts: 1,752
@Quark.Fusion: Here's a little trick: Try opening the m2ts file in DSS (Directshowsource("file.grf")) and then start indexing the file in DGAVCIndex(NV). Apply filters as necessary on your video in AvsP w/ the DSS instance

I do this kind of multitasking all the time and it works great.
__________________
You can't call your encoding speed slow until you start measuring in seconds per frame.
Sagekilla is offline  
Old 10th October 2008, 21:53   #547  |  Link
Quark.Fusion
Registered User
 
Quark.Fusion's Avatar
 
Join Date: Jun 2008
Posts: 177
Yeah, great idea, but it crashes…
Quark.Fusion is offline  
Old 10th October 2008, 21:56   #548  |  Link
Sagekilla
x264aholic
 
Join Date: Jul 2007
Location: New York
Posts: 1,752
Eh? Which crashes? Cause I've never had an issue doing this before.
__________________
You can't call your encoding speed slow until you start measuring in seconds per frame.
Sagekilla is offline  
Old 10th October 2008, 22:42   #549  |  Link
Audionut
Registered User
 
Join Date: Nov 2003
Posts: 1,254
Hi neuron2,

Getting this error on a file.

PicParset 0 references an invalid (uninitialized) Sequence Parameter Set with ID 0, expect the unexpected.


A couple of samples.


33 is the first 500 or so frames
55 is a random selection from the middle


No problems on this file with the software version.

Last edited by Audionut; 11th October 2008 at 06:45.
Audionut is offline  
Old 10th October 2008, 22:56   #550  |  Link
Guest
Guest
 
Join Date: Jan 2002
Posts: 21,924
@Quark.Fusion

Sorry, no, I don't intend to support anything like that. Just make yourself a cup of coffee, or balance the checkbook, while your stream is indexing. Or make a small project using the range feature first. Then start your full project. You can tweak using the small project while the full one is cranking.

@Audionut

I'll look at it this evening.

@all

I ditched the COM idea because it's a PITA, with all the GUIDs, registry stuff, etc. I have to make shared memory anyway to pass the frame, so I'm using it also to implement an RPC mechanism. So that together with some events and a mutex gives me all I need without the COM insanity. The way it will look to the user is that you first open a CUDA decoder server application. You can minimize it but as long as it stays alive the CUDA decoder is available to clients, i.e., AVCSource() instances. The clients access it using the named shared memory, events, and mutex. I'll publish the interface, the server source code, and a basic client so that it can be re-used. My DG client applications will remain closed.

Last edited by Guest; 11th October 2008 at 02:19.
Guest is offline  
Old 11th October 2008, 05:29   #551  |  Link
Guest
Guest
 
Join Date: Jan 2002
Posts: 21,924
Quote:
Originally Posted by Audionut View Post
No problems on this file with the software version.
Actually, it affects DGAVCIndex also.

I found two problems:

1. I assumed a too small size for the SPSs that I store. Your stream had bigger ones!

2. A later edition of the AVC standard added some new profile_idc values that I had to allow for.

With these fixes your streams play fine. I'll release fixes for DGAVCDec and DGAVCDecNV tomorrow.
Guest is offline  
Old 11th October 2008, 06:51   #552  |  Link
Audionut
Registered User
 
Join Date: Nov 2003
Posts: 1,254
Thanks.

Unless the errors are somehow affecting the information display, this stream also has a max bitrate of over 60Mbps.
Way out of spec, for both the 4.1 level it's encoded at, and the blu-ray spec.

edit: I just checked the software version results, and it shows max bitrate 58.475Mbps.

Last edited by Audionut; 11th October 2008 at 06:53.
Audionut is offline  
Old 11th October 2008, 09:07   #553  |  Link
LigH
German doom9/Gleitz SuMo
 
LigH's Avatar
 
Join Date: Oct 2001
Location: Germany, rural Altmark
Posts: 4,833
Could you please add the hardware requirements to the documentation?

I remember differences in the grade of hardware support by the variants of the GeForce 8xxx family, and I wonder if this project requires a minimum variant (I mean, on-board / mobile IGPs and low-cost variants like 8300/8400{M} might not support DXVA enough to be of use for AVC decoding).

"Minimum hardware requirement: GeForce 8500" would be a probably sufficient example to know that one needs a stand-alone graphic card and may not get an on-board solution to work (if that is the case; but if IGP/Mobile are fine, let's say "8xxx").

TechARP - Desktop GPUs: Nvidia
TechARP - Mobile GPUs: Nvidia
__________________

German doom9 / Gleitz video board
CQME – change the Matrix!
BeSweet 1.5b31 All In One | HeadAC3he 0.24a13

Rémoulade is spoiled
LigH is offline  
Old 11th October 2008, 09:21   #554  |  Link
Audionut
Registered User
 
Join Date: Nov 2003
Posts: 1,254
Quote:
Originally Posted by LigH View Post
"Minimum hardware requirement:
Device supporting CUDA.

http://www.nvidia.com/object/cuda_learn_products.html

Looks like any 8xxx series hardware or higher.

Quote:
Originally Posted by neuron2 View Post
ATTENTION: If you do not use an Nvidia graphics card 8xxx or higher, this thread is not for you!

Last edited by Audionut; 11th October 2008 at 09:27.
Audionut is offline  
Old 11th October 2008, 10:05   #555  |  Link
crypto
@DVBPortal
 
crypto's Avatar
 
Join Date: Feb 2004
Posts: 434
Quote:
Originally Posted by neuron2 View Post
@Quark.Fusion
@all

I ditched the COM idea because it's a PITA, with all the GUIDs, registry stuff, etc. I have to make shared memory anyway to pass the frame, so I'm using it also to implement an RPC mechanism. So that together with some events and a mutex gives me all I need without the COM insanity. The way it will look to the user is that you first open a CUDA decoder server application. You can minimize it but as long as it stays alive the CUDA decoder is available to clients, i.e., AVCSource() instances. The clients access it using the named shared memory, events, and mutex. I'll publish the interface, the server source code, and a basic client so that it can be re-used. My DG client applications will remain closed.
I like the new idea and I was sceptical with the COM idea (out-of-process) from the beginning. It is also great to have an open documented interface.

I also wanted to ask, if the current dgavcindex is open source, as a have read about it, but never found sources.
crypto is offline  
Old 11th October 2008, 13:30   #556  |  Link
Guest
Guest
 
Join Date: Jan 2002
Posts: 21,924
Quote:
Originally Posted by Audionut View Post
Unless the errors are somehow affecting the information display, this stream also has a max bitrate of over 60Mbps.
Way out of spec, for both the 4.1 level it's encoded at, and the blu-ray spec..
Can you tell me the stream and the exact steps you went through to get a display of that large a max bitrate? I can't get it to happen.

@crypto

Not open source at this time.
Guest is offline  
Old 11th October 2008, 13:55   #557  |  Link
Audionut
Registered User
 
Join Date: Nov 2003
Posts: 1,254
This is from the full stream of the sample posted earlier. "Die hard 1. Region B"

Gathered using the software version.

I'll post the hardware version when an encode i have running is finished.

Quote:
Stream Type: AVC Elementary
Profile: reserved [49]
Level: 4.1
Frame Size: 1920x1080
SAR: 1:1
Display Size: 1920x1080
Frame Rate: 23.976024 fps
Colorimetry: BT.709* [2]
Frame Structure: Frame
Frame Type: not yet
Coded Number: 167235
Playback Number: 167235
Frame Repeats: 0
Field Repeats: 0
Bitrate: 0.097
Bitrate (Avg): 28.751
Bitrate (Max): 58.475
Elapsed: 0:22:38
Remain: 0:00:01
FPS:
Info: Finished!
edit: rip blu-ray to hdd with anydvd. demux .264 with tsmuxer. open with dgavcindex. save project.

Last edited by Audionut; 11th October 2008 at 13:58.
Audionut is offline  
Old 11th October 2008, 14:00   #558  |  Link
Guest
Guest
 
Join Date: Jan 2002
Posts: 21,924
Quote:
Originally Posted by Audionut View Post
demux .264 with tsmuxer
What is the reason for this step versus opening the transport directly in DGAVCIndexNV?
Guest is offline  
Old 11th October 2008, 14:22   #559  |  Link
squid_80
Registered User
 
Join Date: Dec 2004
Location: Melbourne, AU
Posts: 1,963
Quote:
Originally Posted by Audionut View Post
Looks like any 8xxx series hardware or higher.
...Except for the 8800 Ultra/GTX/GTS, Telsa S870/D870/C870, Quadro Plex 1000 and Quadro FX 5600/4600.
One of the cheapest cards available, the 8400, contains VP3 instead of VP2 like the others - but this makes no change to H264 decoding, only VC1 and MPEG2 are improved.
squid_80 is offline  
Old 11th October 2008, 14:30   #560  |  Link
Guest
Guest
 
Join Date: Jan 2002
Posts: 21,924
Quote:
Originally Posted by Audionut View Post
I just checked the software version results, and it shows max bitrate 58.475Mbps.
We may be talking apples and oranges. The max bitrate displayed by DGAVCIndexNV is the highest rate seen in all the one second periods of the stream. So it's an "instantaneous" bit rate. When you speak of the "max bitrate" of a blu-ray, you may be referring to the largest allowed average bitrate. You can have high peaks without breaking the buffering. Note that your average rate is well within spec.

In any case, to compare the two they must be defined the same way, and I don't know how the spec defines "max bitrate". Do you?
Guest is offline  
Closed Thread

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 20:46.


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