PL3011692T3

Jitter buffer control, audio decoder, method and computer program

Abstract

This record has no abstract on file.

Term

7.7 yearsto projected expiry

Projected expiry 18 June 2034, counted from filing; an application has no term until it is granted.

  1. Priority
  2. Filed
  3. Published
  4. Today
  5. Projected expiry

27 claims: 4 independent, 23 dependent

  1. 1
    Zastrzeżenia patentowe 1. Sterowanie (100;350;490) buforem rozsynchronizowania w celu sterowania dostarczaniem zdekodowanej treści (312;412) audio na podstawie wejściowej treści audio, w którym sterowanie buforem rozsynchronizowania skonfigurowane jest tak, by wybierać skalowanie czasowe oparte o ramki lub skalowanie czasowe oparte o próbki w sposób dostosowywany do sygnału, tak że decyzja o tym, czy stosowane jest skalowanie czasowe oparte o ramki, czy skalowanie czasowe oparte o próbki, dostosowana jest do właściwości sygnału audio.
  2. 2
    Sterowanie (100;350;490) buforem rozsynchronizowania według zastrz. 1, w którym ramki audio są pomijane lub wstawiane w celu sterowania głębokością bufora (320;430) rozsynchronizowania, gdy stosowane jest skalowanie czasowe oparte o ramki, i w którym wykonywane jest nakładanie i sumowanie (954;1068) części sygnału audio z przesunięciem czasowym, gdy stosowane jest skalowanie czasowe oparte o próbki.
  3. 3
    Sterowanie (100;350;490) buforem rozsynchronizowania według zastrz. 1 albo 2, w którym sterowanie buforem rozsynchronizowania skonfigurowane jest tak, by przełączać pomiędzy skalowaniem czasowym opartym o ramki, skalowaniem czasowym opartym o próbki i wyłączaniem skalowania czasowego w sposób dostosowywany do sygnału.
  4. 4
    Sterowanie (100;350;490) buforem rozsynchronizowania według jednego z zastrz. 1 do 3, w którym sterowanie buforem rozsynchronizowania skonfigurowane jest tak, by wybierać skalowanie czasowe oparte o ramki lub skalowanie czasowe oparte o próbki w celu sterowania głębokością bufora (320;430) rozsynchronizowania.
  5. 5
    Sterowanie (100;350;490) buforem rozsynchronizowania według jednego z zastrz. 1 do 4, w którym sterowanie buforem rozsynchronizowania skonfigurowane jest tak, by wybierać wstawianie komfortowego szumu lub usuwanie (856) komfortowego szumu, jeżeli poprzednia ramka była nieaktywna.
  6. 6
    Sterowanie (100;350;490) buforem rozsynchronizowania według zastrz. 5, w którym wstawianie komfortowego szumu skutkuje wstawieniem ramki komfortowego szumu do bufora (320;430) rozsynchronizowania, zaś usuwanie komfortowego szumu skutkuje usunięciem ramki komfortowego szumu z bufora (320;430) rozsynchronizowania.
  7. 7
    Sterowanie (100;350;490) buforem rozsynchronizowania według zastrz. 5 albo 6, w którym dana ramka jest traktowana jako nieaktywna, jeżeli ramka ta zawiera informacje sygnalizujące, które wskazują generowanie komfortowego szumu.
  8. 8
    Sterowanie (100;350;490) buforem rozsynchronizowania według jednego z zastrzeżeń 1 do 7, w którym sterowanie buforem rozsynchronizowania skonfigurowane jest tak, by wybierać nakładanie i sumowanie (954;1068) części sygnału audio z przesunięciem czasowym, jeżeli poprzednia ramka była aktywna.
  9. 9
    Sterowanie (100;350;490) buforem rozsynchronizowania według zastrz. 5, w którym nakładanie i sumowanie (954;1068) części sygnału audio z przesunięciem czasowym dostosowane jest do zapewniania możliwości regulowania przesunięcia czasowego między blokami próbek audio uzyskanych na podstawie kolejnych ramek wejściowej treści audio z rozdzielczością mniejszą niż długość bloków próbek audio, albo mniejszą niż jedna czwarta długości bloków próbek audio, albo mniejszą lub równą dwóm próbkom audio.
  10. 10
    Sterowanie (100;350;490) buforem rozsynchronizowania według zastrz. 8 albo 9, w którym sterowanie buforem rozsynchronizowania skonfigurowane jest tak, by określić (930, 936;1010, 1014), czy blok próbek audio reprezentuje aktywną, lecz niemą część sygnału audio, i w którym sterowanie buforem rozsynchronizowania skonfigurowane jest tak, by wybierać tryb nakładania i sumowania (962;1018), w którym przesunięcie czasowe pomiędzy blokiem próbek audio reprezentującym niemą część sygnału audio, a poprzednim lub następnym blokiem próbek audio ma z góry określoną wartość maksymalną dla bloku próbek audio reprezentującego niemą część sygnału audio.
  11. 11
    Sterowanie (100;350;490) buforem rozsynchronizowania według jednego z zastrz. 8 do 10, w którym sterowanie buforem rozsynchronizowania skonfigurowane jest tak, by określić (930, 936;1010, 1014), czy blok próbek audio reprezentuje aktywną i nie-niemą część sygnału audio, oraz by wybierać tryb nakładania i sumowania (942, 950, 954;1030, 1060, 1064, 1068), w którym przesunięcie czasowe między blokami próbek audio określone na podstawie poprzednich ramek wejściowej treści audio określane jest w sposób dostosowany do sygnału.
  12. 12
    Sterowanie (100;350;490) buforem rozsynchronizowania według jednego z zastrz. 1 do 11, w którym sterowanie buforem rozsynchronizowania skonfigurowane jest tak, by wybierać wstawianie maskowanej ramki w odpowiedzi na stwierdzenie, że wymagane jest rozciąganie czasowe i że bufor rozsynchronizowania jest pusty.
  13. 13
    Sterowanie (100;350;490) buforem rozsynchronizowania według jednego z zastrz. 1 do 12, w którym sterowanie buforem rozsynchronizowania skonfigurowane jest tak, by wybierać skalowanie czasowe oparte o ramki lub skalowanie czasowe oparte o próbki w zależności od tego, czy dla poprzedniej ramki stosowana jest lub była nieciągła transmisja w połączeniu z generowaniem komfortowego szumu.
  14. 14
    Sterowanie (100;350;490) buforem rozsynchronizowania według jednego z zastrz. 1 do 13, w którym sterowanie buforem rozsynchronizowania skonfigurowane jest tak, by wybierać skalowanie czasowe w oparciu o ramki, jeżeli obecnie stosowane jest generowanie komfortowego szumu lub było ono stosowane w odniesieniu do poprzedniej ramki, oraz by wybierać skalowanie czasowe oparte o próbki, jeżeli generowanie komfortowego szumu nie jest obecnie stosowane lub nie było stosowane w odniesieniu do poprzedniej ramki.
  15. 15
    Sterowanie (100;350;490) buforem rozsynchronizowania według jednego z zastrz. 1 do 14, w którym sterowanie buforem rozsynchronizowania skonfigurowane jest tak, by wybierać wstawianie komfortowego szumu w oparciu o ramki lub usuwanie (856) komfortowego szumu w oparciu o ramki w skalowaniu czasowym, jeżeli obecnie stosowana jest nieciągła transmisja w połączeniu z generowaniem komfortowego szumu lub była ona stosowana w odniesieniu do poprzedniej ramki;w którym sterowanie buforem rozsynchronizowania skonfigurowane jest tak, by wybierać operację nakładania i sumowania z wykorzystaniem z góry określonego przesunięcia czasowego (962, 1018) w skalowaniu czasowym, jeżeli bieżąca część sygnału audio jest aktywna, lecz zawiera energię sygnału mniejszą lub równą wartości granicznej energii, i jeżeli bufor rozsynchronizowania nie jest pusty, lub jeżeli poprzednia część sygnału audio była aktywna, lecz zawierała energię sygnału mniejszą lub równą wartości granicznej energii, i jeżeli bufor rozsynchronizowania nie jest pusty;w którym sterowanie buforem rozsynchronizowania skonfigurowane jest tak, by wybierać operację nakładania i sumowania z wykorzystaniem dostosowywanego do sygnału przesunięcia czasowego (954;1068) w skalowaniu czasowym, jeżeli bieżąca część sygnału audio jest aktywna i zawiera energię sygnału większą lub równą wartości granicznej energii i jeżeli bufor rozsynchronizowania nie jest pusty, lub jeżeli poprzednia część sygnału audio była aktywna i zawierała energię sygnału większą lub równą wartości granicznej energii i jeżeli bufor rozsynchronizowania nie jest pusty;i w którym sterowanie buforem rozsynchronizowania skonfigurowane jest tak, by wybierać wstawianie maskowanej ramki w skalowaniu czasowym, jeżeli bieżąca część sygnału audio jest aktywna i jeżeli bufor rozsynchronizowania jest pusty, lub jeżeli poprzednia część sygnału audio była aktywna i jeżeli bufor rozsynchronizowania jest pusty.
  16. 16
    Sterowanie (100;350;490) buforem rozsynchronizowania według jednego z zastrz. 1 do 15, w którym sterowanie buforem rozsynchronizowania skonfigurowane jest tak, by wybierać operację nakładania i sumowania (942, 950, 954;1030, 1060, 1064, 1068) z wykorzystaniem dostosowywanego do sygnału przesunięcia czasowego oraz mechanizmu (950;1060, 1064, 1072, 1084) kontroli jakości w skalowaniu czasowym jeżeli bieżąca część sygnału audio jest aktywna i zawiera energię sygnału większą lub równą wartości granicznej energii i jeżeli bufor rozsynchronizowania nie jest pusty, lub jeżeli poprzednia część sygnału audio była aktywna i zawierała energię sygnału większą lub równą wartości granicznej energii i jeżeli bufor rozsynchronizowania nie jest pusty.
  17. 17
    Dekoder (300; 400) sygnału audio przeznaczony do dostarczania zdekodowanej treści (312; 412) audio na podstawie wejściowej treści audio, gdzie dekoder sygnału audio zawiera:bufor (320;430) rozsynchronizowania skonfigurowany tak, by buforować wiele ramek audio reprezentujących bloki próbek audio;rdzeń (330;440) dekodera skonfigurowany tak, by dostarczać bloki (332;442) próbek audio uzyskane na podstawie ramek (322;432) audio odebranych z bufora rozsynchronizowania;Licznik czasu (340;450) oparty o próbki, przy czym licznik czasu oparty o próbki skonfigurowany jest tak, by dostarczać skalowane czasowo bloki próbek (342;448) audio uzyskane na podstawie bloków próbek audio dostarczanych przez rdzeń dekodera;i sterowanie (100;350;490) buforem rozsynchronizowania według jednego z zastrzeżeń 1 do 16.
  18. 18
    Dekoder (300;400) sygnału audio według zastrz. 17, w którym bufor (320;430) rozsynchronizowania skonfigurowany jest tak, by pomijać lub wstawiać ramki audio w celu przeprowadzania skalowania czasowego w oparciu o ramki.
  19. 19
    Dekoder sygnału audio według zastrz. 17 albo 18, w którym rdzeń (330;440) dekodera skonfigurowany jest tak, by wykonać generowanie komfortowego szumu w odpowiedzi na ramkę zawierającą informacje sygnalizujące, które wskazują na generowanie komfortowego szumu, i w którym rdzeń dekodera skonfigurowany jest tak, by wykonać maskowanie w odpowiedzi na pusty bufor rozsynchronizowania.
  20. 20
    Dekoder (300;400) sygnału audio według jednego z zastrzeżeń 17 do 19, w którym licznik czasu (340;450) oparty o próbki skonfigurowany jest tak, by wykonać skalowanie czasowe wejściowego sygnału audio w zależności od wyniku obliczania lub estymacji (950;1060) jakości skalowanej czasowo wersji wejściowego sygnału audio, która może zostać uzyskana przez skalowanie czasowe.
  21. 21
    Sposób (1400) sterowania dostarczaniem zdekodowanej treści na podstawie wejściowej treści audio, w którym sposób obejmuje wybieranie (1410) skalowania czasowego opartego o ramki lub skalowania czasowego opartego o próbki w sposób dostosowywany do sygnału, tak że decyzja o tym, czy stosowane jest skalowanie czasowe oparte o ramki, czy skalowanie czasowe oparte o próbki, dostosowywana jest do właściwości sygnału audio.
  22. 22
    Program komputerowy przeznaczony do wykonywania sposobu według zastrz. 21, gdy program komputerowy jest wykonywany z wykorzystaniem komputera.
  23. 23
    Sterowanie (100;350;490) buforem rozsynchronizowania według zastrz. 2, w którym sterowanie buforem rozsynchronizowania skonfigurowane jest tak, by wybierać wstawianie komfortowego szumu w oparciu o ramki lub usuwanie (856) komfortowego szumu w oparciu o ramki w skalowaniu czasowym, jeżeli obecnie stosowana jest nieciągła transmisja w połączeniu z generowaniem komfortowego szumu lub była ona wykorzystywana w odniesieniu do poprzedniej ramki;w którym sterowanie buforem rozsynchronizowania skonfigurowane jest tak, by wybierać operację nakładania i sumowania z wykorzystaniem z góry określonego przesunięcia czasowego (962, 1018) w skalowaniu czasowym, jeżeli bieżąca część sygnału audio jest aktywna, lecz zawiera energię sygnału mniejszą lub równą wartości granicznej energii, i jeżeli bufor rozsynchronizowania nie jest pusty, lub jeżeli poprzednia część sygnału audio była aktywna, lecz zawierała energię sygnału mniejszą lub równą wartości granicznej energii, i jeżeli bufor rozsynchronizowania nie jest pusty;w którym sterowanie buforem rozsynchronizowania skonfigurowane jest tak, by wybierać operację nakładania i sumowania z wykorzystaniem dostosowywanego do sygnału przesunięcia czasowego (954;1068) w skalowaniu czasowym, jeżeli bieżąca część sygnału audio jest aktywna i zawiera energię sygnału większą lub równą wartości granicznej energii i jeżeli bufor rozsynchronizowania nie jest pusty, lub jeżeli poprzednia część sygnału audio była aktywna i zawierała energię sygnału większą lub równą wartości granicznej energii i jeżeli bufor rozsynchronizowania nie jest pusty;i w którym sterowanie buforem rozsynchronizowania skonfigurowane jest tak, by wybierać wstawianie maskowanej ramki w skalowaniu czasowym, jeżeli bieżąca część sygnału audio jest aktywna i jeżeli bufor rozsynchronizowania jest pusty, lub jeżeli poprzednia część sygnału audio była aktywna, i jeżeli bufor rozsynchronizowania jest pusty.
  24. 24
    Sterowanie (100;350;490) buforem rozsynchronizowania według zastrz. 2, w którym sterowanie buforem rozsynchronizowania skonfigurowane jest tak, by wybierać operację nakładania i sumowania (942, 950, 954;1030, 1060, 1064, 1068) z wykorzystaniem dostosowywanego do sygnału przesunięcia czasowego oraz mechanizmu (950;1060, 1064, 1072, 1084) kontroli jakości w skalowaniu czasowym, jeżeli bieżąca część sygnału audio jest aktywna i zawiera energię sygnału większą lub równą wartości granicznej energii i jeżeli bufor rozsynchronizowania nie jest pusty, lub jeżeli poprzednia część sygnału audio była aktywna i zawierała energię sygnału większą lub równą wartości granicznej energii i jeżeli bufor rozsynchronizowania nie jest pusty.
  25. 25
    Sposób (1400) według zastrz. 21, w którym sposób obejmuje wybieranie (1410) skalowania czasowego opartego o ramki lub skalowania czasowego opartego o próbki w sposób dostosowywany do sygnału;w którym ramki audio są pomijane lub wstawiane w celu sterowania głębokością bufora (320;430) rozsynchronizowania, gdy stosowane jest skalowanie czasowe oparte o ramki, i w którym wykonywane jest nakładanie i sumowanie (954;1068) części sygnału audio z przesunięciem czasowym, gdy stosowane jest skalowanie czasowe oparte o próbki;w którym sposób obejmuje wybieranie wstawiania komfortowego szumu lub usuwania (856) komfortowego szumu w skalowaniu czasowym, jeżeli obecnie stosowana jest nieciągła transmisja w połączeniu z generowaniem komfortowego szumu lub była ona stosowana w odniesieniu do poprzedniej ramki, wybieranie operacji nakładania i sumowania z wykorzystaniem z góry określonego przesunięcia czasowego (962, 1018) w skalowaniu czasowym, jeżeli bieżąca część sygnału audio jest aktywna, lecz zawiera energię sygnału mniejszą lub równą wartości granicznej energii, i jeżeli bufor rozsynchronizowania nie jest pusty, lub jeżeli poprzednia część sygnału audio była aktywna, lecz zawierała energię sygnału mniejszą lub równą wartości granicznej energii, i jeżeli bufor rozsynchronizowania nie jest pusty;wybieranie operacji nakładania i sumowania z wykorzystaniem dostosowywanego do sygnału przesunięcia czasowego (954;1068) w skalowaniu czasowym, jeżeli bieżąca część sygnału audio jest aktywna i zawiera energię sygnału większą lub równą wartości granicznej energii i jeżeli bufor rozsynchronizowania nie jest pusty, lub jeżeli poprzednia część sygnału audio była aktywna i zawierała energię sygnału większą lub równą wartości granicznej energii i jeżeli bufor rozsynchronizowania nie jest pusty;i wybieranie wstawiania maskowanej ramki w skalowaniu czasowym, jeżeli bieżąca część sygnału audio jest aktywna i jeżeli bufor rozsynchronizowania jest pusty, lub jeżeli poprzednia część sygnału audio była aktywna i jeżeli bufor rozsynchronizowania jest pusty.
  26. 26
    Sposób (1400) według zastrz. 21, w którym sposób obejmuje wybieranie (1410) skalowania czasowego opartego o ramki lub skalowania czasowego opartego o próbki w sposób dostosowywany do sygnału;w którym ramki audio są pomijane lub wstawiane w celu sterowania głębokością bufora (320;430) rozsynchronizowania, gdy stosowane jest skalowanie czasowe oparte o ramki, i w którym wykonywane jest nakładanie i sumowanie (954;1068) części sygnału audio z przesunięciem czasowym, gdy stosowane jest skalowanie czasowe oparte o próbki;w którym sposób obejmuje wybieranie operacji nakładania i sumowania (942, 950, 954;1030, 1060, 1064, 1068) z wykorzystaniem dostosowywanego do sygnału przesunięcia czasowego oraz mechanizmu (950;1060, 1064, 1072, 1084) kontroli jakości w skalowaniu czasowym, jeżeli bieżąca część sygnału audio jest aktywna i zawiera energię sygnału większą lub równą wartości granicznej energii i jeżeli bufor rozsynchronizowania nie jest pusty, lub jeżeli poprzednia część sygnału audio była aktywna i zawierała energię sygnału większą lub równą wartości granicznej energii i jeżeli bufor rozsynchronizowania nie jest pusty.
  27. 27
    Program komputerowy przeznaczony do wykonywania sposobu według zastrz. 25 albo 26, gdy program komputerowy jest wykonywany z wykorzystaniem komputera. Fraunhofer-Gesellschaft zur Forderung der angewandten Forschung E.V., Niemcy Pełnomocnik:EP 3 011 692 B1 Z - 15937/17 1/14 O 'E? cś ε 1£ α L O O fZ) O 'E? cś 1£ α FIG1 EP 3 011 692 B1 Z - 15937/17 2/14 200 moduł skalowania czasowego wejściowy sygnał audio 210 X obliczanie lub estymowanie jakości skalowanej czasowo wersji wejściowego sygnału audio, która może zostać uzyskana przez skalowanie czasowe wejściowego sygnału audio skalowana czasowo wersja wejściowego sygnału audio 212 X przeprowadzanie skalowania czasowego wejściowego sygnału audio na podstawie wyniku obliczania lub estymowania jakości skalowanej czasowo wersji wejściowego sygnału audio, która może zostać uzyskana przez skalowanie czasowe FIG 2 EP 3 011 692 B1 Z - 15937/17 3/14 FIG 3 EP 3 011 692 B1 Z - 15937/17 4/14 o FIG 4 EP 3 011 692 B1 Z - 15937/17 5/14 soundCardFrameSize = sampleRate * 20/1000;while(pcmBuffer_nReadabłeSamples() soundCardFrameSize) { accessUnit = deJitterBuffer_pop();^—510 audioSamples = decoderdecodeOrConceal(accessUnit);—512 tsm_scale(audioSamples);-—514 pcmBuffer_write(aud ioSamples);^—516 l· audioSamples = pcmBuffer_read(soundCardFrameSize);—-520 soundcardpush(audioSamples);— 522 FIG 5 rtpTimeDiff = rtpTimeStamp - prevRtpTimeStamp;-—610 rcvTimeDiff = rcvTime - prevRcvTime;-—612 /* convert time base to miIIiseconds 7 rtpTimeTicks = rtpTimeStamp * sysTimeScale / rtpTimeScale;~614 rtpTimeDiff = rtpTimeDiff * sysTimeScale / rtpTimeScale;-—616 delay = rcvTimeDiff - rtpTimeDiff + prevDelay;—618 offset = rcvTime - rtpTimeTicks;—620 longTermFifo_add( delay, offset, rtpTimeTicks);^—622 /* backup values of current packet 7 prevRtpTimeStamp = rtpTimeStamp;Λ prevRcvTime = rcvTime;—624 prevDelay = delay;J FIG 6 targetMax = shortTermJitter + 60;-—710 targetMin = min( longTermJitter + 20, targetMax);—'712 targetDtx = min( longTermJitter, shortTermJitter);——714 targetStartllp = ( targetMin + targetMax) / 2;-—716 FIG 7 EP 3 011 692 B1 Z - 15937/17 6/14 Γ' ii o -=Τ LO OO OO EP 3 011 692 B1 Z - 15937/17 7/14 . ω o o cl cś cd cd CD O S en § £ o a ··» o s N O CL cś § a N .O ’5b o § brak skalowania § $ o N O \ Od o c/j O o 13 O Q_ CD -CVJ CD cn O Lł_ CD CT EP 3 011 692 B1 Z - 15937/17 1-szy blok 2-gi blok EP 3 011 692 B1 Z - 15937/17 EP 3 011 692 B1 Z - 15937/17 10/14 OQ CD CD EP 3 011 692 B1 Z - 15937/17 11/14 qMinlnitial = 1;qualityRise = 4;qualityRed = 4;p = similarityEstimation();q = c(p) * c(2*p) + c(3/2*p) * c(1/2*p);qMin = qMinlnitial - (nNotScaled * 0.1) + (nScaled * 0.2);if(q = qMin) {/* sufficient quality, apply time-scaling 7 applyOverlapAdd();if( nNotScaled 0) nNotScaled = nNotScaled -1;if( nScaled qualityRise ) nScaled = nScaled + 1;} else {/* not sufficient, postpone time-scaling 7 if( nNotScaled qualityRed ) nNotScaled = nNotScaled + 1;if( nScaled 0) nScaled = nScaled -1;} 1110 1112 1114 1116 '1118 Ί120 1122 Ί124 Ί126 FIG 11 EP 3 011 692 B1 Z - 15937/17 12/14 CM CM CM [sui] aiuaiuzodo EP 3 011 692 B1 Z - 15937/17 13/14 1300 [sui] 3MOSBZO 9TUBMOJB5JS W £ o CZ3 N U W O u w CZ3 FIG 13 EP 3 011 692 B1 Z - 15937/17 14/14 1400 Wybieranie w sposób dostosowywany do sygnału skalowania czasowego w oparciu o ramki lub skalowania czasowego w oparciu o próbki 1410 FIG 14 1510 1520 FIG 15
Independent claims27