Subject: Re: [codec] #28: Layered bit-stream

From: "Christian Hoene" <[email-masked]>
Date: Wed, 5 May 2010 21:01:56 +0200

Hi Vladimir,

>2/ we think that VoIP and Videoconferencing systems are users of such
>codecs.

Could you please explain your position a bit?

As far as I understand, layered coding helps if multiple streams having the sample content but different rates must be generated.
For example, if a conferencing system stream the same audio stream to N users but each users has a different bandwidth. Just encode
all layers and drop the higher layers for the low bandwidth users. This approach is easy and efficient and reduce the encoding
complexity.

The arguments against are simple. 
a) First, this use case is a local optimization only. Thus, the must not be standardized.
b) Second, instead of layered coding one can use other ways of tweaking the implementation performance. For example, if you
calculate a 512 FFT do get two 256 FFTs for free. I bet there are thousand other shortcuts which I am not aware of.

Thus, I have the opinion that layered coding is not worth the extra bandwidth of 20 or more percentage. It is just good locally but
not needed for interoperability.

Yours,

 Christian

>Yours,
>Vladimir Sviridenko
>SPIRIT
>
>-----Original Message-----
>From: [email-masked] [mailto:[email-masked]] On Behalf
>Of codec issue tracker
>Sent: Sunday, May 02, 2010 5:10 PM
>To: [email-masked]
>Cc: [email-masked]
>Subject: [codec] #28: Layered bit-stream
>
>#28: Layered bit-stream
>------------------------------------+-----------------------------------
>----
> Reporter:  hoene@...                 |       Owner:
>     Type:  defect                  |      Status:  new
> Priority:  minor                   |   Milestone:
>Component:  requirements            |     Version:
> Severity:  Active WG Document      |    Keywords:
>------------------------------------+-----------------------------------
>----
> Shall layered coding be supported?
> Who needs it?
> Can we drop this requirement?
>
>--
>Ticket URL: <http://trac.tools.ietf.org/wg/codec/trac/ticket/28>
>codec <http://tools.ietf.org/codec/>
>
>_______________________________________________
>codec mailing list
>[email-masked]
>https://www.ietf.org/mailman/listinfo/codec

---

From: "Christian Hoene" <[email-masked]>
Date: Thu, 6 May 2010 15:13:23 +0200

Hi Dimitry,

>Hi Christian,
>
>From application point of view, the layered stream structure allows
>server manipulate channel bandwidth individually for each user with zero
>performance overhead. 

I understand. Because you as an application programmer want to have an easy life, the codec designer shall develop a more
complicated codec? In addition, everybody should suffer from a higher bit rate? No, that is not fair.

> Obviously, conferencing is the most important use-case.

No, end-to-end connections are more frequent than conference calls.

>What do you mean exactly? "local optimization" of what?

I mean that the layered coding is only used within one computer. It is not important in-between computers. And, it is only a
performance optimization that make the conference gateway faster.

Sincerely,

 Christian

>
>> b) Second, instead of layered coding one can use other ways of
>tweaking the implementation
>> performance. For example, if you calculate a 512 FFT do get two 256
>FFTs for free.
>> I bet there are thousand other shortcuts which I am not aware of.
>How do this interrelates with scalability? Please, explain.
>
>Let's return back to the subject:
>    Shall layered coding be supported? - we think "yes", because ...
>(see my first sentence)
>    Who needs it?                      - answered
>    Can we drop this requirement?      - only if we have real good
>reasons for it. Do we have them?
>
>Best regards,
>Dmitry
>
>From: Christian Hoene [mailto:[email-masked]]
>Sent: Wednesday, May 05, 2010 11:02 PM
>To: Vladimir Sviridenko; [email-masked]
>Cc: Slava Borilin; Dmitry Yudin; [email-masked]
>Subject: RE: [codec] #28: Layered bit-stream
>
>Hi Vladimir,
>
>As far as I understand, layered coding helps if multiple streams having
>the sample content but different rates must be generated.
>For example, if a conferencing system stream the same audio stream to N
>users but each users has a different bandwidth. Just encode
>all layers and drop the higher layers for the low bandwidth users. This
>approach is easy and efficient and reduce the encoding
>complexity.
>
>b) Second, instead of layered coding one can use other ways of tweaking
>the implementation performance. For example, if you
>calculate a 512 FFT do get two 256 FFTs for free. I bet there are
>thousand other shortcuts which I am not aware of.
>
>Thus, I have the opinion that layered coding is not worth the extra
>bandwidth of 20 or more percentage. It is just good locally but

---

From: stephen botzko <[email-masked]>
Date: Thu, 6 May 2010 09:41:19 -0400

A couple of observations on this

(a) I agree with Christian that layered codecs usually need higher bitrates
to achieve the same quality. Of course we do want good quality over our
desired bitrate range, and it is likely to be more difficult to achieve that
with a layered codec.

(b) I agree with Dimity that layered codecs reduce the complexity of VOIP
gateways and perhaps conference bridges.  Also, with layered codec designs
you get wire-speed management of channel bandwidth, so there can be a delay
benefit as well as a complexity reduction.

(c) Arguing about the relative priority of multipoint conferences vs point
to point calls is pointless, because they are clearly both MUSTS.

I am not sure if Christian is arguing that layered codecs SHALL NOT be
considered, or if the requirements allow but are not biased towards layered
proposals.  If might be useful to clarify this point.

Stephen Botzko

On Thu, May 6, 2010 at 9:13 AM, Christian Hoene <[email-masked]>wrote:

> I understand. Because you as an application programmer want to have an easy
> life, the codec designer shall develop a more
> I mean that the layered coding is only used within one computer. It is not
> important in-between computers. And, it is only a

---

From: "Christian Hoene" <[email-masked]>
Date: Thu, 6 May 2010 15:57:30 +0200

Hi,

I respect the requirements of gateway manufactures and I think it is important to consider them.

Let me explain my arguments a bit more by discussion point b.

*  (b) I agree with Dimity that layered codecs reduce the complexity of VOIP gateways and perhaps conference bridges.  

I see that there is an important need to reduce the computational complexity at gateways and conference bridges. Layered coding is
an easy solution that helps to reduce complexity. However, I think that there are many other ways to achieve similar complexity
reduction WITHOUT requiring layered coding. One example is a special encoder that encodes multiple streams at the same time. 

*  Also, with layered codec designs you get wire-speed management of channel bandwidth, so there can be a delay benefit as well as a
complexity reduction.

Also, a fast management of channel bandwidth can be achieved by controlling the encoder (via a feedback channel not locally)

Thus, I would vote for a NEED NOT or even MUST NOT because the costs of layered encoding are imposed to all users of the codec but
the benefit is only to the gateways.

With best regards,

 Christian

---------------------------------------------------------------

Dr.-Ing. Christian Hoene

Interactive Communication Systems (ICS), University of Tübingen 

Sand 13, 72076 Tübingen, Germany, Phone +49 7071 2970532 
 <http://www.net.uni-tuebingen.de/> http://www.net.uni-tuebingen.de/

From: stephen botzko [mailto:[email-masked]] 
Sent: Thursday, May 06, 2010 3:41 PM
To: Christian Hoene
Cc: Dmitry Yudin; [email-masked]
Subject: Re: [codec] #28: Layered bit-stream

(a) I agree with Christian that layered codecs usually need higher bitrates to achieve the same quality. Of course we do want good
quality over our desired bitrate range, and it is likely to be more difficult to achieve that with a layered codec.

(b) I agree with Dimity that layered codecs reduce the complexity of VOIP gateways and perhaps conference bridges.  Also, with
layered codec designs you get wire-speed management of channel bandwidth, so there can be a delay benefit as well as a complexity
reduction.

(c) Arguing about the relative priority of multipoint conferences vs point to point calls is pointless, because they are clearly
both MUSTS.

I am not sure if Christian is arguing that layered codecs SHALL NOT be considered, or if the requirements allow but are not biased
towards layered proposals.  If might be useful to clarify this point.

Stephen Botzko

On Thu, May 6, 2010 at 9:13 AM, Christian Hoene <[email-masked]> wrote:

Hi Dimitry,

Sincerely,

 Christian

---

From: "Dmitry Yudin" <[email-masked]>
Date: Thu, 6 May 2010 13:45:15 +0400

Hi Christian,

server manipulate channel bandwidth individually for each user with zero
performance overhead. Obviously, conferencing is the most important
use-case. 

FFTs for free. 

Best regards,
Dmitry

-----Original Message-----
From: Christian Hoene [mailto:[email-masked]] 
Sent: Wednesday, May 05, 2010 11:02 PM
To: Vladimir Sviridenko; [email-masked]
Cc: Slava Borilin; Dmitry Yudin; [email-masked]
Subject: RE: [codec] #28: Layered bit-stream

Hi Vladimir,

a) First, this use case is a local optimization only. Thus, the must not
be standardized.

Yours,

 Christian

---

From: "Dmitry Yudin" <[email-masked]>
Date: Thu, 6 May 2010 18:50:58 +0400

Hi,

> I understand. Because you as an application programmer want to have an
easy life, 
> the codec designer shall develop a more complicated codec? In
addition, everybody 
> should suffer from a higher bit rate? No, that is not fair.
Sorry Christian, but I'm not share your idea to personalize this
discussion.
Definitely, there are number of applications that can (more or less
efficiently) utilize 
layered stream structure. At the same time, scalability makes codec more
complex and
cause bitrate penalty due to a simple fact that
entropy(a+b)<=entropy(a)+entropy(b). 
The only question is: what penalty is acceptable and what is not? Based
on IP-MR codec 
experience I consider the price for scalability as not too high.

> No, end-to-end connections are more frequent than conference calls.
Actually, the statement was "Obviously, conferencing is the most 
important use-case for layered coder".

> I mean that the layered coding is only used within one computer. 
> It is not important in-between computers. And, it is only a
This is correct. No other benefits except performance saving.

Regards,
Dmitry

-----Original Message-----
From: Christian Hoene [mailto:[email-masked]] 
Sent: Thursday, May 06, 2010 5:13 PM
To: Dmitry Yudin
Cc: [email-masked]
Subject: RE: [codec] #28: Layered bit-stream

Hi Dimitry,

>server manipulate channel bandwidth individually for each user with
zero

I understand. Because you as an application programmer want to have an
easy life, the codec designer shall develop a more
complicated codec? In addition, everybody should suffer from a higher
bit rate? No, that is not fair.

>What do you mean exactly? "local optimization" of what?

I mean that the layered coding is only used within one computer. It is
not important in-between computers. And, it is only a
performance optimization that make the conference gateway faster.

Sincerely,

 Christian

>>------------------------------------+---------------------------------
-
>-
>>------------------------------------+---------------------------------
-
>-

---

From: "Dmitry Yudin" <[email-masked]>
Date: Thu, 6 May 2010 20:07:55 +0400

Hi,

> However, I think that there are many other ways to achieve similar complexity reduction WITHOUT 

> requiring layered coding. One example is a special encoder that encodes multiple streams at the same time.

Do you mean each user should delivery several independent stream at time?

> Thus, I would vote for a NEED NOT or even MUST NOT because the costs of layered encoding are 

> imposed to all users of the codec but the benefit is only to the gateways.

Christian, I'm really very appreciate your point of view, but unfortunately I find it a little bit not enough 

constructive to discuss. Of course you right "costs of layered encoding ..." - this is all true. But the thing is that 

this is not a point we should stand on. Let's stay on a point of problems and solutions. 

The problem is: gateway have to recompress data to fit user bandwidth and it would be very desired to 

decrease recompression cost:

                    Does this problem live only in my mind? - any considerations are welcome.

Possible solution :

                    The layered stream structure allows zero cost recompression (but increases bitrate/quality ratio).

All other solutions are also welcome.

Best regards,

Dmitry

From: Christian Hoene [mailto:[email-masked]] 
Sent: Thursday, May 06, 2010 5:58 PM
To: 'stephen botzko'
Cc: Dmitry Yudin; [email-masked]
Subject: RE: [codec] #28: Layered bit-stream

Hi,

Ø  (b) I agree with Dimity that layered codecs reduce the complexity of VOIP gateways and perhaps conference bridges.  

I see that there is an important need to reduce the computational complexity at gateways and conference bridges. Layered coding is an easy solution that helps to reduce complexity. However, I think that there are many other ways to achieve similar complexity reduction WITHOUT requiring layered coding. One example is a special encoder that encodes multiple streams at the same time. 

Ø  Also, with layered codec designs you get wire-speed management of channel bandwidth, so there can be a delay benefit as well as a complexity reduction.

Thus, I would vote for a NEED NOT or even MUST NOT because the costs of layered encoding are imposed to all users of the codec but the benefit is only to the gateways.

With best regards,

 Christian

Dr.-Ing. Christian Hoene

Sand 13, 72076 Tübingen, Germany, Phone +49 7071 2970532 
http://www.net.uni-tuebingen.de/ <http://www.net.uni-tuebingen.de/> 

(a) I agree with Christian that layered codecs usually need higher bitrates to achieve the same quality. Of course we do want good quality over our desired bitrate range, and it is likely to be more difficult to achieve that with a layered codec.

(b) I agree with Dimity that layered codecs reduce the complexity of VOIP gateways and perhaps conference bridges.  Also, with layered codec designs you get wire-speed management of channel bandwidth, so there can be a delay benefit as well as a complexity reduction.

(c) Arguing about the relative priority of multipoint conferences vs point to point calls is pointless, because they are clearly both MUSTS.

I am not sure if Christian is arguing that layered codecs SHALL NOT be considered, or if the requirements allow but are not biased towards layered proposals.  If might be useful to clarify this point.

Stephen Botzko

Hi Dimitry,

Sincerely,

 Christian