Autore |
B-frames : alla
ricerca della verità. |
gannjunior

Registrato il:
28-05-2002 Messaggi:
239
 
Da: Genova
|
Inserito il 10-07-2002 |
17:51
Facendo uno stesso film
1passQ100 con e senza b-frames sono sempre stato
propenso,spazio permettendo, a scegliere quello senza
B-frames: quest'ultimo era sempre un pò meglio.Nel 2pass
avevo notato,nei log, la frase"bidir mult 2.000" ma nn
ne comprendevo il significato : Alex mi ha spiegato ke
"si dice" stia per "moltiplicatore per i B-frames = 2".
Zoltan nell'occasione d quel post disse:"...se
permettono di risparmiare il 30% dello spazio vuol dire
che hanno meno informazioni. Il quant non è un
indice di qualità, ma di occupazione, no? E allora i
b-frames hanno quant 4, quando noi impostiamo la massima
qualità (cioè tutti a 2). Regge?..."Caro Zoltan
probabilmente SI! Ho cercato risposte dai signori
della divx.com ma le ho trovate solo a metà.Su doom9 è
andata meglio e ho trovato ke si può modificare
l'effetto del moltiplicatore dal registro: "There is
no settings in the GUI for changing the B frame
Quantizer multiplier but you can do it in the registry :
HKEY_CURRENT_USER\Software\DivXNetworks\DivX4Windows
Key "Bidir quant multiplier" by default it's set at
8192 and the Q multiplier is 2 so Qx=Bidir quant
multiplier/4096
Bidir quant multiplier=8192
Qx=2.00 Bidir quant multiplier=7168 Qx=1.75
Bidir quant multiplier=6144 Qx=1.50 Bidir quant
multiplier=5120 Qx=1.25 Bidir quant multiplier=4096
Qx=1.00 " Tuttavia sia io ke Alex abbiamo
provato,modificando i valori nel registro,ma senza
effetti d sorta: cioè il moltiplicatore resta sempre a
2.
Dato l'argomento delicato,ho preferito
introdurlo adeguatamente.Ora vengo al dunque: a noi
manca la dimostrazione numerica ( alla quale magari c
penserà Alex dopo le meritate vacanze: avete visto ke
foto ha postato x farci soffrire?!!
).
Io penso d poter fare,diciamo,una "dimostrazione
VISIVA" ke porta xò a risultati concreti. Se è vero
ke quel "mult=2" è un moltiplicatore di 2 allora i
valore min.dei quantizers per i B-frames è =4. 4 però è
da considerarsi ancora un valore d "qualità" e,dato ke i
nostri divx sono sempre ben fatti, ,
nn ce ne accorgiamo così facilmente. Ho pensato
quindi che, per vedere se i
B-frames hanno qualità X*2
,sarebbe bastato alzare appena i quantizer (un aumento d
1 dei quantizers degli I e dei P frames genera una
aumento d 2 dei B-frames...).Così ho volutamente forzato
il codec in questo modo:
1) 1pass-10000-q=Q=4
senza alcun tools
2) 1pass-10000-q=Q=4
solo B-frames
Beh è
facile intuire ke tutti i B-frames,data l'hp del
moltiplicatore,devono essere a
8.E,se
sono a 8,è FACILE VEDERLO.Bene ho fatto 1) e 2) sul
capitolo 29 di "planet of apes": scena nel deserto con i
cavalli in corsa.Inutile dire la visibile degenerazione qualitativa di 2):
specialmente nelle scene veloci visibilissimi
scubettamenti e belli grandi.Nn
vi dico al fermo immagine...Posto 2 foto in semplice
.jpeg, + ke esemplificative:
1) - no B-frames
2) - con
B-frames
Bene questo certamente convince in modo
ragionevole alcune mie impressioni visive. E' quindi
ragionevole accettare che i B-frames subiscano una
moltiplicazione *2 dei quantizers.
In attesa d
una dimostrazione + profonda penso ke si possano trarre
importanti conclusioni:se si vuole ottenere la max
qualità e magari,grazie al divx5enc,vediamo ke il film
può stare in 2cd(ipotizzando d usare 3cd solo dove è
indispensabile), nn conviene usare i B-frames.
Paradossalmente,nei film ad 1 cd, dove
normalmente,salvo film molto comprimibili, dobbiamo per
forza usare una compressione maggiore( e quindi
QUANTIZER + ALTI),sebbene i B-frames siano + necessari x
contenere la dimensione, anke il loro "effetto negativo"
è amplificato a causa del moltiplicatore e dei quantizer
medi + elevati assegnati agli I e P.
x vostra
curiosità verificate le prove 1) e 2). Aspetto con
piacere degli approfondimenti.
Ciao
[ Questo Messaggio è stato
Modificato da: gannjunior il 2002/07/10 18:14
]
Profilo
Modifica
Quota |
Zoltan The Mage

Registrato il:
10-06-2002 Messaggi:
436

Da: Land Of Frost
|
Inserito il 10-07-2002 |
20:44
Quote:
|
Zoltan nell'occasione d quel post
disse:"...se permettono di risparmiare il 30%
dello spazio vuol dire che hanno meno
informazioni. Il quant non è un indice di
qualità, ma di occupazione, no? E allora i
b-frames hanno quant 4, quando noi impostiamo la
massima qualità (cioè tutti a 2). Regge?..."Caro
Zoltan probabilmente SI!
|
|
Non fa una piega. La dimostrazione ci sta
tutta, ci voleva proprio!
----------------- Quando scoprirai di
trovarti dalla parte della maggioranza, sarà giunto il
momento di fermarti a
riflettere. ----------------- Zoltan The
Mage HM Portal Web
Lord
Profilo www
Quota |
Alex_e_Basta

Registrato il:
19-02-2002 Messaggi:
389
    
|
Inserito il 11-07-2002 |
00:00
@Gann Veramente valida
questa tua argomentazione e la dimostrazione visiva non
fa una grinza: bravo! Una piccola precisazione
quando dici Tuttavia sia io
ke Alex abbiamo provato,modificando i valori nel
registro,ma senza effetti d sorta: cioè il
moltiplicatore resta sempre a 2.
Nel log del 1°passo viene
riportato CORRETTAMENTE il valore di B-mult come da
modifica del registro, la complexity cambia rispetto a
quando si usa B-mult = 2, ma il 2° passo se ne sbatte
tranquillamente (come fa del resto usando divx4log) e fa
un pò come gli pare (o perlomeno così sembra a prima
vista).
Detto questo occorre valutare come
considerare i Quant dei B-frames nel calcolo della divx
Quality: vanno moltiplicati per 2 ? oppure la
perdita di qualità dovuta ai B-frames non è
proporzionale al moltiplicatore ?
Mi spiego:
raddoppiare un Quant significa ridurre la qualità del
50%; vale anche per i B che attingono informazioni sia
dal P precedente che dal frame seguente e quindi hanno
un errore di Motion Estimation inferiore?.
Questo è un argomento che richiede una pensata
geniale da parte di tutti noi e soprattutto da parte di
chi la formula della divx quality l'ha pensata (Elia e
Mauro,credo).
----------------- Ciao.
Alex ----------------- Win2K Pro SP2, Athlon
1000 TB, Asus A7V133, 512MB SDRAM, Hercules 3D Prophet
2, SoundBlaster 64, 2xIBM 30GB (7200rpm)+1xWD 80GB
(7200rpm), Pioneer 105SZ 16/40, Waitec 12/10/32.
Profilo
Quota |
gannjunior

Registrato il:
28-05-2002 Messaggi:
239
 
Da: Genova
|
Inserito il 11-07-2002 |
01:15
@Alex Grazie!
"Nel log del 1°passo viene riportato
CORRETTAMENTE il valore di B-mult come da modifica del
registro, la complexity cambia rispetto a quando si usa
B-mult = 2, ma il 2° passo se ne sbatte tranquillamente
(come fa del resto usando divx4log) e fa un pò come gli
pare (o perlomeno così sembra a prima vista). "
Ah,ecco!...Dopo le modifiche del registro(fatte
a 1.00, 1.25, 2.75 e 3.00) ho guardato la dimensione
finale e un'okkiata visiva e,dato ke le dimensioni erano
identike e la qualità nn cambiava(rispetto a 2.00) nn mi
è neanke venuto in mente d guardare il 1
passo...quindi...bah...mi sto kiedendo "a cosa diavolo
serva il 1 passo??!!"...
"Detto questo occorre
valutare come considerare i Quant dei B-frames nel
calcolo della divx Quality: vanno moltiplicati per 2
? oppure la perdita di qualità dovuta ai B-frames
non è proporzionale al moltiplicatore ? "
Mmmm,moltiplicare semplicemente *2 sarebbe
troppo facile : anke x te la modifica del quant analyzer
.
Osservando l'analyse.log mi viene da pensare ke la
perdita nn sia sempre d 2. mi spiego: sembrerebbe
<=2.Sembra ke il codec, in base alla complexity,
decida quanto può essere grande il moltiplicatore e
quindi la perdita.Forse dobbiamo considerare B-mult = 2
come un limite superiore oltre il quale il codec nn va:
cioè se i quant dei frames precedenti e successivi sono
2, AL MAX i quant dei B-frames sono 4.o forse è meglio
dire ke certamente sono <=4.Stesso discorso con
mult=3. E se è =1 sarà vero ke i quant sono identici a
quelli dei P e degli I?
Sai cosa penso? ke si possa assimilare il
moltiplicatore ad un "indice d pedita" relativo ai
B-frames: il codec assegnerà un mult per ogni B-frames
presente:se fosse possibile ricavare tale mult
dall'osservazione dell'analyse.log e facendone poi la
media saremmo a cavallo: se fosse,ad esempio *1,7 allora
basterebbe soppesarlo per il totale dei B-frames...
Ciao
----------------- WinXP PRO Win98SE,
AthlonXP 1600@1850+(x ora..), Qdi Kudoz 7 , 512 Mb DDR
266, Geforce 2 Mx 400 64 Mb, Sound Blaster Live 5.1,HD
Maxtor 40 Gb ATA 100 7200 rpm,LG Combo 12x8x32x, monitor
Samsung SyncMaster 900IFT 19",Pinnacle studio PCTV
rave
Profilo
Modifica
Quota |
Zoltan The Mage

Registrato il:
10-06-2002 Messaggi:
436

Da: Land Of Frost
|
Inserito il 11-07-2002 |
02:18
Quote:
|
Mi spiego: raddoppiare un Quant
significa ridurre la qualità del 50%
|
|
Scusa
Alex, ma il quant non è un indice di occupazione? I B
frames, essendo diversi dagli altri, non credo abbiano
un rapporto quant/qualità come gli
altri.
----------------- Quando scoprirai
di trovarti dalla parte della maggioranza, sarà giunto
il momento di fermarti a
riflettere. ----------------- Zoltan The
Mage HM Portal Web
Lord
Profilo www
Quota |
supercola

Registrato il:
24-03-2002 Messaggi:
613
 
Da: roma
|
Inserito il 11-07-2002 |
10:45
...mmm... molto
interessante... credo che farò qualche prova....
----------------- Win
2k,XP1700@2050+,a7a266,256MB266 samsung cas2,HD IBM
ata100 7200rpm 30 GB, soundblaster live!5.1,matrox g400
32mb,pioneer 16/40,Liteon 32123s, raffreddamento
manufatto "double twist&pipe" Non smanettare è
bene...ma smanettare è meglio :-D
Profilo
Quota |
Elia

Registrato il:
04-10-2001 Messaggi:
393
    
Da: Fano
|
Inserito il 11-07-2002 |
12:30
Nell'utilizzo dei bframes, ho
l'impressione che si debba rivedere l'assioma che fà
discendere la qualità oggettiva dal rapporto tra
ingombro e ingombro ottimale.
Questo perchè, se
non ho capito male, cambia profondamente l'algoritmo con
cui il decoder ricompone l'immagine del singolo delta
frames. Volendo semplificare non c'è più una semplice
addizione riferita al frame precedente, ma anche una
sottrazione riferita al frame successivo.
Ho
provato a codificare uno spezzone di 20000 frames con
bframes attivati e successivamente disattivandoli,
stando ben attento ad ottenere due file di dimensioni
uguali. Anche se l'avg quant è senza dubbio migliore con
i b frames attivati, la resa visiva è migliore senza.
Ho l'impressione che il postprocessing perda
qualche colpo quando trova i bframes!
A riprova,
ho uno spezzone di Moulin Rouge, codificato con b frames
più volte e con filtri di resize diversi, che si pianta
su un frames, impallando sia WMP che BSplayer, ma che
viene riprodotto correttamente da Virtualdub, senza che
segnali alcun errore. Lo stesso, codificato senza b
frames, non da alcun problema.
Ritengo anche io
che l'argomento debba essere ulteriormente approfondito.
.... potrebbe farlo Alex mentre noi ad Agosto saremo
in ferie....... io in
Sardegna....
-----------------
Ciao, Elia
Profilo Email
Quota |
strek

Registrato il:
18-01-2002 Messaggi:
397
    
|
Inserito il 11-07-2002 |
12:43
Qualche prova l'ho fatta...
Ho codificato un pezzetto con QualityBased Q=4
con e senza B-frames Poi lo stesso a Q=8 senza
B-frames.
Non ho tempo per postare immagini,
comunque posso dare un giudizio personale...
Q4_No_B è chiaramente migliore del Q4_B nei
frames "B" e uguale negli altri.
Ma il
peggioramento dei frames "B" rispetto ai "P" non è
paragonabile al Q8_No_B. I frames "P" a Q4 sono
buoni I frames "B" a Q4 sono più "blokkettati" dei
PQ4, ma più nitidi dei PQ8 I frames "P" a Q8 sono
"blokkettati" + o - come i BQ4, ma molto più "sgranati"
(qualcuno ricorda il "film effect" del postprocessing,
ma molto più accentuato nei contorni)
Probabilmente la "qualità" del frame non è molto
peggiore nel B rispetto al P, ma il minore bitrate
aumenta i blokki...
Files dec: Q4_No_B =
21.110.784 byte 152 KB/sec Q4_B = 18.302.976 byte
132 KB/sec Q8_No_B = 10.450.944 byte 75 KB/sec
P.S.: il tutto avviene solo in scene
movimentate e quasi invisibile a velocità reale. A
occhio nudo, senza still, non c'è differenza fra Q4_B e
Q4_No_B. Con il Q8 peggiora molto.
Avanti
un'altro...
----------------- Ciao
Strek ---------------- Win98, Athlon XP
1600+ @ 1900+, EpoX 8K3A, 256MB DDR 2700, ATI All In
Wonder 128 16MB, firewire ATI DV Wonder, SBLive!, IBM
40GB ATA100 + IBM 13GB ATA66 (7200rpm), DVD-ROM Toshiba
SD-M1212 6/32, Master. Traxdata
8432
Profilo
Quota |
Mauro

Moderatore Registrato il: 30-08-2001 Messaggi: 1648
    
Da: Rimini
|
Inserito il 11-07-2002 |
13:03
La funzione del bFrame non è
certamente quello di aumentare la qualità. Ma, con
una strategia brillante, di contenere al massimo gli
ingombri. D'altra parte, gli stessi deltaframes
hanno questa funzione. I bFrames spingono al massimo
(allo stato attuale) la compressione. Inutile
ricordare come lo scopo dei DivX 5.xx sia lo streaming,
e quindi il problema degli ingombri (i bFrames possono
far risparmiare dal 20 al 30% di spazio) risulti
primario.
Ora un discorso interessante potrebbe
essere: quanto si perde attualmente con i bFrames in
termini di qualità e rapportandolo a quanto si guadagna
in spazio, può essere conveniente ?
Spesso
minime variazioni nella qualità si notano appena, o solo
con una attenzione volta interamente a questo,
attenzione che quindi non si avrebbe durante una normale
visione. 200-300-400 Mb di ingombro in meno invece
si notano sempre e possono essere decisivi per diminuire
di un cd la codifica o inserirci l'audio in AC3 5+1
originale...
Ai posteri..., ecc ecc.
???
-----------------
Ciao M a u r o WinME, P4 1300, Asus,
384Mb Rambus, Rage Fury Pro/Xpert, SBLive 1024, Samsung
20Gb, Maxtor 80Gb 5400, Pioneer 10/40, Plextor 16/10/40,
Panasonic 19"
Profilo Email www
Quota |
strek

Registrato il:
18-01-2002 Messaggi:
397
    
|
Inserito il 11-07-2002 |
13:15
Hei Mauro....
vedo che
hai cambiato mobo e proc... o sbaglio?
----------------- Ciao Strek
---------------- Win98, Athlon XP 1600+ @ 1900+,
EpoX 8K3A, 256MB DDR 2700, ATI All In Wonder 128 16MB,
firewire ATI DV Wonder, SBLive!, IBM 40GB ATA100 + IBM
13GB ATA66 (7200rpm), DVD-ROM Toshiba SD-M1212 6/32,
Master. Traxdata 8432
Profilo
Quota |
Mauro

Moderatore Registrato il: 30-08-2001 Messaggi: 1648
    
Da: Rimini
|
Inserito il 11-07-2002 |
14:16
[OT] @strek Si, non so tu dove eri
rimasto, ma questo PC qui ce l'ho da meno di un mese
(non è superveloce, ma si difende bene...). Dalla
settimana scorsa, poi, ho l'ADSL... cosa voglio di più ?
Ciao M a u r o WinME, P4 1300, Asus,
384Mb Rambus, Rage Fury Pro/Xpert, SBLive 1024, Samsung
20Gb, Maxtor 80Gb 5400, Pioneer 10/40, Plextor 16/10/40,
Panasonic SL95 19"
[
Questo Messaggio è stato Modificato da: Mauro il
2002/07/11 14:18 ]
Profilo Email www
Quota |
gannjunior

Registrato il:
28-05-2002 Messaggi:
239
 
Da: Genova
|
Inserito il 11-07-2002 |
15:11
@Strek
Scusami però nn si può paragonare Q8_no_B con
Q4_B dove in quest'ultima soltanto i B sono di
quant.= "8" e gli I e P sono a 4. Nella prima,Q8_no_B,
invece, tutti i frames e cioè gli I e P sono a 8;quindi
i P si basano su degli I con quant=8. Mentre in Q4_B, i
B,ke si basano su macroblokki codificati come differenza
dal frame I o P precedente e seguente(FP e BP), si
basano appunto su I=P=4...
@Mauro
Sono assolutamente d'accordo.Mettere l'ac3, grazie
ai B-frames, è quasi una bazzecola,pur mantenendo un
video d qualità. Però sarebbe interessante,come
dici, trovare la correlazione tra lo spazio risparmiato
e la diminuzione d qualità. Così si può correggere il
divx quality in presenza d B-frames.Inoltre dovremmo
cercare d capire, perkè il codec se ne frega della
modifica fatta da registro del B-mult.
ciao
----------------- WinXP PRO
Win98SE, AthlonXP 1600@1850+(x ora..), Qdi Kudoz 7 , 512
Mb DDR 266, Geforce 2 Mx 400 64 Mb, Sound Blaster Live
5.1,HD Maxtor 40 Gb ATA 100 7200 rpm,LG Combo 12x8x32x,
monitor Samsung SyncMaster 900IFT 19",Pinnacle studio
PCTV rave
Profilo
Modifica
Quota |
supercola

Registrato il:
24-03-2002 Messaggi:
613
 
Da: roma
|
Inserito il 11-07-2002 |
15:47
Ho esegutio questa prova:
2 pass modificato con dvxlog:
1) q=4 e Q=4
senza B (cioè disattivati) 2) q=4 e Q=4 per I e P
mantre q=2 e Q=2 per B (attivi)
Ecco i
risultati: 1) dimensioni 25,7mb quant medio= 2)
dimensioni 24,2mb quant medio=
La qualità è
migliore nel secondo file (quello con B-frames attivi e
minore ingombro)
Da questo e dalle altre prove
deduco che: 1) Avevo torto ad asserire che i
B-frames non peggiorano la qualità, esiste un effettivo
peggioramento (come si vede nella figurona
) dovuto probabilmente alla minore quantità di info
effettivamente "immagazzinate". Mi spiego meglio,
secondo me il codec lavora all'incirca così: usa parti
precendenti (come fanno i P,B) e successive (solo i B)
per evitare di immagazzinare altre info, il problema è
che le parti magari non sono esattamente uguali (parlo
di pochi pixel ovviamente!!!
) e quindi tende ad "approssimare" (spiegati i
quadrettoni e la conseguente perdità di qualità).
2)Avevo ragione a dire che i b-frames non
peggiorano la qualità ,
infatti non solo a parità di spazio occupato, ma
addirittura con uno spazio minore si ottiene una qualità
superiore poichè sfruttando le doti di predizione si
possono usare quant mooolto più bassi
. Non concordo neanche con la tesi di un utilizzo di
quant maggiore per i b-frames (cosa evidente dalla
prova), i quant sono sempre uguali, la perdità di
qualità avviene per altri motivi come ho spiegato (forse
meglio ipotizzato...
) sopra.
Conclusioni: Utilizzerei sempre i
B-frames sotto il punto di saturazione, se ho un film
che invece satura ad esempio in 1750 mb allora potrei
toglierli per riempire lo spazio "vuoto" del 3° cd.
Mi sembra comunque di poter asserire che la migliore
qualità assoluta si ottenga sicuramente senza B-frames,
con il QP.... dobbiamo ora indagare sul GMC....
ciauz
----------------- Win
2k,XP1700@2050+,a7a266,256MB266 samsung cas2,HD IBM
ata100 7200rpm 30 GB, soundblaster live!5.1,matrox g400
32mb,pioneer 16/40,Liteon 32123s, raffreddamento
manufatto "double twist&pipe" Non smanettare è
bene...ma smanettare è meglio :-D
Profilo
Quota |
Zoltan The Mage

Registrato il:
10-06-2002 Messaggi:
436

Da: Land Of Frost
|
Inserito il 11-07-2002 |
17:28
Vediamo un po'...
Se
fai senza b-frames a 4, hai tutti i frames a 4. Se
fai con i b-frames a 2 e il resto a 4, dovresti avere la
stessa occupazione, se effettivamente il b-mult avesse
il significato che ipotizziamo e se i quant dei b-frames
potessero essere trattati come gli altri.
Da
cui... evidentemente c'è qualcosa che non torna!
Quindi occorre trovare un altro parametro per i
b-frames, questa prova mi fa concludere che non si
possono trattare con i quant in modo equivalente a
quelli dei K e P.
Anche il fatto che la qualità
del secondo caso sia migliore (anche se non è
scientificamente dimostrato) sta a significare che
effettivamente allora i b-frames, anche se occupano la
metà (mettiamo) in realtà la loro qualità è superiore a
quella di un P con quant doppio. E questo è ovvio, dato
che hanno due punti di riferimento, invece di uno.
Ora mi si sono intrecciate un po' le idee,
quindi continuate voi...
----------------- Quando scoprirai di
trovarti dalla parte della maggioranza, sarà giunto il
momento di fermarti a
riflettere. ----------------- Zoltan The
Mage HM Portal Web
Lord
Profilo www
Quota |
fromillo

Registrato il:
27-02-2002 Messaggi:
276
  
|
Inserito il 11-07-2002 |
19:27
Ho appena fatto il Dvd che mi
hanno regalato "il patto dei lupi". L' ho fatto in
quality based 100% con quant a 2,1. B-frames e gmc
attivi. Nonostante le 2:11:xx ore di film il tutto stava
in ben 1,8 gb, con una qualità davvero bassa.
Nelle scene veloci ci sono molti artefatti. Non
so se dipende dai bframes o dal gmc, fatto sta che la
qualità è davvero ridicola. (altro che 100%)
Ora
indagherò, conterà forse che l' ho fatto con vidomi?
----------------- Athlon 550mhz slotA,
Fic SD-11, 384 Sdram pc133, GeForce 2 mx 400 (64mb
sdram), Sb live 1024, HD IBM 120 GXP da 80
giga.
Profilo www Aggiungi
Quota
| |