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 22nd August 2008, 21:36   #1  |  Link
DigitAl56K
Registered User
 
Join Date: Nov 2002
Location: San Diego, CA
Posts: 936
Project Rémoulade Update: DivX H.264 Encoder Alpha 1 & Tutorial now available

Today we have released as part of Project Rémoulade an alpha version of the DivX H.264 command line encoder at DivX Labs:

Quote:
Originally Posted by DivX Labs
The second package to be released from Project Rémoulade is an alpha version of the DivX H.264 Encoder. Complementing the DivX H.264 Decoder, this multithreaded encoder produces high definition H.264 video bitstreams that are compatible with the draft profile for DivX 7 H.264 HD video. The encoder is a command line utility and accepts input from raw AVI files as well as the AVISynth frame server.
A comprehensive tutorial is provided for anyone who lacks experience with command line tools or certain aspects of AVISynth.

The alpha serves as a starting point for us to discuss the encoder as it stands in this early version and how we can develop it to better serve the needs of the community. A list of known issues and contact information is available at DivX Labs.

The encoder also serves to introduce elements of the draft DivX 7 profile for H.264 HD video and this is something we aim to elaborate on further over the next week to get your feedback.

Last edited by DigitAl56K; 22nd August 2008 at 21:47.
DigitAl56K is offline   Reply With Quote
Old 22nd August 2008, 21:57   #2  |  Link
Dark Shikari
x264 developer
 
Dark Shikari's Avatar
 
Join Date: Sep 2005
Posts: 8,688
This space reserved for a technical review of the encoder:

1. No adaptive quantization at all.
2. Uses 8x8dct, P-frame weighted prediction (at least the flag is set), and 4 refs in each list (according to the flags).
3. Chroma QP offset of +1.
4. --deblock -1:-1 used.
5. Appears to use spatial B-frame prediction only.
6. Uses Level 4.0, which sounds like a reasonable thing to standardize upon.
7. Uses an I-frame QP offset of -3 and a B-frame QP offset of +1.
8. Its B-frame decision seems to overly bias in favor of 2 B-frames.

This is just a preliminary glance at it, but overall the profile decided upon seems to be quite reasonable: enough bitrate for most sources without being too demanding of hardware, and not making any stupid restrictions like "no 8x8dct".

Actually quality comparisons (and speed) will come later.

Is there documentation on exactly what features are required in the DivX H.264 profile, by the way? I.e. which decisions here (such as spatial B-frames) are encoder decisions, and which are technical decisions in the spec itself. And what about the max of 4 seconds per gop--is that just an encoder limitation, or is there something in the spec about that?

Last edited by Dark Shikari; 22nd August 2008 at 22:25.
Dark Shikari is offline   Reply With Quote
Old 22nd August 2008, 22:12   #3  |  Link
DigitAl56K
Registered User
 
Join Date: Nov 2002
Location: San Diego, CA
Posts: 936
Is it really necessary to reserve space to ensure your comments appear immediately under the announcement? That's not really how single-threaded discussion works. Should I reserve space to reply to you? Also, although technical commentary is fine if it's constructive and of course comparisons will be made, a general request I'd make to all contributing is to please avoid turning this thread into DivX vs x264, that is not the goal (start a new thread if you so desire).

Thanks, and eager to hear your thoughts
DigitAl56K is offline   Reply With Quote
Old 22nd August 2008, 22:19   #4  |  Link
Dark Shikari
x264 developer
 
Dark Shikari's Avatar
 
Join Date: Sep 2005
Posts: 8,688
Quote:
Originally Posted by DigitAl56K View Post
Is it really necessary to reserve space to ensure your comments appear immediately under the announcement? That's not really how single-threaded discussion works. Should I reserve space to reply to you? Also, although technical commentary is fine if it's constructive and of course comparisons will be made, a general request I'd make to all contributing is to please avoid turning this thread into DivX vs x264, that is not the goal (start a new thread if you so desire).

Thanks, and eager to hear your thoughts
I don't intend to do such a thing; the post will not be comparison (that will come later).
Dark Shikari is offline   Reply With Quote
Old 23rd August 2008, 01:31   #5  |  Link
DigitAl56K
Registered User
 
Join Date: Nov 2002
Location: San Diego, CA
Posts: 936
Quote:
Originally Posted by Dark Shikari View Post
This space reserved for a technical review of the encoder:

6. Uses Level 4.0, which sounds like a reasonable thing to standardize upon.
Yes, the draft profile is limited to levels 3, 3.1, 3.2, or 4.0.

Quote:
This is just a preliminary glance at it, but overall the profile decided upon seems to be quite reasonable: enough bitrate for most sources without being too demanding of hardware, and not making any stupid restrictions like "no 8x8dct".
There are very few restrictions in the profile that I think will be contentious.

Quote:
Is there documentation on exactly what features are required in the DivX H.264 profile, by the way?
Yes, I plan to cover them next week.

Quote:
And what about the max of 4 seconds per gop--is that just an encoder limitation, or is there something in the spec about that?
The draft profile has a limitation of 4 seconds for the IDR interval. The goal is to enable a nice trick-play experience on lower powered decoders. We had requests for even shorter intervals but after some rounds of testing where we measured the effects of various maximum periods on quality and bitrate we settled upon this as a good trade off. If you would also like to do some testing of your own that would be welcome
DigitAl56K is offline   Reply With Quote
Old 23rd August 2008, 02:27   #6  |  Link
Guest
Guest
 
Join Date: Jan 2002
Posts: 21,922
Quote:
Originally Posted by DigitAl56K View Post
The draft profile has a limitation of 4 seconds for the IDR interval. The goal is to enable a nice trick-play experience on lower powered decoders.
Amen, Bro'. And it's not just lower-end decoders. Having to decode 300 HD frames just for a frame seek is really silly.

I would have made it one second, although I can see that would be too short if targeting a small bitrate.

Last edited by Guest; 23rd August 2008 at 05:32.
Guest is offline   Reply With Quote
Old 23rd August 2008, 03:04   #7  |  Link
Dark Shikari
x264 developer
 
Dark Shikari's Avatar
 
Join Date: Sep 2005
Posts: 8,688
I've finished a preliminary evaluation of the encoder; overall I'd say its roughly on par with the Mainconcept encoder (the cynic inside me says its a modified Mainconcept due to DivX's acquisition, but I'll trust you if you say it isn't...). This isn't competitive at all with x264, but a pretty damn good accomplishment for the first alpha release.

Last edited by Guest; 23rd August 2008 at 05:31.
Dark Shikari is offline   Reply With Quote
Old 23rd August 2008, 04:27   #8  |  Link
DigitAl56K
Registered User
 
Join Date: Nov 2002
Location: San Diego, CA
Posts: 936
Thanks Dark Shikari,

The encoder is based around the MC engine, but I'd like to stress again that we should really stop thinking about which pieces of code come from where because over time this becomes irrelevant - both teams work together now and the best of any previously separate works will become fused together in future software. In fact this is already happening as part of this project

In my opinion the main difference you'll see is that DivX will be more focused on working directly with the video community to create a high quality media experience and bridge the consumer electronics gap - which is why I'm working on Project Rémoulade!
DigitAl56K is offline   Reply With Quote
Old 23rd August 2008, 04:50   #9  |  Link
DigitAl56K
Registered User
 
Join Date: Nov 2002
Location: San Diego, CA
Posts: 936
Just to add to the IDR interval discussion it is worth considering the value of a given maximum IDR to the trick-play experience. If you have a max. IDR of 4 seconds and during trick play you display each IDR for 0.5 seconds you have time scaling of 8:1. If you display each IDR for 0.25 seconds you have timeline compression for 16:1. But if your max IDR is every 1 second then even if you're displaying each trick frame for only 0.25 seconds that's only timeline compression of 4:1.

You would get max 30:1 compression with max IDR = 1 second due to the frame rate if you did not skip IDR's, and max 120:1 compression with max IDR = 4, but I'm not exactly sure how easy that would be to navigate!

Just posing an alternative way to look at it. Nothing in the draft profile prevents shorter IDR interval btw.

If anyone is interested, it's possible to simulate the experience using AVISynth's SelectEvery() filter as an IDR skip and using AssumeFPS() to set the rate that the display is updated.

Code:
IDRInterval = 4 # IDR max period
UpdateRate = 4  # IDR's shown per second during trickplay
MySource=AVISource("SomeFile.avi")
Return SelectEvery(MySource, int(MySource.FrameRate() * IDRInterval), 0).AssumeFPS(UpdateRate, 1)

Last edited by DigitAl56K; 23rd August 2008 at 05:02.
DigitAl56K is offline   Reply With Quote
Old 23rd August 2008, 05:21   #10  |  Link
ChronoCross
Does it really matter?
 
ChronoCross's Avatar
 
Join Date: Jun 2004
Location: Chicago, IL
Posts: 1,542
Anyway I think 1 second is too little and would be detrimental to quality. It's just like making it too big might give the encoder more freedom quality wise but at the cost of seeking time. 4 is a decent compromise.

The Cli is easy to use and isn't as complex as Ateme's beta was when i did testing with that. Granted this encoder has few quality control options and is definitely an alpha but appears to be a good start. I can't really say much about the multithreading as I have a single core processor but the inclusion of direct AVISYNTH support is welcome.

Do you plan on including anything else in terms of input support? I see AVI is on the list but the known bugs state it's not currently working.

I don't have any interlaced sources but I wanted to ask if anyone had tried it out yet?

Last edited by Guest; 23rd August 2008 at 05:52. Reason: thread cleanup
ChronoCross is offline   Reply With Quote
Old 23rd August 2008, 18:37   #11  |  Link
bob0r
Pain and suffering
 
bob0r's Avatar
 
Join Date: Jul 2002
Posts: 1,337
@DigitAl56K

May i ask what your goals are with this encoder?
(Besides the obvious: Money)
- Are you planning to make DivX encoder package for H.264 devices, like market it for that?
- Are you planning to make DivX encoder the main H.264 for Windows? (and thus indeed have to battle x264)
- Are you planning to make DivX (AVC) as divx-asp versus xvid is now: Funny it exists, but those who want speed, quality and freedom all choose XviD.

I am asking this because i see DiVX as a "big(ger)" company.
Sony, Apple and Microsoft all have disappointed me hugely, by the fact they all lack the insight of making proper Support for what people REALLY WANT!

I am sure if they spent only 0.01% of the budget, they can make any Device support all H.264 options satellite and x264 can output. And .mkv support i think would BOOST sales a lot aswell. Maybe i am too narrow minded, but fact remains:

99.9% of ALL xvid and x264 releases contain the contents that would get you warned on this forum!

(in no way is any flaming intented, but thats just the nature of these topics, besides the technical stuff)

Just to point out i would always use the better product:
CoreAVC (many hour of testings and payed for)
ioftpd (many hour of testing and donated, not freeware)
FlashFXP (some hours of testing and payed for)
DvbViewer (mostly decoder testing, and payed for)
AnyDVD (never used, but payed for, just for what they stand for, i dont need their tool, others can code better and faster, but thats private )

The reason i mention the above is: These people have IRC channels or great Forum support. They LISTEN to what people have to report.... same goes for many opensource projects.

So if you listen to what people report here, and actually try to make or fix what they have to report.... you might go a long way.
CoreAVC has/had? no competition, so their feedback to users was a 2/10, and it took them some time to regain respect.

Good luck with _not_ competing with x264 and i truely hope DivX AVC can be great quality aswell.... i am real tired of blocky and blurry video!
bob0r is offline   Reply With Quote
Old 23rd August 2008, 19:43   #12  |  Link
dukey
Registered User
 
Join Date: Dec 2005
Posts: 560
high profile @ level 4.0 seems like a good standard to go for
dukey is offline   Reply With Quote
Old 23rd August 2008, 20:39   #13  |  Link
bob0r
Pain and suffering
 
bob0r's Avatar
 
Join Date: Jul 2002
Posts: 1,337
Quote:
Originally Posted by dukey View Post
high profile @ level 4.0 seems like a good standard to go for
Why limit yourself?
Soon even a $10 telephone can play 10 blu-ray movies simultaneous.

No really, no reason not to use all H.264 has to offer.
bob0r is offline   Reply With Quote
Old 23rd August 2008, 22:18   #14  |  Link
Ranguvar
Registered User
 
Ranguvar's Avatar
 
Join Date: Feb 2007
Location: ::1
Posts: 1,236
Please do let use know when you have a finalized or near-finalized spec for max encode settings (number of refs, b-frames, level, b-pyramid, etc.).

I believe a lot of us here, including me, are mostly just interested in creating DivX 7-compatible encodes with x264 Not dissing DivX, just a fact
Ranguvar is offline   Reply With Quote
Old 23rd August 2008, 22:21   #15  |  Link
bobololo
Registered User
 
Join Date: May 2003
Posts: 328
Quote:
Originally Posted by DigitAl56K View Post
Just to add to the IDR interval discussion it is worth considering the value of a given maximum IDR to the trick-play experience. If you have a max.

[...]
Speaking of IDR in your profile specification, please do me a favor and try to avoid the common mistake that assumes that a random access point is an IDR access unit. Indeed, while an IDR has actually the properties of an random access point, it also has many other charateristics like flushing the DPB which prevents the use of open GOP for instance (that can hurt encoder efficiency).

H.264 standard provides a syntax to signal random access point. It relies on the recovery_point SEI message that tell from which point in the bitstream you can start decoding and after how many frames, you're guaranteed to have recovered a proper video.
bobololo is offline   Reply With Quote
Old 23rd August 2008, 23:56   #16  |  Link
DigitAl56K
Registered User
 
Join Date: Nov 2002
Location: San Diego, CA
Posts: 936
Quote:
Originally Posted by ChronoCross View Post
The Cli is easy to use and isn't as complex as Ateme's beta was when i did testing with that. Granted this encoder has few quality control options and is definitely an alpha but appears to be a good start.
In terms of options for quality control we'd like to hear what kind of options you think are most important. Of course, it is possible to provide options for everything under the sun if we wanted to, but it would be good to know what your top 3 requests are, for example.

Quote:
Originally Posted by ChronoCross View Post
Do you plan on including anything else in terms of input support? I see AVI is on the list but the known bugs state it's not currently working.
What additional input support would you like us to include and why? stdin support is one of the suggestions we've seen already over at DivX Labs.

Quote:
Originally Posted by bob0r View Post
@DigitAl56K

May i ask what your goals are with this encoder?
No. Oh, alright then! go ahead..

Quote:
Originally Posted by bob0r View Post
- Are you planning to make DivX encoder package for H.264 devices, like market it for that?
Our goal will rather be to create a spec that enables widespread interoperability of content across CE devices, ensuring that media created on certified encoder devices is guaranteed to play well on any certified decoder device. We develop tools and certification programs to make sure everything works seamlessly end-to-end. This way, for example, a consumer can know without question that the video shot by their DivX Certified cell phone will look good and play flawlessly on their connected device, DVD player, and so forth. To your specific point, manufacturers may have their own encoders that will be tested to be compliant or they may use ours as a reference. This is similar to what DivX does today.

Quote:
Originally Posted by bob0r View Post
- Are you planning to make DivX encoder the main H.264 for Windows? (and thus indeed have to battle x264)
Not necessarily. Of course we hope to develop the encoder into a successful product, but our primary goal for the encoder is to ensure everyone has access to easy to use tools that will enable them to create high quality video with an excellent experience guaranteed on any device.

I personally could not be happier than if x264 and/or the front-ends that use it create compatible settings. The goal is not to become the dominant encoder, it is to ensure the experience.

Quote:
Originally Posted by bob0r View Post
Are you planning to make DivX (AVC) as divx-asp versus xvid is now: Funny it exists, but those who want speed, quality and freedom all choose XviD.
I think which particular encoder people choose comes down to their own personal needs. What's important is that when people spend their time creating videos they're not locked down to the desktop and can watch them in a wide selection of devices.


Quote:
Originally Posted by bob0r View Post
I am asking this because i see DiVX as a "big(ger)" company.
Sony, Apple and Microsoft all have disappointed me hugely, by the fact they all lack the insight of making proper Support for what people REALLY WANT!

I am sure if they spent only 0.01% of the budget, they can make any Device support all H.264 options satellite and x264 can output. And .mkv support i think would BOOST sales a lot aswell.
But some of these companies aren't interested in doing that Take Apple, for example. They have quite some stranglehold over the way the content they sell is consumed with a DRM system that only Apple devices can use. They and only they make the hardware. They created AppleTV and they dictated what you could do with it.

We can have a world where our experience is very silo'd - you buy into a particular format and you're at the mercy of a single company, or very open, which is what DivX tries to be. We work with hundreds of manufacturers to offer a massive variety of choice, but at the same time make sure that your media is going to work well on any end-product.

Quote:
Originally Posted by bob0r View Post
So if you listen to what people report here, and actually try to make or fix what they have to report.... you might go a long way.
I hope so

Quote:
Originally Posted by Ranguvar View Post
Please do let use know when you have a finalized or near-finalized spec for max encode settings (number of refs, b-frames, level, b-pyramid, etc.).

I believe a lot of us here, including me, are mostly just interested in creating DivX 7-compatible encodes with x264 Not dissing DivX, just a fact
Will do - we'll be discussing it here soon! Again, if you prefer to use x264 no worries

Last edited by DigitAl56K; 24th August 2008 at 00:01.
DigitAl56K is offline   Reply With Quote
Old 24th August 2008, 03:39   #17  |  Link
komarovsky
Registered User
 
Join Date: Jul 2008
Posts: 15
Quote:
Our goal will rather be to create a spec that enables widespread interoperability of content across CE devices, ensuring that media created on certified encoder devices is guaranteed to play well on any certified decoder device.
very worthy goal many users are fine with knowing what settings to use to get compatibility with something, like the apple tv. They know about all of the options in the encoder and what they are compatible with... But then there are other people who just want to know "if I encode my video with this, it will be able to play on this. good."
komarovsky is offline   Reply With Quote
Old 24th August 2008, 14:58   #18  |  Link
squid_80
Registered User
 
Join Date: Dec 2004
Location: Melbourne, AU
Posts: 1,963
Is interlaced encoding (via -tff or -bff) meant to be working? I always get an error stating "Width, height or frame rate outside profile (interlace) specification" followed by the width x height@framerate of my input clip (which is kind of pointless; I already know what they are, but I don't what profile specifications I've supposedly exceeded). I've tried various resolution and framerate combos right down to 320x240x23.975fps.
squid_80 is offline   Reply With Quote
Old 24th August 2008, 17:19   #19  |  Link
Guest
Guest
 
Join Date: Jan 2002
Posts: 21,922
I've moved the IDR versus editing discussion here:

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

I'm interested in further discussion of it over there. Thank you.
Guest is offline   Reply With Quote
Old 24th August 2008, 18:07   #20  |  Link
stax76
Registered User
 
Join Date: Jun 2002
Posts: 6,480
Are there plans for a PAR option?
stax76 is offline   Reply With Quote
Reply

Tags
cli, divx, encoder, h.264, tutorial

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 06:54.


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