Guida Completa A Dgindex 1.4.5


Scritta da aytin il 13-01-2006

L'ideale complemento di Avisynth. Il frameserving servito.


GUIDA COMPLETA A DGINDEX 1.4.5

- scritta da: ..::Aytin::..
- collaborazione, supporto, revisione: ..::Divxmania Staff::..


1. Cos'è DGindex

DGIndex è un piccolo ma potentissimo tool il cui scopo primario è quello di decodificare streams MPEG-1/2 e creare un indice contenente, per ogni frame, le locazioni e tante altre informazioni, prelevandole dagli header.

DGIndex, insieme ad Avisynth, costituisce il completamento per la realizzazione del frameserving (cfr. Cap 2. di "Editing non lineare con Avisynth"). DGIndex costruisce l'indice usato da Avisynth (attraverso un plugin per avisynth, DGDecode, che serve per "aprire" gli streams MPEG-2) per accedere ai frames e processarli.

La coppia (DGIndex, Avisynth), mette a disposizione un ulteriore strato software attraverso il quale un'applicazione può visualizzare e processare streams che altrimenti non potrebbe manipolare (MPEG1/2, VMW, ASF e via dicendo)

Ritornando allo specifico, DGIndex, oltre ad MPEG-1/2, è in grado di decodficare tanti altri tipi di streams, demuxare audio e video, disporre di elementari funzioni di editing video come il filtro sulla luminananza, il crop o la conversione del Colorspace.

La versione di riferimento è l'ultima release stabile, la 1.4.5. Tutto ciò che seguirà è in parte basato sulla guida di riferimento, alla quale rimando per approfondimenti ulteriori.


Cap. 2. Esplorando i menù
Cap. 3. DGDecode: plugin per Avisynth
Cap. 4. Analisi con DGIndex 2. Esplorando i menù

La GUI di DGIndex è molto semplice ed intuitiva da usare.
L'ordinamento dei menu riflette una sorta "gerarchia operazionale" da seguire durante l'utilizzo.

2.1. File

Il menù File è diviso in 2 parti:
La 1a relativa al caricamento o al salvataggio del progetto, vale a dire al caricamento dell'indice o alla sua creazione.
La 2a parte è relativa alla visualizzazione dell'anteprima.
Preview attiva l'anteprima disabilitando gli altri menu, mentre play, stop, pause/resume regolano, com'era facile immaginare, il playback.

user posted image

Fig. 2.1 - Menù "File"

Per la creazione dell'indice (file .d2v) occorre indicare, attraverso Open, i VOB da includere o i file MPEG-1 da processare.

user posted image

Fig. 2.2 - Selezione files

Load Project carica un file d2v salvato in precedenza.
In entrambi i casi il risultato è identico: DGIndex mostrerà la lista di ciò che è stato selezionato.

user posted image

Fig. 2.3 - Modifica lista

Questa lista può essere modificata: Una volta premuto OK, DGIndex è, di fatto, in grado di produrre il nostro file indice, salvo compiere ulteriori settaggi.

La slidebar (1) mostrata in figura, serve per selezionare la porzione di video da processare o di cui si vuol visualizzare l'anteprima.
La selezione della porzione video, che il default include completamente, avviene attraverso i pulsanti (2) e (3) oppure premendo rispettivamente "[" per lo start, oppure "]" per l'end, secondo il consueto meccanismo che conosce bene chi ha usato almeno una volta VirtualDub o similari.
I pulsanti "<" e ">" (4), servono per l'avanzamento frame-to-frame.

user posted image

Fig. 2.4 - Slidebar di DGIndex 2.2. Stream

DGIndex permette di aprire direttamente gli streams una volta specificati i PIDs audio e video.

user posted image

Fig. 2.5 - Menù "Streams"


Usando Detect PIDs: PAT/PMT, viene mostrata una lista di streams audio/video e si scelgono quelli da decodifcare selezionando lo stream video e quello audio.
Questa selezione è resa possibile dal fatto che i transport streams, periodicamente, inviano delle tabelle di dati, le tabelle PAT/PMT per l'appunto, contenenti i riferimenti (PIDs) per gli streams audio e video.

A volte però queste tabelle di dati non sono disponibili ed allora è necessario ricorrere ai dati grezzi, senza riferimenti. I cosidetti raws data.
Detect PIDs: Raw, individua gli streams così come si trovano, senza nessun riferimento di sorta, e dal momento che non si può capire quali siano gli stream audio e video che vanno insieme, si deve procedere per tentativi.

Set PIDs, infine, permette di settare manualmente i pids. DGIndex, in questo caso non effettuerà nessun tentativo di "detect"

2.3. Video

Anche il menù Video, si può imaginare diviso in 2 parti.

user posted image

Fig. 2.6 - Menù "Video"

La 1a parte (selezione rossa), comprende due voci che sono forse fra le più importanti da settare su DGIndex.
La 2a parte (selezione blu) è quella che permette un certo filtraggio sul video.

Analizziamo prima la 2a parte.

Nel caso in cui il frameserve avvenga tramite DGVfapi (invece che con DGdecode, come vedremo in seguito, per il quale questo settaggio è ininfluente) il video è sempre convertito in RGB.

YUV -> RGB effettua una conversione del colorspace su due scale differenti: Al 98% si utilizza la 1a, PC scale, tranne che in pochissimi casi consigliati dalla documentazione completissima inclusa in DGIndex.

Luminance Filter e Clipping permettono di regolare la luminosità, un pò come avviene con alcuni filtri per avisynth, e di croppare l'immagine.

user posted image

Fig. 2.7 - Luma e Crop

Le slidebar regolano l'intensità delle impostazioni e la selezione della checkbox in alto a destra consente di visualizzare direttamente sull'anteprima le conseguenze dei settaggi appena fatti.

user posted image
Il consiglio è di non fare uso di questi filtri.
Visto che l'idea di fondo è quella di fare il frameserving attraverso DGDecode, quindi con Avisynth, si avrà l'opportunità di intervenire meglio e con più precisione in seguito (cfr. Cap. 4 di "Editing non lineare con Avisynth")


Veniamo al punto cruciale, i settaggi fra i più importanti di DGIndex.
Semplicissimi da effettuare ma un errore in questo punto potrebbe compromettere l'intera conversione. iDCT ALGORITHM

Nella versione 1.4.5 di DGIndex, ci sono ben 7 algoritmi a disposizione. Gli algoritmi non supportati dal processore usato vengono automaticamente esclusi dal menu (nella figura in basso, manca l'algoritmo 32-bit SSE2 MMX perchè non supportato dal mio processore).
La scelta dell'algoritmo iDCT può essere fatta in base a criteri di velocità o di qualità:

user posted image

Fig. 2.8 - Scelta dell'algoritmo iDCT

La natura dei processori attuali permette di dare maggiore rilievo a quest'ultima, a differenza di quanto avveniva in passato quando si doveva cercare un buon compromesso.

Nella documentazione allegata c'è un'utilissima classifica degli algortimi iDCT che può essere il riferimento per chi cerca di capire quale sia l'algoritmo più adatto. Per un approfondimento sull'iDCT rimando a questo topic di Divxmania, scritto da CereS.
Credo sia stata una delle prime cose ad aver letto quando cercavo info su cosa fosse l'iDCT e non ho mai trovato niente di altrettanto chiaro e sintetico.

FIELD OPERATION

Tre semplici voci, la cui selezione dev'essere molto accurata:

user posted image

Fig. 2.9 - Field Operation

Field Operation, permette di decidere come gestire il flag RFF (REPEAT_FIRST_FIELD) che, nello stream MPEG-2, serve per replicare il frame che contiene tale flag al fine di realizzare il 3:2 pulldown.
Il 3:2 pulldown è utilizzato per permettere ai sistemi NTSC (29,97 fps) la visualizzazione di video a 23,976 fps.

Non mi dilungherò oltre sulla spiegazione di cosa sia il 3:2 pulldown.
Una spiegazione più che esaustiva dell'argomento si trova nei paragrafi 6.1, 6.2 e 6.3 di "Editing non lineare con Avisynth", ai quali vi rimando per una comprensione totale di tutto quello che seguirà.

Honor Pulldown flags e Ignore Pulldown Flags hanno comportamenti antitetici.

Se Honor Pulldown flags è settato, il file d2v prodotto conterrà i riferimenti anche agli eventuali frame ripetuti, relativamente ai flags RFF presenti, altrimenti (settando Ignore Pulldown Flags) l'indice verrà costruito in base ai frame così come sono, senza tenere conto dei flags RFF

Nel 1° caso: Nel 2° caso, non tenendo conto dei flags RFF, l'indice si riferirà invece ai frames così come si presentano, senza ripetizioni di sorta.

Che bisogna fare?
Se si vuole rispettare la natura della sorgente, occorre sempre lasciare Honor Pulldown flags settato.
Per quel che ci riguarda, è quello che bisogna fare anche per i DVD di area PAL.

Ignorare i flags, settando Ignore Pulldown flags, può essere dannoso anche per gli utenti di area PAL.
Infatti, se per sfortuna ci si trova di fronte ad un pulldown fatto male, la conseguenza è un'asincronia audio-video (sempre che il demultiplex della traccia audio si faccia tramite DGIndex, chiaramente)

Ignore Pulldown flags è utile, semmai, in fase di analisi del flusso MPEG-2 originario.

Infine veniamo alla terza e ultima opzione: Forced Film

Questa opzione permette di abbassare il framerate agli originali 23,976 fps, nel caso di FILM che abbiano subito un 3:2 pulldown.
In pratica non fa che operare un inverse telecine (iVTC)
Verranno ignorati i flags RFF e inseriti (o rimossi) alcuni frames, al fine di mantenere costante il framerate in uscita, oltre a che a mantenere la sincronia fra audio e video.
Usare questo opzione per video che non siano FILM può causare jerk-effect (movimenti a scatti) e/o asincronie audio-video.

Quando usare Forced Film?
Diventa molto importante il valore del campo Video Type nell'anteprima . Ricordo sempre il rimando ai paragrafi 6.1, 6.2 e 6.3 di "Editing non lineare con Avisynth" per tutto quei concetti che non vengono approfonditi in questo paragrafo e che sembrano essere dati per scontati.

2.4. Audio

Il settaggio dei parametri visti finora potrebbe essere già sufficiente per avere il nostro progettino .d2v.
Se abbiamo bisogno di demultiplexare anche l'audio, allora tornano utili anche le funzionalità offerte da questo menù.

user posted image

Fig. 2.10 - Menù "Audio"

Il menù Audio ha una struttura molto simile a quella del menù Video: Output Method e Track Number specificano cosa estrarre con esattezza.
A seconda della selezione, si abiliteranno o meno le altri parti del menù Audio. user posted image
Se lo stream è un MPEG-2, le tracce demultiplexate da Demux Tracks o Demux All Tracks saranno dei files AC3.
Se lo stream è un MPEG-1, le tracce demultiplexate da Demux Tracks o Demux All Tracks saranno dei files .mpa. La selezione di Demux AC3 to WAV non produrrà ovviamente nessun file in uscita.


Nella conversione della traccia AC3 in WAV entrano in gioco un bel pò di altri fattori.
Il Dolby Digital Decode, nell'economia della conversione della traccia audio, è importante per la gestione del dolby digital su una traccia in uscita a due soli canali.

DYNAMIC RANGE CONTROL

Nei decoder, il DRC è un insieme di metadati. Viene inviato insieme al segnale audio per settare il range dinamico entro cui il segnale audio lavora. Diminuendo il DRC, si restringe tale range.
Questo serve per garantire un buon ascolto in ambienti ricchi o meno di rumore di fondo.
Noi faremo la stessa cosa. A seconda dell'ambiente di riferimento, estrarremo la traccia audio con un DRC disabilitato oppure che restringa, via via, il range dinamico.

user posted image

Fig. 2.11 - Dynamic Range Control

Si tenga presente che più il range dinamico è ristretto e più il suono risulterà appiattito, uniforme.

DOLBY SURROUND DOWNMIX

Lo stream AC3 può contenere fino a 6 canali. Il WAV solo due canali stereo, L/R.
Qualcosa si dovrà perdere, nella fattispecie il surround L/R, che attraverso il downmixing finirà nei canali stereo L/R.
Il downimix con DGIndex si può ottenere in due modi: attivando o meno la voce corrispondente. PRE-SCALE DECISION

E' una normalizzazione più raffinata. E' una normalizzazione su un audio amplificato che trova le sue ragioni nella riduzione degli errori di quantizzazione per il decoding del dolby digital.

Oltre al Dolby Digital Decode, possiamo modificare il sample-rate da 48 KHz a 44.1 KHz

user posted image

Fig. 2.12 - Modifica Sample-Rate

La precisione della conversione si paga con un maggior tempo di codifca.

Infine abbiamo Normalization
Tipicamente, serve per ridurre i suoni più forti nella misura della percentuale fissata nella finestra di configurazione.

user posted image

Fig. 2.13 - Normalizzazione

Il salvataggio del progetto avverrà in 2 passi.
Nel 1° si estrae l'audio così com'è. Nel 2° si normalizza.
Si tenga conto che ogni tipo di normalizzazione dell'audio toglie spazialità al suono, dovendone livellare i picchi.

A questo punto, settando audio e video (o solo Video e disabilitando l'Audio, come succede spesso) siamo in grado di creare il nostro progetto .d2v premendo F4 o selezionando Save Project dal menù File.
DGIndex inizierà a lavorare e a noi non rimarrà che continuare con Avisynth, una volta finito.

user posted image

Fig. 2.15 - Creazione file d2v

2.5. Options

C'è poco da dire su questo menù.

user posted image

Fig. 2.16 - Menù "Options"

Process Priority: assegna la priorità di DGIndex al processore. A meno che non il PC non sia impegnato con qualcos'altro, il che giustificherebbe una diminuzione delle priorità, normal (il default) va più che bene.

Playback Speed:[/i][/b] regola la velocità di riproduzione durante l'anteprima. Da un minimo, rappresentato dall'avanzamento frame-to-frame, al massimo consentito dal processore.

Force open GOPs in D2V File: capita che gli streams non siano codificati correttamente e che alcuni GOPs appaiano chiusi quando in realtà sono aperti. La conseguenza è la comparsa di artefatti sotto forma di blocchetti quando si accede in maniera casuale al video durante la riproduzione in frameserving (script avs per es.).
Per ovviare a questo inconveniente basta selezionare questa voce.
Poichè tale selezione influisce sulle performance, sarebbe meglio farla quando c'è effettiva necessità. Log Quant Matrices: ha uno scopo puramente "didattico". Serve per dare evidenza alle matrici di quantizzazione che sono state usate nel processo di codifica dello stream MPEG-2. Possono essere diverse, perchè una può lavorare meglio di un'altra, a secondo della natura del video. Il file viene salvato in formato .txt.

2.6. Tools

Contiene un'unica voce Parse D2V, sul cui utilizzo ritornerò più diffusamente in seguito, che produce un file di testo sulla base del file d2v.
Tale file estrapola dal file .d2v alcune informazioni molto utili in fase di analisi dello stream MPEG-2


Cap. 1. Cos'è DGindex
Cap. 3. DGDecode: plugin per Avisynth
Cap. 4. Analisi con DGIndex 3. DGDecode: plugin per Avisynth

Per il frameserving attraverso Avisynth, DGIndex mette a disposizione una dll che andrà importata nello script avs tramite loadPlugin

CODE
loadPlugin (c:\program files\DGMPGDec\DGDecode.dll")


La dll comprende 4 filtri: 3.1. MPEG2Source()

Il core del frame-serving offerto da DGDecode, è il filtro che permette di caricare gli streams MPEG-1/2.
MPEG2Source ha ben 13 parametri ma nel 99% dei casi ne verranno usati solo 2 (i primi 2) 3.2. LumaYV12() Per maggiori approfondimenti cfr. Cap. 4. di "Editing non lineare con Avisynth"

3.3. BlindPP()

Fornisce una funzionalità di deblocking, esattamente come si poteva fare con MPEG2Source. 3.4. Deblock()

Siccome non ci basta mai, ancora un filtro di deblockling. Ovviamente la proprietà più importante di questo insieme di filtri è la capacità di acquisire streams MPEG-1/2.
Ad arricchire questa peculiarità, vengono fornite ulteriori funzionalità di deringing, deblocking e luma, peraltro disponibili su altre decine di filtri Avisynth.


Cap. 1. Cos'è DGindex
Cap. 2. Esplorando i menù
Cap. 4. Analisi con DGIndex 4. Analisi con DGIndex

DGIndex oltre che a fornire 'sto benedetto file .d2v è molto utile in fase di analisi dello stream, in particolare per quello MPEG-2
Tale analisi si può effettuare in 3 modi differenti che non sono mutuamente esclusivi. Anzi, spesso finiscono per essere complementari.
Tali sistemi sono: 4.1. Utilizzo dell'anteprima

La visualizzazione dell'anteprima può avvenire Il playback avviene selezionando Preview nel menu File o premendo direttamente F5 (vedi par. 2.1.)

Per utilizzare l'anteprima per l'analisi, è meglio posizionarsi un pò dopo l'inizio del film, com'è mostrato in figura (ved. "selezione porzione video")
Questo perchè i logo dei films possono essere encodate in maniera differente rispetto al film.
e di conseguenza informazioni come colorimetry, video-type e a volte del frame-type, possono essere molto differenti.

user posted image

Fig. 4.1 - Visualizzazione anteprima

Ora lasciamo che l'anteprima lavori un paio di minuti.
Noi non dovremo far altro che osservare il riquadro Information e prendere nota di alcuni valori significativi.
Nella maggior parte dei casi, 10 secondi saranno più che sufficienti new_smileyb.gif

L'anteprima è composta da 3 sezioni: Video, Audio e Status. Ora passeremo al setaccio tutti i campi.

VIDEO AUDIO STATUS I valori di cui si deve tener conto, in definitiva, sono quelli relativi al VIDEO.
Vediamo quali valori considerare e come: Non a casa si parla di "suggerimenti". L'anteprima fornisce delle informazioni sommarie, ricavate perlopiù dai flag associati ai frame e che a volte possono essere fuorvianti.
E' sicuramente un primo passo (che molto spesso è più che sufficiente. Ciò che viene mostrato nel 98% dei DVD commerciali con l'eccezione del Colorimetry che può variare, è mostrato in Fig. 4.1), ma nei casi più micragnosi (NTSC e derivati) è obbligatorio completare con la visualizzazione del video frame-to-frame e con l'analisi del file .d2v (nel capitolo successivo)

4.2. Dettaglio del file .d2v

Quando si salva il progetto d2v ciò che viene fuori è qualcosa del genere:
Esempio:
CODE

DGIndexProjectFile11
5
J:\FILM\VIDEO_TS\VTS_01_1.VOB
J:\FILM\VIDEO_TS\VTS_01_2.VOB
J:\FILM\VIDEO_TS\VTS_01_3.VOB
J:\FILM\VIDEO_TS\VTS_01_4.VOB
J:\FILM\VIDEO_TS\VTS_01_5.VOB

Stream_Type=1
MPEG_Type=2
iDCT_Algorithm=5
YUVRGB_Scale=1
Luminance_Filter=0,0
Clipping=0,0,0,0
Aspect_Ratio=16:9
Picture_Size=720x576
Field_Operation=0
Frame_Rate=25000
Location=0,0,4,2F0EE

d00 1 0 2048 1 1 92 f2 e2 f2 f2 e2 f2 f2 e2 f2 f2 e2
900 1 0 184320 1 1 72 72 d2 f2 f2 e2 f2 f2 e2 f2 f2 e2
900 1 0 372736 1 1 72 72 d2 f2 f2 e2 f2 f2 e2 f2 f2 e2
900 1 0 593920 1 1 72 72 d2 f2 f2 e2 f2 f2 e2 f2 f2 e2
900 1 0 819200 1 1 72 72 d2 f2 f2 e2 f2 f2 e2 f2 f2 e2
900 1 0 1101824 1 1 72 72 d2 f2 f2 e2 f2 f2 e2 f2 f2 e2
900 1 0 1290240 1 1 72 72 d2 f2 f2 e2 f2 f2 e2 f2 f2 e2
900 1 0 1515520 1 1 72 72 d2 f2 f2 e2 f2 f2 e2 f2 f2 e2
900 1 0 1730560 1 1 72 72 d2 f2 f2 e2 f2 f2 e2 f2 f2 e2
...

La prima parte è piuttosto chiara.
Il numero in alto (5) corrisponde al numero dei VOB. Se lo stream è MPEG-1 sarà sempre 1.
Successivamente vengono riassume sia le impostazioni dell'utente che alcune caratteristiche dello stream (Stream_Type, MPEG_Type, Aspect_Ratio, Picture_Size, Frame_Rate, Location)
Infine, c'è una serie di cifre apparentemente indecifrabili.

Alcuni di questi valori sono esadecimali, da convertire in binario perchè ogni bit corrisponde all'attivazione di un flag. Se siete arrivati a questo punto, siete in grado di decodificare ogni singola voce del file .d2v.
Certo, fare un analisi considerando ogni singola voce (anche in un campione) per esaminare il comportamente dei flag più importanti come TFF, RFF, PF è pressochè impossibile.

Un escamotage valido solo per i flags TFF, RFF si ottiene considerando solo l'ultima cifra grazie alla quale si può risalire al pattern usato.
Nel nostro esempio abbiamo una sequenza costante di 2 che corrisponde all'assenza di pulldown (vedi anche par. 6.3. di "Editing non lineare con Avisynth").

Per il video interlaced o progressive si può ricorrere all'anteprima di DGIndex (che non fa altro che usare questi valori) ma per tirar fuori le informazioni più importanti si consiglia un altro approccio, disponibile nel menu Tools di DGIndex.
Si tratta di

4.3. "Parse D2V", analisi del file .d2v

Parse D2V effettua una scansione del file .d2v e restituisce un file di testo avente lo stesso nome del file d2v e il cui contenuto è la versione compattata di alcune importanti informazioni presenti nel file d2v d'origine, senza che ci sia bisogno di esaminare i flags bit per bit.
Ecco un esempio del file ottenuto:
D2V Parse Output

CODE
Encoded Frame: Display Frames....Flags Byte (* means in 3:2 pattern)
--------------------------------------------------------------------

[Field Operation None, using flags]
[GOP]
[Clip is TFF]
0 [I]: 0,0......................2
1 [B]: 1,1......................2
2 [P]: 2,2......................2
3 [B]: 3,3......................2
4 [B]: 4,4......................2
5 [P]: 5,5......................2
6 [B]: 6,6......................2
7 [B]: 7,7......................2
8 [P]: 8,8......................2
9 [B]: 9,9......................2
10 [B]: 10,10...................2
11 [P]: 11,11...................2
[GOP]
12 [B]: 12,12...................2
13 [B]: 13,13...................2
14 [I]: 14,14...................2
15 [B]: 15,15...................2
16 [B]: 16,16...................2
...


Le informazioni sui flags che prima si reperivano con tanta fatica ora sono immediatamente disponibili.
Il file riporta nell'ordine: In questo file è subito evidente come: Supponiamo di aver fra le mani un video che ha subito un telecine.
Fermo restando il settaggio di Field Operation al fine di ottenere un file d2v corretto, l'ultimo colonna del file restituito da Parse D2V consisterebbe in una sequenza simile a: 3,0,1,2,3,0,1,2....
L'ordine delle cifre non è vincolante, lo è la ripetizione della sequenza di 4 cifre ed è sufficiente per confermare la presenza del 3:2 pulldown (cfr. 6.3. di "Editing non lineare con Avisynth").
In questo caso già dall'anteprima di DGIndex deve risultare una percentuale FILM senza dubbio superiore al 95%

Insomma, in due secondi si riescono a trarre delle conclusioni importanti, difficilmente ottenibili esaminando "manualmente" il file .d2v.

In uno stream MPEG-2 un analisi di questo tipo ha senso.
In uno stream MPEG-1, non avendo i flags tipici dell'MPEG-2, il risultato prodotto da Parse D2V non è di alcun aiuto. L'unico supporto fornito da DGIndex in questo caso è la possibilità di disporre di un indice sulla stream d'origine.

CONLUSIONI

DGIndex, come Avisynth, è un piccolo miracolo software. Un tool molto semplice da usare (la crezione di un progetto non richiede mediamente più di 7-8 minuti, compresa l'analisi), indispensabile se siete fra quelli che vogliono tenere sotto controllo ogni aspetto della codifica.

Agli ideatori di questi software va la mia riconoscenza, senza di loro non avrei potuto scrivere niente di tutto questo.
Allo staff di Divxmania va la mia solita riconoscenza per l'aiuto, il supporto e la pazienza. Un giorno, forse, riuscirò a debellare la mia logorrea new_smileyb.gif

..::Aytin::..


Cap. 1. Cos'è DGindex
Cap. 2. Esplorando i menù
Cap. 3. DGDecode: plugin per Avisynth

Pagina stampata da Divxmania.it
Vietata la copia e la distribuzione (anche parziale) senza la previa autorizzazione.