ITMI20130785A1 - Codifica near-real time di un segnale lineare - Google Patents

Codifica near-real time di un segnale lineare

Info

Publication number
ITMI20130785A1
ITMI20130785A1 IT000785A ITMI20130785A ITMI20130785A1 IT MI20130785 A1 ITMI20130785 A1 IT MI20130785A1 IT 000785 A IT000785 A IT 000785A IT MI20130785 A ITMI20130785 A IT MI20130785A IT MI20130785 A1 ITMI20130785 A1 IT MI20130785A1
Authority
IT
Italy
Prior art keywords
segment
coding
signal
coded
segments
Prior art date
Application number
IT000785A
Other languages
English (en)
Inventor
Massimo Bertolotti
Stefano Crespi
Original Assignee
Sky Italia S R L
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 Sky Italia S R L filed Critical Sky Italia S R L
Priority to IT000785A priority Critical patent/ITMI20130785A1/it
Priority to EP14732359.6A priority patent/EP2997734B1/en
Priority to MYPI2015704061A priority patent/MY179715A/en
Priority to US14/890,901 priority patent/US9973770B2/en
Priority to PCT/IB2014/000709 priority patent/WO2014184632A1/en
Publication of ITMI20130785A1 publication Critical patent/ITMI20130785A1/it

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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • 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/114Adapting the group of pictures [GOP] structure, e.g. number of B-frames between two anchor frames
    • 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks

Description

"Codifica near-real time di un segnale lineare"
DESCRIZIONE
La presente invenzione si riferisce alla codifica di segnali lineari, in particolare la codifica near-real time di un segnale video compreso in flusso lineare.
ANTEFATTO DELL'INVENZIONE
Attualmente la trasmissione di canali e contenuti, in modalità broadcast (Satellite, Cavo, Terrestre) à ̈ basata sul concetto di avere un sistema di playout che emette, attraverso una playlist, in modo sequenziale una serie di canali e/o di contenuti. I canali possono essere inviati in formato SDÃŒ (Serial Digital Interface) o attraverso flussi IP (Internet Protocol) su rete Ethernet, verso un sistema di compressione rea time, il quale tipicamente à ̈ composto da uno o più encoder (ad esempio conformi alle norme MPEG2, MPEG4, AVC, H.264) che effettuano la compressione sia in modalità CBR (Constant Bit Rate, ovvero alle componenti audio, video e dati del canale vengono assegnati dei parametri e un bit rate fisso) sia VBR (Variable Bit Rate) . In particolare il processo VBR sfrutta, frame per frame, una statistica per dare più banda al canale (di un gruppo di canali) che ha contenuti richiedenti maggiore banda così da avere una buona qualità rispetto ad altri canali che nello stesso frame richiedono meno banda; in tal modo, ad esempio, à ̈ possibile mantenere fissa la banda totale (ad esempio di un transponder e/o un Mux digitale terrestre) dei diversi canali del gruppo.
La gestione della compressione, pur ottimizzata dal processo VBR, ad oggi à ̈ basata su una compressione reai time con una latenza, ossia la differenza di tempo tra l'istante in cui un frame entra nell'encoder a l'istante in cui ne esce compresso, che varia da pochi millisecondi a qualche secondo (ad esempio due secondi). L'encoder si trova quindi ad avere a disposizione solo pochi frame da analizzare; le routine di compressione non possono quindi effettuare delle analisi accurate del video, il che determina un limite alla capacità di riduzione (compressione) del flusso video in termini di rapporto tra qualità e dimensione del flusso dati (bit rate o banda) confrontato con quanto riescono a ottenere gli encoder che lavorano off-line (ad esempio gli encoder per il VOD, Video On Demand) e che quindi hanno la possibilità di analizzare l'intero video.
Pertanto, le codifiche note e attualmente applicate a flussi lineari di contenuto richiedono di una banda di trasmissione elevata per le ragioni sopra esposte
SOMMARIO DELL'INVENZIONE
La presente invenzione ha quale oggetto quello di ovviare ai problemi legati alle tecniche note di codifica di flussi lineari.
Un primo aspetto dell'invenzione prevede un metodo per la codifica near-real time di un segnale comprendente almeno un segnale video, il metodo comprendente le fasi di :
acquisire il segnale video incluso in un flusso lineare, in cui il flusso lineare comprende almeno due contenuti senza distinzione logica fra gli stessi;
suddividere il segnale video in almeno un primo e secondo segmento di rispettive durate prefissate, almeno uno dei due segmenti essendo adatto a contenere almeno una parte dei due contenuti e comprendente informazioni di ricomposizione;
effettuare una prima codifica del primo segmento utilizzando una codifica off-line per ottenere un primo segmento codificato;
- effettuare una seconda codifica del secondo segmento utilizzando una codifica off-line per ottenere un secondo segmento codificato, in cui la seconda codifica à ̈ effettuata almeno parzialmente in parallelo con la prima codifica;
ricomporre, utilizzando le informazioni di ricomposizione, il primo segmento codificato e il secondo segmento codificato per ottenere un segnale continuo codificato.
Un secondo aspetto dell'invenzione prevede un'entità per la codifica near-real time di un segnale comprendente almeno un segnale video, il dispositivo comprendente: - mezzi di acquisizione per acquisire il segnale video incluso in un flusso lineare, il flusso lineare comprendente almeno due contenuti senza distinzione logica fra gli stessi;
- mezzi di suddivisione per suddividere il segnale video in almeno un primo segmento ed un secondo segmento di durata prefissata, almeno uno dei segmenti essendo adatto a contenere almeno una parte dei due contenuti e comprendente informazioni di ricomposizione;
mezzi di prima codifica per effettuare una prima codifica del primo segmento utilizzando una codifica off-line per ottenere un primo segmento codificato; - mezzi di seconda codifica per effettuare una seconda codifica del secondo segmento utilizzando una codifica off-line per ottenere un secondo segmento codificato, detta seconda codifica essendo effettuata almeno parzialmente in parallelo con la prima codifica;
- mezzi di ricomposizione per ricomporre, utilizzando dette informazioni di ricomposizione, il primo e secondo segmento codificato per ottenere un segnale continuo codificato .
Un terzo aspetto dell'invenzione prevede un metodo per il trattamento di un segnale da sottoporre a codifica near-real time, detto segnale comprendente almeno un segnale video, detto metodo comprendente le fasi di:
acquisire il segnale video incluso in un flusso lineare, detto flusso lineare comprendente almeno due contenuti senza distinzione logica fra gli stessi;
suddividere il segnale video in almeno un primo segmento e secondo segmento ciascuno avente rispettiva durata prefissata, ciascuno dei segmenti essendo adatto a contenere almeno una parte di detti due contenuti senza distinzione logica e comprendente informazioni di ricomposizione ,
Un quarto aspetto dell'invenzione prevede un programma per elaboratore predisposto per eseguire, quando detto programma à ̈ eseguito su un computer, tutte le fasi secondo uno qualsiasi dei metodi previsti dagli aspetti su descritti.
LISTA DELLE FIGURE
La figura 1 illustra un diagramma di flusso di un metodo per codificare segnali in near reai time secondo una prima forma di realizzazione;
La figura 2 illustra un diagramma a blocchi di un'entità per codificare segnali in near reai time secondo una seconda forma di realizzazione;
La figura 3 illustra un diagramma di flusso di un metodo per il trattamento di un segnale da sottoporre a codifica near-reai time secondo una terza forma di realizzazione,·
La figura 4 illustra un diagramma a blocchi di un'entità per il trattamento di un segnale da sottoporre a codifica near- reai time secondo una quarta forma di realizzazione;
La figura 5 illustra un esempio per la codifica di segnali in near reai time;
DESCRIZIONE DETTAGLIATA
Gli inventori, sulla base delle loro considerazioni e analisi delle tecniche note di codifica di canali lineari, hanno osservato che una possibilità per migliorare il rapporto fra qualità e bit rate à ̈ l'utilizzo di un processo di compressione off-line. La compressione off-line à ̈ infatti particolarmente efficiente: a parità di qualità dell'output può comprimere il contenuto il 4 0% in più di una compressione reai time. Tuttavia, richiede un processo lungo e accurato, perché l'intero contenuto può dover essere processato più volte; al fine di mantenere un elevato livello di qualità, inoltre, il segnale codificato va analizzato per rilevare imperfezioni nel processo di compressione; le imperfezioni rilevate possono quindi essere rimosse e/o corrette. Questo processo accurato può richiedere 2-3 volte il tempo di durata del singolo contenuto. Si fa tuttavia notare che la compressione off-line processa singoli contenuti e non flussi continui di contenuti, ossia contenuti che hanno un inizio e una fine. Il prodotto della compressione, anche quando viene messo in sequenza, non perde questa individualità. Infatti, i contenuti compressi off-line, ove riuniti in sequenza, non hanno una fine che combacia perfettamente con l'inizio del contenuto successivo e per garantire la giunzione fra i contenuti à ̈ necessario inserire degli elementi "a nero". Ciò à ̈ dovuto al fatto che i contenuti off-line, anche quando riuniti in sequenza, sono unità logiche distinte poiché appartengono a due unità distinte, ad esempio a due file distinti o a due flussi di dati distinti. Più in particolare, in un contenuto compresso {sia esso un file o un flusso) ogni frame à ̈ contraddistinto da due „contatori", PTS (Presentation TimeStamp) e DTS (Display TimeStamp) . Il primo numera la sequenza di trasmissione dei frames, mentre il secondo indica l'ordine di riproduzione. Questi numeri devono essere monotonicamente crescenti all'interno del contenuto, e normalmente il primo frame del contenuto ha un numero scelto casualmente. Concatenando due contenuti à ̈ molto probabile che i due contatori violino il vincolo di crescita monotonica. Ciò rende necessario inizializzare, oltre ad altri parametri, i due contatori quando si comincia a processare un secondo contenuto. Questo rende la riproduzione di due contenuti separati codificati offline non adatta alla riproduzione lineare.
Grazie alla presente soluzione, Ã ̈ possibile ottenere un processo di codifica che possa garantire una compressione con un efficienza maggiore di quella attualmente disponibile sul mercato offerta dai provider di tecnologia, mantenendo invariati i processi di playout, compressione e trasmissione, ossia senza richiedere modifiche sostanziali all'architettura delle soluzioni esistenti.
Gli inventori hanno tuttavia riconosciuto, tra gli altri fattori, il problema che nella compressione reai time, notoriamente applicata alla codifica di canali lineari, la codifica deve essere eseguita in tempi ragionevolmente veloci che non consentono di ottenere un fattore di compressione particolarmente elevato, poiché questo richiederebbe diverse elaborazioni sul segnale e dei controlli di qualità non fattibili in tempi veloci. Nel caso invece di una compressione più accurata come quella off-line, il delay à ̈ estremamente elevato. In aggiunta, la compressione off-line non à ̈ adatta alla compressione di canali lineari, poiché questa opera su ciascun contenuto come unità logica a sé stante e quindi non à ̈ in grado di processare un flusso continuo in cui due o più unità di contenuto sono state congiunte senza distinzione logica.
Muovendosi dalle considerazioni di cui sopra e sulla base dei propri riconoscimenti, gli inventori propongono un sistema per ottimizzare le procedure di compressione dei contenuti destinati alla distribuzione in broadcasting. In particolare, si suggerisce di sfruttare i meccanismi di compressione off-line gestendoli in un tempo tale da garantire un delay configurabile e prevedibile, il delay essendo preferibilmente compreso tra una decina di secondi e qualche minuto. Questa modalità di codifica può definirsi Near Live o Near Reai Time e verrà illustrata nel seguito con riferimento alle diverse forme di realizzazione, loro varianti nonché esempi ,
Con riferimento alla figura 1, verrà illustrata una prima forma di realizzazione dell'invenzione relativa ad un metodo per la codifica near-real time di un segnale comprendente almeno un segnale video. Per codifica nearreal time si intende una codifica in cui la latenza (delay) introdotta dalla codifica à ̈ costante (o anche pressoché costante, come più avanti illustrato) e configurabile i cui valori tipici sono preferibilmente compresi tra una decina di secondi e qualche minuto (i valori sono illustrativi e non limitanti).
Nella fase S100 il metodo acquisisce un segnale video incluso in un flusso lineare. Il flusso lineare, o anche canale lineare, comprende almeno due contenuti senza distinzione logica fra gli stessi. Per contenuto si intende almeno uno tra servizi audio, video e dati corrispondenti a quelli usufruibili dall'utente. Sottotitoli o applicazioni (interattive o non) sono esempi del servizio dati. Esempi di contenuto sono film, pubblicità, promo, varietà, etc. Pertanto, un flusso lineare comprendente il segnale video acquisito include perlomeno due servizi video (come già detto, senza distinzione logica tra gli stessi). La non distinzione (o continuità) logica indica che i due contenuti, ad esempio i due servizi video, sono sequenziali senza interruzioni temporali e logiche. Per quanto visto prima nell'esempio precedente, i due contenuti sono caratterizzati da PTS e DTS aventi una sequenza corretta. Nel caso in cui sia desiderata un'interruzione intenzionale tra due video rappresentanti due programmi televisivi, ad esempio una pausa o uno stacco (ad esempio a nero), il flusso conterrà tale interruzione interposta tra i due programmi e senza essere separata logicamente dalle due unità rappresentanti i programmi stessi. In tal senso, l'interruzione può essere considerata come un'unità di contenuto (o un servizio video) frapposta fra i due programmi televisivi e logicamente contìnua con i programmi stessi all'interno del flusso lineare. Il processo di acquisizione della fase S100 può essere effettuato attraverso un'apposita scheda di acquisizione montata ad esempio su un server, o dai mezzi di acquisizione 210 con riferimento alla figura 2 più avanti illustrata. Il segnale acquisito può essere in un qualsiasi formato noto nell'arte, ad esempio in formato SD , HD-SDI, MPEG-2, MPEG-4, AVC, H.2 64, etc... Il segnale acquisito, se in un formato MPEG-2, MPEG-4, AVC, H.264, etc., può essere ottenuto applicando una codifica, ad esempio reai time, su un segnale digitale (o analogico dopo opportuna conversione) il quale può ad esempio essere disponibile nel formato SDÌ o HS-SDI.
In una fase S200 il segnale video à ̈ suddiviso in almeno un primo segmento ed un secondo segmento di rispettive durate prefissate (come diverrà evidente più avanti, i due segmenti possono avere diversa lunghezza a causa di scarti o tolleranze diverse o perché la lunghezza viene riconfigurata) . La durata prefissata può essere stabilita una volta per sempre o variata periodicamente in maniera manuale, ad esempio attraverso la configurazione di un operatore, o automatica, ad esempio per mezzo di un dispositivo di supervisione che altera ciclicamente la durata del segmento o sulla base di allarmi o analisi sul segnale. Per durata prefissata si intende una durata stabilita o una durata stabilita più o meno uno scarto stabilito come più avanti spiegato.
Pertanto, à ̈ possibile che due segmenti consecutivi in cui viene suddiviso il flusso lineare possano avere una durata diversa, sia perché la durata prefissata à ̈ stata nel contempo variata o perché à ̈ variata all'interno della tolleranza corrispondente allo scarto stabilito. Ciascuno di detti segmenti à ̈ adatto a contenere almeno una parte dei due contenuti menzionati. Ciò significa che ciascun segmento {in cui il flusso viene suddiviso) non deve necessariamente contenere parte di tutti e due i contenuti; deve però essere predisposto affinché questo avvenga quando necessario. In tal senso, un segmento in cui viene suddiviso il flusso lineare à ̈ diverso da un GOP, poiché infatti un GOP per definizione può contenere solo una parte relativa ad un contenuto e non contemporaneamente parti relative a due contenuti, essendo i due contenuti distinti e relativi a due unità logiche distinte. Si consideri l'esempio di un programma di news seguito da uno stacco pubblicitario, a sua volta seguito da un programma meteo. Nella suddivisione del flusso, molti dei segmenti conterranno solo una parte di una delle tre unità costituenti il flusso, mentre sarà possibile che almeno due segmenti comprendano ciascuno una parte di due flussi distinti (in particolare, un segmento conterrà con buona probabilità parte delle news e parte della pubblicità; un altro segmento, consecutivo o lontano dall'altro, potrà contenere parte della pubblicità e parte del meteo) . Nel caso in cui un contenuto, ad esempio il programma meteo, sia più corto della lunghezza di un segmento, vi sarà anche il caso in cui un segmento comprenda un'unità di contenuto nella sua totalità. Non può poi escludersi il caso in cui un contenuto (ad esempio le news) finiscano esattamente in corrispondenza della fine di un segmento. Nel seguito verranno illustrati esempi in cui il segmento ha lunghezza di 1 o 2 minuti (eventualmente con la tolleranza imposta dallo scarto predeterminato) ; tuttavia, la soluzione qui descritta non si limita a tali valori. Infatti anche una diversa lunghezza del segmento à ̈ adatta, purché sia sufficientemente maggiore del numero di frame su cui lavora un encoder rea time. Ad esempio, nel caso in cui un encoder reai time lavori su una media di 12 frame, un segmento avrà una lunghezza pari ad almeno tre volte il numero di frame reai time, preferibilmente almeno 5 volte, e ancora preferibilmente 10 volte. Infatti, più il segmento à ̈ lungo rispetto al numero di frame su cui opera encoder rea time, più si potrà trarre vantaggio dalla codifica off line. Essendo tuttavia la lunghezza (e la sua tolleranza o scarto) configurabili, à ̈ possibile mantenere un delay prevedibile e controllabile.
I segmenti comprendono inoltre delle informazioni di composizione per consentire la ricostruzione del flusso lineare (codificato) una volta completata la compressione di ciascuno dei segmenti. È infatti importante assicurarsi che i segmenti codificati (o in uscita) mantengano la stessa sequenza che i frame avevamo prima della segmentazione. Le informazioni di composizione, che nel seguito saranno anche indicate con il nome di informazioni di IN/OUT, sono rappresentate ad esempio da una numerazione progressiva assegnata a ciascun segmento, o da un identificativo univoco assegnato a ciascun segmento (' identificativo può essere associato ad esempio alla posizione relativa o assoluta del segmento nel flusso e/o al canale a cui il segmento appartiene, o un identificativo corrispondente o ricavato a partire da uno o ambedue i valori PTS e DTS più in alto citati, etc...).
In una fase S300 il metodo effettua una prima codifica del primo segmento utilizzando una codifica offline per ottenere un primo segmento codificato. La prima codifica del primo segmento può cominciare quando à ̈ stato ricevuto tutto il segmento o quando à ̈ stata ricevuta almeno una porzione dello stesso, la lunghezza della porzione dipendente dei parametri scelti per la codifica. In via opzionale e preferenziale, la codifica comincia quando una parte sostanziale del segmento à ̈ ricevuta dall'encoder addetto (ad esempio, si veda in alto, quando almeno 5, 7 o 10 volte il numero di frame di un encoder rea time sono stati ricevuti), al fine di poter effettuare un'analisi dettagliata su un numero rilevante di frame e ottenendo pertanto un fattore di compressione più elevato rispetto ad un algoritmo realtime operante su un numero di frame ben più limitato. Per codifica offline si intende qui una codifica senza vincoli temporali di rea -time, ossia con vincoli di tempo predefiniti e con igurabili. In altre parole, per codifica offline si intende una codifica i cui parametri sono impostati in modo da completare l'intero processo di codifica su un segmento in un intervallo di tempo prefissato (al limite entro una certa tolleranza) e configurabile; in un esempio tale intervallo à ̈ preferibilmente compreso tra la decina di secondi e qualche minuto. Poiché à ̈ possibile analizzare un numero elevato di frame, eventualmente anche tutti i frame del segmento, à ̈ possibile ottenere un fattore di compressione più elevato rispetto al caso di una codifica real-time e senza comprometterne la qualità. La presenza di due contenuti all'interno del segmento à ̈ tuttavia trasparente all'algoritmo di codifica offline poiché i due contenuti sono sequenziali e senza distinzione logica. Questo accorgimento crea un distinguo rispetto all'utilizzo comune degli encoder offline: infatti, nella tecnica nota un encoder offline à ̈ applicato ad un primo contenuto e, a codifica di questo completata, ad un secondo contenuto, la giunzione dei quali richiede l'inserimento di una pausa artificiale e non controllabile (o non così facilmente controllabile) e/o difficilmente configurabile. In contrasto, la segmentazione come su descritta consente di processare i due contenuti o parte dei due contenuti all'interno dello stesso segmento in maniera trasparente all'algoritmo di codifica offline. In altre parole, la codifica offline non deve conoscersi o preoccuparsi dell'inizio e della fine dei contenuti, ma deve solo processare ciascun segmento come un'unità a sé stante.
In una fase S400 viene effettuata una seconda codifica del secondo segmento utilizzando una codifica offline per ottenere un secondo segmento codificato. La codifica offline utilizzata nella fase S400 può essere preferibilmente la stessa di quella utilizzata nella prima codifica ma non necessariamente la stessa. In un esempio, i parametri di codifica applicati al primo segmento possono essere gli stessi o diversi da quelli applicati al secondo segmento. Come verrà illustrato più avanti, la prima e seconda codifica possono essere effettuate da due distinte unità hardware, da una stessa unità hardware le cui risorse sono opportunamente partizionate o da una qualsiasi combinazione hardware /software distribuita o concentrata. Si fa notare che la seconda codifica secondo la fase S400 à ̈ effettuata almeno parzialmente in parallelo con la prima codifica della fase S300. In altre parole, la seconda codifica comincia quando la prima codifica non à ̈ stata ancora completata. La seconda codifica può completarsi prima, contemporaneamente o dopo il completamento della prima codifica. Grazie all'esecuzione almeno parzialmente parallela, à ̈ più facile garantire che la codifica sia effettuata in un intervallo di tempo predefinito e configurabile e quindi evitare che il delay vada ad aumentare con il tempo e con il numero di segmenti processati. Tuttavia, non può escludersi il caso in cui per mezzo di ingenti risorse hardware /software sia possibile effettuare una codifica con compressione elevata di una prima porzione del segmento (quando ne à ̈ stato ad esempio ricevuto una porzione sostanziale, ad esempio almeno 5/7/10 volte il numero di fratrie di una codifica reai time) ed una codifica eventualmente con fattore di compressione minore - di una seconda parte del segmento di modo che la codifica totale del segmento sia completata in coincidenza o pochi frame dopo la ricezione dell'ultimo frame del segmento. In tale ipotesi i due segmenti potrebbero essere processati sequenzialmente così da avere un delay all'incirca pari alla lunghezza del segmento (e della tolleranza o scarto se presente). Si fa riferimento anche all'esempio illustrato più in basso con riferimento alla figura 5.
Nella fase S500 vengono ricomposti il primo segmento codificato ed il secondo segmento codificato utilizzando le informazioni di ricomposizione cosi da ottenere un segnale continuo codificato. Il segnale così ottenuto può quindi essere trasmesso in diffusione (ad esempio via satellite, digitale terrestre, internet, reti radio mobili, etc...), direttamente o dopo essere stato opzionalmente ulteriormente processato secondo le necessità .
La codifica offline à ̈ tale da completare la codifica stessa (ossia le varie elaborazioni necessarie) del rispettivo segmento in un tempo inferiore o uguale ad un delay pre-configurato . Il delay pre-configurato può essere impostato una volta per tutte o può essere variato manualmente o automaticamente; la variazione può essere effettuata ad intervalli prestabiliti (ad esempio con una certa frequenza: ogni ora, giorno, o ogni numero M di segmenti) o sulla base di altre impostazioni, ad esempio allarmi o stato della qualità del segnale in uscita. Il delay pre-configurato può anche essere messo in relazione con la lunghezza del segmento; ad esempio, può essere uguale in un esempio alla somma della lunghezza del segmento (e più in particolare alla durata prefissata, espressa in minuti, secondi, o millesimi di secondo) e di un intervallo predefinito (anch'esso espresso in un'unità di tempo). L'intervallo predefinito à ̈ una quantità maggiore o uguale di zero. In particolare, quando tale valore à ̈ uguale a zero, vorrà dire che il delay sarà uguale alla lunghezza del segmento (ossia alla durata prefissata) e che la codifica dovrà essere ultima quando l'ultimo frame del segmento à ̈ stato ricevuto (si veda più avanti: in questo caso la compressione degli ultimi frame sarà molto bassa o assente). Quando invece l'intervallo predefinito avrà un valore maggiore di zero, vuol dire che la codifica offline avrà più tempo a disposizione per codificare tutto il segmento una volta ricevuto l'ultimo fraine del segmento. Nell'esempio illustrativo di figura 5, la codifica dovrà essere ultimata in un tempo preconfigurato di 4 minuti. Ciò significa che una volta ricevuto l'ultimo frame del segmento, la codifica offline avrà ancora due minuti a disposizione per ultimare la codifica. In tal modo, à ̈ possibile controllare il delay complessivo ed evitare che questo vada ad accumularsi in maniera inaccettabile. La persona esperta del ramo riconosce che à ̈ possibile variare diversi fattori in vista delle esigenze, ed in particolare: lunghezza del segmento, delay e parametri di compressione (e/o potenza di calcolo). Ad esempio, fissato il delay desiderato, diminuendo la lunghezza del segmento à ̈ possibile lasciare più tempo alla codifica offline, che potrà quindi processare più approfonditamente i segmenti disponibili, e/o effettuare la codifica con risorse HW e/o SW meno performanti. Ragionamenti analoghi si applicano al caso in cui un segmento più lungo sia scelto. In maniera simile, allungando il delay, si potrà allungare la lunghezza del segmento (consentendo quindi alla codifica offline di analizzare più segmenti) e/o dare più tempo alla codifica offline per analizzare i frame del segmento.
Come su accennato, i suddetti primo e secondo segmenti sono distinti dai raggruppamenti di frame ottenuti tramite un noto algoritmo di codifica video quale MPEG2, MPEG4 o H.264 (in cui il GOP rappresenta un esempio del raggruppamento) . Infatti, il segmento può essere ottenuto a partire ad esempio da un segnale SDÃŒ che, anche qualora fosse compresso, non presenta una struttura con raggruppamenti di frame. È importante inoltre osservare che la segmentazione si basa sulle considerazioni del delay configurabile e prevedibile, mentre il raggruppamento à ̈ determinato dall'encoder sulla base di considerazioni imposte dai parametri della codifica. In altre parole, la scelta della lunghezza del segmento à ̈ dettata o basata su una latenza desiderata, e indipendente da valutazioni relative alla codifica. Può dirsi pertanto che un raggruppamento di frame à ̈ effettuato sulla base di decisioni dell'algoritmo di codifica, mentre la segmentazione à ̈ fatta a priori o indipendentemente dai criteri che ne regolano la codifica. Nel caso in cui il segnale d'ingresso non comprenda un raggruppamento (ad esempio il caso in cui segnale acquisito nella fase S100 sia in un formato digitale ma non MPEG), la durata prefissata del segmento può essere pari ad un tempo predeterminato, ad esempio esattamente un minuto. In tal caso, il segnale d'ingresso, ad esempio in formato HD-SDI, verrà esattamente spezzettato in segmenti di un minuto (un minuto à ̈ un esempio non limitante; altri valori possono essere 10s o meno, 2min, lOmin, o anche più). Nel caso in cui invece il segnale d'ingresso sia un segnale raggruppato (ad esempio in formato MPEG2, MPEG4, AVC, H.264, etc...), la durata prefissata del segmento potrà (ma non necessariamente dovrà) essere uguale ad un tempo predeterminato più o meno un certo valore prestabilito che indicheremo con Δ, e che chiameremo anche scarto prestabilito. Il valore Δ (delta) può essere scelto uguale alla lunghezza massima prevedibile del GOP del segnale di ingresso, uguale alla durata media (prevista, statistica o basata sul flusso finora ricevuto) del GOP del segnale di ingresso, o uguale ad una quantità a sua volta prestabilita per consentire che il segmento venga chiuso esattamente in corrispondenza della fine di un GOP del segnale di ingresso. Quanto detto verrà chiarito con un esempio: si supponga che il segnale di ingresso sia caratterizzato da un GOP a lunghezza variabile ma avente lunghezza media pari a 05s, e che la lunghezza del segmento debba essere pari a circa 1 minuto al fine di avere un delay pressoché costante pari a circa un minuto. Poiché la lunghezza à ̈ variabile, non può escludersi il caso in cui in corrispondenza del sessantesimo secondo del segmento in esame il GOP del segnale in ingresso non sia ancora finito: si ipotizzi che restino ancora N frame (ad esempio 10 frame) per chiuderlo. Impostando il delta ad un valore pari a dodici trame (nell'esempio, la lunghezza media del GOP di ingresso), il segnale di ingresso potrà essere suddiviso al sessantesimo secondo più dodici trame o al sessantesimo secondo meno due trame, ossia all'interno dell'intervallo (60s - Δ, 60s+ Δ). Altri esempi sono possibili, in cui l'intervallo in questione à ̈ (60s, 60s+ Δ) , (60s - Δ, 60s), (60s - Δ1, 60s+ Δ2) con Δ1 e Δ2 maggiori di o uguali a zero. In tal modo, si consente la chiusura del segmento con la chiusura del corrispondente GOP del segnale d'ingresso; ossia, l'ultimo trame del segmento coincide con l'ultimo trame di un GOP del segnale di ingresso. Si può pertanto dire che la durata prefissata corrisponde alla combinazione di un tempo predeterminato ed uno scarto prestabilito (negli esempi rappresentati rispettivamente da 60s e dal valore Δ). In altre parole, la durata prefissata à ̈ compresa in un intervallo temporale determinato dalla combinazione di un tempo predeterminato ed uno scarto prestabilito. Si fa inoltre notare quanto segue. Al fine di evitare che la latenza cresca eccessivamente con il tempo e con il passare dei segmenti, il Δ può essere variato periodicamente. Ad esempio, nel caso in cui dieci segmenti consecutivi venissero segmentati tutti per una lunghezza pari a un minuto più dodici trame, la segmentazione dei segmenti successivi potrà essere effettuata in anticipo (quindi con un delta negativo) per un certo numero di segmenti successivi fintanto che la latenza complessiva non rientri entro certi limiti.
La variazione del delta può essere quindi controllata sulla base della latenza complessiva misurata in un certo istante (o ad istanti campione) o sulla media delle latenze introdotte dagli ultimi M (con M grande a piacere) segmenti.
Secondo un primo esempio illustrativo, la codifica offline consente opzionalmente di processare più volte il singolo segmento o almeno parte di questo. Secondo un altro esempio, il segnale elaborato, processato uno o più volte come nel primo esempio, può essere analizzato per rilevare imperfezioni dovute al processo di compressione, le quali possono quindi essere opzionalmente rimosse e/o corrette.
Secondo un'opzione illustrativa, la codifica offline può comprendere la variazione della lunghezza del raggruppamento di frame. Ad esempio, nel caso di una codifica H.264, la codifica offline può decidere, dopo aver analizzato tutto il segmento o una parte sostanziale dello stesso, di variare la lunghezza del GOP all'interno del segmento in maniera tale da ottimizzare la compressione e la qualità.Ad esempio, se l'analisi dell'intero (o parte del) segmento rivela la presenza di una scena statica, l'encoder potrà decidere di adottare un GOP molto lungo (ad esempio 5, 10 o più volte più lungo di quello che un encoder reai time avrebbe scelto) e quindi ottenendo un'elevata compressione non altrimenti raggiungibile da una compressione reai-time, poiché quest' ultima non à ̈ in grado di analizzare molti rame nel futuro.
Secondo un'ulteriore opzione illustrativa, la codifica offline può comprendere il processare un segmento più volte al fine ad esempio di rilevare, rimuovere e/o correggere eventuali imperfezioni. Il ripetuto processare può comprendere anche applicare, in ciascuna iterazione, diversi parametri di compressione al fine di selezionare la migliore codifica al termine di un certo numero di iterazioni.
Nell'esempio in cui il segnale di ingresso sia raggruppato il segmento à ̈ costituito da un numero finito di raggruppamenti del segnale di ingresso. Come su già spiegato, infatti, in tal caso la durata prefissata sarà pari ad un tempo predeterminato ed uno scarto Δ per sincerare che il segmento sia chiuso non in corrispondenza di un timer predefinito ma in corrispondenza dell'ultimo frame del GOP del segnale di ingresso, à ̈ inoltre pensabile il caso in cui si voglia effettivamente limitare la durata prefissata ad un tempo predeterminato {ossia con delta uguale a zero) , ad esempio un minuto, nonostante il segnale di ingresso sia raggruppato. In tal caso, sarà necessario decodificare il segnale di ingresso così da ottenere un segnale intermedio scollegato dai vincoli della precedente codifica; in tal modo, sarà possibile suddividere o interrompere il segnale intermedio con il rame che cade esattamente in corrispondenza del sessantesimo secondo.
Secondo un ulteriore esempio, il segnale continuo codificato viene ricomposto insieme ad almeno uno tra un segnale audio ed un segnale dati. I segnali audio e dati possono essere compressi o meno. Pertanto, il metodo descritto in alto, ad esempio con riferimento alla figura 1, può essere applicato non solo alla codifica di un segnale video ma anche alla codifica di un segnale comprendente anche un segnale audio e/o un segnale dati.
In un ulteriore esempio il segnale continuo codificato e relativo ad un canale viene ricomposto insieme ai segnali video (eventualmente anche con audio e/o dati) di altri canali.
Secondo un ulteriore esempio, il segnale video compreso nel flusso lineare come più in alto descritto può essere sottoposto ad una codifica real-time prima di essere acquisito (S100) o dopo essere stato acquisito. Ad esempio, nel caso in cui il segnale di ingresso sia un segnale SDÃŒ o HD-SDI, à ̈ possibile effettuare una prima compressione real-time per ottenere un segnale raggruppato secondo uno standard noto (ad esempio MPEG2, MPEG4 o H.264), per poi essere sottoposto alle successive fasi S200, S300, S400 ed S500 come illustrate nella figura 1. In tal caso, la codifica real-time potrà essere impostata per elaborare solo un numero molto limitato di frame, ad esempio un numero tra 10 e 15, ottenendo così in tempi rapidi un segnale avente una banda di lOMb/s (ad esempio con una lunghezza media del GOP pari a 12 frame) e quindi molto più limitata di quella di un segnale ad esempio HD-SDI avente una banda pari ad esempio a 1.5Gb/s. In tal caso, la segmentazione potrà essere effettuata sul segnale codificato in rea time. In alternativa, la segmentazione potrà essere effettuata prima della compressione reai-time, ossia direttamente sul segnale HD-SDI. Ciascun segmento può quindi essere sottoposto ad una prima compressione reai time del segmento, alla quale seguirà la codifica offline come da fasi S300 e S400, consentendo quindi di raggiungere un elevato livello di compressione senza pregiudicare la qualità ma mantenendo una latenza prefissata e configurabile.
In un esempio illustrativo, la prima codifica può essere seguita da un primo encoder, mentre la seconda codifica da un secondo encoder, in cui sia il primo che il secondo encoder sono parte di una struttura encoder dedicata al flusso lineare. Maggiori dettagli verranno forniti nel seguito con riferimento alla figura 2.
Una seconda forma di realizzazione verrà nel seguito illustrata con riferimento alla figura 2 in cui à ̈ rappresentata un'entità per la codifica real-time di un segnale comprendente almeno un segnale video. Un'entità può essere implementata in un solo dispositivo, per via HW/SW o combinazione di questi, o su molteplici unità o dispositivi interconnessi {anch'essi HW, SW o combinazione degli stessi) . Tutte le considerazioni già espresse con riferimento alla prima forma di realizzazione varranno in generale anche nel seguito {e quindi con riferimento anche ad altre forme di realizzazione o esempi) e non saranno pertanto ripetute. Il dispositivo 200 della figura 2 comprende mezzi di acquisizione 210, mezzi di suddivisione 220, mezzi di prima codifica 230, mezzi di seconda codifica 240 e mezzi di ricomposizione 250.
I mezzi di acquisizione 210 sono configurati per acquisire il segnale video incluso nel flusso lineare, il flusso lineare comprendente almeno due contenuti senza distinzione logica fra gli stessi. Il segnale IN fornito ai mezzi di acquisizione à ̈ un esempio del segnale di ingresso su menzionato, che può essere in formato raggruppato (ad esempio secondo standard quali MPEG2 , MPEG4, AVC, H.264, etc...) o non raggruppato perché fornito ad esempio in formato HD-SDI, SDÃŒ, etc..., o in qualsiasi formato digitale (perché così disponibile dalla fonte o dopo conversione da segnale analogico).
I mezzi di suddivisione 220 suddividono il segnale acquisito in almeno un primo segmento ed un secondo segmento di rispettive durate prefissate (come suddetto non necessariamente identiche) , in cui almeno uno dei due segmenti à ̈ adatto a contenere almeno una parte dei due contenuti (infatti, à ̈ importante che almeno un segmento abbia questa proprietà, nel caso si riesca a stabilire che l'altro segmento conterrà certamente solo un contenuto) . I segmenti comprendono inoltre informazioni di ricomposizione, come più in alto accennato o come più avanti ulteriormente dettagliato.
I mezzi di prima codifica 230 sono configurati per effettuare una prima codifica del primo segmento (221) utilizzando una codifica offline cosi ottenendo un primo segnale codificato 232. I secondi mezzi di codifica 240 sono invece configurati per effettuare una seconda codifica del secondo segmento (222) utilizzando una codifica offline per ottenere un secondo segmento codificato 242. Nella figura i segnali di uscita 221 e 222 sono illustrati come uscenti da due porte distinte; i mezzi 220 possono tuttavia essere configurati per essere emessi da una stessa porta. Lo stesso vale per gli ingressi ai mezzi 250. La seconda codifica à ̈ effettuata almeno parzialmente in parallelo con la prima modifica, per le ragioni su illustrate, sebbene sia pensabile omettere uno dei due encoder 230, 240 in modo da eseguire la codifica dei due segmenti sequenzialmente, purché 'encoder rimanente abbia risorse sufficienti per garantire che la codifica sia completata con l'ultimo fraine o subito dopo la ricezione dell'ultimo frame {nell'ipotesi ad esempio che l'ultima porzione del frame non sia compressa o compressa con un fattore di compressione assai minore da garantirne il completamento della compressione in corrispondenza o quasi della fine del segmento).
I mezzi di ricomposizione 250 ricompongono infine, utilizzando le informazioni di ricomposizione, il primo segmento codificato 232 ed il secondo segmento codificato 242 per ottenere un segnale continuo codificato OUT. Il segnale così ottenuto può quindi essere portato in diffusione eventualmente dopo essere stato sottoposto ad ulteriori elaborazioni.
Si fa notare che la figura 2 à ̈ una rappresentazione schematica. I mezzi di acquisizione 210, di suddivisione 220, di prima e seconda codifica 220 e 230 nonché di ricomposizione 250 (notando che possono essere anche identificati come acquisitore 210, suddivisore 220, primo e secondo encoder 230, 240 e ricompositore 250, rispettivamente) possono essere realizzati in hardware, in software o combinazione opportuna dei due. Ad esempio, gli encoder 230 e 240 possono essere ottenuti tramite due strutture hardware separate, o per mezzo di una partizione logica di una stessa struttura hardware. È inoltre pensabile combinare diversi encoder separati con uno o più encoder più performanti da partizionare in maniera logica, caso che potrebbe tornare di utilità in presenza ad esempio di un numero elevato di segmenti da processare in parallelo. Inoltre, potrebbe utilizzarsi un encoder con struttura Grid, in grado di suddividere il lavoro di codifica (schematicamente rappresentato dai blocchi 230 e 240) su più macchine e processori contemporaneamente .
Con riferimento alla figura 3, verrà illustrata una terza forma di realizzazione relativa ad un metodo per il trattamento di un segnale da sottoporre a codifica near-real time, in cui il segnale comprende almeno un segnale video. In una fase S310 viene acquisito il segnale video incluso in un flusso lineare, il flusso lineare comprendente almeno due contenuti senza distinzione logica fra gli stessi. Tale segnale può essere rappresentato dal segnale d'ingresso precedentemente descritto, quale ad esempio in formato non compresso, in un formato SDÃŒ o HD-SDI o in formato compresso secondo un formato MPEG2, MPEG4, AVC, H.264, etc... In una successiva fase S320, il segnale video viene suddiviso in almeno un primo segmento ed un secondo segmento di durata prefissata, in cui ciascuno dei due segmenti à ̈ adatto a contenere almeno una parte dei due contenuti senza distinzione logica. Ciascuno dei segmenti comprende inoltre informazioni di ricomposizione. Come su accennato, la durata prefissata corrisponde alla combinazione di un tempo predeterminato ed uno scarto prestabilito, in cui lo scarto prestabilito può assumere il valore di 0 in un caso specifico. Nel caso in cui lo scarto prestabilito assuma un valore uguale a 0, ciascun segmento avrà una durata costante uguale al tempo predeterminato fintanto che il tempo predeterminato non venga variato manualmente o automaticamente come su illustrato. Ad esempio, nel caso in cui il tempo predeterminato sia uguale ad un minuto e lo scarto prestabilito uguale a 0, ciascun segmento avrà esattamente la lunghezza di un minuto fintanto che nessuno di tali valori non venga modificato per via manuale e/o automatica. Nel caso in cui il segnale di ingresso sia raggruppato, non potrà escludersi il caso in cui i GOP del segnale di ingresso siano caratterizzati da una lunghezza leggermente variabile. Al fine di ottenere un segmento che comprenda un numero intero di GOP, sarà pertanto opportuno impostare la durata prefissata aggiungendo o sottraendo uno scarto prestabilito al tempo predeterminato. Si consideri ad esempio un tempo predeterminato pari a 60s e uno scarto prestabilito pari a dodici frame, valore scelto perché coincidente nell'esempio con la lunghezza media del GOP del segnale d'ingresso. La fine di un segmento potrà quindi essere convenientemente determinata in corrispondenza della fine dell'ultimo frame del GOP compreso nell'intervallo (60s 12; 60s 12 frame). Si fa riferimento anche alla discussione presentata più in altro che, come detto, si applica anche a questa ed altre forme di realizzazione nonché esempi. Le informazioni di ricomposizione sono tali da consentire la ricostruzione dei segmenti in uscita, una volta codificati, in modo da rispettare la stessa sequenza prima della segmentazione. Ad esempio, le informazioni di ricomposizione sono rappresentate da un numero sequenziale o da un identificativo univoco di ciascun segmento all'interno di ciascun flusso lineare o canale, come su illustrato. Le informazioni di ricomposizione si rendono necessarie poiché non si può escludere il caso in cui la codifica di un secondo segmento, temporalmente successivo al primo, sia completata prima della codifica del primo segmento. Si pensi ad esempio il caso in cui il secondo segmento si riferisca ai titoli di coda di un film ed il primo segmento all'ultima scena di azione dello stesso film: non può escludersi il caso in cui la codifica dei titoli di coda sia ultimata prima che l'ultima scena di azione sia codificata, in particolare nel caso in cui nella codifica della scena di azione sia necessario rielaborare più volte i frame o nel caso in cui vengano rilevati degli errori da correggere tramite un ulteriore passaggio Le informazioni di ricomposizione consentono pertanto di ovviare ad un'errata ricostruzione del segnale codificato.
Secondo una fase opzionale non illustrata in figura 3, il metodo può comprendere una fase di ricomporre, utilizzando le informazioni di ricomposizione, un primo segmento codificato ed un secondo segmento codificato ottenuti codificando i due segmenti risultanti dalla fase S320.
La figura 4 illustra un'ulteriore forma di realizzazione relativa ad un dispositivo per il trattamento per un segnale da sottoporre a codifica near-real time e comprendente mezzi di acquisizione 410 e mezzi di suddivisione 420. I mezzi di acquisizione 410 sono adatti ad acquisire il segnale video incluso in un flusso lineare, il flusso lineare comprendente almeno due contenuti senza distinzione logica fra gli stessi. I mezzi di suddivisione 420 sono invece configurati per suddividere il segnale video in almeno un primo segmento ed un secondo segmento di durata prefissata in cui ciascuno à ̈ adatto a contenere almeno una parte di uno dei due contenuti senza distinzione logica fra gli stessi. Inoltre, ciascuno dei segmenti comprende informazioni di ricomposizione. Grazie a tale accorgimento, à ̈ possibile scomporre un flusso continuo in segménti di durata prefissata facile da processare, ad esempio (ma non limitatamente) facile da sottoporre ad una codifica offline trasparente all'encoder offline.
11 flusso così segmentato può essere più facilmente sottoposto ad altre operazioni normalmente non (direttamente) applicabili a flussi lineari.
La figura 5 illustra un esempio esplicativo in cui un flusso lineare IN avente una banda B1 à ̈ processato secondo il metodo illustrato nella figura 1 o una delle sue varianti. Nell'esempio della figura 5, si ipotizza che il segnale IN sia in formato HD-SDI avente banda 1.5 Gb/s o sia raggruppato in GOP aventi lunghezza media di 12 frame e banda di 10 Mb/s ottenuti tramite ad esempio 10 standard H.264. Il flusso IN viene quindi segmentato nei segmenti SI, S2, S3 (e così via secondo le necessità) ciascuno avente lunghezza di due minuti nell'esempio (notando che la lunghezza potrebbe differenziarsi di pochi millisecondi al fine di includere un numero intero di GOP (Ng) nel caso in cui 11 segnale IN sia raggruppato. Nell'ipotesi in cui esistano solo due encoder, il primo segmento SI verrà processato in un intervallo TI mentre il secondo segmento S2 in un corrispondente intervallo T2.
intervallo T2 comincerà al più presto nel momento in cui il segmento S2 à ̈ disponibile. Al termine di ciascuna codifica, ossia al termine degli intervalli TI e T2, rispettivamente, i segmenti compressi S'1 e S'2 sono forniti in uscita in una sequenza corrispondente ai segmenti d'ingresso SI e S2 grazie alle informazioni di ricomposizione. In tal modo, la sequenza dei frame di uscita corrisponde alla sequenza dei frame di ingresso. Sebbene gli intervalli TI e T2 siano raffigurati come aventi la stessa lunghezza, il loro tempo di codifica può variare, anche sostanzialmente nella pratica, come illustrato più in alto nell'esempio dei titoli di coda e della scena di azione. La codifica offline applicata rispettivamente nei tempi TI e T2 dovrà essere tale da garantire il completamento della compressione dell'intero segmento prima che lo stesso debba essere reso in output. Nell'esempio illustrato vi saranno dei corrispondenti margini MI e M2 indicanti che ciascuno degli encoder ha completato le rispettive operazioni con un certo anticipo rispetto al momento in cui il segmento deve essere reso in uscita (i due segmenti devono essere resi in uscita rispettivamente al minuto 3:00 e al minuto 5:00), Ciò significa che ad esempio, dimensionando ad esempio 1'encoder rispetto ad un caso tipico, à ̈ possibile prevedere un tempo di sicurezza MI o M2 per processare segmenti particolarmente complessi (ad esempio ricchi di dettagli o di cambi di scena) o per correggere errori inaspettati.
Nella figura 5 à ̈ illustrato l'esempio in cui due segmenti sono processati in parallelo. Tuttavia la persona esperta del ramo riconoscerà immediatamente che la stessa parallelizzazione può applicarsi al caso di un numero N (grande a piacere) di segmenti da processare in parallelo. In tal caso vi saranno N processi distinti anziché due, realizzati da un encoder con architettura grid, da N encoder distinti o da qualsiasi combinazione HW/SW opportunamente predisposta. Come su accennato, à ̈ pensabile anche rinunciare alla parallelizzazione nel caso in cui si abbia a disposizione un encoder particolarmente potente, ad esempio in grado di effettuare un'ottima compressione sulla maggior parte del segmento (escluso ad esempio l'ultima parte del segmento, ad esempio gli ultimi 20 frame o l'ultimo o alcuni degli ultimi GOP) in modo da completare il processo nel momento in cui l'ultimo GOP del rispettivo segmento à ̈ ricevuto (o pochi istanti dopo che l'ultimo trame à ̈ stato ricevuto, ad esempio l'equivalente di 10-50 rame dalla fine del segmento). Come detto, i valori della figura 5 sono puramente esemplificativi. In un altro esempio, si potrebbe scegliere un segmento di 32sec con un tempo di 4 min lasciato alla codifica offline. La latenza rimane costante (al limite nell'intervallo stabilito dalla tolleranza o scarto di cui sopra) perché, nei 4 minuti necessari a codificare il primo segmento vengono avviate (in parallelo) le codifiche dei segmenti successivi, e quindi a 4:00 à ̈ pronto il primo segmento, a 4:32 à ̈ pronto il secondo, a 5:04 il terzo e cosi via.
Secondo un'altra forma di realizzazione, la presente invenzione prevede inoltre un programma per elaboratore predisposto per eseguire, quando lo stesso programma à ̈ eseguito su computer, una o più delle fasi secondo il metodo su descritto o una delle sue varianti. Il computer su cui questo programma può essere eseguito à ̈ da intendersi come un qualsiasi sistema in grado di elaborare segnali e processare istruzioni, realizzato in una o diverse unità interconnesse fra di loro, in grado di eseguire istruzioni programmate o predisposte per le esecuzioni delle fasi su descritte.
Le istruzioni del programma per elaboratore possono inoltre essere memorizzate su un supporto adeguato, quale ad esempio una memoria statica, un disco fisso o un qualsiasi altro supporto quale CD, DVD, Blue Ray, o possono essere trasmesse su un segnale portante per l'esecuzione su un'entità remota.
Come su esposto, i riconoscimenti degli inventori hanno portato ad una nuova soluzione per il Video Encoding che sfrutta i meccanismi di compressione off-line, ma li gestisce in un tempo tale da garantire un delay massimo dell'ordine di qualche minuto (nell'esempio della figura 5) . La definizione di questa modalità di video encoding à ̈ definita Near Live o Near Reai Time. I passaggi del procedimento di video encoding in Near Reai Time sono i seguenti in questo ulteriore esempio illustrativo:
• acquisizione del segnale audio/video/sottotitoli in ingresso, compressione live del segnale audio/video in un formato ad altissima qualità ed alto bit rate e contestuale estrazione e salvataggio dei sottotitoli; ad esempio, il processo di acquisizione del segnale HD-SDI viene effettuato attraverso un apposita scheda di acquisizione montata su un server. Il segnale a 1.5Gbit/s non può essere scritto a questo bit rate su supporti comunemente utilizzati, pertanto c'à ̈ un primo encoding effettuato a 50 Mbit/s in CBR con GOP a 4 secondi (questa scelta non à ̈ vincolante) . La gop à ̈ settata "closed" in modo da permettere la divisione del flusso continuo in più segmenti di durata prefissata. In questo stadio (di questo esempio) vengono anche acquisiti i sottotitoli all'interno dei VANC dell'SDÃŒ che vengono estratti in forma binaria e segmentati in modo sincrono al flusso audio/video in modo che per ogni segmento audio/video ci sia il corrispondente segmento di sottotitolo.
• suddivisione del flusso continuo audio/video (senza distinzione logica tra un contenuto e un altro) in Segmenti (costituiti da n-GOPs o Group Of Pictures) di durata prefissata dall'operatore, con estrazione di informazioni in/out (ossia informazioni che consentono di riaggregare i Segmenti);
• parcellizzazione ed encoding dei Segmenti audio/video in modo indipendente l'uno dall'altro (i.e. ogni segmento à ̈ processato in parallelo e, sfruttando potenzialmente un maggior numero di encoder, più Segmenti possono essere processati contemporaneamente su più encoder) ; in questa fase il flusso segmentato (in segmenti della durata due minuti in un esempio) può essere codificato da un encoder VOD. Per questo motivo può essere conveniente utilizzare un encoder VOD con architettura Grid, in grado di suddividere il lavoro di encoding su più macchine e processori contemporaneamente, garantendo inoltre la possibilità di rilavorare eventuali segmenti che dovessero provocare degli errori.
• multiplexing dei Segmenti (n-GOPs) audio/video codificati con i relativi sottotitoli mantenendo il sincronismo temporale (ossia riaggregazione dei Segmenti utilizzando le informazioni in/out estratte nella fase di suddivisione del flusso continuo audio/video) . Infatti, una volta terminato 1'encoding dei diversi segmenti, gli stream audio, video e sottotitoli devono essere "messi insieme" (multiplexati) in modo da avere un unico flusso (transport stream) composto da video, audio e sottotitoli. Avendo a disposizione i differenti elemantary stream, il muxer (ad esempio un componente custom sviluppato su librerie commerciali prodotte ad esempio da "Manzanita†) li mette insieme, rispettando le specifiche tecniche definite dagli standard denominati DVB-S2 , in modo da formare un unico Transport Stream con i singoli componenti insieme.
• playout (ossia erogazione) continuo dei Segmenti multiplexati , nel formato di output dell 'encoder: l'ultimo stage opzionale della catena nel presente esempio à ̈ quello di playout. Scopo di questo componente à ̈ quello di inviare il Transport Stream in modo continuo verso i multiplexer della catena trasmissiva satellitare. L'output à ̈ effettuato in un formato conforme alle specifiche ASI, su canale SDÃŒ o IP. Il playout à ̈ sincronizzato con il processo di acquisizione ed applica un delay costante alla riproduzione dei frames nell'ordine dei minuti rispetto all'istante di acquisizione .
Come più in alto accennato, grazie al riconoscimento degli inventori si ottiene un risultato che garantisce un'elevata qualità, mantiene invariati i processi, ed ha un'efficienza di banda pari al 30-40% rispetto a quella oggi utilizzata, che significa un equivalente beneficio di banda di trasmissione.
L'architettura complessiva dell'encoder si presta ad essere distribuita su più server fisici. Ad esempio, in una configurazione formata da due server, uno ospiterà i processi di acquisizione e playout e l'altro ospiterà encoding grid.
In particolare il riconoscimento degli inventori consente una soluzione efficiente di compressione offline applicata alla distribuzione lineare, dal momento che divide il segnale continuo audio/video in Segmenti della durata prefissata dall'operatore (che può andare da alcuni secondi ad alcuni minuti, in base alla potenza e al numero degli encoder che devono processare in parallelo i Segmenti) e riesce ad avviare alla compressione off-line (nata per la gestione di singoli contenuti separati gli uni dagli altri) un flusso continuo, ottenendo come output un flusso continuo compresso con la qualità tipica della compressione offline ma gestito con un delay di pochi minuti (nell'esempio della figura 5). E quindi con il procedimento di compressione Near Rea/ Time la qualità di compressione migliora rispetto alla compressione real-time sinora adottata per il broadcasting satellitare (perché si sfruttano le potenzialità della compressione off-line) e tuttavia si crea un procedimento che (grazie alla creazione di Segmenti riaggregabili e tarati sulla possibilità di gestione in parallelo da parte degli encoder a disposizione) può essere adattato anche alla distribuzione lineare. Si noti che un metodo per gestire un flusso continuo audio/video con compressione off-line e con delay di pochi minuti consente di migliorare la distribuzione in broadcasting satellitare {la compressione off-line à ̈ più efficiente anche del 40% rispetto a quella reai time). Tale soluzione può inoltre essere applicata a una percentuale significativa dei contenuti distribuiti da un operatore: infatti, possono essere processati tramite la sequenza segmentazione- compressione in parallelo riaggregazione, in modo utile a non determinare alcuna interruzione nel flusso di distribuzione lineare, anche il 60% (o più) dei contenuti normalmente distribuiti rendendo possibile quindi il raggiungimento di un notevole risparmio di banda (anche del 40% o più) non immaginabile con i presenti sistemi di codifica di canali lineari.
In aggiunta a quanto già esposto e ad ulteriori fini illustrativi, si fanno notare anche altre caratteristiche di un processo di compressione off-line. Ad esempio:
(A) Nella compressione off-line sono processati singoli contenuti e non flussi continui di contenuti (ossia sono processati contenuti che hanno un inizio e una fine, come un film, una pubblicità, un promo, etc.) e quindi il prodotto della compressione, anche quando viene messo in sequenza, non perde questa individualità. I contenuti compressi off-line, ove riuniti in sequenza, non hanno una fine che combacia perfettamente con l'inizio del contenuto successivo e per garantire la giunzione tra i contenuti à ̈ necessario inserire degli elementi "a nero", (B) La compressione off-line à ̈ particolarmente efficiente (a parità di qualità dell'output può comprimere il contenuto il 40% in più di una compressione real/-time) e tuttavia richiede un processo lungo e accurato, perché l'intero contenuto à ̈ processato più volte e, se risultano delle imperfezioni nel processo di compressione, queste sono rilevate e rimosse. Questo processo accurato richiede 2-3 volte il tempo di durata del singolo contenuto (ossia, se si deve comprimere offline un film che dura 2 ore posso impiegare sino a 6 ore).
Si fa inoltre notare quanto seguito in merito alla creazione dei Segmenti secondo quanto riconosciuto dagli inventori. La compressione off-line à ̈ applicata in genere a contenuti integrali (un film, una pubblicità, etc .) e quindi ha tempi di gestione che non sono compatibili con la distribuzione lineare (richiederebbe infatti un delay di diverse ore). I contenuti processati off-line non possono essere messi in sequenza senza inserire degli elementi "a nero" perché la fine di un contenuto non combacia perfettamente con l'inizio del contenuto successivo. Nella soluzione Video Encoding à ̈ prevista la suddivisione del flusso continuo audio/video in Segmenti di una durata determinata. Si noti che i Segmenti non coincidono necessariamente con un contenuto o con una porzione di contenuto (ossia in un segmento potrebbero coesistere la fine di un contenuto e l'inizio di un altro contenuto, senza soluzione di continuità). Insieme ai Segmenti sono estratti dal flusso continuo audio/video delle informazioni in/out, che consentono di ricomporre il flusso continuo audio/video dopo il processo di compressione off-line esattamente così com'era prima della compressione. La durata dei Segmenti à ̈ predeterminata dall'operatore (e può andare da alcuni secondi ad alcuni minuti) . Detta durata può essere calibrata in base alla potenza e al numero degli encoder a disposizione e in base al numero di Segmenti che devono essere processati in parallelo. Il calcolo della durata dei Segmenti consente al processo di compressione off-line di procedere fluidamente (i.e. i Segmenti non durano più del tempo che gli encoder impiegano per processarli parallelamente così non si crea nessun "collo di bottiglia" tra quello che entra e che esce dall 'encoder). I Segmenti possono avere una durata tale da consentire di una compressione off-line con un delay limitato a pochi minuti.
Molte delle forme di realizzazione e esempi sono stati esposti con riferimento a fasi di metodi o processi. Tuttavia, quanto descritto può essere anche implementato in un programma da eseguire su un entità di elaborazione (anche distribuita) o su un'entità i cui mezzi sono opportunamente configurati. Come su illustrato, l'entità può essere implementata in un solo dispositivo, per via HW/SW o combinazione di questi, o su molteplici unità o dispositivi interconnessi (anch'essi HW, SW o combinazione degli stessi),
Naturalmente, la descrizione sopra esposta di forme di realizzazione e di esempi applicanti i principi riconosciuti dagli inventori à ̈ riportata solo a titolo esemplificativo di tali principi e non deve perciò essere intesa come limitazione dell'ambito di privativa qui rivendicato.

Claims (11)

  1. Rivendicazioni 1 Metodo per la codifica near-real time di un segnale comprendente almeno un segnale video, il metodo comprendente le fasi di: - acquisire (S100) detto segnale video incluso in un flusso lineare, detto flusso lineare comprendente almeno due contenuti senza distinzione logica fra gli stessi; - suddividere (S200) il segnale video in almeno un primo segmento ed un secondo segmento di rispettive durate prefissate, almeno uno di detti segmenti essendo adatto a contenere almeno una parte di detti due contenuti e comprendente informazioni di ricomposizione,· - effettuare (S300) una prima codifica di detto primo segmento utilizzando una codifica off-line per ottenere un primo segmento codificato; effettuare (S400) una seconda codifica di detto secondo segmento utilizzando una codifica off-line per ottenere un secondo segmento codificato, detta seconda codifica essendo effettuata almeno parzialmente in parallelo con la prima codifica; - ricomporre (S500), utilizzando dette informazioni di ricomposizione, detto primo segmento codificato e detto secondo segmento codificato per ottenere un segnale continuo codificato.
  2. 2. Metodo secondo la rivendicazione 1, in cui la codifica offline à ̈ tale da completare la codifica del rispettivo segmento in un tempo inferiore o uguale ad un delay pre-configurato .
  3. 3. Metodo secondo una delle rivendicazioni precedenti, in cui ciascuna di dette durate prefissate à ̈ compresa in un intervallo determinato dalla combinazione di un tempo predeterminato ed uno scarto prestabilito.
  4. 4. Metodo secondo una delle rivendicazioni precedenti, in cui detti primo segmento e secondo segmento sono distinti da raggruppamenti di frame ottenuti tramite un algoritmo di codifica video
  5. 5. Metodo secondo una delle rivendicazioni precedenti, in cui la codifica offline comprende almeno una fase tra: variare la lunghezza del raggruppamento di frame all interno di un segmento; processare un segmento più volte, e in cui il processare comprende almeno una fase tra rilevare, rimuovere e correggere eventuali imperfezioni.
  6. 6. Metodo secondo una delle rivendicazioni precedenti, in cui, nel caso in cui il segnale in ingresso sia raggruppato, un segmento à ̈ costituito da un numero finito di raggruppamenti del segnale di ingresso.
  7. 7. Entità (200) per la codifica near-real time di un segnale comprendente almeno un segnale video, il dispositivo comprendente: - mezzi di acquisizione (210) configurati per acquisire detto segnale video incluso in un flusso lineare, detto flusso lineare comprendente almeno due contenuti senza distinzione logica fra gli stessi; mezzi di suddivisione (220) configurati per suddividere il segnale video in almeno un primo segmento ed un secondo segmento di durata prefissata, almeno uno di detti segmenti essendo adatto a contenere almeno una parte di detti due contenuti e comprendente informazioni di ricomposizione; mezzi di prima codifica (230) configurati per effettuare una prima codifica di detto primo segmento utilizzando una codifica off-line per ottenere un primo segmento codificato; mezzi di seconda codifica (240) configurati per effettuare una seconda codifica di detto secondo segmento utilizzando una codifica off-line per ottenere un secondo segmento codificato, detta seconda codifica essendo effettuata almeno parzialmente in parallelo con la prima codifica; mezzi di ricomposizione (250) configurati per ricomporre, utilizzando dette informazioni di ricomposizione, detto primo segmento codificato e detto secondo segmento codificato per ottenere un segnale continuo codificato.
  8. 8 . Metodo per il trattamento di un segnale da sottoporre a codifica near-real time, detto segnale comprendente almeno un segnale video, detto metodo comprendente le fasi di: - acquisire (S310) detto segnale video incluso in un flusso lineare, detto flusso lineare comprendente almeno due contenuti senza distinzione logica fra gli stessi ; - suddividere (S320) il segnale video in almeno un primo segmento ed un secondo segmento ciascuno avente rispettiva durata prefissata, almeno uno di detti segmenti essendo adatto a contenere almeno una parte di detti due contenuti senza distinzione logica e comprendente informazioni di ricomposizione.
  9. 9, Metodo secondo la rivendicazione 8, in cui detto segnale video incluso in detto flusso lineare à ̈ sottoposto ad una codifica real-time prima di essere acquisito per ottenere un segnale video raggruppato, ed in cui ciascuna detta rispettiva durata prefissata à ̈ compresa in un intervallo determinato dalla combinazione di un tempo predeterminato ed uno scarto prestabilito.
  10. 10. Metodo per il trattamento di un segnale secondo la rivendicazione 9, comprendente inoltre la fase di ricomporre, utilizzando dette informazioni di ricomposizione, un primo segmento codificato e un secondo segmento codificato per ottenere un segnale continuo codificato, detti primo e secondo segmenti codificati ottenuti a partire da detti primo segmento e secondo segmento per mezzo di un algoritmo di codifica off-line .
  11. 11. Programma per elaboratore predisposto per eseguire, quando detto programma à ̈ eseguito su un computer, tutte le fasi secondo una qualsiasi delle rivendicazioni di metodo precedenti.
IT000785A 2013-05-13 2013-05-13 Codifica near-real time di un segnale lineare ITMI20130785A1 (it)

Priority Applications (5)

Application Number Priority Date Filing Date Title
IT000785A ITMI20130785A1 (it) 2013-05-13 2013-05-13 Codifica near-real time di un segnale lineare
EP14732359.6A EP2997734B1 (en) 2013-05-13 2014-05-12 Near-real time encoding of a linear signal
MYPI2015704061A MY179715A (en) 2013-05-13 2014-05-12 Near-real time encoding of linear signal
US14/890,901 US9973770B2 (en) 2013-05-13 2014-05-12 Near-real time encoding of linear signal
PCT/IB2014/000709 WO2014184632A1 (en) 2013-05-13 2014-05-12 Near-real time encoding of a linear signal

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT000785A ITMI20130785A1 (it) 2013-05-13 2013-05-13 Codifica near-real time di un segnale lineare

Publications (1)

Publication Number Publication Date
ITMI20130785A1 true ITMI20130785A1 (it) 2014-11-14

Family

ID=48703699

Family Applications (1)

Application Number Title Priority Date Filing Date
IT000785A ITMI20130785A1 (it) 2013-05-13 2013-05-13 Codifica near-real time di un segnale lineare

Country Status (5)

Country Link
US (1) US9973770B2 (it)
EP (1) EP2997734B1 (it)
IT (1) ITMI20130785A1 (it)
MY (1) MY179715A (it)
WO (1) WO2014184632A1 (it)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3317987B1 (en) * 2015-06-30 2019-06-26 Telecom Italia S.p.A. Network information transmission in a mobile communication network

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996013125A1 (en) * 1994-10-19 1996-05-02 Imedia Corporation Method and apparatus for encoding and formatting data representing a video program to provide multiple overlapping presentations of the video program
WO2004051982A1 (en) * 2002-12-04 2004-06-17 Koninklijke Philips Electronics N.V. Method and apparatus for selecting particular decoder based on bitstream format detection
US20050195899A1 (en) * 2004-03-04 2005-09-08 Samsung Electronics Co., Ltd. Method and apparatus for video coding, predecoding, and video decoding for video streaming service, and image filtering method
US20120047229A1 (en) * 2009-12-31 2012-02-23 Broadcom Corporation Adaptive multi-standard video coder supporting adaptive standard selection and mid-stream switch-over

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09214895A (ja) 1996-02-07 1997-08-15 Sony Corp 映像・オーディオ信号編集・送出装置およびその方法
JP4225957B2 (ja) 2004-08-03 2009-02-18 富士通マイクロエレクトロニクス株式会社 映像符号化装置及び映像符号化方法
WO2006049412A1 (en) * 2004-11-01 2006-05-11 Electronics And Telecommunications Research Institute Method for encoding/decoding a video sequence based on hierarchical b-picture using adaptively-adjusted gop structure
US8588310B2 (en) * 2010-08-31 2013-11-19 General Instrument Corporation Method and apparatus for managing delivery of bits to a decoder
US9100657B1 (en) * 2011-12-07 2015-08-04 Google Inc. Encoding time management in parallel real-time video encoding
US10237609B2 (en) * 2012-04-02 2019-03-19 Vidillion, Inc. Methods and systems for delivery of compliant video advertisements to devices from one or more platforms

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996013125A1 (en) * 1994-10-19 1996-05-02 Imedia Corporation Method and apparatus for encoding and formatting data representing a video program to provide multiple overlapping presentations of the video program
WO2004051982A1 (en) * 2002-12-04 2004-06-17 Koninklijke Philips Electronics N.V. Method and apparatus for selecting particular decoder based on bitstream format detection
US20050195899A1 (en) * 2004-03-04 2005-09-08 Samsung Electronics Co., Ltd. Method and apparatus for video coding, predecoding, and video decoding for video streaming service, and image filtering method
US20120047229A1 (en) * 2009-12-31 2012-02-23 Broadcom Corporation Adaptive multi-standard video coder supporting adaptive standard selection and mid-stream switch-over

Also Published As

Publication number Publication date
US9973770B2 (en) 2018-05-15
MY179715A (en) 2020-11-11
WO2014184632A1 (en) 2014-11-20
EP2997734B1 (en) 2021-04-28
US20160127737A1 (en) 2016-05-05
EP2997734A1 (en) 2016-03-23

Similar Documents

Publication Publication Date Title
CA2449124C (en) Splicing of digital video transport streams
CA2944016C (en) Adaptive streaming transcoder synchronization
US11064229B2 (en) Transmitting device, receiving device, transmitting method and receiving method
CN108243350B (zh) 一种音视频同步处理的方法和装置
JP2004350310A (ja) ビデオ・エンコーダおよびエンコーダからデコーダへのタイミングを同期させる方法
EP3238452B1 (en) Multiple stream video compression in multiple bitrate video encoding
WO2010069427A1 (en) Method and encoder for providing a tune- in stream for an encoded video stream and method and decoder for tuning into an encoded video stream
CN102065319B (zh) 用于多路复用h.264基本流的方法和装置
WO2010057027A1 (en) Method and apparatus for splicing in a compressed video bitstream
US20170048564A1 (en) Digital media splicing system and method
US20100129056A1 (en) Optimizing Ad Insertion By Removing Low Information Frames
US20220109897A1 (en) Transmitting method, receiving method, transmitting device and receiving device
WO2008036949A2 (en) Methods and systems for transport stream time base correction
US20130064308A1 (en) Coding and decoding synchronized compressed video bitstreams
US7058087B1 (en) Method and system for prioritized bit rate conversion
US6937619B1 (en) Method and system for comparison-based prioritized bit rate conversion
ITMI20130785A1 (it) Codifica near-real time di un segnale lineare
US10757473B2 (en) Digital media splicing system and method
US20180091571A1 (en) Packet Placement for Scalable Video Coding Schemes
CN107682716B (zh) 一种码率控制方法和装置
WO2021107912A1 (en) Adaptive delay support for splicer
Urs et al. Multiplexing/De-multiplexing dirac video with AAC audio bit stream
Murugan Multiplexing H. 264/AVC Video with MPEG-AAC Audio
CN101605204A (zh) 减少数字视频输入的频道变换时间的方法