Re: [codec] requirements #12 (closed): bit-exact vs. bit-compatible?
Jean-Marc Valin <jean-marc.valin@octasic.com> Tue, 25 January 2011 15:54 UTC
Return-Path: <jean-marc.valin@octasic.com>
X-Original-To: codec@core3.amsl.com
Delivered-To: codec@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id BDBB13A67EC for <codec@core3.amsl.com>; Tue, 25 Jan 2011 07:54:38 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.556
X-Spam-Level:
X-Spam-Status: No, score=-2.556 tagged_above=-999 required=5 tests=[AWL=0.043, BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 76Pk5vtSGpxM for <codec@core3.amsl.com>; Tue, 25 Jan 2011 07:54:37 -0800 (PST)
Received: from toroondcbmts05-srv.bellnexxia.net (toroondcbmts05.bellnexxia.net [207.236.237.39]) by core3.amsl.com (Postfix) with ESMTP id 576393A67EA for <codec@ietf.org>; Tue, 25 Jan 2011 07:54:37 -0800 (PST)
Received: from toip54-bus.srvr.bell.ca ([67.69.240.140]) by toroondcbmts05-srv.bellnexxia.net (InterMail vM.8.00.01.00 201-2244-105-20090324) with ESMTP id <20110125155734.IICL13003.toroondcbmts05-srv.bellnexxia.net@toip54-bus.srvr.bell.ca>; Tue, 25 Jan 2011 10:57:34 -0500
Received: from toip60-bus.srvr.bell.ca ([67.69.240.187]) by toip54-bus.srvr.bell.ca with ESMTP; 25 Jan 2011 10:57:26 -0500
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AvsEAK58Pk3PPaAN/2dsb2JhbACkbnO9A4VPBIUXilcG
Received: from mail.octasic.com ([207.61.160.13]) by toip60-bus.srvr.bell.ca with ESMTP; 25 Jan 2011 10:57:25 -0500
Received: from [10.100.60.27] (10.100.60.27) by MAIL2.octasic.com (10.100.10.44) with Microsoft SMTP Server (TLS) id 14.1.270.1; Tue, 25 Jan 2011 10:57:25 -0500
Message-ID: <4D3EF2E5.6080101@octasic.com>
Date: Tue, 25 Jan 2011 10:57:25 -0500
From: Jean-Marc Valin <jean-marc.valin@octasic.com>
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20101208 Thunderbird/3.1.7
MIME-Version: 1.0
To: Stephen Botzko <stephen.botzko@gmail.com>
References: <C963872D.26A05%stewe@stewe.org> <4D3E598A.3010200@jmvalin.ca> <AANLkTinSyfj-r67BhghSbOURTXLvToqNLBtATo+aJYo6@mail.gmail.com> <AANLkTimpQvmeF9DL-=qnN6=a_79xdgUJ_+TEzS30hzpv@mail.gmail.com>
In-Reply-To: <AANLkTimpQvmeF9DL-=qnN6=a_79xdgUJ_+TEzS30hzpv@mail.gmail.com>
Content-Type: text/plain; charset="windows-1252"; format="flowed"
Content-Transfer-Encoding: 8bit
X-Originating-IP: [10.100.60.27]
Cc: codec@ietf.org
Subject: Re: [codec] requirements #12 (closed): bit-exact vs. bit-compatible?
X-BeenThere: codec@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Codec WG <codec.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/codec>, <mailto:codec-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/codec>
List-Post: <mailto:codec@ietf.org>
List-Help: <mailto:codec-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/codec>, <mailto:codec-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 25 Jan 2011 15:54:38 -0000
Hi Stephen, The reference implementation includes both floating-point and fixed-point, so I'm not sure it's a good idea to say that one is "better" than the other. As for IEEE 754-2008, as far as I know it is not a "bit-exact" standard either when it comes to some operations (e.g. transcendental function) and even for other operations, most compilers I know of are not strict IEEE-754 (at least by default) because of issues such as the x86 extended precision operations. Regarding MPEG bit-streams, I'm not sure where to get confirmation, but this is what Wikipedia has to say about MPEG-1 Layer 3: "Decoding, on the other hand, is carefully defined in the standard. Most decoders are "bitstream compliant", which means that the decompressed output – that they produce from a given MP3 file – will be the same, within a specified degree of rounding tolerance, as the output specified mathematically in the ISO/IEC standard document (ISO/IEC 11172-3). Therefore, comparison of decoders is usually based on how computationally efficient they are (i.e., how much memory or CPU time they use in the decoding process)." That implies a standard based on "infinite precision", with a degree of tolerance for different implementations. Cheers, Jean-Marc On 11-01-25 10:42 AM, Stephen Botzko wrote: > It seems to me that the reference encoder and decoder will be bit exact for > a given floating point format, correct? So one could specify IEEE 754-2008 > when bit exactness is needed in the reference (for instance regression > testing), but not require it for compliance. > > Folks who are modifying the reference encoder or decoder algorithms are "on > their own" as far as audio quality is concerned. Though I agree with > Stephan that we need to address compliance (when exactly does a ported or > otherwise modified encoder/decoder become non-compliant?). > > Stephen Botzko > > On Tue, Jan 25, 2011 at 9:34 AM, Roman Shpount <roman@telurix.com > <mailto:roman@telurix.com>> wrote: > > One more concern that I have related to bit exactness is codec > regression testing. One can produce a non-bit-exact encoder that > produces reasonable results for a reference decoder, but if paired with > a modified, non-bit-exact decoder will produce significant audio > artifacts. Since neither decoder or encoder are bit exact we will need > to have a test procedure that will validate that both encoder or > decoder will not break any standard compliant and non-bit-exact > encoders or decoders. Not really sure how this can be done. > > I might be wrong, but I think MPEG decoders are bit exact and encoders > are not. > _____________ > Roman Shpount > > > > On Tue, Jan 25, 2011 at 12:03 AM, Jean-Marc Valin <jmvalin@jmvalin.ca > <mailto:jmvalin@jmvalin.ca>> wrote: > > Hi Stephan, > > I understand your concern and I'd be interested if you have > alternative ways of handling the licensing to avoid any issue. It's > not like this is a unique situation. As far as I know, most (all?) > MPEG codecs have similar non-bit exact definitions. I have also > heard that they also require some IPR licensing... > > In general the issue of bit-exactness has been discussed and so far > I don't recall many arguing in favor of a bit-exact definition. > Most of the concerns that have been expressed are solved by > considering that non-bitexact does not mean you cannot be bit-exact > with the reference encoder. It merely means that you don't *have* > to. So regardless of how conformance is defined exactly, one always > has the option of being bit-exact with the reference > implementation, which obviously guarantees compliance. > > As for language mentioning compliance, I believe it belongs more to > the guidelines (it's not a requirement of the codec itself), which > includes the following text: > > 4. To reduce the risk of bias towards certain CPU/DSP architectures, > ideally the decoder specification should not require "bit-exact" > conformance with the reference implementation. The output of a > decoder implementation should only be "close enough" to the > output of the reference decoder. A comparison tool should be > provided along with the codec to verify objectively that the > output of a decoder is likely to be perceptually > indistinguishable from that of the reference decoder. However, > an implementation may still wish to produce an output that is > bit-exact with the reference implementation to simplify the > testing procedure. > > > > Cheers, > > Jean-Marc > > > On 11-01-24 11:02 PM, Stephan Wenger wrote: > > Hi all: > > Let me speak once more against this decision (if such a > decision were > really made; see the p.s.). > > There are currently three IPR disclosures against the codec > draft and/or > its predecessors. The Xiph disclosure is at this point a > placeholder > (Xiph folks: it's time to fix that!). However, the two other > disclosures > on file provide a patent grant only for necessary patent claims > and only > when the standard is practiced in full compliance. These terms (in > various formulations) are quite common. > > In order to ensure one has a license (or can rely on a non-assert > covenant), one has to ensure one meets the conditions set by the > rightholder. On stuff such as reciprocity clauses this is > simple. On > compliance, it's not always easy. > > The traditional compliance test for a media codec is a > stimulus-response > test: you feed test vectors into the codec, and you get > results. If the > results match, you are in compliance, if not, you are not. Simple. > > Without bit exactness, the compliance criteria have to be defined > differently. We can do so, and, indeed, I recall that this has been > mentioned as one plan forward. However, I have seen zero > activity in this > direction, and I have also not seen any language that mentions > this in the > requirements draft. I think that the subject of compliance > tests, at > least in its most basic outline, needs to be documented in the > requirements draft. The details can be taken care of elsewhere > and later, > but not too much later. It should be clear that a codec > candidate (if > there were more than one) needs to have compliance criteria > defined before > that codec candidate can become an RFC. Without that, the key > goal of the > WG, a reasonably freely practicable codec, is just not > achievable in the > current legal environment (which includes, in this case, the IPR > disclosures on file). > > Of course, it would be sooooo much simpler if we would mandate > a bit exact > decoder... Is it really that restricting to require that? > > Stephan > > P.s.: for the IETF procedures newcomers: humms taken at > meetings need to > be confirmed on a mailing list, and consensus needs to be > declared by the > chairs. On this subject, I do recall mailing list discussions after > Maastricht, but I do not recall that consensus was reached, yet > alone > declared. (Unfortunately, I currently don't have the time to go > through > the mailing list archives to verify my recollection; Sorry.) > > > > On 1.24.2011 16:45 , "codec issue tracker"<trac@tools.ietf.org > <mailto:trac@tools.ietf.org>> wrote: > > #12: bit-exact vs. bit-compatible? > > Changes (by gmaxwell@Å ): > > * status: new => closed > * resolution: => worksforme > > > Comment: > > http://www.ietf.org/proceedings/78/minutes/codec.txt > > "On the topic of bit exact. Consensus was bit exactness is > not required." > > I believe this issue is already closed. > > -- > ------------------------------------+------------------------------------- > -- > Reporter: hoene@Å | Owner: > Type: enhancement | Status: closed > Priority: minor | Milestone: > Component: requirements | Version: > Severity: Active WG Document | Resolution: worksforme > Keywords: | > ------------------------------------+------------------------------------- > -- > > Ticket > URL:<http://trac.tools.ietf.org/wg/codec/trac/ticket/12#comment:1> > codec<http://tools.ietf.org/codec/> > > _______________________________________________ > codec mailing list > codec@ietf.org <mailto:codec@ietf.org> > https://www.ietf.org/mailman/listinfo/codec > > > > _______________________________________________ > codec mailing list > codec@ietf.org <mailto:codec@ietf.org> > https://www.ietf.org/mailman/listinfo/codec > > > _______________________________________________ > codec mailing list > codec@ietf.org <mailto:codec@ietf.org> > https://www.ietf.org/mailman/listinfo/codec > > > > _______________________________________________ > codec mailing list > codec@ietf.org <mailto:codec@ietf.org> > https://www.ietf.org/mailman/listinfo/codec > > > > > _______________________________________________ > codec mailing list > codec@ietf.org > https://www.ietf.org/mailman/listinfo/codec
- [codec] #12: bit-exact vs. bit-compatible? codec issue tracker
- Re: [codec] requirements #12 (closed): bit-exact … codec issue tracker
- Re: [codec] requirements #12 (closed): bit-exact … Stephan Wenger
- Re: [codec] requirements #12 (closed): bit-exact … Jean-Marc Valin
- Re: [codec] requirements #12 (closed): bit-exact … Roman Shpount
- Re: [codec] requirements #12 (closed): bit-exact … Stephen Botzko
- Re: [codec] requirements #12 (closed): bit-exact … Jean-Marc Valin
- Re: [codec] requirements #12 (closed): bit-exact … Jean-Marc Valin
- Re: [codec] requirements #12 (closed): bit-exact … Jean-Marc Valin
- Re: [codec] requirements #12 (closed): bit-exact … Koen Vos
- Re: [codec] requirements #12 (closed): bit-exact … Jean-Marc Valin
- Re: [codec] requirements #12 (closed): bit-exact … Raymond (Juin-Hwey) Chen
- Re: [codec] requirements #12 (closed): bit-exact … Stephan Wenger
- Re: [codec] requirements #12 (closed): bit-exact … Jean-Marc Valin