IPB

Welcome Guest ( Log In | Register )

 
Reply to this topicStart new topic
Opus Encoder Latency Measurement, How can I measure the latency of the Opus encoder?
Burrows22
post Apr 21 2013, 14:08
Post #1





Group: Members
Posts: 2
Joined: 21-April 13
Member No.: 107774



Is there any way I can measure the latency of the Opus encoder for realtime data streaming for use over a network? Like how NetJack works using CELT?

I'm doing my university dissertation on the implications of latency induced by lossy audio compression over a network for live music performances. I've worked out a way to measure the latency of the decoder but need to find a way to measure the latency of the encoder to get the overall latency the codec creates using different compression settings.

Is there any way I'm able to do this?

Thanks!
Go to the top of the page
+Quote Post
NullC
post Apr 22 2013, 17:50
Post #2





Group: Developer
Posts: 200
Joined: 8-July 03
Member No.: 7653



QUOTE (Burrows22 @ Apr 21 2013, 06:08) *
Is there any way I can measure the latency of the Opus encoder for realtime data streaming for use over a network? Like how NetJack works using CELT?
I'm doing my university dissertation on the implications of latency induced by lossy audio compression over a network for live music performances. I've worked out a way to measure the latency of the decoder but need to find a way to measure the latency of the encoder to get the overall latency the codec creates using different compression settings.
Is there any way I'm able to do this?
Thanks!
The decoder's latency is a constant (for a given framesize).

The OPUS_GET_LOOKAHEAD CTL returns the encoder's current lookahead. Adding this to the frame duration gives you the complete delay of the encoder and decoder. If you want to minimize the delay added by the encoder run it with application OPUS_APPLICATION_RESTRICTED_LOWDELAY.
Go to the top of the page
+Quote Post
Burrows22
post Apr 23 2013, 15:57
Post #3





Group: Members
Posts: 2
Joined: 21-April 13
Member No.: 107774



QUOTE (NullC @ Apr 22 2013, 16:50) *
QUOTE (Burrows22 @ Apr 21 2013, 06:08) *
Is there any way I can measure the latency of the Opus encoder for realtime data streaming for use over a network? Like how NetJack works using CELT?
I'm doing my university dissertation on the implications of latency induced by lossy audio compression over a network for live music performances. I've worked out a way to measure the latency of the decoder but need to find a way to measure the latency of the encoder to get the overall latency the codec creates using different compression settings.
Is there any way I'm able to do this?
Thanks!
The decoder's latency is a constant (for a given framesize).

The OPUS_GET_LOOKAHEAD CTL returns the encoder's current lookahead. Adding this to the frame duration gives you the complete delay of the encoder and decoder. If you want to minimize the delay added by the encoder run it with application OPUS_APPLICATION_RESTRICTED_LOWDELAY.


Unfortunately I'm not much of a coding guru, how can I go about implementing this? Is there a language I should be using to call this method?

The way I figured out to measure the latency of the decoder involved running two VLC applications, one with a wav file and the other an opus file. I then use applescript to tell VLC to play both files simultaneously whilst recording the outputs into Logic via JackPilot. I checked my test first playing identical wav files in the VLC applications which resulted in zero latency between them, I then tested using a wav and an opus file which resulted in varied latency samples.

Are there any papers or articles you know of that test the latency of the codec that I may not have already read?

Thanks
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 24th November 2014 - 22:59