I am the author of MAD, a fixed-point MPEG audio decoder library currently used by many software applications. I implemented MAD from scratch using the specification contained in the official ISO/IEC standards documents.
For some time I have been asked and have wanted to write a similar library for Ogg Vorbis, but as I will explain, for all practical purposes this is currently impossible. While I am very interested in supporting Vorbis, I am held back by the current state of affairs. I believe I am not alone; the present situation is unnecessarily delaying the acceptance of Vorbis, and I think the strategy for Vorbis advocacy needs to be reexamined.
The Xiph.Org Foundation says it offers a "fully Open, non-proprietary, patent-and-royalty-free, general-purpose compressed audio format" called Ogg Vorbis. In fact a full detailed description of the format has never been made available, but in spite of this Xiph.Org offers two implementations:
libvorbis (et al.) is a floating-point reference encoder/decoder implementation provided under a BSD-like license. This implementation offers royalty-free drop-in support for Vorbis in many applications, and is used by virtually all software that currently supports Vorbis. Unfortunately it is neither highly optimized nor well-suited for all platforms, particularly embedded systems and other hardware lacking native floating-point support.
"Tremor" is the name of a fixed-point implementation optimized for certain embedded systems. Xiph.Org has recently begun to commercially license this implementation, but it is not otherwise freely available.
The specification for Ogg Vorbis is currently incomplete and is unavailable in its entirety. This presents a problem for anyone who wants to create an independent implementation of the codec.
Without a specification, would-be authors of independent implementations are forced to reverse-engineer the reference implementation, with varying degrees of success. Indeed, independent implementations have no hope of remaining relevant in the face of an evolving reference implementation, and are prone to compatibility problems, unintentional or otherwise.
In effect, Xiph.Org presently has a monopoly on the only viable implementations of Vorbis. Anyone interested in supporting Vorbis in their application has little choice but to use one of Xiph.Org's implementations, a situation little better than that of proprietary formats like WMA or RealAudio. Granted Xiph.Org's license terms are considerably more generous than those of such formats, but the main selling point of Vorbis -- that it is non-proprietary -- is largely irrelevant when there is not, in fact, a full specification available for the format, and the only practicable implementations come from its creators.
The fact that one Vorbis implementation is royalty-free and open source does not change the reality that without a specification, few are able or willing to verify the claim that the format is actually patent-free. Who will indemnify those that choose to use Vorbis and are subsequently accused of patent infringement, despite Xiph.Org's assurances that the Vorbis algorithms do not infringe upon any patent? Xiph.Org offers no warranty for its code. In the absence of indemnification, publication of the format specification is the most important means of mitigating risk for anyone to use the format. Like the benefit of open source to find and eliminate bugs, a thousand eyeballs reading the specification are more likely to find and eliminate potential patent pitfalls than Xiph.Org alone.
To be widely accepted, Vorbis ought to be submitted to standards bodies. Not only is the absence of a specification an obvious impediment, but the lack of multiple independent implementations often sought during standardization may also delay the process.
Unfortunately the situation is now exacerbated because Xiph.Org has created a conflict of interest by developing and commercially licensing their own fixed-point implementation. The motivation to release a full specification is now weakened, as any subsequent independent implementation could become a competitor to Xiph.Org's new source of revenue.
I submit that a Vorbis specification is more important than any implementation offered by Xiph.Org. A specification would:
- hasten the adoption of the format as a standard;
- allow the patent-free claims to be verified;
- leverage input and experience from the community through feedback;
- promote awareness as implementations proliferate, and spread knowledge; and
- create an industry and a market for implementations, each on their own merits. Implementations can be tailored for particular platforms, optimized for speed or for quality, or combined with options for support, warranties, and value add-ons.
Jack Moffitt, executive director of Xiph.Org, a year ago confirmed to me his belief in the necessity of producing a full specification, but to date there appears to be little progress.
I believe it is imperative that Xiph.Org give priority to completing and publishing the Vorbis specification, above efforts to continue developing the reference implementation (beyond that necessary to support the specification), and before selling any further commercial licenses for their own implementations.
I am not suggesting that Xiph.Org should not try to make money. However, there are other ways Xiph.Org could make money without creating a conflict of interest. Here are some ideas:
- Sell copies of the specification. This is the approach taken by standards bodies like IEEE, ANSI, and ISO/IEC.
- Dual-license the implementation(s). Commercial examples of this approach include Trolltech, Sleepycat Software, and Sendmail.
- Offer a warranty of non-infringement with respect to patents. In a sense, this is like selling insurance.
- Sell support and/or developer subscriptions for the implementation(s). Examples include MSDN and ADC.
- Franchise the Vorbis brand to value-added partners. This is one source of revenue for MySQL AB.
- Perform certifications. This could be applied not only to independent implementations, but to any product which claims to support Vorbis regardless of the implementation. Some kind of certification mark might be useful, like the ones used by Dolby Digital/THX or Linux Journal.
- Offer consulting services. Unexciting, perhaps, but the experience and expertise of Xiph.Org could be worth more than they realize.
- License proprietary implementations after producing a specification. Xiph.Org has the advantage of being known for creating Vorbis, and a quality implementation from them could go a long way. Other examples in industry include Fraunhofer, Adobe, and RSA.
Vorbis offers promise, but Xiph.Org should reevaluate their strategy if the codec is to succeed. A full specification of the format is essential, as it will permit new implementations to be created and the codec to be standardized. That is what will give Vorbis the critical mass it needs to become ubiquitous.