ITTO20090486A1 - Controllore dinamico della velocita' di trasmissione indipendente dal gruppo di immagini - Google Patents

Controllore dinamico della velocita' di trasmissione indipendente dal gruppo di immagini Download PDF

Info

Publication number
ITTO20090486A1
ITTO20090486A1 IT000486A ITTO20090486A ITTO20090486A1 IT TO20090486 A1 ITTO20090486 A1 IT TO20090486A1 IT 000486 A IT000486 A IT 000486A IT TO20090486 A ITTO20090486 A IT TO20090486A IT TO20090486 A1 ITTO20090486 A1 IT TO20090486A1
Authority
IT
Italy
Prior art keywords
rate
bit stream
module
controller
bit
Prior art date
Application number
IT000486A
Other languages
English (en)
Inventor
Emiliano Mario Piccinelli
Subarna Tripathi
Original Assignee
St Microelectronics Pvt Ltd
St Microelectronics Srl
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by St Microelectronics Pvt Ltd, St Microelectronics Srl filed Critical St Microelectronics Pvt Ltd
Priority to ITTO2009A000486A priority Critical patent/IT1398196B1/it
Priority to US12/819,604 priority patent/US8913658B2/en
Publication of ITTO20090486A1 publication Critical patent/ITTO20090486A1/it
Application granted granted Critical
Publication of IT1398196B1 publication Critical patent/IT1398196B1/it
Priority to US13/827,210 priority patent/US9497464B2/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/162User input
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/177Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a group of pictures [GOP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Apparatus For Radiation Diagnosis (AREA)
  • Transition And Organic Metals Composition Catalysts For Addition Polymerization (AREA)
  • Radar Systems Or Details Thereof (AREA)

Description

DESCRIZIONE
del brevetto per invenzione industriale dal titolo: “CONTROLLORE DINAMICO DELLA VELOCITA' DI TRASMISSIONE INDIPENDENTE DAL GRUPPO DI IMMAGINIâ€
La presente invenzione à ̈ relativa ad un controllore dinamico della velocità di trasmissione indipendente da GOP (gruppo di immagini).
Oggigiorno, le sequenze video codificate in una pluralità di standard di codifica video quali MPEG-2, MPEG-4, H.263, e H.264 sono trasmesse in tempo reale in una varietà di reti, per esempio reti cablate, reti senza fili, reti di area locali, ecc. A questo scopo, queste sequenze video sono transcodificate da uno standard di codifica video ad un altro basandosi sui requisiti degli utenti, sulle caratteristiche di rete (per esempio ampiezza di banda) e sulle proprietà (quali capacità di visualizzazione, capacità di buffer, ecc.) dei dispositivi terminali utilizzati dagli utenti.
Un transcodificatore converte un flusso di bit precompresso codificato in un particolare standard di codifica video e avente una velocità di trasmissione specifica in un altro flusso di bit compresso avente una velocità di trasmissione diversa per uno standard di codifica video identico o diverso, utilizzando controllori di velocità di trasmissione. Un controllore di velocità di trasmissione, come quelli utilizzati all'interno dei transcodificatori, regola in modo dinamico i parametri del transcodificatore in modo tale che le velocità di trasmissione generate dal transcodificatore siano quanto più vicine possibile alla velocità di trasmissione desiderata. La velocità di trasmissione desiderata di solito à ̈ calcolata all'inizio della codifica della sequenza video. Vari controllori di velocità di trasmissione sono stati proposti nel passato per adattare la velocità di trasmissione generata da un transcodificatore in modo che corrisponda alla velocità di trasmissione e all'ampiezza disponibile/effettiva di un canale di trasmissione.
I controllori di velocità di trasmissione allocano bit a tipi diversi di trame di immagini, cioà ̈ alle trame di immagini I, P e B, in una sequenza video in ingresso in un transcodificatore. Queste trame di immagini, tipicamente dodici di numero, costituiscono una struttura di gruppo di immagini (GOP). Tipicamente, una struttura di GOP comincia con una trama di immagini I e non ha più di una trama di immagini I. In generale, le immagini I richiedono un maggior numero di bit rispetto alle trame di immagini P e B poiché non utilizzano la correlazione temporale tra immagini successive. Pertanto, allo scopo di utilizzare la distribuzione di bit in modo fattibile sui tre tipi di immagine in un GOP, à ̈ necessario avere una conoscenza a priori della struttura di GOP del flusso di bit in ingresso. Un modulo codificatore, che invia un segnale di ingresso pre-compresso al transcodificatore, ha informazioni relative alla distribuzione di bit e può impostare un parametro di quantizzazione (QP) basandosi sulle informazioni a priori. Tuttavia, il transcodificatore non ha tale conoscenza e pertanto non à ̈ certo relativamente alla distribuzione di bit. Un transcodificatore, sostanzialmente, non ha alcun controllo sulle strutture di GOP del nuovo flusso di bit in uscita.
Nei transcodificatori convenzionali, i controllori di velocità di trasmissione esistenti ipotizzano o prevedono una particolare struttura di GOP basandosi sulla storia dei precedenti flussi di bit in ingresso. Tuttavia, questo tipo di previsione fallisce se la struttura di GOP cambia radicalmente o se la lunghezza di GOP corrente à ̈ molto elevata o molto bassa, determinata sulla base delle storie passate. Inoltre, alcuni controllori di velocità di trasmissione possono fornire soltanto uno standard di codifica video transcodificato nello stesso standard di codifica video del flusso di bit in ingresso. Dato che l'interpretazione di QP à ̈ diversa per standard diversi, non esiste alcuna soluzione efficiente per una transcodifica da un primo standard di codifica video ad un secondo standard di codifica video.
Le soluzioni esistenti per controllori di velocità di trasmissione funzionano bene per una transcodifica video a basso ritardo, ma non possono essere estese per immagini B, che sono molto comuni attualmente. Pertanto, la dipendenza dalle tecniche di previsione di una struttura di GOP, così come l'utilizzo di queste tecniche nei controllori di velocità di trasmissione per un transcodificatore convenzionale sono soggette a errore e inefficienti.
BREVE RIEPILOGO
Uno scopo dell'invenzione à ̈ quello di risolvere il suddetto problema.
Secondo la presente invenzione, sono previsti un sistema con un controllore dinamico della velocità di trasmissione indipendente da GOP, il relativo metodo e un supporto leggibile da computer, come definiti rispettivamente nelle rivendicazioni 1, 8 e 16.
In una implementazione, un transcodificatore comprende un codificatore, un decodificatore ed un controllore dinamico della velocità di trasmissione indipendente da GOP, chiamato anche controllore, in modo interscambiabile, da qui in avanti. Il codificatore utilizza il controllore per fornire un flusso di bit di uscita a una velocità di trasmissione desiderata. Pertanto, in aggiunta alla velocità di trasmissione desiderata, altri parametri quali velocità di reazione, velocità di trasmissione istantanea massima e minima, parametri di quantizzazione minimo e massimo possono essere forniti in ingresso da un utente. Questi parametri, in particolare la velocità di reazione e la velocità di trama del flusso di bit in ingresso, facilitano il calcolo di un periodo di convergenza. L'utilizzo del periodo di convergenza garantisce che la velocità di trasmissione del flusso di bit di uscita converga verso la velocità di trasmissione desiderata all'interno del periodo di convergenza richiesto dall'utente.
A seconda del valore calcolato del periodo di convergenza, un modulo di controllo, incluso nel controllore, seleziona il comportamento di uscita da una modalità a velocità di trasmissione costante (CBR) a una modalità di velocità di trasmissione variabile (VBR).
Basandosi sulla velocità di trasmissione ottenuta dalla modalità selezionata, un parametro di quantizzazione à ̈ generato dal controllore per ottenere la velocità di trasmissione desiderata, specificata dall'utente.
In questo caso, quando il periodo di convergenza à ̈ al di sotto di un valore di soglia euristico predefinito, il controllore opera in una modalità simile a CBR e quando il periodo di convergenza à ̈ al di sopra del valore di soglia euristico, il controllore opera in una modalità simile a VBR.
In ogni condizione operativa, il controllore stima in modo dinamico il numero di bit da allocare ad ogni trama di immagine a seconda del suo tipo e della complessità in ogni periodo di convergenza e secondo una misura di pienezza di buffer. Così, si garantisce sia la convergenza della velocità di trasmissione sia la conformità di buffer del flusso di bit di uscita alla capacità del dispositivo ricevente e quella di un canale di trasmissione sul lato ricevente.
L'utilizzo del periodo di convergenza per la selezione di modalità rende il controllore indipendente dalla conoscenza a priori delle strutture di GOP per transcodificare il flusso di bit di ingresso nel flusso di bit di uscita transcodificato. In altre parole, il controllore non deve conoscere in anticipo la struttura di GOP esatta, ma opera su una base immagine per immagine, cumulando le statistiche relative alle trame di immagine già elaborate regolando le sue ipotesi al momento del funzionamento. A causa di questo forte vincolo, imposto dalla struttura, il controllore può essere classificato come controllore a basso ritardo, consentendo così un costo di implementazione fattibile, sia in termini di complessità di calcolo efficiente sia di requisiti di sistema, come ad esempio i requisiti di memoria e ampiezza di banda di comunicazione minimizzati.
BREVE DESCRIZIONE DEI DISEGNI
Forme di realizzazione della presente invenzione saranno ora descritte con riferimento alle figure allegate, in cui la cifra (le cifre) più a sinistra di un numero di riferimento identifica (identificano) la figura in cui il numero di riferimento appare per la prima volta. Gli stessi numeri sono utilizzati per tutti i disegni con riferimento a caratteristiche e componenti simili. In dettaglio:
- la Figura 1a illustra un sistema esemplificativo che implementa un transcodificatore con controllore dinamico della velocità di trasmissione indipendente da GOP (GI-DBRC).
- La Figura 1b illustra un altro sistema esemplificativo che implementa un transcodificatore con controllore dinamico della velocità di trasmissione indipendente da GOP (GI-DBRC).
- La Figura 2 illustra un diagramma a blocchi esemplificativo di un transcodificatore.
- La Figura 3 illustra un GI-DBRC esemplificativo.
- La Figura 4a rappresenta un grafico che rappresenta il comportamento di velocità di trasmissione costante (CBR) per un flusso di bit di uscita nello standard di codifica video H.264.
- La Figura 4b illustra un grafico che rappresenta il comportamento di velocità di trasmissione variabile (VBR) per un flusso di bit di uscita nello standard di codifica video H.264.
- La Figura 5 illustra un diagramma di flusso esemplificativo per controllare la velocità di trasmissione da parte del GI-DBRC di Figura 3.
DESCRIZIONE DETTAGLIATA
La descrizione che segue à ̈ relativa a un controllore dinamico della velocità di trasmissione indipendente dal gruppo di immagini (GOP) (GI-DBRC), in particolare ad un controllore in grado di allocare in modo efficiente e dinamico bit a tipi diversi di trame di immagini senza la conoscenza di una struttura di GOP di un flusso di bit in ingresso pre-compresso.
In una implementazione, il GI-DBRC, chiamato da qui in avanti controllore, può essere utilizzato per selezionare tra due modalità principali, una modalità CBR e una modalità VBR, a seconda delle diverse condizioni operative impostate da un utente e altre condizioni operative prevalenti, come ad esempio ampiezza di banda di un canale di trasmissione, dimensione di buffer, ecc. In particolare, invece di utilizzare la conoscenza a priori del GOP, il controllore utilizza un parametro chiamato periodo di convergenza per fornire la velocità di trasmissione desiderata. Basandosi sul valore del periodo di convergenza confrontato con un valore di soglia euristico, e attraverso la scelta della modalità CBR o la modalità VBR, il controllore garantisce che la velocità di trasmissione media generata converga a una velocità di trasmissione desiderata all'interno del periodo di convergenza. Pertanto, il controllore à ̈ indipendente dalla struttura di GOP di un flusso di bit in ingresso. Inoltre, il controllore può dedicarsi alla distribuzione di bit nelle trame di immagini B.
I dispositivi che possono implementare il controllore descritto comprendono, ma non sono limitati a, set-top box, dispositivi di calcolo, televisioni digitali, telefoni mobili, portatili, assistenti digitali personali (PDA), video registratori personali e in generale qualsiasi sistema video con capacità di transcodifica (per la memorizzazione, lo streaming o lo spostamento di posti).
Questi dispositivi possono essere impiegati in una varietà di applicazioni quali streaming, conferenza, sorveglianza, registrazione e memorizzazione di contenuto audio/video digitale, ecc.
SISTEMI ESEMPLIFICATIVI
La Figura 1 illustra un sistema 100 esemplificativo che implementa un transcodificatore con un controllore dinamico della velocità di trasmissione indipendente da GOP (GI-DBRC). Il sistema 100 comprende un dispositivo 102 e una varietà di dispositivi riceventi, quali un assistente digitale personale 104-1, un telefono mobile 104-2, un portatile 104-3, e una televisione 104-4, da qui in avanti chiamati dispositivi riceventi 104. Il dispositivo 102 e i dispositivi riceventi 104 possono comunicare attraverso una rete 106. Esempi del dispositivo 102 possono comprendere, ma non sono limitati a, un set-top box, un sistema ricetrasmettitore di stazione base, un video registratore personale, o qualsiasi altro sistema video con capacità di transcodifica e/o spostamento di posti. Il dispositivo 102 comprende uno o più processori 108, una o più interfacce 110, una memoria 112, e un transcodificatore 114.
La rete 106 può essere una rete senza fili o una cablata, o una loro combinazione. La rete 106 può comprendere singole reti interconnesse una con l'altra e che funzionano come singola rete grande, ad esempio Internet o un intranet. La rete 106 può essere una dedicata o condivisa, cioà ̈ fornita e mantenuta da un singolo fornitore di servizi o da un certo numero di fornitori di servizi. Esempi della rete 106 comprendono, ma non sono limitati a, Rete di Area Locale (LAN), Rete di Area Larga (WAN), e così via.
Inoltre, il processore (i processori) 108 può (possono) comprendere, per esempio, microprocessori, microcomputer, microcontrollori, processori di segnali digitali, unità di elaborazione centrale, macchine a stati, circuiterie logiche e/o qualsiasi dispositivo che manipola segnali basandosi su istruzioni operative. Tra le altre capacità, i processori 108 sono configurati in modo da localizzare, caricare ed eseguire istruzioni memorizzate nella memoria 112.
L'interfaccia (le interfacce) 110 può (possono) comprendere una varietà di interfacce software e hardware, per esempio interfacce di rete quali un circuito ricetrasmettitore radio, interfacce utente quali sistemi di ingresso/uscita, interfacce di programmazione di applicazioni (API), quali un clock di apparecchiatura interna, un calendario, ecc., o una combinazione di molte di tali interfacce. L'interfaccia (le interfacce) 110 facilita (facilitano) l'interazione utente con il dispositivo 102, e l'interazione del dispositivo 102 con i dispositivi riceventi 104 sulla rete 106.
La memoria 112 può comprendere qualsiasi supporto leggibile da computer noto nella tecnica comprendente, per esempio, una memoria volatile, ad esempio SRAM e DRAM e/o una memoria non volatile, ad esempio EPROM, memorie flash, ecc.).
Il transcodificatore 114 converte un flusso di bit in ingresso pre-compresso codificato in un formato, per esempio MPEG-2, AVI, ecc., ricevuto da un modulo codificatore (non illustrato nel diagramma) in un flusso di bit di uscita avente un formato diverso, per esempio H.264, WMA, ecc. e/o una velocità di trasmissione diversa da quella del flusso di bit in ingresso. Il transcodificatore 114 comprende inoltre un controllore dinamico ad intensità di trasmissione indipendente da GOP 116, chiamato in modo interscambiabile da qui in avanti controllore 116. Occorre notare che il controllore 116 può essere connesso in qualsiasi implementazione di transcodificatore, dalla piena decodifica e piena codifica all'anello aperto, passando attraverso qualsiasi implementazione ad anello chiuso. Il controllore 116 può essere attivato in due modalità operative, cioà ̈ modalità a velocità di trasmissione costante (CBR) e modalità a velocità di trasmissione variabile (VBR). Il controllore 116 mentre à ̈ operativo nella modalità CBR genera un flusso di bit di uscita a una velocità di trasmissione costante. Analogamente, il controllore 116, mentre à ̈ operativo nella modalità VBR, genera un flusso di bit di uscita a una velocità di trasmissione variabile. In questa implementazione, il flusso di bit di uscita transcodificato avente la velocità di trasmissione desiderata à ̈ anche conforme al buffer.
Il controllore 116 verifica il flusso di bit di uscita transcodificato per evitare qualsiasi condizione di superamento e superamento negativo di buffer di uscita. Dopo una verifica con successo, il transcodificatore 114 invia il flusso di bit di uscita transcodificato ai dispositivi riceventi 104 attraverso la rete 106. Occorre notare che il modulo codificatore riceve un flusso di bit in ingresso da una varietà di sorgenti quali un satellite o un server di sezione di diffusione (non illustrati nel diagramma).
La Figura 1b illustra un altro sistema 118 esemplificativo che implementa un transcodificatore 114 con il controllore 116. In questa implementazione, il sistema 118 comprende il dispositivo 102 e un dispositivo di memorizzazione 120. Il dispositivo 102 comprende inoltre un transcodificatore 114 e il controllore 116. Il dispositivo 102 à ̈ già stato discusso in dettaglio nella Figura 1a.
Il dispositivo di memorizzazione 120 può essere un compact disc (CD), un video disco digitale (DVD), una unità a disco rigido (HDD), tipicamente utilizzata nella modalità VBR come supporto di memorizzazione in applicazioni quali un video registratore personale (PVR), lettori mediali portatili, ecc. Durante il funzionamento, il dispositivo 102 accede a una sequenza video memorizzata nel dispositivo di memorizzazione 120. Il transcodificatore 114 all'interno del dispositivo 102 transcodifica la sequenza video e la invia ad un altro dispositivo ricevente che accetta un flusso di bit video di uscita transcodificato. Così, consentendo la riproduzione video dal dispositivo di memorizzazione 120. In maniera simile, un flusso di bit transcodificato può essere registrato sul dispositivo di memorizzazione 120.
La Figura 2 illustra un diagramma a blocchi esemplificativo del transcodificare 114. Il transcodificare 114, in aggiunta al controllore 116, comprende un decodificatore 202 e un codificatore 204. Il decodificatore 202 riceve un flusso di bit pre-compresso 206. In una implementazione, il flusso di bit pre-compresso 206 à ̈ ricevuto da un modulo codificatore (non illustrato nella figura) che à ̈ esterno al transcodificatore 114 e ha un primo standard di codifica video, una velocità di trasmissione, una risoluzione, ecc. Il decodificatore 202 decodifica il flusso di bit pre-compresso 206 in modo da dare come risultato un flusso di bit decodificato 208, da qui in avanti chiamato flusso di bit di ingresso 208. Il flusso di bit di ingresso 208 à ̈ quindi ri-codificato dal codificatore 204 per fornire un flusso di bit di uscita compresso 210, da qui in avanti chiamato flusso di bit di uscita 210. Il flusso di bit di uscita 210 à ̈ codificato in un secondo standard di codifica video a una velocità di trasmissione desiderata e inviato ad un modulo decodificatore (non illustrato nella figura) esterno al transcodificatore 114.
In questa implementazione, la velocità di trasmissione desiderata può essere specificata da un utente. La velocità di trasmissione desiderata specificata può fornire risultati ottimizzati e affidabili se la velocità di trasmissione desiderata à ̈ specificata prendendo in considerazione pochi fattori. Questi fattori comprendono capacità dei dispositivi riceventi 104, complessità della sequenza video in ingresso, e l'ampiezza di banda disponibile della rete 106. Il controllore 116, incluso nel transcodificatore 114, stima un valore del numero di bit da allocare ad ogni trama di immagine, da qui in avanti chiamata stima di bit. Basandosi sulla stima di bit e su una misura di pienezza di buffer, il controllore 116 controlla la velocità di trasmissione generata regolando una dimensione di passo di quantizzazione (QSTEP) che si basa su un parametro di quantizzazione (QP). Questo valore di QP quando à ̈ applicato sul flusso di bit di ingresso 208 dal codificatore 204 genera un flusso di bit di uscita 210 alla velocità che corrisponde alla velocità di trasmissione desiderata. Per esempio, il QP e il QSTEPnello standard di codifica video H.264/AVC sono tipicamente correlati uno all'altro attraverso l'equazione sotto citata:
(QP -4 )
<Q>STEP=2 6(1)Basandosi sull'equazione (1), vi à ̈ un aumento di QSTEPdel dodici per cento per ogni aumento di QP, cosicché ogni incremento di sei nel QP raddoppia il QSTEP. Inoltre, il QSTEPà ̈ quasi inversamente proporzionale al numero di bit generati dal controllore 116. Così, se i bit generati al secondo, o velocità di trasmissione, sono elevati, si utilizza una dimensione di passo inferiore da parte del controllore 116, e viceversa. Pertanto, una velocità di trasmissione superiore dà come risultato una migliore qualità visiva, mentre una velocità di trasmissione inferiore dà come risultato una qualità visiva peggiore. Così, la sintonizzazione della distribuzione di bit o la stima di bit fornisce all'utente una scelta tra una migliore qualità di immagini e il risparmio di bit. A seconda della applicazione e dei requisiti dell'utente, il valore della stima di bit e pertanto di QSTEPdeve essere scelto in modo appropriato. In una forma di realizzazione, il controllore 116 fornisce dinamicamente un valore di stima di bit basato su un parametro chiamato periodo di convergenza, discusso più avanti. Il periodo di convergenza non à ̈ dipendente dalla conoscenza precedente delle strutture di GOP del flusso di bit di ingresso 208 come à ̈ il caso nella soluzione convenzionale. Pertanto, il controllore 116 fornisce il flusso di bit di uscita 210 alla velocità di trasmissione quanto più vicina possibile alla velocità di trasmissione desiderata. Il controllore 116 à ̈ un controllore di velocità di trasmissione a singola passata, cioà ̈ il processo di codifica à ̈ eseguito una volta per trama di immagine dal codificatore 204.
In una implementazione, il controllore 116 esegue anche automaticamente controlli di conformità di buffer dei flussi di bit di uscita 210, per evitare superamento negativo/superamento di buffer utilizzando un modulo di conformità 212. Il modulo di conformità 212 funziona in modo diverso per le due modalità di funzionamento principali nel controllore 116, cioà ̈ modalità a velocità di trasmissione costante e modalità a velocità di trasmissione variabile, controllando parametri specifici che sono più adatti per le due principali modalità operative, consentendo un controllo migliore e più fine, insieme ad una migliore qualità di uscita. Per la modalità a velocità di trasmissione costante, il controllo di conformità di buffer comporta la modifica del QSTEPin modo tale che la pienezza di buffer si mantenga sul modulo decodificatore (non illustrato nella figura) nel dispositivo ricevente 104. Basandosi sulla modifica del QSTEP, il QP che era stato calcolato utilizzando la stima di bit à ̈ anche regolato di conseguenza. Così, si garantiscono sia convergenza di velocità di trasmissione sia conformità di buffer nella modalità a velocità di trasmissione costante.
Per la modalità a velocità di trasmissione variabile, il fattore determinante per garantire la conformità sono i parametri di temporizzazione di arrivo e rimozione di una trama di immagine nel buffer. Controllando i parametri di temporizzazione, si garantisce la conformità senza la necessità di riempimento di bit e salto di trame. In questo modo, il flusso di bit generato dal transcodificatore 114 à ̈ sempre conforme con i vincoli di buffer di vari standard di codifica video quali H.264, MPEG-4, ecc.
La Figura 3 illustra un controllore dinamico della velocità di trasmissione indipendente da GOP (GI-DBRC) 116 per il transcodificatore 114, secondo una forma di realizzazione del presente oggetto. Il controllore 116 comprende una pluralità di componenti, per esempio un'interfaccia utente 302, un modulo di controllo 304, un modulo CBR 306, un modulo VBR 308 e il modulo di conformità 212. Questi componenti facilitano la transcodifica di un flusso di bit di ingresso, per esempio il flusso di bit di ingresso pre-compresso 206 avente una particolare velocità di trasmissione nel flusso di bit di uscita 210 di un'altra velocità di trasmissione, basandosi sulla rete 106 e i parametri di ingresso impostati dall'utente.
In una implementazione, il controllore 116 riceve una varietà di parametri di ingresso attraverso l'interfaccia utente 302. Esempi di parametri di ingresso comprendono, ma non sono limitati a, una velocità di trasmissione desiderata 310, una velocità di trasmissione istantanea massima 312, una velocità di trasmissione istantanea minima 314, una qualità massima 316, una qualità minima 318, e una velocità di reazione 320, come ingressi attraverso l'interfaccia utente 302. In una implementazione, questi ingressi possono essere specificati da un utente attraverso una interfaccia di programmazione di applicazione (API). La velocità di trasmissione desiderata 310 à ̈ il valore della velocità di trasmissione desiderata richiesta dall'utente. Altri parametri, quali la qualità massima 316 e la qualità minima 318 determinano il parametro di quantizzazione (QP). Il concetto di QP à ̈ già stato discusso con riferimento alla Figura 2. Ogni standard di codifica video consente un campo di valori di QP da cui l'utente può scegliere un particolare valore. Per esempio, la transcodifica di un dato standard di codifica video nello standard di codifica video H.263/H.264, il valore di valori per i valori massimo e minimo di QP à ̈ da zero a cinquantuno. In un'altra implementazione, per lo standard di codifica video MPEG-2 oppure MPEG-4, i valori massimo e minimo di QP sono nel campo da uno a trentuno. Da qui in avanti, H.264 à ̈ stato utilizzato come esempio nella spiegazione, dato che il campo di QP consentito dello standard di codifica video H.264 à ̈ superiore a confronto di quello dello standard di codifica video MPEG-2 oppure MPEG-4. Questo campo di QP consentito comprende campi di QP della maggior parte degli standard di codifica video popolari, per esempio MPEG-2/MPEG-4. Il controllore 116 così à ̈ reso abbastanza generico da tener conto di transcodificatori operativi su standard diversi.
Inoltre, la velocità di reazione 320 à ̈ un parametro che definisce il tempo dopo il quale il controllore 116 garantisce la convergenza della velocità di trasmissione del flusso di bit di ingresso 208 con la velocità di trasmissione desiderata 310 richiesta dall'utente. In una implementazione, il modulo di controllo 304 calcola un parametro chiamato periodo di convergenza utilizzando la velocità di reazione 320 fornita dall'utente. Il periodo di convergenza à ̈ definito come tempo espresso in termini di numero di trame, chiamato numero di trame di convergenza, e può essere calcolato dal prodotto della velocità di reazione 320, in millisecondi, e il numero di trame al secondo, o velocità di trama, come citato più avanti:
PeriodoConvergenza =VelocitàReazione xVelocità trama(2)
1000
Il periodo di convergenza à ̈ diverso dal concetto di Gruppo di Immagini (GOP), che à ̈ definito in termini di numero di trame al secondo. In generale, la struttura di GOP comincia sempre con la trama di immagini I e comprende inoltre una trama di immagini P e una trama di immagini B. Inoltre, non ci può essere più di una trama di immagini I in una lunghezza di trama, che costituisce la struttura di GOP. D'altra parte, il periodo di convergenza specifica la lunghezza di trama. Per esempio, la lunghezza di trama o, in altre parole, il periodo di convergenza può essere metà della lunghezza della struttura di GOP. Così, a differenza delle strutture di GOP tradizionali, la lunghezza di trama corrispondente al periodo di convergenza può avere più di una trama di immagine I e può non avere affatto alcuna trama di immagine.
Durante il funzionamento, a seconda del valore calcolato del periodo di convergenza, il modulo di controllo 304, incluso nel controllore 116, seleziona il comportamento del flusso di bit di uscita 210 da una modalità a velocità di trasmissione costante (CBR) pura ad una modalità a velocità di trasmissione variabile (VBR) pura. La modalità CBR pura facilita la generazione del flusso di bit di uscita 201 a una velocità di trasmissione costante, mentre la modalità VBR pura facilita il flusso di bit di uscita 210 a una qualità costante, consentendo così variazioni superiori nella velocità di trasmissione istantanea. Basandosi sulla velocità di trasmissione ottenuta dalla modalità selezionata, il QP à ̈ generato dal controllore per ottenere la velocità di trasmissione desiderata, come specificato dall'utente.
Qui, quando il periodo di convergenza à ̈ al di sotto di un valore di soglia euristico, il controllore 116 opera nella modalità simile a CBR e quando il periodo di convergenza à ̈ al di sopra del valore di soglia euristico, il controllore 116 opera in una modalità simile a VBR. A questo scopo, il controllore 116 comprende un modulo orientato a CBR 306 e un modulo orientato a VBR 308. Il modulo orientato a CBR 306 e il modulo orientato a VBR 308 saranno da qui in avanti chiamati rispettivamente modulo CBR 306 e modulo VBR 308. E' importante notare che concettualmente una distinzione reale tra le due modalità operative principali non à ̈ definita, ma à ̈ previsto un passaggio continuo e uniforme da una all'altra, consentendo così anche qualsiasi modalità operativa ibrida aggiuntiva. In generale, a causa di un periodo di convergenza più breve, la modalità operativa si avvicina alla modalità CBR pura e la varianza consentita della velocità di trasmissione istantanea à ̈ inferiore, consentendo così un controllo di velocità di trasmissione molto fine, per esempio nel caso di uno streaming di un video su un canale ad ampiezza di banda fissa. Analogamente, a causa di un periodo di convergenza più lungo, la modalità operativa si avvicina a una modalità VBR pura e la variazione di velocità di bit istantanea consentita à ̈ superiore per ottenere una qualità di immagine di uscita costante quanto più possibile, per esempio nel caso di una sequenza video memorizzata su un DVD o HDD.
In entrambe le modalità operative, il controllore 116 stima in modo dinamico il numero di bit da allocare ad ogni trama di immagine a seconda del suo tipo e complessità in ogni periodo di convergenza per ottenere la velocità di trasmissione desiderata del flusso di bit di uscita garantendo così la convergenza di velocità di trasmissione. Contemporaneamente, il numero di bit da allocare à ̈ anche modificato secondo la misura di pienezza di buffer come discusso nella descrizione di figura 2. Questa misura à ̈ eseguita per garantire la conformità del flusso di bit di uscita con la capacità del dispositivo ricevente e quella di un canale di trasmissione sul lato ricevente per tener conto del flusso di bit di uscita transcodificato alla velocità di trasmissione generata. In questo modo, le condizioni di superamento e superamento negativo del dispositivo ricevente per una particolare velocità di trasmissione del flusso di bit di uscita sono verificate. L'utilizzo del periodo di convergenza per la selezione di modalità rende il controllore 116 indipendente dalla conoscenza precedente delle strutture di GOP per transcodificare il flusso di bit di ingresso nel flusso di bit di uscita transcodificato. In altre parole, il controllore 116 non deve sapere in anticipo la struttura di GOP esatta, ma funziona su base immagine per immagine, cumulando le statistiche relative alle trame di immagini già elaborate e regolando le sue ipotesi al momento del funzionamento.
Come riportato, quando il periodo di convergenza à ̈ al di sotto del valore di soglia euristico, per esempio sessanta, l'unità di controllo 304 invia un flusso di bit in ingresso, per esempio il flusso di bit di ingresso 208, al modulo CBR 306. Quale risultato, il controllore 116 facilita la generazione di un flusso di bit di uscita, per esempio il flusso di bit di uscita 210, alla velocità di trasmissione costante. D'altra parte, quando il periodo di convergenza à ̈ superiore al valore di soglia euristico, l'unità di controllo 304 invia il flusso di bit di ingresso 208 al modulo VBR 308. Quale risultato, il controllore 116 facilita la generazione di un flusso di bit di uscita, per esempio il flusso di bit di uscita 210, ad una velocità di trasmissione variabile.
Se la velocità di reazione à ̈ tale per cui il periodo di convergenza à ̈ inferiore al valore di soglia euristico, il controllore 116 elabora il flusso di bit di ingresso 208 nel modulo CBR 306. Il modulo CBR 306 fornisce una stima di bit che aiuta ulteriormente a determinare un valore di QP. Questo QP, quando à ̈ applicato al flusso di bit di ingresso dal codificatore 204, genera un flusso di bit a una velocità di trasmissione costante nel canale di trasmissione. Per immagini complesse, il QP à ̈ aumentato dal modulo CBR 306, mentre per immagini semplici, il QP à ̈ diminuito dal modulo CBR 306.
Qui, per fornire una velocità di trasmissione costante, il controllore 116 mantiene la pienezza di buffer costante all'inizio di ogni insieme di trame di immagine corrispondente al periodo di convergenza specificato dall'utente. In contrasto con il controllore 116, i controllori tradizionali di velocità di trasmissione mantengono la pienezza di buffer costante all'inizio di ogni struttura di GOP. Pertanto, il controllore 116 alloca i bit basandosi sul periodo di convergenza in opposto alla struttura di GOP. In aggiunta, a differenza dei transcodificatori tradizionali, la previsione di struttura di GOP non à ̈ richiesta e il QP dipende soltanto dal periodo di convergenza che à ̈ calcolato dal modulo di controllo 304 utilizzando la velocità di reazione 320 specificata dall'utente.
Inoltre, il modulo CBR 306 opera su un modello ibrido di modelli basati su bit obiettivo e buffer. In generale, i controllori di velocità di trasmissione che operano su un modello basato su bit obiettivo fanno sì che il transcodificatore spenda un numero di bit stabilito su ogni struttura di GOP. Tale spesa di bit à ̈ indipendente dalla complessità di immagine ed à ̈ eseguita anche quando la necessità reale dei bit potrebbe essere diversa dalla velocità di trasmissione desiderata. D'altra parte, l'approccio basato su buffer garantisce che i vincoli di buffer di superamento e superamento negativo siano rispettati e il flusso di bit di uscita generato dal codificatore 204 sia conforme con gli standard di codifica vari quali H.264, MPEG-4, ecc. In questo modo, il modello ibrido garantisce sia convergenza di velocità di trasmissione sia conformità di buffer.
Basandosi sul modello ibrido, il modulo CBR 306 riceve il valore di velocità di trasmissione desiderata dall'interfaccia utente 302 e fornisce un valore di stima di bit. Questo valore di stima di bit à ̈ utile per calcolare la dimensione di passo di parametro di quantizzazione (QSTEP). Il valore QSTEPfornisce inoltre un valore di parametro di quantizzazione (QP) che à ̈ applicato sul flusso di bit di ingresso 208 dal codificatore 204 per fornire un flusso di bit di uscita 210. Come discusso in precedenza nella spiegazione di Figura 2, il rapporto di QSTEPcon il QP à ̈ definito in modo diverso per ogni standard di codifica. Pertanto, per generare un QP con migliore adattamento, la stima di bit più efficiente deve essere fornita dal controllore 116. In una implementazione, il modello ibrido à ̈ motivato dalla teoria della stima efficiente e l'efficienza statistica per fornire una stima di bit che converge sulla velocità di trasmissione desiderata definita dall'utente.
Per comprendere l'efficacia del modello ibrido, si discutono tre casi. Il primo caso avviene quando esiste una singola trama di immagini I in un periodo di convergenza. Un secondo caso à ̈ quando il periodo di convergenza à ̈ diverso da una lunghezza di GOP di ingresso e ha sia trame intra-immagini, per esempio trame di immagini I, sia trame non intra-immagini quali le trame di immagini P e B. Dato che sono richiesti numeri diversi di bit per le trame di immagini I, P, e B quasi per la stessa qualità visiva, variando così il numero di trame di immagini I, senza alcuna conoscenza precedente della struttura di GOP, si ottiene un impatto più forte sul numero medio di bit allocati alle trame di immagini I, P e B. Il terzo e peggior caso à ̈ quando tutte le trame di immagini sono trame di immagini I all'interno di un periodo di convergenza. In<q>uesto caso, ciascuna delle trame di immagini I richiederebbe un gran numero di bit.
Per il primo caso, quando esiste una singola trama di immagini I in un periodo di convergenza, il periodo di convergenza coincide con una struttura di GOP di ingresso effettiva e il controllore 112 alloca bit per fornire una qualità visiva che corrisponde alla qualità della sequenza video in ingresso.
Nel secondo caso (periodo di convergenza diverso da una lunghezza di GOP di ingresso e avente entrambe le trame intra-immagini), allo scopo di fornire una stima efficiente, cioà ̈ per allocare bit alle trame di immagini I e P, si può utilizzare la seguente metodologia. Il periodo di convergenza può essere definito in termini di numero di trame di convergenza. Si ipotizzi che il numero di trame di convergenza sia indicato come 'f'.
Il numero totale di bit allocati (R) a 'f' immagini può essere rappresentato come
R<trasmissione>
<=>x f (3) Velocità trama
Inoltre, si ipotizzi che nIe nPsiano il numero di immagini I e P ed rIe rPsia il numero di bit delle trame di immagini I e P all'interno di un periodo di convergenza:<f = n>I<+ n>P (4)
Si ipotizzi che il numero di bit allocati alle trame di immagini P sia metà del numero di bit allocati alle immagini I e il numero di bit allocati alle immagini B sia un quarto del numero di bit per le immagini I. Così, rI=2( rP)(5)R=(nIxrI)+(nPx rP)(6)Utilizzando le equazioni (4) e (5) nell'equazione (6) e risolvendo per rIe rP, il numero di bit allocati e le trame di immagini I può essere rappresentato come:
rI= 2 R
f n (7)I
Analogamente, il numero di bit allocati alle trame di immagini P può essere rappresentato come:
2 R
r P =
f nP(8)
Ora, motivati dalla teoria della stima efficiente, si eseguono una serie di simulazioni. I risultati delle simulazioni e i calcoli forniscono una soluzione che si dimostra dare una stima di bit che ha una varianza molto bassa per la velocità di trasmissione desiderata. Per esempio, la media dei campioni à ̈ la stima efficiente della media di distribuzione Gaussiana con una deviazione standard nota. Utilizzando il metodo sopra citato, si stima la media della distribuzione di bit per ogni immagine. Anche per una distribuzione non Gaussiana, si à ̈ dimostrato a livello sperimentale e matematico che la stima di bit ha una efficienza statistica relativamente elevata e una varianza bassa.
Considerando il numero effettivo di bit allocati a una trama di immagini in modo che sia Q, si dice che una stima di bit non influenzata Qestdi Q à ̈ una stima efficiente per una classe D di funzioni di distribuzione se, per ogni funzione di distribuzione f(u,Q) di classe D, la varianza dell'errore quadratico D<2>(Qest) ha raggiunto il valore minimo, che à ̈ dato dalla seguente espressione:
<1>D2(Qes)=E[(Q- Q 2
t est) ] ³ ¥ ¶log f (u, Q)(9)
2
n[ò ¶Q<]>.f (u,Q ) du
- ¥
Il lato destro dell'espressione (9) à ̈ chiamato il limite di Cramer-Rao mentre il lato sinistro dell'espressione (9) à ̈ la varianza tra Qeste Q. L'espressione (9) indica che una stima efficiente di Q à ̈ una che ha la varianza minima dal Q effettivo, e la varianza della stima à ̈ delimitata al suo limite inferiore dal limite di Cramer-Rao. Occorre notare che la funzione di distribuzione cioà ̈ f (u,Q) può o può non essere Gaussiana.
Basandosi sulla suddetta teoria della stima efficiente, si ottiene una soluzione per la stima di bit in modo tale che:
g(f ,i) = f - i )(10)(f (f i 1 ))
dove 'g' à ̈ una funzione del numero di trame di convergenza 'f' e l'indice delle trame di immagini I 'i' del periodo di convergenza attuale. Quando si allocano i bit basandosi sulla forma della funzione 'g', la varianza sarà minima. Pertanto, in generale, il numero di bit allocati in modo adattativo alla i-esima immagine I:
rIi=2R ́{g(f, i )}(11)
R à ̈ il numero totale di bit allocati a tutti le immagini I, P e B all'interno di un periodo di convergenza e può essere calcolato utilizzando l'equazione (6). Il numero di bit per la j-esima immagine I dovrebbe essere inferiore alla i-esima immagina I all'interno del periodo di convergenza 'f', per i<j. Occorre notare che si può applicare una metodologia simile a un caso in cui il periodo di convergenza ha trame di immagini sia I, sia P sia B.
Nel terzo caso (quando tutte le trame di immagini sono trame di immagini I all'interno di un periodo di convergenza), il numero totale di bit 'T' allocati alle immagini del periodo di convergenza à ̈ dato dall'espressione:
T =2Rg(f ,0)+2Rg(f ,1)+..+2Rg(f , f -1 )(12)
dove:
R à ̈ il numero totale di bit allocati a tutte le trame di immagini I, P e B all'interno di un periodo di convergenza e può essere calcolato utilizzando l'equazione (6);
f à ̈ il numero di trame di convergenza corrispondente al periodo di convergenza definito dall'utente e alla velocità di reazione;
g(f,i) Ã ̈ una funzione del numero di trame di convergenza 'f' e il numero di immagini I entro il periodo di convergenza;
T/f à ̈ il numero medio di bit allocati a tutte le trame di immagini I.
Nell'attuale scenario del caso peggiore di allocazione di bit soltanto alle trame di immagini I, il numero medio di bit nella modalità a velocità di trasmissione costante dovrebbe avvicinarsi alla velocità di trasmissione media desiderata allocata a tutte le immagini I, cioà ̈ T/f.
Pertanto, dividendo l'equazione (12) per f, l'espressione per numero medio di bit nella modalità CBR (X) à ̈:
<T>
<X =>(13)
f
2Rg(f ,0)+2Rg(f ,1)+..+2Rg(f , f -1 )X =
f(14)
X =2R( Y )(15)
g(f,0)+g(f,1)+..+g(f, f -1 )
doveY =
f (16)
Come sopra citato, la stima di bit per funzioni di distribuzione non Gaussiana ha una elevata efficienza statistica e una bassa varianza di errore. Teoricamente e in modo sperimentale, dato che Y à ̈ anche all'incirca uguale a 0,5 per tutti i valori di numero di trama di convergenza inferiore a sessanta, si à ̈ trovato che la velocità di trasmissione stimata à ̈ molto vicina alla velocità di trasmissione effettiva. A livello sperimentale, la percentuale di deviazione dalla velocità di trasmissione desiderata non à ̈ superiore al tre per cento negativo per un massimo di sessanta trame al secondo. Anche nel caso peggiore, anche se la deviazione à ̈ negativa, non si perde alcuna informazione nel canale di trasmissione.
Come citato in precedenza, la velocità di trasmissione generata à ̈ sempre delimitata dalla velocità di trasmissione desiderata. Tuttavia, tipicamente, il numero allocato di bit a una sequenza sarebbe superiore dato che i vincoli di buffer devono essere rispettati e che ciò richiede operazioni quali riempimento di bit e/o salto di trama. Ma, utilizzando il modello ibrido in detta implementazione, il Qestà ̈ più vicino al valore di Q che può generare il numero di bit calcolato per ogni tipo e indice di trama di immagine. L'applicazione di modello ibrido preserva anche il rapporto generale desiderato dei bit allocati alle trame di immagini I, P e B senza la necessità di riempimento di bit o salto di trama per evitare superamento e superamento negativo rispettivamente.
In aggiunta, si esegue automaticamente un controllo di conformità di buffer per evitare superamento/superamento negativo di buffer da parte del modulo di conformità 212 incorporato nel controllore 116. Qui, il modulo di conformità 212 à ̈ esterno al modulo CBR 306 e al modulo VBR 308 ma in un'altra implementazione il modulo di conformità 212 può essere incorporato separatamente nel modulo CBR 306 e nel modulo VBR 308. Per garantire che si mantenga sempre la pienezza di buffer, il QP à ̈ regolato in modo tale che le successive trame di immagini ricevano un numero maggiore o minore di bit se l'allocazione di bit nella trame di immagini corrente porta verso una condizione di superamento o superamento negativo. Secondo i vincoli di buffer, la dimensione di passo di parametro di quantizzazione (QSTEP) à ̈ modificata da un valore che à ̈ stato calcolato basandosi sulla stima di bit. In generale, quanto maggiore à ̈ il valore di QSTEP, tanto minori sarebbero le possibilità che il buffer abbia un superamento negativo. In questo modo, il flusso di bit di uscita 210 dal modulo CBR 306 rispetta i criteri della convergenza di velocità di trasmissione così come la conformità di buffer.
In aggiunta, due modalità di funzionamento sono supportate nel controllore 116 all'interno del modulo CBR 306. Si può definire un commutatore di tempo di compilazione per selezionare tra le due modalità. Se il commutatore di tempo di compilazione à ̈ definito, il modulo CBR 306 fornirebbe maggiore enfasi alla linearità della pienezza di buffer e la qualità à ̈ compromessa. D'altra parte, se il commutatore di tempo di compilazione non à ̈ definito, la qualità à ̈ considerata più importante e il requisito di buffer esatto à ̈ compromesso, soddisfacendo soltanto così le condizioni di non superamento e non superamento negativo.
Qui, se la velocità di reazione à ̈ impostata in modo tale che il periodo di convergenza sia al di sopra del valore di soglia euristico, il controllore 116 fornisce la stima di bit nel modulo a velocità di trasmissione variabile (VBR). Il valore della stima di bit aiuta inoltre a determinare un QP tale per cui quando si applica questo QP al flusso di bit di ingresso 208 da parte del codificatore 204, esso genera un flusso di bit di uscita 210 a una velocità di trasmissione variabile. Per conformarsi ai vincoli di buffer, il controllore 116 tenta di mantenere la pienezza di buffer costante all'inizio di ogni insieme di immagini, dove ogni insieme di immagini corrispondente al periodo di convergenza specificato dall'utente. Analogamente al modulo CBR 306, il periodo di convergenza può essere calcolato utilizzando la velocità di reazione 320, specificata dall'utente, e la velocità di trama. Così, dato che la velocità di reazione 320 à ̈ lenta, il periodo di convergenza à ̈ lungo.
Una volta che il controllore 116 seleziona il modulo VBR 308, il periodo di convergenza non rimane più finito dato che si concentra soltanto sulle velocità di trasmissione istantanee massime 312 e le velocità di trasmissione istantanee minimi 314 definite dall'utente e i valori di QP costanti e non sul periodo di convergenza. In generale, la qualità visiva à ̈ correlata ai valori di QP mentre la complessità di una intera sequenza del GOP à ̈ correlata alla velocità di trasmissione media. In una implementazione, il modulo VBR 308 risparmia i bit per sequenze a bassa complessità e riutilizza i bit salvati per sequenze ad elevata complessità come e quando richiesto. Questo mantiene la qualità visiva costante all'interno della velocità di trasmissione desiderata. La modalità VBR può essere utilizzata per applicazioni fuori linea quali la registrazione e la memorizzazione di contenuto audio-video digitale dove à ̈ possibile misurare la distribuzione di complessità per tutte le sequenze. Così, il modulo VBR 308 mantiene il QP costante in modo uniforme e si adatta uniformemente alle variazioni del contenuto visivo su base trama per trama, consentendo così una qualità costante lungo i vari GOP di una singola scena. Il modulo VBR 308 gestisce la distribuzione di bit determinando una curva di bilancio di bit utilizzando un modulo di bilancio di bit (non illustrato nella figura) che misura l'errore tra la velocità di trasmissione desiderata e la velocità di trasmissione media ottenuta fino alla trama precedente. La curva di bilancio di bit può essere rappresentata dalla seguente espressione matematica:
BitBudget(T)= ∫ (TarBitrate -IstBitRate(t )) dt(17)
dove TarBit-rate e IstBit-rate sono rispettivamente le velocità di trasmissione desiderata e istantanea, e T à ̈ l'intervallo di tempo. Per la prima trama di immagini di una sequenza, BitBudget(t) à ̈ zero e dovrebbe essere idealmente zero anche per l'ultima trama della sequenza. La curva di bilancio di bit basata sul modello di bilancio di bit che traccia dei bit consumati salvati o extra allo scopo di mantenere la convergenza di velocità di trasmissione richiesta. La curva di bilancio di bit à ̈ misurata trama dopo trama ed à ̈ divisa in un certo numero di zone. Per ogni zona, si prepara una tabella di ricerca (LUT) che contiene gli aggiornamenti di quantizzazione consentiti, cioà ̈ gli aggiornamenti a QSTEP. A seconda della tendenza della curva di bilancio di bit e anche dell'intervallo che contiene un quantizzatore di riferimento (QREF), un aggiornamento di quantizzazione (QUPD)à ̈ scelto dalla LUT della zona di bilancio di bit selezionate e aggiunto al quantizzatore di riferimento della trama precedente (n-1), in modo che serva come quantizzatore di riferimento (QREF) per la trama successiva (n):
QREF(n)=QREF(n-1 ) QUPD (18)
Inoltre, per applicazioni che implementano la velocità di trasmissione variabile, per esempio applicazioni di registrazione audio/video digitali, la velocità di trasmissione media à ̈ impostata a priori ma il tempo di registrazione minimo dipende dal supporto disponibile, e il modulo VBR 308 stima automaticamente il tempo di registrazione sopra citato. Così per una sequenza ad elevata complessità, il controllore 116 tiene costante il QP, cosicché la qualità visiva e l'intero spazio di memorizzazione per memorizzare il contenuto audio-video digitale rimangono costanti. D'altra parte, se la sequenza ha bassa complessità, il controllore 116 mantiene ancora il QP costante ma non si utilizza l'intero spazio di memorizzazione. In aggiunta, la velocità di trasmissione istantanea massima 312 e la velocità di trasmissione istantanea minima 314 determinano i valori dei limiti inferiore e superiore del bilancio di bit.
Analogamente, il modulo di conformità 212 garantisce la conformità di buffer del flusso di bit di uscita 210 dal modulo VBR 308 con il modulo decodificatore (non illustrato nella figura) nei dispositivi riceventi 104. Questo controllo di conformità di buffer à ̈ eseguito per garantire che il flusso di bit di uscita 210 dal transcodificatore 114 non superi la capacità del modulo decodificatore. Altrimenti, i dispositivi riceventi 104 possono non riuscire a ricevere le trame di immagini richieste all'interno del tempo allocato per la decodifica e per la presentazione sincronizzata dei flussi di dati audio o video. Tale fallimento di ricezione dei dati può dare come risultato una perdita di dati e prestazioni inconsistenti in riferimento alla condizione di superamento e superamento negativo di memoria. Il modulo di conformità 212 calcola inoltre valori di parametri quali pienezza di buffer o occupazione di buffer, parametri di temporizzazione, e ritardo i buffer variabile all'inizio di ogni immagine. I valori sono quindi trasferiti al modulo decodificatore per inizializzare il suo buffer in modo da mantenere la sincronizzazione mentre si trasferisce il flusso di bit.
Tipicamente, il modulo di conformità 212 à ̈ implementato per garantire che le variazioni della velocità di trasmissione dei flussi di bit di uscita 210 non superi la capacità del buffer impostato della dimensione di buffer. La condizione di superamento di buffer avviene se occorre collocare un maggior numero di bit nel buffer quando il buffer à ̈ pieno. La condizione di superamento negativo di buffer avviene se alcuni bit non sono disponibili nel buffer quando i bit devono essere localizzati e caricati dal buffer per la decodifica/riproduzione.
In una implementazione, un modello di temporizzazione che utilizza elenchi collegati circolari può essere utilizzato in modo tale che in ogni tempo di arrivo finale di qualsiasi trama in un flusso di bit di uscita 210, un valore di pienezza di buffer istantaneo nel transcodificatore 114 possa essere sincronizzato con quello del modulo decodificatore. Allo scopo di corrispondere ai vincoli di buffer, la velocità di trasmissione desiderata e la pienezza di buffer sono impostate ai loro valori massimi. Si regola quindi un tempo di rimozione iniziale a un punto dove la pienezza di buffer à ̈ metà della sua dimensione massima. Invece di un semplice incremento, il tempo di rimozione à ̈ manipolato per evitare superamento o superamento negativo di buffer.
Per questa implementazione, il flusso di bit di uscita 210 à ̈ nello standard di codifica video H.264. Ora, per controllare la conformità del flusso di bit di uscita 210 senza riempimento di bit o salto di trame, si manipolano i parametri di temporizzazione. I parametri di temporizzazione sono il tempo di arrivo, cioà ̈ il tempo quando la trama di immagini entrerà in un buffer e il tempo di rimozione, cioà ̈ il tempo quando sarà rimosso dal buffer. In questo modo, i vincoli di buffer sono soddisfatti per i flussi di bit di uscita 210. In maniera simile, i vincoli di buffer possono essere controllati per flussi di bit di uscita 210 codificati nello standard di codifica video MPEG-4 per condizioni di superamento e superamento negativo. I grafici discussi nelle successive figure esemplificano il controllo di conformità per i flussi di bit di uscita 210 nello standard di codifica video H.264 4 a una velocità di trasmissione costante variabile utilizzando il modulo di conformità 212 sopra citato.
La Figura 4a rappresenta un grafico 400 che rappresenta un flusso di bit di uscita nello standard di codifica video H.264 a una velocità di trasmissione costante. Si può utilizzare un certo numero di sequenze di test quali foreman, flower, akina, films, calendar, ecc., per la convalida della velocità di trasmissione costante. Queste sequenze variano in termini di numero di trame totali, velocità di trama, complessità, primo piano, sfondo, dettagli di immagine, ecc. Per esempio, una sequenza di calendario a 97 trame e velocità di rama pari a 25 può essere utilizzata per la convalida della velocità di trasmissione costante. Insieme alla sequenza di test, durante la simulazione, i parametri quali velocità di trama, velocità di reazione 320, numero di trame di convergenza, velocità di trasmissione desiderata 310, e velocità di trasmissione effettiva sono variati e si calcola la deviazione della velocità di trasmissione desiderata per sequenze diverse in periodi di convergenza diversi ma ad una velocità di trama fissa. La velocità di trasmissione effettiva si riferisce alla velocità di trasmissione del flusso di bit di ingresso pre-compresso 206.
Il grafico 400 può essere ottenuto per la sequenza di calendario sopra citata tra pienezza di buffer, chiamata anche occupazione di buffer e tempo. Come illustrato nel grafico 400, la velocità di trasmissione generata 402 dal transcodificatore 114 à ̈ sempre all'interno dei limiti definiti da una dimensione di buffer 404. In questo modo, i vincoli di buffer sono soddisfatti per il flusso di bit di uscita nello standard di codifica video H.264.
La Figura 4b rappresenta un grafico 408 che illustra un flusso di bit di uscita nello standard di codifica video H.264 a una velocità di trasmissione variabile. Si possono utilizzare un certo numero di sequenze di test quali foreman, flower, akina, films, calendar, ecc., per la convalida della velocità di trasmissione variabile. Per esempio, si può utilizzare una sequenza di film con 908 trame totali, velocità di trama pari a 24 e una velocità di trasmissione desiderata di 1000 Kbps. Il grafico 408 può essere raffigurato tra i valori di QP e il numero di trame. Come illustrato nel grafico 408, QP varia tra venti e trenta per una velocità di trasmissione media 410 di un mega bit al secondo. Per esempio, la velocità di trasmissione istantanea massima 312 può essere specificata al cinquanta per cento in più della velocità di trasmissione media 410 e la velocità di trasmissione istantanea minima 314 può essere specificata al trenta per cento in meno della velocità di trasmissione media 410.
La Figura 5 illustra un diagramma di flusso 500 esemplificativo per controllare la velocità di trasmissione da parte del controllo 116 di Figura 3. Nel blocco 502, i parametri di ingresso sono specificati da un utente e si definisce anche la velocità di trama del flusso di bit di ingresso 208. In una implementazione, l'utente specifica vari parametri di ingresso o ingressi quale la velocità di trasmissione desiderata 310, la velocità di trasmissione istantanea massima 312, la velocità di trasmissione istantanea minima 314, la qualità massima 316, la qualità minima 318 e la velocità di reazione 320 attraverso l'interfaccia utente 302. Per esempio, questi ingressi possono essere specificati dall'utente attraverso una interfaccia di programmazione di applicazioni (API).
Nel blocco 504, si calcola un periodo di convergenza, espresso in termini di numero di trame, basandosi sui valori dei parametri di ingresso ricevuti. In una implementazione, il periodo di convergenza à ̈ calcolato basandosi sulla velocità di reazione 320 e il numero di trame al secondo, cioà ̈ la velocità di trama. Il periodo di convergenza specifica la lunghezza di trama ed à ̈ indipendente dalla struttura di GOP. La lunghezza di trama può o può non essere equivalente alla lunghezza di GOP. In un'altra implementazione, il modulo di controllo 304 calcola il periodo di convergenza.
Nel blocco 506, il periodo di convergenza à ̈ confrontato con il valore di soglia euristico per scegliere la modalità in cui il controllore 116 dovrebbe operare. L'unità di controllo 304 consente al controllore 116 di selezionare tra la modalità a velocità di trasmissione costante (CBR) e la modalità a velocità di trasmissione variabile (VBR) a seconda del periodo di convergenza. Se la velocità di reazione à ̈ tale per cui il periodo di convergenza calcolato à ̈ al di sotto di un valori di soglia euristico, il controllore 116 fornisce il flusso di bit di uscita 210 dal transcodificatore 114 a una velocità di trasmissione costante. L'unità di controllo 304 invia il flusso di bit di ingresso 208 al modulo CBR 306 e si sposta al blocco 508.
D'altra parte, se la velocità di reazione à ̈ tale per cui il periodo di convergenza à ̈ superiore al valore di soglia euristico, il controllore 116 fornisce il flusso di bit di uscita 210 dal transcodificatore 114 a una velocità di trasmissione variabile. In questo caso, l'unità di controllo 304 invia il flusso di bit di ingresso 208 al modulo VBR 308 e opera una transizione nel blocco 510.
Nel blocco 508, il flusso di bit di ingresso à ̈ inviato al modulo CBR 306 se il periodo di convergenza à ̈ inferiore al valore di soglia euristico e si applica un modello ibrido di modelli basati su obiettivo e buffer. La distribuzione di bit per le trame di immagine all'interno del periodo di convergenza si basa sul modello ibrido dei modelli basati su obiettivi e basati su bit e buffer. Se la velocità di reazione à ̈ impostata in modo tale che il periodo di convergenza sia al di sotto del valore di soglia euristico, il controllore 116 elabora il flusso di bit di ingresso 208 nel modulo CBR 306. Nel modulo CBR 306, i bit sono allocati ai vari tipi di trame di immagini a una velocità di trasmissione costante. Così, per immagini complesse, il QP aumenta laddove per immagini semplici il QP diminuisce. Il modulo CBR 306 fornisce un valore di stima di bit basato sul periodo di convergenza in opposto alla struttura di GOP, rendendo così il controllore 116 veramente indipendente da GOP.
In una implementazione, la valutazione della stima di bit à ̈ motivata dal metodo di efficienza statistica e stima efficiente in modo tale che per distribuzioni gaussiane e non gaussiane, si possano ottenere bassa varianza ed elevata efficienza statistica. Il modulo CBR 306 distribuisce i bit a vari tipi di trame di immagini nel periodo di convergenza basandosi sull'ampiezza di banda disponibile del canale di trasmissione e i tipi di trame di immagini. Per esempio, si può allocare un maggior numero di bit alle trame di immagini I a confronto con le trame di immagini P. La stima di bit à ̈ utilizzata per calcolare QSTEPe quindi QP. I valori di QP quando applicati sui flussi di bit di ingresso 208 generano un flusso di bit di uscita 210 a una velocità di trasmissione costante.
Nel blocco 512, si verifica la conformità di buffer. In una implementazione, il modulo di conformità 212 opera in modo diverso dalle due modalità principali di funzionamento nel controllore 116, cioà ̈ modalità di velocità di trasmissione costante e modalità di velocità di trasmissione variabile, controllando parametri specifici che sono più adatti alle due principali condizioni operative, consentendo un controllo migliore e più fine, insieme ad una migliore qualità di uscita.
Per la modalità a velocità di trasmissione costante, la verifica comporta la modifica del QSTEPin modo tale che si mantenga la pienezza di buffer. Il QP calcolato dalla stima di bit à ̈ applicato a un modulo di conformità 212 per verificare la conformità con le caratteristiche della rete 106 e i dispositivi riceventi 104. Per esempio, per verificare la conformità di un flusso di bit di uscita 210 nello standard di codifica video H.264, con il modulo decodificatore sul lato ricevitore, si controllano i vincoli di superamento e superamento negativo. Per evitare condizioni di superamento e superamento negativo, QSTEPà ̈ ricalcolato basandosi sui requisiti di pienezza di buffer, garantendo così conformità di buffer insieme alla convergenza di velocità di trasmissione. Di conseguenza, il QP che era stato calcolato utilizzando la stima di bit à ̈ anche regolato. Così, si garantiscono sia convergenza di velocità di trasmissione sia conformità di buffer nella modalità a velocità di trasmissione costante.
Nel blocco 514, si ottiene il flusso di bit a velocità di trasmissione costante. Il modulo CBR 306 genera un flusso di bit ricodificato a una velocità di trasmissione costante controllando il valore della stima di bit basandosi sugli ingressi ricevuti dall'utente e utilizzando i metodi di efficienza statistica e stima efficiente. Inoltre, si garantisce sempre la pienezza di buffer.
Ritornando al blocco 510, si applica il metodo di bilancio di bit. In detta implementazione, il flusso di bit di ingresso à ̈ inviato al modulo VBR 308 se la velocità di reazione 320 à ̈ tale per cui il periodo di convergenza calcolato à ̈ superiore al valore di soglia euristico e si applica il concetto di bilancio di bit al flusso di bit di ingresso 210. Se la velocità di reazione à ̈ impostata elevata dall'utente, il controllore 116 elabora la sequenza di ingresso nel modulo VBR 308. Nel modulo VBR 308, i bit sono allocati a una velocità variabile basandosi sul tipo di trama di immagine e la complessità di immagine. Una volta che il controllore 116 seleziona il modulo VBR 308, il periodo di convergenza non rimane più finito e il modulo VBR 308 si concentra soltanto sulla velocità di trasmissione istantanea massima 312 e la velocità di trasmissione istantanea minima 314 definita dall'utente e non sul periodo di convergenza.
La velocità di trasmissione istantanea massima 312 e la velocità di trasmissione istantanea minima 314 determinano la quantità di limiti inferiore e superiore di bilancio di bit rispettivamente. Nella modalità VBR, il modulo VBR 308 risparmia i bit per le sequenze a bassa complessità e riutilizza i bit risparmiati per le sequenze a elevata complessità, allo scopo di mantenere una qualità visiva costante all'interno della velocità di trasmissione desiderata. Questo à ̈ chiamato bilanciamento di bit. Il modulo VBR 308 mantiene il QP costante e si adatta uniformemente alle variazioni del contenuto audio-video digitale su base trama per trama, consentendo così una qualità costante lungo i vari GOP di una singola scena.
Nel blocco 516, i vincoli di buffer sono verificati. Come descritto in precedenza, si impiegano tecniche diverse da parte del modulo di conformità 212 per controllare la conformità di buffer. Qui, per la modalità a velocità di trasmissione variabile, il fattore determinante per garantire la conformità di buffer à ̈ l'arrivo e la rimozione dei parametri di temporizzazione di una trama di immagine nel buffer. Controllando i parametri di temporizzazione, si garantisce la conformità senza la necessità di riempimento di bit e salto di trame. In questo modo, il flusso di bit di uscita a velocità di trasmissione variabile generato dal transcodificatore 114 à ̈ sempre conforme con i vincoli di buffer dei vari standard di codifica quali H.264, MPEG-4, ecc.
Nel blocco 518, si ottiene un flusso di bit ricodificato a una velocità di trasmissione variabile ma qualità costante. Il modulo VBR 308 genera un flusso di bit ricodificato a una velocità variabile limitando i valori di QP all'interno della velocità di trasmissione istantanea massima 312 e una velocità di trasmissione istantanea minima 314.
Infine, Ã ̈ chiaro che si possono apportare numerose varianti e modifiche al sistema e al metodo descritti e illustrati in questo contesto, tutti entro l'ambito del campo di protezione dell'invenzione come definito nelle rivendicazioni allegate.

Claims (16)

  1. RIVENDICAZIONI 1. Sistema comprendente: una interfaccia utente (110) per ricevere uno o più parametri di ingresso; un controllore di velocità di trasmissione (116) per regolare la velocità di trasmissione di un flusso di bit di uscita, il controllore di velocità di trasmissione comprendendo: moduli di velocità di trasmissione multipli (304, 306) configurati per determinare una stima di bit e un parametro di quantizzazione; e un modulo di controllo (304) configurato per determinare un periodo di convergenza sulla base dei parametri di ingresso ricevuti e una velocità di trama, in cui il modulo di controllo seleziona un modulo di velocità di trasmissione sulla base del periodo di convergenza; ed un codificatore (204) per generare il flusso di bit di uscita utilizzando il parametro di quantizzazione determinato dal modulo di velocità di trasmissione selezionato dal modulo di controllo.
  2. 2. Sistema secondo la rivendicazione 1, in cui i moduli di velocità di trasmissione multipli comprendono almeno un modulo a velocità di trasmissione costante (CBR) (306) e un modulo di velocità di trasmissione variabile (VBR) (308).
  3. 3. Sistema secondo la rivendicazione 1 o 2, in cui l'interfaccia utente à ̈ una interfaccia di programmazione di applicazioni.
  4. 4. Sistema secondo la rivendicazione 2, in cui il parametro di ingresso à ̈ almeno uno tra velocità di trasmissione istantanea massima, velocità di trasmissione istantanea minima, qualità minima, qualità massima, velocità di trasmissione desiderata e velocità di reazione.
  5. 5. Sistema secondo una qualsiasi delle rivendicazioni 2-4, in cui il modulo di controllo seleziona il modulo CBR quando il periodo di convergenza à ̈ inferiore a un valore di soglia e il modulo VBR quando il periodo di convergenza à ̈ superiore al valore di soglia.
  6. 6. Sistema secondo una qualsiasi delle rivendicazioni 2-5, comprendente inoltre un modulo di conformità che verifica il flusso di bit di uscita per rilevare un superamento di buffer e un superamento negativo di buffer.
  7. 7. Sistema secondo una qualsiasi delle rivendicazioni 2-6, comprendente inoltre un transcodificatore (114) per transcodificare un flusso di bit di ingresso codificato in un primo standard di codifica di un flusso di bit di uscita avente un secondo standard di codifica, in cui il transcodificatore comprende detto controllore di velocità di trasmissione; ed un ricevitore (110) per ricevere il flusso di bit di uscita.
  8. 8. Metodo comprendente le fasi di: ricevere uno o più parametri di ingresso; determinare un periodo di convergenza sulla base dei parametri di ingresso ricevuti e una velocità di trama; selezionare una modalità di funzionamento sulla base del periodo di convergenza determinato; stimare un valore di una stima di bit sulla base della modalità di funzionamento selezionata; determinare un parametro di quantizzazione sulla base almeno del valore stimato della stima di bit; e generare un flusso di bit di uscita a una velocità di trasmissione che utilizza il parametro di quantizzazione determinato.
  9. 9. Metodo secondo la rivendicazione 8, in cui la modalità di funzionamento à ̈ una modalità a velocità di trasmissione costante quando il periodo di convergenza à ̈ inferiore ad un valore di soglia.
  10. 10. Metodo secondo la rivendicazione 8 o 9, in cui il parametro di ingresso à ̈ almeno uno tra velocità di trasmissione istantanea massima, velocità di trasmissione istantanea minima, qualità minima, qualità massima, velocità di trasmissione desiderata e velocità di reazione.
  11. 11. Metodo secondo la rivendicazione 10, in cui il periodo di convergenza à ̈ determinato sulla base della velocità di reazione e una velocità di trama.
  12. 12. Metodo secondo una qualsiasi delle rivendicazioni 9-11, in cui il metodo comprende inoltre stimare il valore della stima di bit sulla base di una velocità di trasmissione desiderata.
  13. 13. Metodo secondo una qualsiasi delle rivendicazioni 9-12, in cui il metodo comprende inoltre le fasi di: verificare il flusso di bit di uscita per rilevare un superamento di buffer e un superamento negativo di buffer; regolare il parametro di quantizzazione determinato sulla base del flusso di bit di uscita verificato; generare un flusso di bit di uscita conforme a buffer utilizzando il parametro di quantizzazione regolato.
  14. 14. Metodo secondo una qualsiasi delle rivendicazioni 9-13, in cui la modalità di funzionamento à ̈ una modalità a velocità di trasmissione variabile quando il periodo di convergenza à ̈ superiore a un valore di soglia.
  15. 15. Metodo secondo la rivendicazione 14, in cui il metodo comprende inoltre verificare il flusso di bit di uscita per rilevare una condizione di superamento di buffer e un superamento negativo di buffer controllando il tempo di arrivo e un tempo di rimozione di una trama di immagine.
  16. 16. Supporto leggibile da computer avente istruzioni per eseguire un metodo secondo una qualsiasi delle rivendicazioni 8-15.
ITTO2009A000486A 2009-06-25 2009-06-25 Controllore dinamico della velocita' di trasmissione indipendente dal gruppo di immagini IT1398196B1 (it)

Priority Applications (3)

Application Number Priority Date Filing Date Title
ITTO2009A000486A IT1398196B1 (it) 2009-06-25 2009-06-25 Controllore dinamico della velocita' di trasmissione indipendente dal gruppo di immagini
US12/819,604 US8913658B2 (en) 2009-06-25 2010-06-21 GOP-independent dynamic bit-rate controller
US13/827,210 US9497464B2 (en) 2009-06-25 2013-03-14 GOP-independent dynamic bit-rate controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
ITTO2009A000486A IT1398196B1 (it) 2009-06-25 2009-06-25 Controllore dinamico della velocita' di trasmissione indipendente dal gruppo di immagini

Publications (2)

Publication Number Publication Date
ITTO20090486A1 true ITTO20090486A1 (it) 2010-12-26
IT1398196B1 IT1398196B1 (it) 2013-02-14

Family

ID=41650122

Family Applications (1)

Application Number Title Priority Date Filing Date
ITTO2009A000486A IT1398196B1 (it) 2009-06-25 2009-06-25 Controllore dinamico della velocita' di trasmissione indipendente dal gruppo di immagini

Country Status (2)

Country Link
US (2) US8913658B2 (it)
IT (1) IT1398196B1 (it)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120102184A1 (en) * 2010-10-20 2012-04-26 Sony Corporation Apparatus and method for adaptive streaming of content with user-initiated quality adjustments
US9113141B2 (en) * 2010-12-09 2015-08-18 Intel Corporation Wireless channel aware adaptive video bit rate encoding
US9369723B2 (en) 2011-07-14 2016-06-14 Comcast Cable Communications, Llc Preserving image quality in temporally compressed video streams
KR101854469B1 (ko) * 2011-11-30 2018-05-04 삼성전자주식회사 오디오 컨텐츠의 비트레이트 판단장치 및 방법
CN103503462B (zh) * 2011-12-06 2017-09-19 华为技术有限公司 实时转码方法及设备
US9380327B2 (en) * 2011-12-15 2016-06-28 Comcast Cable Communications, Llc System and method for synchronizing timing across multiple streams
TWI505262B (zh) 2012-05-15 2015-10-21 Dolby Int Ab 具多重子流之多通道音頻信號的有效編碼與解碼
US9549189B2 (en) * 2012-11-06 2017-01-17 Ittiam Systems (P) Ltd. Method for media rate control in a video encoding system
US9438652B2 (en) 2013-04-15 2016-09-06 Opentv, Inc. Tiered content streaming
US20140321533A1 (en) * 2013-04-29 2014-10-30 Ati Technologies Ulc Single-path variable bit rate video compression
WO2015022685A1 (en) * 2013-08-13 2015-02-19 I.C.V.T Ltd. Quality driven video re-encoding
US10283091B2 (en) * 2014-10-13 2019-05-07 Microsoft Technology Licensing, Llc Buffer optimization
CN104469367B (zh) * 2014-12-16 2017-11-14 北京金山云网络技术有限公司 基于丢帧和量化参数调整的视频码率控制方法
US9872028B2 (en) * 2015-06-26 2018-01-16 Intel Corporation Wireless display adaptations and optimizations based on unfiltered and regional feedback
CN106331704B (zh) * 2015-07-07 2019-10-22 杭州海康威视数字技术股份有限公司 一种视频码率控制方法及视频编码装置
CN105245880B (zh) * 2015-09-21 2018-04-13 暴风集团股份有限公司 视频文件切分方法以及分布式转码方法
CN108206954B (zh) * 2016-12-16 2020-03-06 北京金山云网络技术有限公司 一种视频编码方法及装置
CN108235016B (zh) * 2016-12-21 2019-08-23 杭州海康威视数字技术股份有限公司 一种码率控制方法及装置
CN106961603B (zh) * 2017-03-07 2018-06-15 腾讯科技(深圳)有限公司 帧内编码帧码率分配方法和装置
CN107027030B (zh) * 2017-03-07 2018-11-09 腾讯科技(深圳)有限公司 一种码率分配方法及其设备
EP3396954A1 (en) 2017-04-24 2018-10-31 Axis AB Video camera and method for controlling output bitrate of a video encoder
EP3396961A1 (en) 2017-04-24 2018-10-31 Axis AB Method and rate controller for controlling output bitrate of a video encoder
EP3742728B1 (en) * 2019-05-24 2022-09-21 Axis AB A method and bitrate controller for controlling output bitrate of a video encoder
CN111901631B (zh) * 2020-07-30 2023-02-17 有半岛(北京)信息科技有限公司 一种直播视频的转码方法、装置、服务器和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1091588A1 (en) * 1999-04-23 2001-04-11 Sony Corporation Image encoder and its method
EP1096803A2 (en) * 1999-10-26 2001-05-02 Sharp Kabushiki Kaisha Video encoder and method for adjusting quantization step in real time
WO2002032141A2 (en) * 2000-10-10 2002-04-18 Koninklijke Philips Electronics N.V. Video bitrate control method and device for digital video recording
EP1524860A2 (en) * 2003-10-16 2005-04-20 Nvidia Corporation Apparatus, system, and method for video encoder rate control

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6643327B1 (en) * 2000-05-05 2003-11-04 General Instrument Corporation Statistical multiplexer and remultiplexer that accommodates changes in structure of group of pictures
US20030185299A1 (en) * 2001-11-30 2003-10-02 Taro Takita Program, recording medium, and image encoding apparatus and method
US8634458B2 (en) * 2005-02-23 2014-01-21 Canon Kabushiki Kaisha Image processing apparatus
KR101167523B1 (ko) * 2008-01-17 2012-07-20 노키아 코포레이션 무선 시스템에서의 적응적 멀티-레이트 코덱 비트 레이트 제어

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1091588A1 (en) * 1999-04-23 2001-04-11 Sony Corporation Image encoder and its method
EP1096803A2 (en) * 1999-10-26 2001-05-02 Sharp Kabushiki Kaisha Video encoder and method for adjusting quantization step in real time
WO2002032141A2 (en) * 2000-10-10 2002-04-18 Koninklijke Philips Electronics N.V. Video bitrate control method and device for digital video recording
EP1524860A2 (en) * 2003-10-16 2005-04-20 Nvidia Corporation Apparatus, system, and method for video encoder rate control

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SUN, HUIFANG; CHEN, XUEMIN; CHIANG, TIHAO: "Digital Video Transcoding for Transmission and Storage", 30 May 2004, CRC PRESS, ISBN: 0849316944, article "7.3 Hypothetical Reference Decoder", pages: 232 - 243, XP002568963 *

Also Published As

Publication number Publication date
IT1398196B1 (it) 2013-02-14
US20110142125A1 (en) 2011-06-16
US9497464B2 (en) 2016-11-15
US8913658B2 (en) 2014-12-16
US20130202031A1 (en) 2013-08-08

Similar Documents

Publication Publication Date Title
ITTO20090486A1 (it) Controllore dinamico della velocita&#39; di trasmissione indipendente dal gruppo di immagini
US8379670B2 (en) Method and device for transmitting video data
US9398488B2 (en) Video service buffer management in a mobile rate control enabled network
TWI478584B (zh) 一種視訊編解碼的方法及其裝置
JP7012747B2 (ja) ビデオフレーム符号化方法、端末、および記憶媒体
JP4729570B2 (ja) トリックモードおよび速度移行
US8824546B2 (en) Buffer based rate control in video coding
US8571098B1 (en) Variable bit rate encoding
US8401076B2 (en) Video rate control for video coding standards
JP4358215B2 (ja) 動画像符号化装置及びその方法
US11218663B2 (en) Video chunk combination optimization
US8780986B2 (en) Refresh pixel group selection and coding adjustment
TWI743098B (zh) 用於在顯示串流壓縮中量化參數之適應性計算的裝置及方法
US10003626B2 (en) Adaptive real-time transcoding method and streaming server therefor
US20180184089A1 (en) Target bit allocation for video coding
TWI519967B (zh) 雲端運算資源動態分配系統及其方法
CN103237210B (zh) 一种视频编码中比特分配的方法及系统
WO2021083286A1 (zh) 码率控制的方法与装置及计算机存储介质
KR100950275B1 (ko) 모델 파라미터 기반의 비디오 인코딩 비트율 제어장치와 방법 및 이를 수록한 저장매체
Xu et al. Rate control for consistent visual quality of H. 264/AVC encoding
Yunus et al. A rate control model of MPEG-4 encoder for video transmission over Wireless Sensor Network
Chen et al. Framework and Challenges: H. 265/HEVC Rate Control in Real-time Transmission over 5G Mobile Networks
JP7310212B2 (ja) データ中継装置、データ中継方法及びプログラム
US11509917B2 (en) Data delivery device, system, method, and recording medium
KR101637840B1 (ko) 토큰 버킷 기법을 이용한 비디오 스트리밍 서비스 제공 시스템 및 방법