Re: [codec] requirements #12 (closed): bit-exact vs. bit-compatible?

Jean-Marc Valin <jean-marc.valin@octasic.com> Tue, 25 January 2011 15:42 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 9EB923A680F for <codec@core3.amsl.com>; Tue, 25 Jan 2011 07:42:31 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.549
X-Spam-Level:
X-Spam-Status: No, score=-2.549 tagged_above=-999 required=5 tests=[AWL=0.050, 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 93WVec2WIe5r for <codec@core3.amsl.com>; Tue, 25 Jan 2011 07:42:30 -0800 (PST)
Received: from toroondcbmts07-srv.bellnexxia.net (toroondcbmts07-srv.bellnexxia.net [207.236.237.41]) by core3.amsl.com (Postfix) with ESMTP id 2CA823A680D for <codec@ietf.org>; Tue, 25 Jan 2011 07:42:30 -0800 (PST)
Received: from toip58-bus.srvr.bell.ca ([67.69.240.185]) by toroondcbmts07-srv.bellnexxia.net (InterMail vM.8.00.01.00 201-2244-105-20090324) with ESMTP id <20110125154527.INVJ3521.toroondcbmts07-srv.bellnexxia.net@toip58-bus.srvr.bell.ca>; Tue, 25 Jan 2011 10:45:27 -0500
Received: from toip38-bus.srvr.bell.ca ([67.69.240.39]) by toip58-bus.srvr.bell.ca with ESMTP; 25 Jan 2011 10:45:19 -0500
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AvsEANN2Pk3PPaAN/2dsb2JhbACkbnO9AIVPBIUXilcG
Received: from mail.octasic.com ([207.61.160.13]) by toip38-bus.srvr.bell.ca with ESMTP; 25 Jan 2011 10:45:19 -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:45:19 -0500
Message-ID: <4D3EF00E.2080601@octasic.com>
Date: Tue, 25 Jan 2011 10:45:18 -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: Roman Shpount <roman@telurix.com>
References: <C963872D.26A05%stewe@stewe.org> <4D3E598A.3010200@jmvalin.ca> <AANLkTinSyfj-r67BhghSbOURTXLvToqNLBtATo+aJYo6@mail.gmail.com>
In-Reply-To: <AANLkTinSyfj-r67BhghSbOURTXLvToqNLBtATo+aJYo6@mail.gmail.com>
Content-Type: text/plain; charset="ISO-8859-1"; 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:42:31 -0000

As far as I know, MPEG decoders are specified, but not bit exact. With a 
bit-exact specification, there simply could not be any floating-point 
implementation of an MP3 or AAC decoder.

As long as the decoder is correctly specified with a tolerance on the 
deviation compared to the reference decoder, I do not see how an encoder 
could work with one decoder and not with another. As an example of (very 
simple) tolerance, we could say that a decoder implementation has to be 
within 80 dB SNR of the reference implementation on some test vectors. In 
practice we can use slightly more perceptually relevant metrics.

	Jean-Marc

On 11-01-25 09:34 AM, Roman Shpount 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
> https://www.ietf.org/mailman/listinfo/codec