PL1787290T3

Method and apparatus for an adaptive de-jitter buffer

Abstract

This record has no abstract on file.

PL1787290T3, drawing sheet 1
Sheet 1 of 55

Term

Term ended

Projected expiry passed 30 August 2025, 1.1 years ago.

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

35 claims: 6 independent, 29 dependent

  1. 1
    Zastrzeżenia patentowe 1. Urządzenie zawierające:jednostkę pamięci (256) skonfigurowaną do przechowywania pakietów danych;oraz pierwszy kontroler (254) skonfigurowany do porównywania określonej liczby pakietów przechowywanych w jednostce pamięci z pierwszym progiem kompresji czasu oraz pierwszym progiem rozciągania czasu dla jednostki pamięci, przy czym pierwszy kontroler jest ponadto przystosowany do generowania sygnału sterowania 53/59P27611PL00 dopasowaniem czasu wskazującego kompresję, jeśli liczba przechowywanych pakietów przekracza pierwszy próg kompresji czasu oraz do generowania sygnału sterowania dopasowaniem czasu wskazującego rozciąganie, jeśli liczba przechowywanych pakietów przekracza pierwszy próg rozciągania czasu, przy czym pierwszy kontroler jest skonfigurowany do identyfikowania początku i końca strumienia mowy, przy czym pierwszy kontroler jest skonfigurowany do identyfikowania końcowej części strumienia mowy (510) i dokonania kompresji co najmniej jednego pakietu w końcowej części strumienia mowy.
  2. 2
    Urządzenie według zastrzeżenia 1, w którym pierwszy kontroler jest ponadto przystosowany do porównywania liczby przechowywanych pakietów ze zbiorem wartości progowych kompresji czasu oraz ze zbiorem wartości progowych rozciągania czasu, przy czym każdy z tych zbiorów, zbioru wartości progowych kompresji czasu i zbioru wartości progowych rozciągania czasu, odpowiada unikalnym wartościom procentowym docelowej długości opóźnienia dla jednostki pamięci.
  3. 3
    Urządzenie według zastrzeżenia 1, w którym pierwszy kontroler jest ponadto skonfigurowany do generowania sygnału sterującego dopasowaniem czasu dla rozciągania, jeśli następny sekwencyjny pakiet jest odbierany po upływie przewidywanego czasu odtwarzania dla następnego sekwencyjnego pakietu.
  4. 4
    Urządzenie według zastrzeżenia 3, w którym pierwszy kontroler jest ponadto skonfigurowany do uśredniania stanu jednostki pamięci w oknie czasowym przed dokonaniem porównania liczby przechowywanych pakietów z progami dopasowania czasu.
  5. 5
    Urządzenie według zastrzeżenia 4, w którym pierwszy kontroler jest ponadto skonfigurowany do filtrowania liczby 53/59P27611PL00 pakietów przechowywanych w jednostce pamięci, w oknie czasowym.
  6. 6
    Urządzenie według zastrzeżenia 5, w którym pierwszy kontroler jest ponadto skonfigurowany do określania docelowej długości opóźnienia, a także określania okna czasowego jako funkcji docelowej długości opóźnienia.
  7. 7
    Urządzenie według zastrzeżenia 6, w którym pierwszy kontroler jest ponadto skonfigurowany do wyznaczenia docelowej długości opóźnienia jako docelowej liczby pakietów, które mają być przechowywane w jednostce pamięci.
  8. 8
    Urządzenie według zastrzeżenia 4, w którym pierwszy kontroler jest ponadto skonfigurowany do porównywania uśrednionej liczby pakietów przechowywanych w jednostce pamięci z progami dopasowania czasu.
  9. 9
    Urządzenie według zastrzeżenia 1, w którym pierwszy kontroler jest ponadto skonfigurowany do generowania sygnału sterującego dopasowaniem czasu, który jest wielostanowym sygnałem sterującym.
  10. 10
    Urządzenie według zastrzeżenia 9, w którym pierwszy kontroler jest ponadto skonfigurowany do wyznaczania docelowej długości opóźnienia dla jednostki pamięci, przy czym jednostką pamięci jest adaptacyjny bufor eliminujący jitter, zaś docelową długością opóźnienia jest docelowa długość bufora eliminującego jitter.
  11. 11
    Urządzenie według zastrzeżenia 1, w którym pierwszy kontroler jest ponadto przystosowany do inicjowania kompresji co najmniej jednego pakietu, gdy liczba przechowywanych pakietów przekracza docelową długość opóźnienia. 53/59P27611PL00
  12. 12
    Urządzenie według zastrzeżenia 11, w którym pierwszy kontroler jest ponadto skonfigurowany do utrzymania danej zawartości procentowej niedomiarów w wyniku opóźnionych pakietów.
  13. 13
    Urządzenie według zastrzeżenia 12, w którym pierwszy kontroler jest ponadto skonfigurowany do obliczania docelowej długości opóźnienia jako:If (PER d ei ay TARGET_VALUE) then DEJITTER_DELAY = DEJITTER_DELAY - CONSTANT;If (PERdeiay TARGET VALUE PERdeiay = last PERdeiay) then DEJITTER_DELAY = DEJITTER_DELAY + CONSTANT;Set DEJITTER_DELAY = ΜΑΧ(MIN_JITTER,DEJITTER_DELAY);oraz DEJITTER_DELAY = MIN(MAX_JITTER,DEJITTER_DELAY), gdzie PER de iay jest współczynnikiem niedomiarów wynikających z opóźnionych pakietów, TARGET_VALUE jest docelowym współczynnikiem opóźnionych pakietów, DEJITTER_DELAY jest docelową długością opóźnienia adaptacyjnego bufora eliminującego jitter, CONSTANT jest z góry określoną wartością, zaś MAX_JITTER i MIN_JITTER są z góry określonymi wartościami oznaczającymi odpowiednio maksymalną i minimalną docelową długość opóźnień.
  14. 14
    Urządzenie według zastrzeżenia 13, w którym pierwszy kontroler jest skonfigurowany do obliczenia wartości PER de iay j ako:PER delay = PER_CONSTANT x PER delay + (1 - PER_CONSTANT) * Current_PER delay gdzie PER_CONSTANT jest stałą czasową filtra stosowanego do oszacowania wartości PER de iay· 53/59P27611PL00
  15. 15
    Urządzenie według zastrzeżenia 14, w którym pierwszy kontroler zawiera:jednostkę obliczania błędu pakietu, skonfigurowaną do obliczania wartości Current_PER de i ay jako współczynnika opóźnionych pakietów, przy czym opóźnione pakiety są odbierane po upływie przewidywanego czasu odtwarzania, a także Current_PER de iay.
  16. 16
    Urządzenie według zastrzeżenia 15, w którym jednostka obliczania błędu pakietu jest skonfigurowana do obliczania wartości Current_PER de i ay jako stosunku opóźnionych pakietów do całkowitej liczby odebranych pakietów, wliczając w to opóźnione pakiety, mierzone od ostatniej aktualizacji PER de i ay do bieżącej aktualizacji i która jest obliczana jako:Current PER delcv Liczba niedomiarów opóźnienia od ostatniej aktualizacji Liczba pakietów odebranych od ostatniej aktualizacji
  17. 17
    Urządzenie według zastrzeżenia 16, w którym pierwszy kontroler jest skonfigurowany do identyfikowania pierwszej części odebranych pakietów, przy czym pierwsza część odpowiada strumieniowi mowy, zaś strumień mowy zawiera wiele sekwencyjnycń pakietów.
  18. 18
    Urządzenie według zastrzeżenia 17, w którym pierwszy kontroler jest skonfigurowany do identyfikowania pierwszej części poprzez kodowanie pierwszej części.
  19. 19
    Urządzenie według zastrzeżenia 18, w którym pierwszy kontroler jest skonfigurowany do określenia przewidywanego czasu odtwarzania dla pierwszego pakietu strumienia mowy, a także do zainicjowania odtwarzania pierwszego pakietu strumienia mowy przed przewidywanym czasem odtwarzania. 53/59P27611PL00
  20. 20
    Urządzenie według zastrzeżenia 19, przy czym pierwszy kontroler jest ponadto skonfigurowany do inicjowania rozciągania kolejnych pakietów po odtworzeniu pierwszego pakietu.
  21. 21
    Urządzenie według zastrzeżenia 11, w którym pierwszy kontroler jest skonfigurowany do identyfikowania końcowej części strumienia mowy przez szybkość kodowania odbieranych pakietów.
  22. 22
    Urządzenie według zastrzeżenia 21, w którym pierwszy kontroler jest skonfigurowany do identyfikowania końcowej części strumienia mowy za pośrednictwem wskaźnika ciszy.
  23. 23
    Urządzenie według zastrzeżenia 22, w którym pierwszy kontroler jest skonfigurowany do identyfikowania końcowej części strumienia mowy za pośrednictwem wskaźnika końca strumienia mowy.
  24. 24
    Sposób przetwarzania pakietowych danych obejmujący:gromadzenie pakietów danych w jednostce pamięci;określanie docelowej długości (100) opóźnienia dla jednostki pamięci;dokonanie oceny stanu jednostki pamięci pod względem docelowej długości opóźnienia, gdzie stan jednostki pamięci jest miarą danych przechowywanych w jednostce pamięci;inicjowanie dopasowania czasu co najmniej jednego pakietu z jednostki pamięci, jeśli stan pamięci przekracza docelową długość opóźnienia;identyfikowanie początku i końca strumienia mowy;identyfikowanie końcowej części strumienia mowy (510);a także dokonywanie kompresji co najmniej jednego pakietu w końcowej części strumienia mowy. 53/59P27611PL00
  25. 25
    Sposób według zastrzeżenia 24, znamienny tym, że ponadto obejmuj e:obliczanie docelowej długości opóźnienia w następujący sposób: If (PERdelay TARGET_VALUE) (102) then DEJITTER_DELAY = DEJITTER_DELAY - CONSTANT (104);If (PER d eiay TARGET_VALUE PER de iay = last_PER de iay) (103) then DEJITTER_DELAY = DEJITTER_DELAY + CONSTANT (108);Set DEJITTER_DELAY = ΜΑΧ(MIN_JITTER,DEJITTER_DELAY) (110);oraz DEJITTER_DELAY = MIN(MAX_JITTER,DEJITTER_DELAY) (112), gdzie PER de i ay jest współczynnikiem niedomiarów wynikających z opóźnionych pakietów, TARGET_VALUE jest docelowym współczynnikiem opóźnionych pakietów, DEJITTER_DELAY jest docelową długością opóźnienia adaptacyjnego bufora eliminującego jitter, CONSTANT jest z góry określoną wartością, zaś MAX_JITTER i MIN_JITTER są z góry określonymi wartościami oznaczającymi odpowiednio maksymalną i minimalną docelową długość opóźnienia.
  26. 26
    Sposób według zastrzeżenia 25, obejmujący ponadto:generowanie sygnału sterującego dopasowaniem czasu;odbieranie wielu sekwencyjnych pakietów;a także dodawanie z nakładaniem segmentów w odpowiedzi na sygnał sterujący dopasowaniem czasu.
  27. 27
    Sposób według zastrzeżenia 26, w którym dodawanie z nakładaniem obejmuje łączenie co najmniej dwóch spośród wielu segmentów zgodnie z następującym wyrażeniem:a) OutSegmeHt[i] = b) OutSegntenl[i\ = (Segmenll(j) * (WindowSize - i) + (Segment2(i) * i) WmdowSize (Segmeni2(f) * (WindowSize - i) + (SegmenlAfi) * i) WindowSize 53/59Ρ27611PL00 i = 0. WindowSize — 1 WindowSize = R WindowSize gdzie OutSegment jest segmentem powstałym z procesu dodawania z nakładaniem, Segmentl i Segment2 są segmentami, które mają zostać dodane z nakładaniem, WindowSize odpowiada pierwszemu segmentowi, zaś RWindowSize odpowiada drugiemu segmentowi.
  28. 28
    Sposób według zastrzeżenia 27, w którym dodawanie z nakładanie obejmuje ponadto:identyfikowanie części o maksymalnej korelacji między pierwszym segmentem i drugim segmentem.
  29. 29
    Sposób według zastrzeżenia 28, w którym identyfikowanie części o maksymalnej korelacji między pierwszym segmentem a drugim segmentem obejmuje ponadto:identyfikowanie części o maksymalnej korelacji przez obliczenie maksymalnej korelacji jako: ^[(x(z) - mx) x (y(i -d)- my)] Corr(d) - - . = jZ- wa ') A2 my c 2 gdzie x oznacza pierwszy segment, y oznacza drugi segment mowy, m oznacza okno korelacji, i jest wartością indeksu, zaś d oznacza część korelacji.
  30. 30
    Sposób według zastrzeżenia 24, obejmujący ponadto:dopasowywanie czasu wielu sekwencyjnych pakietów;zatrzymywanie dopasowania czasu dla co najmniej jednego sekwencyjnego pakietu, przy czym co najmniej jeden sekwencyjny pakiet jest kolejnym pakietem za wspomnianymi wieloma sekwencyjnymi pakietami;a także uaktywnianie dopasowania czasu po wspomnianym co najmniej jednym sekwencyjnym pakiecie. 53/59P27611PL00
  31. 31
    Sposób według zastrzeżenia 24, obejmujący ponadto:obliczanie stopnia dopasowania czasu, gdzie stopień dopasowania czasu jest liczbą pakietów poddanych dopasowaniu czasu w oknie czasowym;a także inicjowanie dopasowania czasu dla pakietów w funkcji stopnia dopasowania czasu.
  32. 32
    Odczytywalny przez komputer nośnik pamięci zawierający zestaw instrukcji, przy czym zestaw instrukcji zawiera:procedurę wejściową służącą do zapisywania pakietów danych w jednostce pamięci;procedurę obliczania docelowej długości opóźnienia służącą do wyznaczania docelowej długości opóźnienia dla jednostki pamięci;pierwszą procedurę służącą do oceniania stanu jednostki pamięci pod względem docelowej długości opóźnienia, przy czym stan jednostki pamięci stanowi miarę danych przechowywanych w jednostce pamięci;drugą procedurę inicjującą dopasowanie czasu co najmniej jednego pakietu z jednostki pamięci, jeśli stan jednostki pamięci przekracza docelową długość opóźnienia;identyfikowanie początku i końca strumienia mowy;identyfikowanie końcowej części strumienia mowy (510);a także dokonanie kompresji co najmniej jednego pakietu w końcowej części strumienia mowy. Qualcomm Incorporated Pełnomocnik: 53/59P27611PL00 1/35 ω π ω 53/59P27611PL00 2/35 53/59P27611PL00 3/35 Następny ---------do odtworzenia Pakiet wokodera 53/59P27611PL00 4/35 SYGNAŁY FIG. 3 53/59P27611PL00 5/35 53/59P27611PL00 6/35 SYGNAŁY FIG. 5 53/59P27611PL00 7/35 100 ( START 53/59P27611PL00 8/35 ZMIANA OPÓŹNIENIA OPÓŹNIENIE' 1 OCZEKUJE OCZEKUJE OCZEKUJE OCZEKUJE OCZEKUJE (D init ) PKT I PKT 2 PKT 3 PKT 4 PKT 4 LUB PKT 5 FIG. 7C 53/59P27611PL00 9/35 53/59P27611PL00 10/35 FIG. 8B 53/59P27611PL00 11/35 SYGNAŁY FIG. 9 53/59P27611PL00 12/35 ω Μ ω (40ms + t 2 ) 53/59P27611PL00 13/35 250 53/59P27611PL00 14/35 53/59P27611PL00 100 53/59P27611PL00 16/35 SYGNAŁY LU z. $ CŁ FIG. 15 O 101 53/59P27611PL00 AMPLITUDA SYGNAŁU (WOLTY) 102 53/59P27611PL00 18/35 SEGMENT MOWY SKOMPRESOWANY SEGMENT MOWY 103 53/59P27611PL00 19/35 FIG. 18A 53/59P27611PL00 104 20/35 105 53/59P27611PL00 21/35 106 53/59P27611PL00 PAKIETY ODEBRANE POZA KOLEJNOŚCIĄ FIG. 19 107 53/59P27611PL00 23/35 UŻYTK0WNIK1 UŻYTK0WNIK2 108 53/59P27611PL00 24/35 START KONIEC 109 53/59P27611PL00 25/35 START 110 53/59P27611PL00 26/35 111 53/59P27611PL00 27/35 112 53/59P27611PL00 28/35 ZMIENNE OPÓŹNIENIE - RÓWNOMIERNE I UJ Z UJ z 'NI Ό Cl O UJ Z z UJ Ξ N LU N O QC CO O Q LU ki z O -CO O Z V, ε c FIG. 26 113 53/59P27611PL00 29/35 700 FIG. 27 114 53/59P27611PL00 STEROWANIE rDOPASOWANIEM CZASUn 115 53/59P27611PL00 31/35 116 53/59P27611PL00 32/35 © O fc START N DC LU □a o CL KONIEC 117 53/59P27611PL00
  33. 33
    33/35 118 53/59P27611PL00
  34. 34
    34/35 FIG. 32 119 53/59P27611PL00
  35. 35
    35/35 LU
Independent claims35