Il problema è che il suo file è in formato planare, per cui prima ci sono tutti i valori Y campionati a 8 bit, poi tutti gli U e poi i V a 2 bit; non garantisco la correttezza di queste informazioni, in particolare per quanto riguarda il sottocampionamento di U e V e il loro ordine, la documentazione non è chiarissima.
Per inciso, potresti ottimizzare un pelo quel codice usando gli shift invece delle divisioni per potenze di due e riducendo il numero di variabili (per quanto è probabile che già ci pensi il compilatore). Potresti anche sostituire il confronto con 255 con un & (potenzialmente più veloce):
. Tutti miglioramenti marginali, ma che, se il codice deve processare frame in realtime, possono aiutare.codice:if(Y And Not 255) Y = 255

Rispondi quotando