IT201800004285A1 - Sistema di distribuzione di contenuti video con filigranatura digitale e relativo metodo - Google Patents

Sistema di distribuzione di contenuti video con filigranatura digitale e relativo metodo Download PDF

Info

Publication number
IT201800004285A1
IT201800004285A1 IT102018000004285A IT201800004285A IT201800004285A1 IT 201800004285 A1 IT201800004285 A1 IT 201800004285A1 IT 102018000004285 A IT102018000004285 A IT 102018000004285A IT 201800004285 A IT201800004285 A IT 201800004285A IT 201800004285 A1 IT201800004285 A1 IT 201800004285A1
Authority
IT
Italy
Prior art keywords
sector
video content
frames
code
fpsector
Prior art date
Application number
IT102018000004285A
Other languages
English (en)
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 filed Critical
Priority to IT102018000004285A priority Critical patent/IT201800004285A1/it
Publication of IT201800004285A1 publication Critical patent/IT201800004285A1/it

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording

Description

DESCRIZIONE
del brevetto per invenzione industriale dal titolo:
“SISTEMA DI DISTRIBUZIONE DI CONTENUTI VIDEO CON FILIGRANATURA DIGITALE E RELATIVO METODO”
La presente invenzione è relativa ad un sistema di distribuzione di contenuti video con filigranatura digitale ed un metodo di distribuzione di contenuti video con filigranatura digitale.
Sono noti sistemi di distribuzione di contenuti video, in cui un server è configurato per ricevere da parte di un dispositivo cliente (“client”) una richiesta di accedere ad un contenuto video, verificare se il client è autorizzato ad accedere al contenuto video, ed in caso positivo inviare al client il contenuto video.
In particolare, i contenuti video sono memorizzati nel server sotto forma di documenti (“file”) video in formati leggibili dai client.
Tipicamente, il server è operativamente accoppiato ad una pluralità di client, ed è dunque configurato per inviare uno stesso contenuto video a più client che ne facciano richiesta e che siano autorizzati ad accedervi.
Inoltre, sono noti sistemi di distribuzione di contenuti video in cui i client non sono autorizzati a copiare e/o ridistribuire i file video ricevuti dal server.
Tuttavia, tipicamente, nei sistemi di distribuzione di contenuti video di tipo noto, un primo file video associato ad un contenuto video ed inviato ad un primo client è identico ad un secondo file video associato allo stesso contenuto video ed inviato ad un secondo client.
In altre parole, in detti sistemi di distribuzione di contenuti video di tipo noto non sono previste tecniche per includere nel file video inviato ad un client informazioni identificative del client stesso. Risulta dunque impossibile, a partire dal file video, identificare il client a cui era stato originariamente inviato dal server.
Sono note tecniche di filigranatura digitale atte a modificare un contenuto video inviato da un server per identificare il client o l’utente del client a cui era stato mandato. Tuttavia, le tecniche di filigranatura digitale note sono tipicamente facilmente neutralizzabili e/o alterano in modo significativo l’informazione legata al contenuto video, compromettendone la fruizione.
Ad esempio, è nota la possibilità di neutralizzare tecniche di filigranatura digitale di tipo noto applicate ad un file video, degradando volontariamente la qualità del file video.
È dunque sentita la necessità di fornire un sistema di distribuzione di contenuti video con filigranatura digitale migliorata ed un relativo metodo di filigranatura digitale migliorata, che consentono di risalire da un contenuto video distribuito ad un client al client stesso o ad un utente del client, ed in particolare in modo che sia possibile farlo anche in caso di manomissione del file video finalizzata a degradarne la qualità.
Scopo della presente invenzione è mettere a disposizione un sistema di distribuzione di contenuti video ed un metodo di distribuzione di contenuti video, atti a superare gli inconvenienti della tecnica nota.
Secondo la presente invenzione vengono realizzati un sistema di distribuzione di contenuti video ed un metodo di distribuzione di contenuti video, come definiti nelle rivendicazioni allegate.
Per una migliore comprensione della presente invenzione ne vengono ora descritte forme di realizzazione preferite, a puro titolo di esempio non limitativo, con riferimento ai disegni allegati, nei quali:
- la figura 1 illustra schematicamente, mediante diagramma a blocchi, un sistema di distribuzione di contenuti video secondo una forma di realizzazione della presente invenzione;
- la figura 2 mostra, mediante diagramma a blocchi, un metodo di immagazzinamento ed analisi di contenuti video;
- la figura 3 mostra, mediante diagramma a blocchi, un metodo di distribuzione di contenuti video secondo una forma di realizzazione della presente invenzione;
- la figura 4 mostra, mediante diagramma a blocchi, un primo metodo di filigranatura di contenuti video secondo un aspetto della presente invenzione;
- la figura 5 mostra, mediante diagramma a blocchi, un secondo metodo di filigranatura di contenuti video secondo un altro aspetto della presente invenzione; e
- la figura 6 mostra, mediante diagramma a blocchi, un terzo metodo di filigranatura di contenuti video secondo un ulteriore aspetto della presente invenzione.
La figura 1 illustra schematicamente, mediante diagramma a blocchi, un sistema di distribuzione di contenuti video 1 secondo una forma di realizzazione della presente invenzione.
In particolare, il sistema di distribuzione di contenuti video 1 comprende un server 2 e una pluralità di client 4a-4c. Nell’esempio di figura 1, sono raffigurati un primo client 4a, un secondo client 4b ed un terzo client 4c della pluralità di client 4a-4c. Il numero di client della pluralità di client 4a-4c può variare nel tempo.
Ciascun client della pluralità di client 4a-4c è un dispositivo utente dotato di un modulo di comunicazione ed in grado di riprodurre contenuti video, ad esempio ciascun client 4a-4c può essere uno a scelta tra: un elaboratore (“computer”) da scrivania (“desktop”), un computer portatile, un computer palmare, uno smartphone, una smart TV, un media center e così via.
Secondo un aspetto della presente invenzione, a ciascun client 4a-4c è associato un codice identificativo USER_ID che determina univocamente il client 4a-4c al quale è associato. Inoltre, ciascun client 4a-4c può essere associato ad una pluralità di utenti che ne condividono l’uso. In tal caso, il codice identificativo USER_ID determina altresì l’utente che ha effettuato la richiesta.
Il server 2 è operativamente accoppiato a ciascun client della pluralità di client 4a-4c. In particolare, il server 2 è in comunicazione bidirezionale con ciascun client della pluralità di client 4a-4c, ad esempio attraverso un canale di comunicazione via cavo o senza fili (“wireless”).
In particolare, il server 2 comprende una memoria 6 ed un’unità di elaborazione dati 8, operativamente accoppiata alla memoria 6.
Il server 2 è configurato per immagazzinare nella memoria 6 un codice identificativo USER_ID per ciascun client 4a-4c e per ciascun utente del client. Inoltre, il server 2 può immagazzinare nella memoria 6 ulteriori dati relativi a ciascun utente di ciascun client 4a-4c, quali ad esempio il nome, il cognome, un numero di un documento identificativo, un numero di una carta di credito, ed altri ancora.
Il server 2 è inoltre configurato per immagazzinare nella memoria 6 una pluralità di contenuti video e ricevere richieste di accesso ad uno dei contenuti video immagazzinati in memoria 6 da parte di un qualsiasi client della pluralità di client 4a-4c.
In risposta ad una richiesta di accesso ad un contenuto video da parte di un client, il server 2 è configurato per processare il contenuto video mediante tecniche di filigranatura digitale implementate dall’unità di elaborazione dati 8 ed atte ad introdurre elementi aggiuntivi nel contenuto video in modo che, analizzando detti elementi aggiuntivi, sia possibile risalire al codice identificativo USER_ID del client e/o dell’utente del client che ha effettuato la richiesta. Nel seguito, i contenuti video così processati saranno chiamati contenuti video con filigrana digitale.
Dette tecniche di filigranatura digitale, descritte in dettaglio in seguito, includono una o più tra le seguenti tecniche: una prima tecnica di filigranatura, basata sull’inserimento di un codice bidimensionale relativo al codice identificativo USER_ID; una seconda tecnica di filigranatura, basata sull’inserimento di un’onda sonora relativa al codice identificativo USER_ID; una terza tecnica di filigranatura, basata sull’inserimento di una regione colorata relativa al codice identificativo USER_ID.
Inoltre, secondo un aspetto della presente invenzione meglio descritto in seguito, ciascun contenuto video viene diviso in settori, e le tecniche di filigranatura vengono ripetute per ogni settore.
La figura 2 mostra, mediante diagramma a blocchi, un metodo di immagazzinamento ed analisi di contenuti video implementato dal server 2. In particolare, il metodo di figura 2 comprende fasi di analisi del contenuto video da immagazzinare, atte a ridurre la potenza computazionale necessaria per applicare le tecniche di filigranatura digitale in occasione della richiesta di detto contenuto video da parte di un client 4a-4c.
Il metodo di figura 2 comincia innanzitutto con la fase 20 di ricevere un file video. In particolare, nel corso della fase 20, il server 2 riceve un file video, ad esempio da un fornitore di contenuti video. Il file video è ad esempio in un formato contenitore, atto a contenere diversi tipi di dati, ad esempio sia audio che video. Per semplicità di descrizione, senza perdita di generalità nel seguito si farà riferimento a file video contenenti una traccia video ed una traccia audio. Considerazioni analoghe con varianti di natura evidente per un esperto del ramo tecnico di riferimento valgono per file video contenenti solo una traccia video, o una pluralità di tracce video e/o di tracce audio e/o di sottotitoli ed altri dati ancora. Il file video ricevuto nel corso della fase 20 viene quindi memorizzato nella memoria 6.
Successivamente alla fase 20, si passa alla fase 22 di ricevere parametri di filigranatura. In particolare, nel corso della fase 22 il server 2 riceve parametri atti a modificare l’implementazione delle suddette tecniche di filigranatura come descritto in dettaglio in seguito.
In particolare, la fase 22 comprende ricevere un numero di settori N_SECTORS in cui suddividere il video prima di applicare le tecniche di filigranatura. Il numero di settori N_SECTORS è compreso ad esempio tra 2 e 20, ad esempio 6. Il numero di settori N_SECTORS è preferibilmente un numero pari. Opzionalmente, in caso venga ricevuto un numero di settori N_SECTORS dispari, esso verrà arrotondato al numero pari precedente.
Inoltre, la fase 22 può comprendere ricevere un numero di codici N_CODES, il quale definisce il numero di codici bidimensionali da inserire in ciascun settore del file video qualora si desideri applicare la prima tecnica di filigranatura. Il numero di codici N_CODES è compreso tra 1 e 20, ad esempio 4.
Inoltre, la fase 22 può comprendere ricevere un numero di onde sonore N_WAVES, il quale definisce il numero di onde sonore da inserire in ciascun settore del file video qualora si desideri applicare la seconda tecnica di filigranatura. Il numero di onde sonore N_WAVES è compreso tra 1 e 20, ad esempio 4.
Inoltre, la fase 22 può comprendere ricevere un numero di regioni N_AREAS, il quale definisce il numero di regioni colorate da inserire in ciascun settore del file video qualora si desideri applicare la terza tecnica di filigranatura. Il numero di regioni N_AREAS è compreso tra 1 e 10, ad esempio 2.
In generale, il valore scelto per i parametri ricevuti nella fase 22 si basa su un compromesso (“trade-off”) tra carico computazionale ed efficacia di filigranatura, in cui valori più alti dei parametri comportano un maggiore carico computazionale ed allo stesso tempo una maggiore efficacia di filigranatura, ovvero una maggiore probabilità di poter risalire al codice identificativo USER_ID associato al contenuto video con filigrana digitale.
Analogamente, si ha un trade-off tra efficacia di filigranatura e preservazione delle informazioni audio/video originali, in quanto valori più alti dei parametri di filigranatura causano inevitabilmente una maggiore interferenza con le informazioni audio/video originali. Secondo un aspetto della presente invenzione, le tecniche di filigranatura descritte in seguito sono tali che anche scegliendo i valori più alti per i parametri di filigranatura, un utente umano non sarebbe in grado di distinguere un contenuto video filigranato dal rispettivo contenuto video originale durante una regolare riproduzione del contenuto video.
Il numero di settori N_SECTORS, il numero di codici N_CODES, il numero di onde sonore N_WAVES e il numero di regioni colorate N_AREAS possono essere parametri impostabili automaticamente (“by default”) da un amministratore del sistema di distribuzione di contenuti video 1 o forniti appositamente da un fornitore del contenuto video, in quanto diversi fornitori potrebbero desiderare un diverso bilanciamento nei trade-off sopra discussi, e quindi desiderare ad esempio una maggiore protezione per il proprio contenuto video o una minore interferenza con il contenuto originale.
I parametri di filigranatura ricevuti nel corso della fase 22 vengono quindi associati al rispettivo contenuto video nella memoria 6 del server 2.
Successivamente alla fase 22, si passa alla fase 24 di estrarre metadati dal file video ricevuto nel corso della fase 20 del metodo. In particolare, nel corso della fase 24, vengono estratti dal file video metadati al fine di utilizzarli come ulteriori parametri di ingresso per le tecniche di filigranatura descritte in seguito.
In particolare, i metadati estratti nel corso della fase 24 comprendono ad esempio la durata N_SECONDS del contenuto video, espressa in secondi, il numero di fotogrammi (“frames”) N_FRAMES del contenuto video, la frequenza dei fotogrammi N_FPS, espressa in termini di fotogrammi per secondo (“frames per second”, FPS) e la risoluzione del contenuto video, espressa in termini di larghezza del fotogramma Wframe ed altezza del fotogramma Hframe, misurate in pixel.
I metadati ricevuti nel corso della fase 24 vengono quindi associati al rispettivo contenuto video nella memoria 6 del server 2.
Successivamente alla fase 24, si passa alla fase 26 di determinare delle regioni di filigranatura. In particolare, nel corso della fase 26 il contenuto video viene analizzato al fine di individuare uno o più fotogrammi in cui sono presenti regioni in cui è opportuno inserire un elemento di filigranatura; ad esempio, detto elemento di filigranatura può essere una delle regioni colorate inserite al fine di implementare la terza tecnica di filigranatura come meglio descritto in seguito.
In particolare, si considera opportuno inserire un elemento di filigranatura in una regione di un fotogramma se detta regione è al di fuori di un’area di maggiore interesse e/o attenzione da parte di un fruitore del contenuto video.
A esempio, la fase 26 di determinare regioni di filigranatura comprende una prima sottofase di individuare una pluralità di fotogrammi in cui si ha una netta distinzione tra un primo piano del fotogramma, a fuoco, ed un secondo piano del fotogramma, fuori fuoco. Mediante opportuni algoritmi ben noti ad esperti del campo tecnico relativo al trattamento delle immagini, o mediante software disponibili commercialmente (ad esempio, Adobe Photoshop), il secondo piano viene distinto dal primo piano. Ad esempio, detti algoritmi di tipo noto si basano sulla rilevazione di un gradiente di messa a fuoco tra aree di pixel contigue. Ad esempio, detti algoritmi di tipo noto si basano inoltre sulla rilevazione di un gradiente di colore tra aree di pixel contigue, netto oppure sotto forma di sfumatura estesa su aree di pixel di dimensioni maggiori.
Dopo aver memorizzato le coordinate del secondo piano in un fotogramma, è possibile limitare al secondo piano l’area utile per la determinazione di una regione di filigranatura, in quanto tipicamente un fruitore del contenuto video riserverà maggiore attenzione al primo piano del fotogramma.
In una seconda sottofase della fase 26, si determina una regione di filigranatura nel secondo piano del fotogramma individuato nella prima sottofase. A tal fine, vengono applicati algoritmi dello stesso tipo di quelli usati per la prima sottofase, ma limitando la loro applicazione al secondo piano. Inoltre, possono essere utilizzati algoritmi di riconoscimento oggetti per far corrispondere una regione di filigranatura ad una sagoma di un oggetto riconosciuto.
Come detto, la prima e la seconda sottofase della fase 26 di determinare regioni di filigranatura possono essere effettuate automaticamente mediante gli algoritmi summenzionati. Tuttavia, è inoltre prevista la possibilità di indicare le regioni di filigranatura manualmente, ad esempio è possibile ricevere le regioni di filigranatura direttamente dal fornitore del contenuto video associato al file video ricevuto nella fase 20, oppure le regioni di filigranatura possono essere definite manualmente da un amministratore del sistema di distribuzione di contenuti video 1.
La prima e la seconda sottofase sono dunque ripetute fino a raggiungere un numero massimo di regioni di filigranatura N_MAX_AREAS. In particolare, il numero massimo di regioni di filigranatura N_MAX_AREAS determinate nel corso della fase 26 è un parametro impostabile da un amministratore del sistema di distribuzione di contenuti video 1 ed associabile con un valore diverso a ciascun contenuto video immagazzinato in memoria 6. Il numero massimo di regioni di filigranatura N_MAX_AREAS è ad esempio compreso tra 4 e 40, ad esempio 8, ed è preferibilmente maggiore o uguale al numero di regioni di filigranatura N_AREAS ricevuto nel corso della fase 22.
Le regioni di filigranatura determinate nel corso della fase 26 vengono quindi memorizzate (in termini di coordinate in pixel) ed associate al rispettivo contenuto video nella memoria 6 del server 2.
La figura 3 mostra schematicamente, mediante diagramma a blocchi, un metodo di distribuzione di contenuti video con filigrana digitale secondo una forma di realizzazione della presente invenzione, implementato ad esempio dal sistema di distribuzione 1 di figura 1.
In particolare, il metodo di figura 3 è relativo alla distribuzione di un file video, immagazzinato nel server 2 secondo il metodo di figura 2, ad un qualsiasi client della pluralità di client 4a-4c.
Il metodo di figura 3 comincia innanzitutto con la fase 30 di ricevere una richiesta di accesso ad un contenuto video da parte di uno qualsiasi dei client della pluralità di client 4a-4c. Per chiarezza di descrizione, nel seguito si farà riferimento al primo client 4a. Le stesse considerazioni valgono nel caso la richiesta sia effettuata dal secondo client 4b o dal terzo client 4c.
In particolare, nel corso della fase 30 il server 2 riceve una richiesta di accesso ad un contenuto video immagazzinato in memoria 6 da parte del primo client 4a.
Successivamente alla fase 30, si passa alla fase 31 di generare un codice identificativo USER_ID associato alla richiesta di visione ricevuta nel corso della fase 30. Come detto, il codice identificativo USER_ID associato alla richiesta di visione da parte del primo client 4a è univocamente associato al primo client 4a. In altre parole, è possibile risalire dal codice identificativo USER_ID al primo client 4a, ovvero al client che aveva inviato la richiesta di accesso ad un contenuto video nel corso della fase 30.
Secondo un aspetto della presente invenzione, il codice identificativo USER_ID generato nel corso della fase 31 è inoltre univocamente associato all’utente del primo client 4a che ha effettuato la richiesta della fase 30.
Preferibilmente, il codice identificativo USER_ID generato nel corso della fase 31 è inoltre univocamente associato ad una marca temporale (“timestamp”) relativa all’orario in cui è stata effettuata la richiesta della fase 30. In questo modo, ciascuna richiesta di visione da parte di un qualsiasi utente di un qualsiasi client della pluralità di client 4a-4c è univocamente associata ad un rispettivo codice identificativo USER_ID; di conseguenza, le tecniche di filigranatura applicate in fasi successive del metodo di distribuzione consentono di rendere unico ogni contenuto video distribuito dal sistema di distribuzione 1, e di renderlo univocamente riconoscibile risalendo al rispettivo codice identificativo USER_ID.
Opzionalmente, il codice identificativo USER_ID generato nel corso della fase 31 è inoltre univocamente associato ad una posizione geografica in cui è stata effettuata la richiesta della fase 30.
Successivamente alla fase 31, si passa alla fase 32 di determinare settori in cui suddividere il contenuto video richiesto nella fase 30. In particolare, nel corso della fase 32 si calcola il numero di fotogrammi per ogni settore in cui suddividere il contenuto video.
Come detto, nel corso della fase 22 del metodo di immagazzinamento di figura 2 viene ricevuto il numero di settori N_SECTORS in cui si desidera suddividere il contenuto video. Secondo un aspetto della presente invenzione, il calcolo della lunghezza in fotogrammi di ciascun settore si basa sul numero di settori N_SECTORS e su metadati ricevuti nel corso della fase 24, quali ad esempio il numero di secondi N_SECONDS ed il numero di fotogrammi per secondo N_FPS.
In particolare, è possibile calcolare un numero di fotogrammi per ogni settore N_FPSECTOR applicando la seguente formula:
In altre parole, è possibile suddividere il contenuto video in un numero di settori N_SECTORS aventi una stessa estensione in fotogrammi N_FPSECTOR.
Secondo un aspetto della presente invenzione, è preferibile suddividere il contenuto video in settori aventi estensione variabile e determinata in modo casuale. Ad esempio, è possibile calcolare un primo numero di fotogrammi N_FPSECTOR_A per una prima metà di settori, ed un secondo numero di fotogrammi N_FPSECTOR_B per una seconda metà di settori, utilizzando le seguenti formule:
N_FPSECTOR_A = N_FPSECTOR N_FPSECTOR ∙ /100 (2) N_FPSECTOR_B = N_FPSECTOR − N_FPSECTOR ∙ /100 (3)
dove R1 è un primo numero casuale; in particolare, il primo numero casuale R1è un numero razionale casuale in un intervallo compreso ad esempio tra -10 e 10; ad esempio, R1 è generato tramite algoritmi noti di generazione di numeri pseudo-casuali ad ogni iterazione del metodo di figura 3, ovvero ad ogni richiesta di visione di un contenuto video. In altre parole, applicando le equazioni (2) e (3), una prima metà dei settori in cui suddividere il contenuto video avrà una lunghezza leggermente minore (in questo esempio, fino al 10%) rispetto a quella che avrebbe avuto assegnando una pari estensione a tutti i settori, mentre una seconda metà dei settori avrà una lunghezza leggermente maggiore (in questo esempio, fino al 10%) rispetto a quella che avrebbe avuto assegnando una pari estensione a tutti i settori.
I settori appartenenti alla prima metà dei settori possono alternarsi in qualsiasi ordine ai settori appartenenti alla seconda metà dei settori. Ad esempio, per un contenuto video per il quale è stato ricevuto il parametro di filigranatura N_SECTORS = 4, è possibile che i primi due settori appartengano alla prima metà (ed abbiano quindi lunghezza N_SECTORS_A) e gli ultimi due settori appartengano alla seconda metà (ed abbiano quindi lunghezza N_SECTORS_B), oppure il primo ed il terzo settore appartengano alla prima metà ed il secondo ed il quarto settore appartengano alla seconda metà, e così via per tutte le altre possibili combinazioni.
La suddivisione casuale in settori così effettuata aggiunge un ulteriore elemento di unicità al contenuto video che verrà inviato in fasi successive del metodo al client che ne aveva fatto richiesta.
Successivamente alla fase 32, si passa alla fase 34 di applicare tecniche di filigranatura per ciascuno dei settori determinati nel corso della fase 32. In particolare, nel corso della fase 34 vengono applicate tecniche di filigranatura comprendenti ad esempio la prima, la seconda e/o la terza tecnica di filigranatura descritte in dettaglio in seguito.
In particolare, le tecniche di filigranatura applicate nel corso della fase 34 possono essere applicate in un qualsiasi ordine.
Le tecniche di filigranatura vengono applicate ad una copia del contenuto video originale memorizzato nella memoria 6, in modo che il contenuto video originale venga preservato nella memoria 6.
Successivamente alla fase 34, si passa alla fase 36 di criptare il video. In altre forme di realizzazione, la fase 36 di criptare il video potrebbe essere assente. In particolare, nel corso della fase 36 ciascun settore del video viene criptato indipendentemente dagli altri, ad esempio tramite un algoritmo di crittografia RSA.
In particolare, l’algoritmo di crittografia RSA utilizzato impiega chiavi uniche per utente e per contenuto video. Il server 2 memorizzerà in memoria 6 un elenco di chiavi di criptazione dell’utente per crittografare il contenuto di ogni settore. La specifica richiesta di una chiave per settore riduce la possibilità, da parte di un terzo non autorizzato, di intercettare l’intero contenuto video durante il trasferimento di dati dal server 2 al client.
Opzionalmente, la fase 36 di criptare il video può essere effettuata prima della fase 34 di applicare tecniche di filigranatura. In tal caso, potrebbe essere necessario decriptare il contenuto video prima di applicare una tecnica di filigranatura e criptarlo nuovamente dopo l’applicazione della tecnica di filigranatura. Altre tecniche di filigranatura possono essere applicate direttamente al contenuto criptato.
Successivamente alla fase 36, si passa alla fase 38 di inviare il contenuto video con filigrana digitale al primo client 4a, ovvero al client che ne aveva fatto richiesta nel corso della fase 30.
In particolare, secondo un aspetto della presente invenzione, il contenuto video viene decriptato ed inviato un settore alla volta. Inoltre, nel caso di una visione in streaming, la chiave di decifratura del settore successivo a quello correntemente visualizzato viene richiesto una volta raggiunta una certa percentuale di completamento (in fotogrammi) del settore corrente, ad esempio una volta raggiunto l’85% del numero di fotogrammi del settore corrente. Ad esempio, se il settore corrente comprende 86400 fotogrammi, la richiesta della chiave di decifratura del settore successivo sarà effettuata in corrispondenza del 73400° fotogramma. In questo modo, si riduce la possibilità di buffering durante lo streaming.
Preferibilmente, il contenuto video viene inviato in un formato proprietario, in modo che non possa essere aperto, modificato o convertito da una terza parte non autorizzata che intercetti la trasmissione del contenuto video dal server 2 a uno dei client 4a-4c.
Preferibilmente, il contenuto video include metadati criptati audio e video opportunamente inseriti nel file video trasmesso e dotati di un blocco in grado di impedire modifiche. Detti metadati includono in particolare il codice identificativo USER_ID.
La figura 4 mostra, mediante diagramma a blocchi, un primo metodo di filigranatura di contenuti video secondo un aspetto della presente invenzione. In particolare, il metodo di figura 4 è implementato nel corso della fase 34 del metodo di distribuzione di contenuti video di figura 3. In particolare, il metodo di figura 4 è relativo alla prima tecnica di filigranatura, basata sull’inserimento di un codice bidimensionale relativo al codice identificativo USER_ID generato nel corso della fase 31 del metodo di figura 3. In particolare, il metodo di figura 4 consente di applicare un numero di codici bidimensionali N_CODES in ciascun settore del contenuto video, il numero di codici bidimensionali N_CODES essendo stato ricevuto nel corso della fase 22 del metodo di distribuzione di figura 2. Il metodo di figura 4 sarà descritto con riferimento a un qualsiasi settore del contenuto video; a meno che venga indicato il contrario, il metodo di figura 4 è applicato allo stesso modo per ogni settore del contenuto video.
Il metodo di figura 4 comincia innanzitutto con la fase 40 di determinare, per ogni settore, i fotogrammi in cui inserire i codici bidimensionali. Nel seguito, detti fotogrammi saranno indicati altresì come “fotogrammi di inserimento codice”. Secondo un aspetto della presente invenzione, ciascuno tra i codici bidimensionali da inserire in ciascun settore del contenuto video è inserito in un rispettivo fotogramma. Di conseguenza, il numero di codici bidimensionali N_CODES corrisponde altresì al numero di fotogrammi selezionati nella fase 40 del metodo. Ad esempio, è possibile selezionare i fotogrammi in modo che siano regolarmente distribuiti all’interno del settore a cui appartengono. Ad esempio, è possibile suddividere il settore in un numero di sotto-settori pari al numero di codici bidimensionali N_CODES, e selezionare i fotogrammi al centro di ciascun sotto-settore. Ad esempio, è possibile applicare uno scarto (“offset”) casuale al fotogramma così individuato, analogamente a quanto descritto con riferimento alla randomizzazione del numero di fotogrammi per settore della fase 32 del metodo di figura 3. Ad esempio, è possibile utilizzare lo stesso primo numero casuale R1. Alternativamente, è possibile utilizzare un diverso numero casuale, memorizzandolo in memoria 6 ed associandolo al codice identificativo USER_ID generato nel corso della fase 31 del metodo di figura 3.
Successivamente alla fase 40, si passa alla fase 42 di generare un codice bidimensionale. In particolare, nel corso della fase 42 si genera un codice bidimensionale univocamente associato al codice identificativo USER_ID legato alla richiesta di accesso al video di fase 30. Il codice bidimensionale così generato può essere memorizzato in memoria 6 ed associato al codice identificativo USER_ID.
La fase 42 può essere effettuata una sola volta per l’intero contenuto video, in quanto lo stesso codice bidimensionale è utilizzato per tutti i settori del contenuto video.
La generazione del codice bidimensionale è effettuata usando tecniche note di generazione di codici bidimensionali. In generale, il codice bidimensionale è un’immagine che codifica il codice identificativo USER_ID e che può essere applicata sui fotogrammi determinati nella fase 40 in maniera non eccessivamente invasiva per un fruitore del contenuto video. Secondo un aspetto della presente invenzione, una volta applicato sul contenuto video, il codice bidimensionale è inoltre resistente a manomissioni del contenuto video; in particolare, il codice bidimensionale è correttamente decodificabile anche in seguito a degradazioni della qualità del video, ottenute ad esempio tramite una o più delle seguenti: sottocampionamento della crominanza, riduzione della risoluzione, riflessione dell’immagine, transcodifica, inserimento di cornici, ed altre tecniche ancora. In questo modo, il codice bidimensionale è sempre correttamente decodificabile, a meno che la qualità del video venga degradata a tal punto da renderne impossibile o del tutto insoddisfacente la fruizione.
Ad esempio, il codice identificativo USER_ID può essere codificato e rappresentato per mezzo di un codice QR semitrasparente. Ad esempio, il codice identificativo può essere codificato e rappresentato per mezzo di un codice morse semitrasparente.
Successivamente alla fase 42, si passa alla fase 44 di determinare un punto di inserimento del codice bidimensionale. In particolare, nel corso della fase 44, si determina per ogni fotogramma determinato nella fase 40 un punto in cui inserire il codice bidimensionale generato nella fase 42.
In particolare, il punto di inserimento Pidell’i-esimo fotogramma di inserimento codice è espresso per mezzo di una coppia di coordinate Pi = (xi, yi), dove l’ordine dei fotogrammi corrisponde all’ordine in cui si presentano durante una normale riproduzione del contenuto video.
In particolare, preferibilmente, i punti di inserimento Pi sono disposti ai quattro angoli dei fotogrammi di inserimento codice.
A titolo esemplificativo e non limitativo, i punti di inserimento Pipossono avere uno tra i quattro valori seguenti: TL = (0.05·Wframe, 0.95·Hframe); TR = (0.95·Wframe, 0.95·Hframe); BR = (0.95·Wframe, 0.05·Hframe); BL = (0.05·Wframe, 0.05·Hframe).
In particolare, innanzitutto viene calcolato il punto di inserimento P1 del primo fotogramma di inserimento codice, sulla base di un secondo numero casuale R2; il secondo numero casuale R2 è un numero razionale casuale in un intervallo compreso ad esempio tra -10 e 10, ad esempio generato tramite algoritmi noti di generazione di numeri pseudo-casuali; il secondo numero casuale R2è altresì memorizzato in memoria 6 ed associato al codice identificativo USER_ID. A seconda del valore del secondo numero casuale R2, il punto di inserimento P1 del primo fotogramma viene assegnato secondo le seguenti regole di assegnamento:
In altre forme di realizzazione, non viene generato il secondo numero casuale R2, e per le regole di assegnamento (4-7) viene invece utilizzato il primo numero casuale R1.
Una volta individuato il punto di inserimento P1del codice bidimensionale nel primo fotogramma di inserimento codice, se nella fase 40 sono stati determinati ulteriori fotogrammi (ovvero, se N_CODES > 1), i punti di inserimento negli ulteriori fotogrammi sono ricavati percorrendo in senso orario i quattro angoli del fotogramma, a partire dall’angolo corrispondente al punto di inserimento P1nel primo fotogramma. Ad esempio, se il punto di inserimento P1 nel primo fotogramma corrisponde all’angolo in alto a sinistra (TL), il punto di inserimento P2 in un secondo fotogramma corrisponde all’angolo in alto a destra (TR), il punto di inserimento P3 in un terzo fotogramma corrisponde all’angolo in basso a destra (BR), il punto di inserimento P4 in un quarto fotogramma corrisponde all’angolo in basso a sinistra (BL), il punto di inserimento P5in un quinto fotogramma corrisponde nuovamente all’angolo in alto a sinistra (TL), e così via. Alternativamente, i punti di inserimento Pinegli ulteriori fotogrammi sono ricavati percorrendo i quattro angoli in senso antiorario, o secondo un qualsiasi altro schema prestabilito e memorizzato.
Successivamente alla fase 44, si passa alla fase 46 di applicare il codice bidimensionale generato nel corso della fase 42 su ciascun frame determinato nel corso della fase 40, rispettivamente in corrispondenza dei punti di inserimento Pi determinati nel corso della fase 44.
Ad esempio, i codici bidimensionali vengono applicati mediante una seconda traccia video opportunamente sovrapposta spazialmente e sincronizzata temporalmente alla traccia video originale del contenuto video.
La figura 5 mostra, mediante diagramma a blocchi, un secondo metodo di filigranatura di contenuti video secondo un aspetto della presente invenzione. In particolare, il metodo di figura 5 è implementato nel corso della fase 34 del metodo di distribuzione di contenuti video di figura 3, analogamente a quanto detto per il metodo di filigranatura di figura 4. In particolare, il metodo di figura 5 è relativo alla seconda tecnica di filigranatura, basata sull’inserimento di un’onda sonora relativa al codice identificativo USER_ID generato nel corso della fase 31 del metodo di figura 3. In particolare, il metodo di figura 5 consente di applicare un numero di onde sonore N_WAVES in ciascun settore del contenuto video, il numero di onde sonore N_WAVES essendo stato ricevuto nel corso della fase 22 del metodo di distribuzione di figura 2. Risulta evidente che il secondo metodo di filigranatura trova applicazione nel caso di contenuti video comprendenti una traccia audio. Il metodo di figura 5 sarà descritto con riferimento a un qualsiasi settore del contenuto video; a meno che venga indicato il contrario, il metodo di figura 5 è applicato allo stesso modo per ogni settore del contenuto video.
Secondo un aspetto della presente invenzione, al fine di non interferire con la fruizione del contenuto video, le onde sonore sono applicate in corrispondenza di picchi di intensità audio. Pertanto, come meglio descritto in seguito, il contenuto video viene scansionato al fine di individuare detti picchi di ampiezza audio.
Il metodo di figura 5 comprende innanzitutto la fase 50 di determinare, per ogni settore, dei fotogrammi da cui partire per analizzare il contenuto video al fine di individuare, in fasi successive del metodo, dei rispettivi picchi di ampiezza audio e quindi applicare delle rispettive onde sonore. Nel seguito, si userà anche l’espressione “fotogrammi di inserimento onda” per fare riferimento ai fotogrammi determinati nella fase 50. Preferibilmente, viene individuato un picco di ampiezza per ciascun fotogramma determinato nella fase 50. Di conseguenza, il numero di onde sonore N_WAVES corrisponde altresì al numero di fotogrammi selezionati nella fase 50 del metodo. Ad esempio, è possibile selezionare i fotogrammi in modo che siano regolarmente distribuiti all’interno del settore a cui appartengono. Ad esempio, è possibile suddividere il settore in un numero di sotto-settori pari al numero di onde sonore N_WAVES, e selezionare i fotogrammi al centro di ciascun sotto-settore.
Ad esempio, è possibile applicare uno scarto (“offset”) casuale al fotogramma così individuato, analogamente a quanto descritto con riferimento alla randomizzazione del numero di fotogrammi per settore della fase 32 del metodo di figura 3. Ad esempio, è possibile utilizzare lo stesso primo numero casuale R1. Alternativamente, è possibile utilizzare un diverso numero casuale, memorizzandolo in memoria 6 ed associandolo al codice identificativo USER_ID generato nel corso della fase 31 del metodo di figura 3.
Successivamente alla fase 50, si passa alla fase 52 di determinare una frequenza di offset. In particolare, nel corso della fase 52 si determina una frequenza di offset associata al codice identificativo USER_ID corrispondente alla richiesta di accesso al video di fase 30. La frequenza di offset così determinata è memorizzata in memoria 6 ed associata al codice identificativo USER_ID.
La fase 52 può essere effettuata una sola volta per l’intero contenuto video, in quanto la stessa frequenza di offset è utilizzata per tutti i settori del contenuto video.
La generazione della frequenza di offset è effettuata su base sequenziale. In particolare, il server 2 tiene traccia dell’ordine con cui riceve richieste di accesso al contenuto video (fase 30) aggiornando un contatore memorizzato in memoria 6, ed il valore del contatore è utilizzato per calcolare la frequenza di offset. Ad esempio, il valore della frequenza di offset fiper la i-esima richiesta è calcolata secondo la seguente formula:
dove ∆f è una banda di frequenza di sicurezza tra frequenze di offset successive, compresa ad esempio tra 1 Hz e 10 Hz. In un esempio in cui ∆f = 2 Hz, quindi, la prima richiesta di accesso al contenuto video (i = 1) sarà associata ad una frequenza di offset f1 = 1 Hz, la seconda richiesta (i = 2) sarà associata ad una frequenza di offset f2 = 3 Hz, la terza richiesta (i = 3) ad una frequenza di offset f3 = 5 Hz, e così via fino a raggiungere una frequenza di offset massima fmax, oltrepassata la quale detto contatore viene ripristinato al valore iniziale i = 1. In particolare, la frequenza di offset massima fmax è ad esempio compresa tra 50 Hz e 150 Hz, ad esempio 100 Hz.
Successivamente alla fase 52, si passa alla fase 54 di determinare i picchi di ampiezza audio in corrispondenza dei quali applicare onde sonore. In particolare, nel corso della fase 54, si ricerca, nei fotogrammi successivi ad ogni fotogramma determinato nella fase 50, un picco di ampiezza audio in corrispondenza del quale inserire un’onda sonora, generata sulla base della frequenza di offset determinata nella fase 52.
In altre parole, per ogni fotogramma di inserimento onda determinato nella fase 40, si analizza la traccia audio percorrendola nel normale senso di riproduzione a partire da detto fotogramma, fino ad individuare un intervallo di fotogrammi in cui l’ampiezza della traccia audio associata sia superiore ad una soglia di picco.
Ad esempio, la soglia di picco è compresa tra -12 dBFS e -3 dBFS, ad esempio -6 dBFS. Una volta individuato il primo intervallo di fotogrammi in cui si supera la soglia di picco, si individua secondo tecniche note di trattamento del segnale audio la massima frequenza fpeakdel segnale audio in detto intervallo di fotogrammi.
Quindi, l’intervallo di fotogrammi e la rispettiva massima frequenza fpeak vengono associati e memorizzati, e si passa al successivo fotogramma determinato nella fase 40 e dunque alla ricerca di un altro picco di ampiezza audio.
Nel caso in cui scorrendo i fotogrammi successivi ad un fotogramma di inserimento onda non viene individuato un picco di ampiezza audio prima di raggiungere il fotogramma di inserimento onda successivo, può essere previsto di abbassare la soglia di picco e ripetere la ricerca. Alternativamente, può essere previsto di ignorare il fotogramma di inserimento onda.
Successivamente alla fase 54, si passa alla fase 56 di inserire onde sonore negli intervalli di fotogrammi determinati nel corso della fase 54, sulla base della frequenza di offset fi determinata nel corso della fase 52.
In particolare, dato un intervallo di fotogrammi e la rispettiva frequenza massima fpeak, l’onda sonora da inserire in detto intervallo di fotogrammi è un’onda sinusoidale avente frequenza fwave pari alla somma della frequenza massima fpeake della frequenza di offset fi.
In altre parole, le onde sonore sono sovrapposte in punti della traccia audio in cui il volume è relativamente alto, in modo da non interferire con la fruizione del contenuto video; inoltre, le onde sonore sono impostate ad una frequenza leggermente più alta rispetto allo spettro di frequenza originale, in modo da poter essere identificate ed estratte in una successiva analisi del contenuto video con filigrana digitale.
Successivamente alla fase 56, si passa alla fase 58 di generare un codice numerico ID_AUDIO sulla base della frequenza fwave delle onde sonore inserite nel corso della fase 56.
In particolare, il codice numerico ID_AUDIO è pari alla somma (ad esempio espressa in Hz) delle frequenze fwave di tutte le onde sonore inserite nel corso della fase 56.
Il codice numerico ID_AUDIO così generato è memorizzato in memoria 6 ed associato al codice identificativo USER_ID.
In questo modo, in una fase di analisi di un contenuto video a cui è stata applicata la seconda tecnica di filigranatura, è possibile rilevare le frequenze delle onde sonore inserite, sommarle e risalire al codice numerico ID_AUDIO e di conseguenza al rispettivo codice identificativo USER_ID generato nel corso della fase 31 del metodo di figura 3.
Nel caso in cui il contenuto video con filigrana digitale sia stato successivamente soggetto ad una distorsione audio che comporti una diminuzione o un aumento delle frequenze, la somma delle frequenze rilevate sarà rispettivamente minore o maggiore del codice numerico ID_AUDIO. Tuttavia, risulta comunque possibile risalire al codice numerico ID_AUDIO considerando l’uso della banda di frequenza di sicurezza ∆f, grazie alla quale si può concludere che se la somma delle frequenze rilevate ha uno scarto da un codice numerico ID_AUDIO minore di una soglia foffset(in Hz), il contenuto video con filigrana digitale in esame è associabile al codice numerico ID_AUDIO; in particolare, la soglia foffsetè ottenuta ad esempio secondo la seguente relazione:
La figura 6 mostra, mediante diagramma a blocchi, un terzo metodo di filigranatura di contenuti video secondo un aspetto della presente invenzione. In particolare, il metodo di figura 6 è implementato nel corso della fase 34 del metodo di distribuzione di contenuti video di figura 3, analogamente a quanto detto per i metodi di filigranatura di figure 4 e 5. In particolare, il metodo di figura 6 è relativo alla terza tecnica di filigranatura, basata sull’inserimento di una regione colorata relativa al codice identificativo USER_ID generato nel corso della fase 31 del metodo di figura 3. In particolare, il metodo di figura 6 consente di applicare un numero di regioni colorate N_AREAS in ciascun settore del contenuto video, il numero di regioni colorate N_AREAS essendo stato ricevuto nel corso della fase 22 del metodo di distribuzione di figura 2.
Il metodo di figura 6 comprende innanzitutto la fase 60 di determinare un codice di colore ID_COLOR associato al codice identificativo USER_ID corrispondente alla richiesta di accesso al video di fase 30. Il codice di colore ID_COLOR così determinato è memorizzato in memoria 6 ed associato al codice identificativo USER_ID. Ad esempio, il codice di colore ID_COLOR è costituito da una tripla RGB, ed in particolare da un valore di rosso Ri, un valore di verde Gi ed un valore di blu Bi.
La generazione del codice di colore ID_COLOR è effettuata su base sequenziale, analogamente a quanto detto per la generazione della frequenza di offset per la fase 52 del metodo di figura 5. In particolare, il server 2 tiene traccia dell’ordine con cui riceve richieste di accesso al contenuto video (fase 30) aggiornando un contatore memorizzato in memoria 6, ed il valore del contatore è utilizzato per determinare univocamente la tripla RGB secondo un qualsiasi schema atto a coprire tutte le possibili combinazioni di valori Ri, Gi, Bi.
Secondo un aspetto della presente invenzione, è possibile considerare un intervallo di colore di sicurezza, analogamente alla banda di frequenza di sicurezza ∆f descritta con riferimento alla fase 52 del metodo di figura 5. Di conseguenza, in tal caso il codice di colore ID_COLOR è costituito da un intervallo di valori di rosso, un intervallo di valori di verde ed un intervallo di valori di blu. Ad esempio, in una rappresentazione a 8 bit, ciascuno tra il valore di rosso Ri, il valore di verde Gi ed il valore di blu Biè compreso tra 0 e 255. In questo esempio, dato un primo codice di colore associato ad una prima richiesta, un secondo codice di colore associato ad una seconda richiesta può essere determinato sommando un intervallo di sicurezza ad uno qualsiasi tra i valori di rosso Ri, di verde Gi e di blu Bidel primo codice di colore, in modo che sia possibile associare al primo ed al secondo codice di colore rispettivamente un primo ed un secondo intervallo di codici di colore. In un esempio in cui l’intervallo di sicurezza è pari a 3 e il primo codice di colore è pari a R1= 1, G1= 1, B1 = 1, il secondo codice di colore può essere ottenuto sommando l’intervallo di sicurezza al valore di rosso, ottenendo così un secondo codice di colore pari a R2 = 4, G2= 1, B2= 1; in questo esempio, quindi, il primo intervallo di codici di colore includerà oltre al primo codice di colore anche i codici di colore R = 0, G = 1, B = 1 e R = 2, G = 1, B = 1.
È dunque possibile verificare, in successive fasi di analisi di un contenuto video con filigrana digitale, se un’eventuale differenza di colore tra una regione colorata ed un codice di colore sia minore dell’intervallo di sicurezza. In questo modo è dunque possibile risalire al codice identificativo USER_ID anche in presenza di distorsioni cromatiche del contenuto video.
Successivamente alla fase 60, si passa alla fase 62 di inserire regioni colorate nel contenuto video. In particolare, nel corso della fase 62 si sovrappongono regioni colorate secondo il codice di colore ID_COLOR determinato nel corso della fase 60 ad un sottoinsieme delle regioni di filigranatura associate al contenuto video (determinate nel corso della fase 26 del metodo di figura 2). Come detto, il numero N_AREAS di regioni colorate da inserire è preferibilmente minore o uguale al numero massimo N_MAX_AREAS di regioni di filigranatura associate al contenuto video, di conseguenza è possibile che solo una parte delle regioni di filigranatura vengano sovrapposte a regioni colorate, mentre le altre rimangano immutate.
Successivamente, in una fase di analisi di un contenuto video a cui è stata applicata la terza tecnica di filigranatura, è possibile rilevare il colore usato per colorare le regioni di filigranatura (le cui posizioni sono note, essendo state determinate nella fase 26), determinando così il codice di colore ID_COLOR e di conseguenza il rispettivo codice identificativo USER_ID generato nel corso della fase 31 del metodo di figura 3.
Nel caso in cui il contenuto video con filigrana digitale sia stato successivamente soggetto ad una distorsione cromatica, il colore rilevato sarà diverso dal codice di colore ID_COLOR. Tuttavia, risulta comunque possibile risalire al codice di colore ID_COLOR considerando l’uso dell’intervallo di colore di sicurezza, analogamente a quanto detto per la seconda tecnica di filigranatura.
Da un esame delle caratteristiche del trovato qui descritto ed illustrato sono evidenti i vantaggi che esso consente di ottenere.
Ad esempio, la divisione del contenuto video in settori aventi un numero di fotogrammi determinato in modo casuale fa sì che le filigrane digitali secondo una delle tecniche di filigranatura sopra descritte siano inserite in fotogrammi diversi a seconda della richiesta di accesso, aumentando l’unicità del contenuto video con filigrana digitale.
Inoltre, l’uso di intervalli di sicurezza per le frequenze di offset della seconda tecnica di filigranatura fa sì che il contenuto video distribuito sia resistente a distorsioni audio, nel senso che anche in seguito a distorsioni audio sarà comunque possibile risalire al rispettivo codice identificativo.
Inoltre, l’uso di intervalli di sicurezza per i codici di colore della terza tecnica di filigranatura fa sì che il contenuto video distribuito sia resistente a distorsioni cromatiche, nel senso che anche in seguito a distorsioni cromatiche sarà comunque possibile risalire al rispettivo codice identificativo.
Risulta infine chiaro che al trovato qui descritto ed illustrato possono essere apportate modifiche e varianti senza per questo uscire dall’ambito protettivo della presente invenzione, come definito nelle rivendicazioni allegate.
Ad esempio, le tecniche di filigranatura possono essere implementate prima di una richiesta di contenuti video, in modo da rendere più immediata la distribuzione di contenuti video con filigrana digitale. In particolare, il server può essere configurato per generare in anticipo uno o più codici identificativi USER_ID e per memorizzare contenuti video con filigrana digitale rispettivamente associati a detti codici identificativi USER_ID. Una volta ricevuta una richiesta di visione, il server è quindi configurato per associare a posteriori uno tra detti codici identificativi USER_ID e per trasmettere il contenuto video con filigrana digitale ad esso associato.

Claims (10)

  1. RIVENDICAZIONI 1. Sistema di distribuzione di contenuti video (1), comprendente un server (2) e una pluralità di client (4a-4c), il server (2) essendo configurato per: - immagazzinare (20-26) un contenuto video; - ricevere (30) da un primo client (4a; 4b; 4c) della pluralità di client (4a-4c) una prima richiesta di accedere al contenuto video; - generare (31) un primo codice identificativo (USER_ID) univocamente associato alla prima richiesta; - generare una prima copia del contenuto video; - generare (32) un primo numero casuale (R1) ed immagazzinarlo associandolo al primo codice identificativo (USER_ID); - dividere (32) la prima copia del contenuto video in una pluralità di settori comprendente un primo settore ed un secondo settore, il primo settore comprendendo un primo numero di fotogrammi (N_FPSECTOR_A), il secondo settore comprendendo un secondo numero di fotogrammi (N_FPSECTOR_B), il primo numero di fotogrammi (N_FPSECTOR_A) ed il secondo numero di fotogrammi (N_FPSECTOR_B) essendo determinati in funzione del primo numero casuale (R1); - processare (34) la prima copia del contenuto video applicando una prima filigrana digitale indicativa del primo codice identificativo (USER_ID) in corrispondenza del primo settore ed una seconda filigrana digitale indicativa del primo codice identificativo (USER_ID) in corrispondenza del secondo settore, ottenendo così un primo contenuto video con filigrana digitale; - trasmettere (38) il primo contenuto video con filigrana digitale al primo client (4a; 4b; 4c); - ricevere (30) da un secondo client (4a; 4b; 4c) della pluralità di client (4a-4c) una seconda richiesta di accedere al contenuto video; - generare (31) un secondo codice identificativo (USER_ID) diverso dal primo codice identificativo (USER_ID) ed univocamente associato alla seconda richiesta; - generare una seconda copia del contenuto video; - generare (32) un secondo numero casuale (R2) ed immagazzinarlo associandolo al primo codice identificativo (USER_ID); - dividere (32) la seconda copia del contenuto video in una pluralità di settori comprendente un terzo settore ed un quarto settore, il terzo settore comprendendo un terzo numero di fotogrammi (N_FPSECTOR_A), il quarto settore comprendendo un quarto numero di fotogrammi (N_FPSECTOR_B), il terzo numero di fotogrammi (N_FPSECTOR_A) ed il quarto numero di fotogrammi (N_FPSECTOR_B) essendo determinati in funzione del secondo numero casuale (R1); - processare (34) la seconda copia del contenuto video applicando una terza filigrana digitale indicativa del secondo codice identificativo (USER_ID) in corrispondenza del terzo settore ed una quarta filigrana digitale indicativa del secondo codice identificativo (USER_ID) in corrispondenza del quarto settore, ottenendo così un secondo contenuto video con filigrana digitale; - trasmettere (38) il secondo contenuto video con filigrana digitale al secondo client (4a; 4b; 4c); - analizzare la prima e la seconda filigrana digitale del primo contenuto video con filigrana digitale, in modo da risalire al primo codice identificativo (USER_ID); - analizzare la terza e la quarta filigrana digitale del secondo contenuto video con filigrana digitale, in modo da risalire al secondo codice identificativo (USER_ID).
  2. 2. Sistema di distribuzione di contenuti video (1) secondo la rivendicazione 1, in cui il server (2) è inoltre configurato per: - calcolare un numero medio di fotogrammi per settore (N_FPSECTOR) sulla base di un numero totale di fotogrammi (N_FRAMES) del contenuto video ed un numero totale di settori (N_SECTORS) del contenuto video; - determinare il primo numero di fotogrammi (N_FPSECTOR_A) in modo che sia più alto del numero medio di fotogrammi per settore (N_FPSECTOR) di una prima percentuale corrispondente al primo numero casuale (R1); - determinare il secondo numero di fotogrammi (N_FPSECTOR_A) in modo che sia più basso del numero medio di fotogrammi per settore (N_FPSECTOR) della prima percentuale; - determinare il terzo numero di fotogrammi (N_FPSECTOR_A) in modo che sia più alto del numero medio di fotogrammi per settore (N_FPSECTOR) di una seconda percentuale corrispondente al secondo numero casuale (R1); - determinare il quarto numero di fotogrammi (N_FPSECTOR_B) in modo che sia più basso del numero medio di fotogrammi per settore (N_FPSECTOR) della seconda percentuale.
  3. 3. Sistema di distribuzione di contenuti video (1) secondo la rivendicazione 1 o 2, in cui il server (2) è inoltre configurato per: - generare (42) un primo codice bidimensionale indicativo del primo codice identificativo (USER_ID) ed un secondo codice bidimensionale, diverso dal primo codice bidimensionale ed indicativo del secondo codice identificativo (USER_ID); - processare (34) il primo settore applicando (46) il primo codice bidimensionale in corrispondenza di un primo fotogramma di inserimento, selezionato (40) in funzione del primo numero di fotogrammi (N_FPSECTOR_A); - processare (34) il secondo settore applicando (46) il primo codice bidimensionale in corrispondenza di un secondo fotogramma di inserimento, selezionato (40) in funzione del secondo numero di fotogrammi (N_FPSECTOR_B); - processare (34) il terzo settore applicando (46) il secondo codice bidimensionale in corrispondenza di un terzo fotogramma di inserimento, selezionato (40) in funzione del terzo numero di fotogrammi (N_FPSECTOR_A); - processare (34) il quarto settore applicando (46) il secondo codice bidimensionale in corrispondenza di un quarto fotogramma di inserimento, selezionato (40) in funzione del quarto numero di fotogrammi (N_FPSECTOR_B), e in cui ciascuna tra la prima e la seconda filigrana digitale comprende il primo codice bidimensionale, e ciascuna tra la terza e la quarta filigrana digitale comprende il secondo codice bidimensionale.
  4. 4. Sistema di distribuzione di contenuti video (1) secondo la rivendicazione 3, in cui il server (2) è inoltre configurato per: - processare (34) il primo settore applicando (46) il primo codice bidimensionale in corrispondenza di un quinto fotogramma di inserimento, selezionato (40) in funzione del primo numero di fotogrammi (N_FPSECTOR_A); - processare (34) il secondo settore applicando (46) il primo codice bidimensionale in corrispondenza di un sesto fotogramma di inserimento, selezionato (40) in funzione del secondo numero di fotogrammi (N_FPSECTOR_B); - processare (34) il terzo settore applicando (46) il secondo codice bidimensionale in corrispondenza di un settimo fotogramma di inserimento, selezionato (40) in funzione del terzo numero di fotogrammi (N_FPSECTOR_A); - processare (34) il quarto settore applicando (46) il secondo codice bidimensionale in corrispondenza di un ottavo fotogramma di inserimento, selezionato (40) in funzione del quarto numero di fotogrammi (N_FPSECTOR_B).
  5. 5. Sistema di distribuzione di contenuti video (1) secondo la rivendicazione 4, in cui in cui il server (2) è inoltre configurato per: - generare (44) in funzione del primo numero casuale (R1) ciascuno tra un primo punto di inserimento (P1) all’interno del primo fotogramma di inserimento ed un secondo punto di inserimento (P1) all’interno del secondo fotogramma di inserimento; - generare (44) in funzione del secondo numero casuale (R2) ciascuno tra un terzo punto di inserimento (P1) all’interno del terzo fotogramma di inserimento ed un quarto punto di inserimento (P1) all’interno del quarto fotogramma di inserimento; - generare (44) un quinto punto di inserimento (P2) all’interno del quinto fotogramma di inserimento in funzione del primo punto di inserimento (P1), ed un sesto punto di inserimento (P2) all’interno del sesto fotogramma di inserimento in funzione del secondo punto di inserimento (P1); - generare (44) un settimo punto di inserimento (P2) all’interno del settimo fotogramma di inserimento in funzione del terzo punto di inserimento (P1), ed un ottavo punto di inserimento (P2) all’interno dell’ottavo fotogramma di inserimento in funzione del quarto punto di inserimento (P1); - processare (34) il primo settore applicando (46) il primo codice bidimensionale in corrispondenza del primo punto di inserimento (P1) e del quinto punto di inserimento (P2); - processare (34) il secondo settore applicando (46) il primo codice bidimensionale in corrispondenza del secondo punto di inserimento (P1) e del sesto punto di inserimento (P2); - processare (34) il terzo settore applicando (46) il secondo codice bidimensionale in corrispondenza del terzo punto di inserimento (P1) e del settimo punto di inserimento (P2); - processare (34) il quarto settore applicando (46) il secondo codice bidimensionale in corrispondenza del quarto punto di inserimento (P1) e dell’ottavo punto di inserimento (P2).
  6. 6. Sistema di distribuzione di contenuti video (1) secondo una qualsiasi delle rivendicazioni precedenti, in cui il server (2) è inoltre configurato per: - ricercare (54) un primo picco di ampiezza audio all’interno del primo settore, ed un secondo picco di ampiezza audio all’interno del secondo settore; - ricercare (54) un terzo picco di ampiezza audio all’interno del terzo settore, ed un quarto picco di ampiezza audio all’interno del quarto settore; - determinare una prima frequenza massima (fpeak) nello spettro audio in un primo intervallo di fotogrammi centrato sul primo picco di ampiezza audio, ed una seconda frequenza massima (fpeak) nello spettro audio in un secondo intervallo di fotogrammi centrato sul secondo picco di ampiezza audio; - determinare una prima frequenza massima (fpeak) nello spettro audio in un terzo intervallo di fotogrammi centrato sul terzo picco di ampiezza audio, ed una quarta frequenza massima (fpeak) nello spettro audio in un quarto intervallo di fotogrammi centrato sul quarto picco di ampiezza audio; - processare (34) il primo settore applicando (56) un segnale audio a una prima frequenza di filigranatura (fwave), ottenuta dalla somma della prima frequenza massima (fpeak) e di una prima frequenza di offset (f1), in corrispondenza del primo intervallo di fotogrammi; - processare (34) il secondo settore applicando (56) un segnale audio a una seconda frequenza di filigranatura (fwave), ottenuta dalla somma della seconda frequenza massima (fpeak) e della prima frequenza di offset (f1), in corrispondenza del secondo intervallo di fotogrammi; - processare (34) il terzo settore applicando (56) un segnale audio a una terza frequenza di filigranatura (fwave), ottenuta dalla somma della terza frequenza massima (fpeak) e di una seconda frequenza di offset (f2), diversa dalla prima frequenza di offset (f1), in corrispondenza del terzo intervallo di fotogrammi; - processare (34) il quarto settore applicando (56) un segnale audio a una quarta frequenza di filigranatura (fwave), ottenuta dalla somma della quarta frequenza massima (fpeak) e della seconda frequenza di offset (f2), in corrispondenza del quarto intervallo di fotogrammi; - immagazzinare un primo codice numerico (ID_AUDIO) associato al primo codice identificativo (USER_ID) in una lista di codici numerici associati a rispettivi codici identificativi, il primo codice numerico (ID_AUDIO) essendo ottenuto sommando la prima frequenza di filigranatura (fwave) e la seconda frequenza di filigranatura (fwave); - immagazzinare un secondo codice numerico (ID_AUDIO) associato al secondo codice identificativo (USER_ID) nella lista di codici numerici, il secondo codice numerico (ID_AUDIO) essendo ottenuto sommando la terza frequenza di filigranatura (fwave) e la quarta frequenza di filigranatura (fwave), e in cui la prima, la seconda, la terza e la quarta filigrana digitale comprendono rispettivamente i segnali audio applicati (56) alla prima, alla seconda, alla terza e alla quarta frequenza di filigranatura (fwave), e in cui l’operazione di analizzare la prima e la seconda filigrana digitale comprende confrontare la somma della prima e della seconda frequenza di filigranatura (fwave) con i codici numerici immagazzinati nella lista di codici numerici in modo da individuare il primo codice numerico (ID_AUDIO), e in cui l’operazione di analizzare la terza e la quarta filigrana digitale comprende confrontare la somma della terza e della quarta frequenza di filigranatura (fwave) con i codici numerici immagazzinati nella lista di codici numerici in modo da individuare il secondo codice numerico (ID_AUDIO).
  7. 7. Sistema di distribuzione di contenuti video secondo la rivendicazione 6, in cui il server (2) è inoltre configurato per determinare (52) la seconda frequenza di offset (f2) sommando una banda di frequenza di sicurezza (∆f) alla prima frequenza di offset (f1), in modo che sia possibile associare alla prima (f1) ed alla seconda (f2) frequenza di offset rispettivamente un primo ed un secondo intervallo di frequenze di offset, e in cui il server (2) è inoltre configurato per verificare se una differenza in frequenza tra un segnale audio applicato in un terzo contenuto video con filigrana digitale ed un segnale audio applicato (56) nel primo contenuto video con filigrana digitale sia minore della banda di frequenza di sicurezza (∆f).
  8. 8. Sistema di distribuzione di contenuti video secondo una qualsiasi delle rivendicazioni precedenti, in cui il server (2) è inoltre configurato per: - determinare (26) prime regioni di filigranatura all’interno di rispettivi fotogrammi del primo settore, seconde regioni di filigranatura all’interno di rispettivi fotogrammi del secondo settore, terze regioni di filigranatura all’interno di rispettivi fotogrammi del terzo settore e quarte regioni di filigranatura all’interno di rispettivi fotogrammi del quarto settore; le prime, le seconde, le terze e le quarte regioni di filigranatura essendo regioni di minore messa a fuoco rispetto ad altre regioni all’interno dei rispettivi fotogrammi; - immagazzinare un primo codice di colore (ID_COLOR) associato al primo codice identificativo (USER_ID) ed un secondo codice di colore (ID_COLOR), diverso dal primo codice di colore (ID_COLOR) ed associato al secondo codice identificativo (USER_ID); - processare (34) il primo settore applicando (62) in corrispondenza di una tra le prime regioni di filigranatura una regione colorata del colore corrispondente al primo codice di colore (ID_COLOR); - processare (34) il secondo settore applicando (62) in corrispondenza di una tra le seconde regioni di filigranatura una regione colorata del colore corrispondente al primo codice di colore (ID_COLOR); - processare (34) il terzo settore applicando (62) in corrispondenza di una tra le terze regioni di filigranatura una regione colorata del colore corrispondente al secondo codice di colore (ID_COLOR); - processare (34) il quarto settore applicando (62) in corrispondenza di una tra le quarte regioni di filigranatura una regione colorata del colore corrispondente al secondo codice di colore (ID_COLOR), e in cui ciascuna tra la prima e la seconda filigrana digitale comprendono la regione colorata del colore corrispondente al primo codice di colore (ID_COLOR), e ciascuna tra la terza e la quarta filigrana digitale comprendono la regione colorata del colore corrispondente al secondo codice di colore (ID_COLOR).
  9. 9. Sistema di distribuzione di contenuti video secondo la rivendicazione 8, in cui il primo codice di colore (ID_COLOR) è un codice RGB avente un qualsiasi valore di rosso (Ri), un qualsiasi valore di verde (Gi) ed un qualsiasi valore di blu (Bi), ed in cui il server (2) è inoltre configurato per determinare (60) il secondo codice di colore (ID_COLOR) sommando ad uno qualsiasi tra i valori di rosso (Ri), di verde (Gi) e di blu (Bi) un intervallo di sicurezza, e in cui il server (2) è inoltre configurato per verificare se una differenza di colore tra una regione colorata applicata (62) in un terzo contenuto video con filigrana digitale ed una regione colorata applicata (62) nel primo contenuto video sia minore dell’intervallo di sicurezza.
  10. 10. Metodo di distribuzione di contenuti video (1), comprendente le fasi di: - immagazzinare (20-26) un contenuto video; - ricevere (30) da un primo client (4a; 4b; 4c) una prima richiesta di accedere al contenuto video; - generare (31) un primo codice identificativo (USER_ID) univocamente associato alla prima richiesta; - generare una prima copia del contenuto video; - generare (32) un primo numero casuale (R1) ed immagazzinarlo associandolo al primo codice identificativo (USER_ID); - dividere (32) la prima copia del contenuto video in una pluralità di settori comprendente un primo settore ed un secondo settore, il primo settore comprendendo un primo numero di fotogrammi (N_FPSECTOR_A), il secondo settore comprendendo un secondo numero di fotogrammi (N_FPSECTOR_B), il primo numero di fotogrammi (N_FPSECTOR_A) ed il secondo numero di fotogrammi (N_FPSECTOR_B) essendo determinati in funzione del primo numero casuale (R1); - processare (34) la prima copia del contenuto video applicando una prima filigrana digitale indicativa del primo codice identificativo (USER_ID) in corrispondenza del primo settore ed una seconda filigrana digitale indicativa del primo codice identificativo (USER_ID) in corrispondenza del secondo settore, ottenendo così un primo contenuto video con filigrana digitale; - trasmettere (38) il primo contenuto video con filigrana digitale al primo client (4a; 4b; 4c); - ricevere (30) da un secondo client (4a; 4b; 4c) della pluralità di client (4a-4c) una seconda richiesta di accedere al contenuto video; - generare (31) un secondo codice identificativo (USER_ID) diverso dal primo codice identificativo (USER_ID) ed univocamente associato alla seconda richiesta; - generare una seconda copia del contenuto video; - generare (32) un secondo numero casuale (R2) ed immagazzinarlo associandolo al secondo codice identificativo (USER_ID); - dividere (32) la seconda copia del contenuto video in una pluralità di settori comprendente un terzo settore ed un quarto settore, il terzo settore comprendendo un terzo numero di fotogrammi (N_FPSECTOR_A), il quarto settore comprendendo un quarto numero di fotogrammi (N_FPSECTOR_B), il terzo numero di fotogrammi (N_FPSECTOR_A) ed il quarto numero di fotogrammi (N_FPSECTOR_B) essendo determinati in funzione del secondo numero casuale (R1); - processare (34) la seconda copia del contenuto video applicando una terza filigrana digitale indicativa del secondo codice identificativo (USER_ID) in corrispondenza del terzo settore ed una quarta filigrana digitale indicativa del secondo codice identificativo (USER_ID) in corrispondenza del quarto settore, ottenendo così un secondo contenuto video con filigrana digitale; - trasmettere (38) il secondo contenuto video con filigrana digitale al secondo client (4a; 4b; 4c); - analizzare la prima e la seconda filigrana digitale del primo contenuto video con filigrana digitale, in modo da risalire al primo codice identificativo (USER_ID); - analizzare la terza e la quarta filigrana digitale del secondo contenuto video con filigrana digitale, in modo da risalire al secondo codice identificativo (USER_ID).
IT102018000004285A 2018-04-06 2018-04-06 Sistema di distribuzione di contenuti video con filigranatura digitale e relativo metodo IT201800004285A1 (it)

Priority Applications (1)

Application Number Priority Date Filing Date Title
IT102018000004285A IT201800004285A1 (it) 2018-04-06 2018-04-06 Sistema di distribuzione di contenuti video con filigranatura digitale e relativo metodo

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT102018000004285A IT201800004285A1 (it) 2018-04-06 2018-04-06 Sistema di distribuzione di contenuti video con filigranatura digitale e relativo metodo

Publications (1)

Publication Number Publication Date
IT201800004285A1 true IT201800004285A1 (it) 2019-10-06

Family

ID=62816928

Family Applications (1)

Application Number Title Priority Date Filing Date
IT102018000004285A IT201800004285A1 (it) 2018-04-06 2018-04-06 Sistema di distribuzione di contenuti video con filigranatura digitale e relativo metodo

Country Status (1)

Country Link
IT (1) IT201800004285A1 (it)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060005029A1 (en) * 1998-05-28 2006-01-05 Verance Corporation Pre-processed information embedding system
WO2012106245A2 (en) * 2011-02-04 2012-08-09 Bickmore Jesse Unique watermarking for digital media
US8385590B1 (en) * 2008-11-05 2013-02-26 Adobe Systems Incorporated Video watermarking with temporal patterns
US20140098985A1 (en) * 2012-10-05 2014-04-10 Mobitv, Inc. Watermarking of images

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060005029A1 (en) * 1998-05-28 2006-01-05 Verance Corporation Pre-processed information embedding system
US8385590B1 (en) * 2008-11-05 2013-02-26 Adobe Systems Incorporated Video watermarking with temporal patterns
WO2012106245A2 (en) * 2011-02-04 2012-08-09 Bickmore Jesse Unique watermarking for digital media
US20140098985A1 (en) * 2012-10-05 2014-04-10 Mobitv, Inc. Watermarking of images

Similar Documents

Publication Publication Date Title
Singh et al. A survey of digital watermarking techniques, applications and attacks
Al-Shaarani et al. Securing matrix counting-based secret-sharing involving crypto steganography
US8379911B2 (en) Method and system for efficient watermarking of video content
KR100878579B1 (ko) 워터마킹 방법, 워터마크 확인 방법, 워터마킹 장치 및워터마크 확인 장치
US7792377B2 (en) Method of image authentication and restoration
US8824728B2 (en) Method and system for tracking illegal distributor and preventing illegal content distribution
KR20010015837A (ko) 손실을 가지고 전송된 이미지의 무결성을 확인하는 방법
CN106454367B (zh) 一种多媒体文件的标识方法及系统
Sharma et al. Combining haar wavelet and Karhunen-Loeve transform for robust and imperceptible data hiding using digital images
Hadmi et al. A robust and secure perceptual hashing system based on a quantization step analysis
Ding et al. Image authentication and tamper localization based on relative difference between DCT coefficient and its estimated value
US20050203872A1 (en) Method and apparatus making, operating and using media parsers to mark, read, and unmark instances of media formats supporting one, two and multi-dimensional instances and data streams
KR101200345B1 (ko) 점진적 차이값 히스토그램 기반의 가역 워터마킹을 이용한 블록단위 영상 인증방법
JP5508896B2 (ja) 画像処理方法
Kumar et al. A reversible high embedding capacity data hiding technique for hiding secret data in images
Abu-Alhaija Crypto-Steganographic LSB-based System for AES-Encrypted Data
IT201800004285A1 (it) Sistema di distribuzione di contenuti video con filigranatura digitale e relativo metodo
Banerjee et al. A secure high-capacity video steganography using bit plane slicing through (7, 4) hamming code
Obimbo et al. Using digital watermarking for copyright protection
Rahmani et al. High hiding capacity steganography method based on pixel indicator technique
Sirsikar et al. Analysis of data hiding using digital image signal processing
JP2004179804A (ja) 暗号情報の送受信システム、送受信方法及び暗号情報埋め込み用プログラム
El-Shafai et al. A hybrid security framework for medical image communication
GB2582456A (en) System, device and method for fingerprint authentication using a watermarked digital image
Chammem Robust watermarking techniques for stereoscopic video protection