Dirac video codec

Feature requests for VLC.
tomleonard
Blank Cone
Blank Cone
Posts: 30
Joined: 21 Feb 2004 04:16
Location: Kona, Hawaii, US
Contact:

Dirac video codec

Postby tomleonard » 10 May 2004 23:55

Are there any plans to support the BBC's Dirac video format?

markfm
Big Cone-huna
Big Cone-huna
Posts: 1536
Joined: 22 Feb 2004 17:42

Postby markfm » 11 May 2004 01:14

Neat request -- there is a Dirac project started on Sourceforge:
http://sourceforge.net/projects/dirac

I'd be interested to see how it works -- I've had positive experience with other wavelet CODECs and REALLY dislike the lack of patent clarity of MPEG4 (that "patent encumbered" when ffmpeg compiles is for a reason -- there are MPEG4 patents that have NOT been made free-to-use; it really messes with trying to use VLC in a corporate environment, would be nice to be able to use another, patent-free CODEC [IF Dirac is unencumbered]).

tomleonard
Blank Cone
Blank Cone
Posts: 30
Joined: 21 Feb 2004 04:16
Location: Kona, Hawaii, US
Contact:

Postby tomleonard » 11 May 2004 01:35

The BBC site for the project is:

http://www.bbc.co.uk/rd/projects/dirac

I found the Overview section quite revealing. It looks like they are serious about releasing a competative codec thats not encumbered by a load of questionable patents. Licensing uses the Mozilla & Netscape Public License. GPL and LGPL are also supported relicensing options.

Gibalou
Big Cone-huna
Big Cone-huna
Posts: 608
Joined: 26 Nov 2003 10:59

Postby Gibalou » 11 May 2004 13:05

I had a quick try at the codec and here my conclusions so far:

1 - The api isn't flexible enough to embed the library in VLC (or any other player/encoder) because it insists on doing things like I/O itself (which is rather dumb for a decoder/encoder library).

2 - It is _awfully_ slow. Not only encoding but also decoding wise, which for now renders it useless.

3 - Quality wise it didn't seem that great to me (although I just did a couple of tests so it isn't likely enough to get a fair judgement). The motion compensation part seemed to particularly lower the quality because it creates sharp edges in the picture which are not handled very well by wavelets. At least the samples I created exhibited high blocking artifacts (which were somewhat slightly different from what DCT based codecs produce).

4 - I very much doubt Dirac is patent unencumbered... almost everything in video/audio compression is patented nowadays... The only good point (right now) is that it isn't subject to any royalties... although this can be a bad point as well because the MPEG-LA isn't there anymore to cover your ass in case of patent litigations.


I did try to implement a VLC plugin for it but I stumbled upon point n°1 and until this is solved, it just isn't feasible (or at least not without a huge amount of work and code to implement wrappers and such).

markfm
Big Cone-huna
Big Cone-huna
Posts: 1536
Joined: 22 Feb 2004 17:42

Postby markfm » 11 May 2004 13:39

The joys of an Alpha release, perhaps? The wavelet codecs I have used before were closed-source applications -- very nice quality, extremely low latency, the difficulty was that the application wrapper was simply unsuitable for my work (the firm had a specific target audience, their choice, I cannot complain).

Anyhow, thanks, as always, for checking it out. It will be interesting to see how it develops over a few months.

sankt
Blank Cone
Blank Cone
Posts: 16
Joined: 17 Feb 2004 00:05
Contact:

Dirac-0.5.0

Postby sankt » 02 Dec 2004 01:42

December 1, 2004

Notes:

This is a major release and contains many feature/algorithmic improvements over 0.4.x

- Added C interface for the encoder application. Refer to the api documentation in dirac_encoder.h or in the Programmer's Guide at
http://dirac.sourceforge.net/documentat ... /index.htm

- Updated bitstream version. Encoder/Decoder apps in this release will not be able to decode bitstreams generated by earlier versions.

- Improvements to Constant Quality encoding engine to improve stability.

- Speed-ups to motion compensation and wavelet transform for faster decoding.

- Removed rounding errors from motion compensation.

- Fixed bugs with clipping and encoding black or white areas.

- Fixed bug with overflow in context modelling for arithmetic coding of HD pictures.

- Added unit tests for motion compensation classes and wavelet classes.

- The number of frames parameter is no longer required. All existing picture header files must be recreated using make_header for this parameter to be omitted. Otherwise, incorrect bit rates will be reported by the encoder application.

- Updated algortihm documentation.

- Restructured libraries so that only two libraries are generated - an encoder library and a decoder library. 'make install' will now install only the public API libraries and header files, the encoder and decoder apps and the conversion and instrumentation utilities.

- Added support for building shared and/or static libraries using libtool under UNIX, GNU/Linux. Shared and static libraries are built by default.

- Added support for building shared or static libraries under MS Windows using MSYS and the no cost MSVC++ 2003 toolkit. Shared libraries are built by default.

- Added support for building the codec using MS Visual C++ .NET 2003 under MS Windows. Options are available to build Dlls and static libraries. The _declspec mechanism is used to export the Encoder and Decoder public "C" API.

- New target 'valgrind-check' added to make under Linux.

- Build under MS Windows using nmake no longer supported.

- Bugs fixed: 1050816, 1055692, 1050757, 1044503, 1044501, 1044499

- Patches Applied: 1055714, 1055707, 1061923, 1071429, 1059342
Last edited by sankt on 02 Dec 2004 01:58, edited 3 times in total.

sankt
Blank Cone
Blank Cone
Posts: 16
Joined: 17 Feb 2004 00:05
Contact:

Dirac licensing

Postby sankt » 02 Dec 2004 01:44

Licenses

The Dirac software source code is licenced under the Mozilla Public License Version 1.1. A plain text version of this licence is available in copying.txt. Much more detail may be found at Mozilla & Netscape Public Licenses. Legal documents can be difficult for non-lawyers to read. An annotated version of the licence is available at Mozilla & Netscape Public Licenses that contains informal explanations of various sections of the licence.

The provisions of the Mozilla Public License allow for relicensing under other licences that are specified in the licence preamble at the beginning of each source-code file. For the Dirac project the licences under which relicensing is possible are specified to be the GNU General Public License Version 2.0 and the GNU Lesser General Public License Version 2.1. These may be downloaded from GNU; copies are also provided in Annex A and Annex B of copying.txt. The rationale for allowing re-licensing under GPL & LGPL is to permit the widest possible use of this technology whist retaining the advantages of the MPL license.

The Dirac approach to licensing

We wish Dirac to be used as widely as possible, royalty free. We thought long and hard in selecting the MPL version 1.1 (hereafter simply the MPL) as the licence for Dirac. We chose it because it's a well-known and widely used licence, and also because it contains practical provisions for dealing with patent issues in what is a highly patented field.

As a defensive measure the BBC has applied for patent protection for some techniques that are, or may be, used within Dirac. Our purpose in doing so is to provide protection for Dirac from spurious patent suits by other parties. Under the terms of the MPL we have licensed these patents irrevocably and royalty free for use within the Dirac software. Our aim is to increase the likelihood that Dirac succeeds, and is used.

However, no licence can grants rights to use third-party patents that are not owned by the licensor. This problem applies to all technologies, whether proprietary, Open Source, or (as illustrated in the case of JPEG) Open Standards, and is a risk that is faced by everyone. We're working hard to avoid using third-party patents altogether, and this is one reason why the Dirac algorithm may yet change. The licence itself cannot address this issue.

Our intention is that Dirac code be used as widely and as freely as possible. This is why we have allowed re-licensing under the terms of the GPL and LGPL licences. Had we not allowed this, as alternative licences under the MPL, GPLed projects could not have used the Dirac software. The option to re-license under the LGPL allows even commercial software to link to Dirac libraries. With the re-licensing provision in the MPL, GPL and LGPL projects may use the Dirac software as is. In this case the patent licence granted under the MPL still applies explicitly. Some projects may prefer to ensure that all their code is distributed only under the GPL or LGPL licence. This is also permitted under the MPL licence. If a project does this then the usual provisions of the GPL or LGPL licence applies and these simply do not involve patent issues (they relate only to copyright). However, in practice, users are still free to use the BBC patents royalty free.

Our philosophy is that the Dirac licence is merely a tool to allow people to use and work on Dirac: the licence is not a complete expression of our commitment to Dirac. The MPL does have some limitations, but it was our view that it was better to use a licence that did most of what we wanted than invent a new one that might be viewed with suspicion and which would not have been subject to the same level of scrutiny as the MPL. If we find that the MPL is an impediment to free and open use of Dirac then we will be happy to consider using alternative or additional licences to achieve its widespread, royalty free use.

http://dirac.sourceforge.net/licenses.html
Last edited by sankt on 02 Dec 2004 01:58, edited 1 time in total.

sankt
Blank Cone
Blank Cone
Posts: 16
Joined: 17 Feb 2004 00:05
Contact:

Postby sankt » 02 Dec 2004 01:54

I did try to implement a VLC plugin for it but I stumbled upon point n°1 and until this is solved, it just isn't feasible (or at least not without a huge amount of work and code to implement wrappers and such).
Tons of information is now available for developement :D

Documentation

We believe that good documentation is an important part of the Dirac project. Documentation is organised under a number of categories; support, algorithm, code, tools and publications. An FAQ page is also included.

The aim is to make it as simple as possible for anyone who wishes to use this software or contribute to its development. We welcome feedback on our documentation.

http://dirac.sourceforge.net/documentation.html

The DJ
Cone Master
Cone Master
Posts: 5987
Joined: 22 Nov 2003 21:52
VLC version: git
Operating System: Mac OS X
Location: Enschede, Holland
Contact:

Postby The DJ » 02 Dec 2004 21:23

Hmm, wish we could hire some of the folks working for them... :)
We could use some of these improvements as well.
Don't use PMs for support questions.

Guest #007, James Guest

Postby Guest #007, James Guest » 09 Dec 2004 17:34

sankt please don't spam yet another forum about dirac. there is SNOW which works , so try and go spamming about SNOW at least it deserves

sankt
Blank Cone
Blank Cone
Posts: 16
Joined: 17 Feb 2004 00:05
Contact:

Postby sankt » 10 Dec 2004 23:03

If you will kindly note, this thread was not started by me.
I was including relevent information for the persons who started and continued the thread. Version updates and licensing implimentation.

It is most fortunate that the BBC offers their technical expertise and scientific R&D department in the developement of this project, while others would have such activities labeled as futile or irrelevant.

Dirac now has DirectX filters available for the Windows platform now :
http://sourceforge.net/project/showfile ... _id=132196

Strangely, it seems this Snow codec lacks any cohesive documentation or implimentation of any sort. This lack of organization is what you wish to express to the world ? Very odd method of thinking.

Sigmund
Big Cone-huna
Big Cone-huna
Posts: 893
Joined: 26 Nov 2003 09:38

Postby Sigmund » 11 Dec 2004 15:16

SNOW is currently just as unsupported by vlc as dirac is, and I find Guest #007, James Guest's post very unappropriate.

Though I can agree that the amount of information in sankt's posts are a bit too much except for the very very interrested person. (And as such probably could have been transmitted by other means).

sankt: Do dirac still only use that strange mcx container? Is it used in any degree by anything else? I think the need to implement yet another (de)muxer will hinder the progress of dirac implementation in vlc.

sankt
Blank Cone
Blank Cone
Posts: 16
Joined: 17 Feb 2004 00:05
Contact:

Postby sankt » 11 Dec 2004 16:13

I apologize for the excess information.

Allthough the priority is to utilize the MXF wrapper, the DIRAC project will gladly help with incorporating other wrapper formats.

http://sourceforge.net/forum/forum.php? ... _id=353618

API's and SDK's have also been developed to allow DIRAC to be ported to any format of streaming.

http://dirac.sourceforge.net/documentation.html

OGM format would be nice, then Icecast servers could be used be used for streaming - and the codec would be available to all open source media players.

Gibalou
Big Cone-huna
Big Cone-huna
Posts: 608
Joined: 26 Nov 2003 10:59

Postby Gibalou » 13 Dec 2004 10:43

DIRAC encoding / decoding support just made it to the development version.
We don't support MXF though so you probably won't be able to play anything that's not generated by VLC ( right now VLC allows you to put DIRAC into Ogg ).

And by the way, SNOW is supported by VLC. Both decoding and encoding (although to encode you have to use the --sout-ffmpeg-strict=-1 option).

sankt
Blank Cone
Blank Cone
Posts: 16
Joined: 17 Feb 2004 00:05
Contact:

Postby sankt » 13 Dec 2004 22:07

Could you give more information on using Dirac with OGG within VLC ?

This is great news !

Sigmund
Big Cone-huna
Big Cone-huna
Posts: 893
Joined: 26 Nov 2003 09:38

Postby Sigmund » 14 Dec 2004 12:21

trying to help gibalou out here:
*first get latest vlc sources via svn
*run the bootstrap script
*run configure with --enable-dirac (among other options you might want)
*make

now from a command line you could run something like this:
vlc input --sout "#transcode{vcodec=dirac{quality=5}}:std{access=file,mux=ogg,url=outfile.ogg}"

where input is anything vlc can play, and quality is a number from 1 to 10
didn't test myself, but hopefully it's right.

Sigmund
Big Cone-huna
Big Cone-huna
Posts: 893
Joined: 26 Nov 2003 09:38

Postby Sigmund » 14 Dec 2004 15:05

it's supposed to be like this:
vlc input --sout "#transcode{venc=dirac{quality=5}}:std{access=file,mux=ogg,url=outfile.ogg}"

or like this
vlc input --sout "#transcode{vcodec=drac}:std{access=file,mux=ogg,url=outfile.ogg}"

latter will not let you specify options to the encoder

martin

codecs

Postby martin » 29 Jan 2005 05:15

I was searching google.com for missing codec to play one of my divx movies and I found this site: http://www.hotcodecs.com, this site just rocks...free of popups and other complications... just click on download and you got it... martin


Return to “VLC media player Feature Requests”

Who is online

Users browsing this forum: No registered users and 5 guests