PUBLICIDAD

Welcome to videoedicion.org (v8.3). Please login or sign up.

15 de Junio de 2024, 21:33:32

Login with username, password and session length

Temas Recientes

630 Visitantes, 0 Usuarios

Compra y colabora

Si usas estos banners para hacer tus compras, recibiremos una pequeña comisión. ¡Gracias por colaborar!


 




Código VID15 para
un 15% en planes anuales


Flujo mínimo, medio y máximo de datos

Iniciado por Ximo65, 15 de Septiembre de 2004, 21:47:00

Tema anterior - Siguiente tema

Ximo65

Hola

Yo antes utilizaba exclusivamente CBR. Utilizaba el MPEG low motion que junto con el VirtualDub me comprimían 1 GB en aproximadamente 25 minutos. Tengo un Pentium con una velocidad de reloj de 3Ghz. Era sencillo y era rápido.

Pero ojeando en el foro me enteré de que se podía comprimir con VBR. La idea me pareció interesante y desde entonces sólo comprimo con VBR. En concreto utilizo el DivX.

Ahora leyendo vuestros benditos mensajes me doy cuenta de que hasta ahora había asimilado un par de conceptos de forma totalmente errónea. Seguramente he asimilado bastante más de forma errónea. Pero de momento sólo me he dado cuenta de esos dos.

Uno de ellos era mi creencia de que al comprimir con VBR se mejoraban las escenas con mucho movimiento. Y claro, si se captura con CBR y con un determinado flujo de datos, por mucho que luchemos durante la compresión no conseguiremos darle a las escenas un flujo mayor.  No entiendo como no se me ha ocurrido esto antes. Me debo de estar haciendo viejo. La explicación de Manu Vv y los dos ejemplos de Nogod me han hecho ver la luz. (Ver hilo en compresion, Para flujo de bits altos mejor CBR o VBR)

El otro concepto se refiere al flujo de datos máximo, mínimo y medio. Yo hasta ahora a la hora de configurar el codec le he dado una cantidad concreta (Encoding bitrate) que intuyo se trata de la media. Máximos y mínimos los ha decidido el codec él solito.

Así que Maestros, me surgen dos dudas.

Una es si se puede capturar con VBR. Hasta ahora capturo mayoritariamente en formato CD a 1150. A raiz del mensaje de Manu Vv me decidí a probar a capturar en vormato SVCD a 2520. La prueba la hice con El Cartero y obtuve un fichero de 4GB (incluídos anuncios). Mi tarjeta capturadora crea ficheros de 2GB y en este caso tenía 2. Así que me tocó pegar. Demasiado para mi poco tiempo libre. Sin embargo me ha quedado claro que capturando a 1150 voy a conseguir poca calidad con escenas movidas. Lo que me gustaría hacer es configurar el codec para capturar a un máximo de 2520, dando por consiguiente un poco más de margen y calidad para escenas movidas, y al mismo tiempo darle un mínimo para ahorrar espacio durante las escenas con poco movimiento.

La otra cómo puedo indicar al códec el máximo, mínimo y la media. Utilizo el DivX versión 5.1.1 y sólo he visto un indicador para darle prioridad a escenas con mucho movimiento (Bitrate modulation). Se puede desplazar hacia la izquierda dándole prioridad  a escenas movidas o hacia la derecha para escenas con poco movimiento. El máximo aparece en una casilla que no se puede modificar y el mínimo no lo veo por ninguna parte.

Un saludo y gracias por vuestro tiempo.
Sólo sé que no sé nada. Y lo curioso es que cuanto más aprendo, más me doy cuenta de lo poco que sé.

Zeros

Contestaré la semana que viene, que últimamente tengo mucho lío.

De todos modos te adelanto que usando los "Profiles" se limita el Bitrate máximo usado. En concreto el que se suele usar limita el Bitrate máximo a 4000.
"May the FOURCC be with you..."

Ximo65

Me he estado leyendo el manual "oficial" del DivX. No todo, pero lo más interesante me lo he leído y si no me equivoco la forma en la que trabaja el codec es muy diferente de lo que yo pensaba.

Yo me había hecho a la idea de que si se le daba un flujo de datos medio el codec aumentaba este flujo para escenas con mucho movimiento y lo rebajaba para escenas con poco movimiento. El resultado es un fichero AVI con un tamaño desconocido que dependía de la complejidad de las escenas.

Pues el manual confirma que el bitrate que se le da es el bitrate medio. El codec decide durante la película si varía ese flujo.

Pero introduce un término nuevo, el ancho de banda. Está claro que como no todas las escenas son iguales si se mantiene un flujo de datos constante la calidad de algunas escenas no será la apropiada. En consecuencia el codec analiza las escenas y distribuye el ancho de banda de forma apropiada con dos objetivos. Uno el de mantener un nivel de calidad general y otro el de ajustarse al flujo de datos medio que se le ha dado.

Este punto lo corrobora el hecho de que todas las películas que ha capturado y comprimido ocupan al final el mismo espacio en disco duro por segundo de grabación. Sin excepción. Aunque cueste creerlo dos películas diferentes que duran lo mismo ocuparán lo mismo en disco.

Dos películas de misma duración, capturadas con los mismos parámetros y comprimidas de la misma forma tendrán el mismo tamaño aunque una de ellas tenga muchas escenas con mucho movimiento y la otra ninguna.

Qué conclusión he de sacar?
Sólo sé que no sé nada. Y lo curioso es que cuanto más aprendo, más me doy cuenta de lo poco que sé.

Ximo65

Hay alguien que crea todavía que el DivX comprime en VBR? Yo he dejado de creerlo esta tarde.

El códec es muy bueno, ofrece una calidad excelente al reproducir el fichero (sobre todo si se reproduce con el DivX o el Real ya que al reproducirlo con el Windows Media Player deja un poco que desear) y se obtiene una compresión excelente. Pero no comprime en VBR.

He filmado con una cámara dos secuencias de dos minutos. Una de ellas con la cámara encima de una silla. Movimiento nulo. Y otra secuencia de dos minutos en la que casi me temblaban las manos. Movimiento para dar y regalar.

Estas dos escenas las he capturado en formato VCD a 1150. El resultado dos ficheros de unos 22Mb.

A la hora de comprimirlos he utilizado por una parte un códec de CBR a 900. Como os podéis imaginar el códec a CBR no mira pelo y comprime igual, haya movimiento o no. Como consecuencia el fichero movido tenía un tamaño de 13696 KB tras comprimirlo y el "tranquilo" 13690 KB. Una diferencia de 6KB. Era de esperar.

Después he comprimido esos dos ficheros tres veces con el DivX. En concreto con la opción Bitrate modulation en normal, dándole énfasis a highmotion y dándole énfasis a lowmotion.

Los resultados realmente curiosos, máxime teniendo en cuenta lo siguiente.

Durante la compresión he activado la ventana de feedback del compresor y he observado dos cosas, la proporción y cantidad de cuadros I, P y B y los vectores de movimiento.

Como era de esperar en la escena sin movimiento han aparecido tan sólo 8 cuadros I a intervalos regulares, tanto en la primera pasada como en la segunda. Probablemente el códec los ha ido introduciendo transcurrido un número determinado de cuadros. En la escena con movimiento han aparecido 48 cuadros I en la primera pasada. Seis veces más que en la escena sin movimiento. Y tan sólo 15 cuadros I en la segunda pasada.

Esto independientemente de si el bitratemodulation estaba en normal, highmotion o low motion.

Uno espera que si se da énfasis al highmotion se incremente el flujo de datos y aumente el tamaño del fichero y también espera que si se da énfasis a lowmotion se disminuya el flujo de datos y por consiguiente se disminuya el tamaño del fichero. Y uno espera que si la secuencia es movida el fichero sea más grande y si es tranquila más pequeño. Pues no. El DivX no trabaja así.

La escena fija ha resultado en 13062 KB en normal, 13028 KB en highmotion y 13028 KB en lowmotion.

La escena movida ha resultado en 13078 KB en normal, 13074 KB en highmotion y 13072 KB en lowmotion.

Diferencias, prácticamente ninguna. El DivX no trabaja en VBR. Distribuye la cantidad total de datos de forma equilibrada para que toda la película tenga una calidad buena, pero no aumenta ni disminuye el flujo de datos. Podemos darle más flujo a las escenas movidas pero no a costa de aumentar el tamaño del fichero sino a costa de quitarle flujo a las escenas con poco movimiento, y al contrario.

Estoy muy contento con los resultados del códec, pero leches, yo quiero comprimir en VBR. Sólo por curiosidad.

A seguir buscando.
Sólo sé que no sé nada. Y lo curioso es que cuanto más aprendo, más me doy cuenta de lo poco que sé.

nij

Cita de: "Ximo65"... uno espera que si la secuencia es movida el fichero sea más grande y si es tranquila más pequeño. Pues no. El DivX no trabaja así....
Pues creo que el DivX tiene razón, porque
Cita de: "Ximo65"... Podemos darle más flujo a las escenas movidas pero no a costa de aumentar el tamaño del fichero sino a costa de quitarle flujo a las escenas con poco movimiento, y al contrario.
que es precisamente lo que se pretende. Es decir, necesitamos comprimir para que una cantidad de minutos quepan en un determinado espacio (ej. un DVD). Unas de la cosas del VBR es obtener la mejor calidad en el mismo espacio, para lo cual mantiene el mismo espacio a costa de quitar en escena fijas y añadir en las de movimiento.

Mira el fabuloso mensaje de nosenada en el enlace siguiente.

https://videoedicion.org/foro/index. ... 9#msg43829

Saludos.
Dare cuique suum. -  (Asociación de Editores de Vídeo Digital) ya está en marcha -
A todos nos han cantado, en una noche de juerga, coplas que nos han matado.

PUBLICIDAD


Ximo65

He leído le hilo que me comentas y es genial.

Lo de los vectores de movimiento está claro. Es la información que necesita el compresor para reproducir cuadros posteriores a partir de un cuadro clave. Si se activa la ventana de feedback del codec hay una opción que es la de visualizar los vectores de movimiento. En la ventana se observan una serie de líneas que muestran el movimiento de los bloques dentro de las imágenes. En el caso de la secuencia de prueba sin movimiento que he grabado APENAS HAY VECTORES DE MOVIMIENTO.

La información restante también está clara. El cuadro clave junto con los vectores de movimiento nos das un nueva imagen. La información que falta es la información que aparece en cuadros posteriores y no en el cuadro clave, que el codec no puede comprimir y que por tanto ha de ser grabada como tal. Dado que no se trata de un cuadro entero sino de bloques, la cantidad de información guardada sigue siendo pequeña y se sigue ahorrando espacio.  En una determinada opción de la ventana de feedback esta información aparece como cuadros grises. Es la información que no se graba como vectores de movimiento sino como datos. Estos bloques no aparecían en el cuadro clave.

En cuanto al procedimiento de compresión, Nosenada describe con todo lujo de detalles una compresión en VBR, pero no la VBR pura que yo quiero. Para mi VBR pura significa que si una secuencia es movida el compresor le da más flujo, pero deja en paz a las escenas con poco movimiento. Es decir, cuando el compresor llega a esas escenas con poco movimiento les da el flujo necesario, independientemente de lo que haya dado con anterioridad y sin tener que adecuarse a un objetivo final. Aunque el DivX varía el flujo dentro del fichero según las escenas, está supeditado a un resultado final o a un tamaño final y de ahí no puede salirse. Y eso sigue siendo para mi CBR. Es cierto que el CBR da durante el proceso de compresión el mismo flujo a todas las escenas, cosa que el DivX no hace. Pero ambos obtienen un tamaño final acorde a la duración del fichero. El DivX no distingue entre películas movidas y películas con poco movimiento. Y si alguien no se lo cree puede hacer las mismas pruebas que he hecho yo.

Siguiendo con el ejemplo de los coches.

CBR. Origen Madrid. Destino Benidorm. 400 y pico kilómetros. Le pedimos al conductor que haga el trayecto en 4 horas o en 700 MB. Pues el coche coje una velocidad de 100 km/h. En la autopista produce colas y se rien de él, y en ciudad atropella a 15 peatones, se salta 2 semáforos y 3 pasos cebra. Creo que todo el mundo lo entiende.

VBR-DivX. El conductor se mira el mapa de carreteras y ve los tramos y se dice a si mismo que conduciendo a x kilómetros por hora en tal sitio y a x kilómetros por hora en otro sitio, AL FINAL llega a Benidorm en cuatro horas o en 700 MB. Pero TIENE que llegar en cuatro horas. Independientemente de si la carretera está vacía, escenas con poco movimiento, o si hay una cola para morirse, escenas con mucho movimiento. Como he dicho en otro hilo, para películas de misma duración, el DivX produce ficheros de igual tamaño a igual bitrate, sean las escenas de Bruce Lee o de una puesta de sol. Alguien me puede seguir?

VBR. Al conductor se le da una velocidad media, una máxima y una mínima y se echa a la carretera. Si nos equivocamos la hemos fastidiado y la calidad no será buena. Pero si le damos los parámetros adecuados el conductor hará lo siguiente. En ciudad irá más despacio, y si encuentra atascos se parará aumentando por ello el tiempo necesario para llegar a Benidorm. Cosa que no hace el DivX porque tiene un objetivo. Si nuestro VBR llega a la autopista y la encuentra vacía irá tirando leches disminuyendo el tiempo. El VBR se adapta al tráfico sin tener en cuenta el tiempo/tamaño. Un día, una película, se encontrará con muchos obstáculos y tardará 6 horas, y otro día no habrá casi nada de tráfico y tardará 3 horas y media. Tamaño final/duración del trayecto es desconocido. Y a eso le llamo yo VBR puro.

Estoy totalmente de acuerdo con vuestra posición pero aquí el tema clave es el tamaño final del fichero, el cual a mi no me importa en absoluto. La mayoría de videoedis utilizan calculadoras de bitrate para introducir una película en un CD, cosa que yo no hago. Yo no supedito mi compresión al tamaño sino a la calidad. Y ojo, eso no quiere decir que con el DivX no haya aumentado la calidad de mis compresiones, sólo que es una calidad supeditada a un tamaño. Yo no grabo en CD sino en DVD. Y aunque grabo varias películas en un mismo DVD, me puedo y me debo permitir unos cuantos MB demás.

Así que me gustaría que os planteárais el siguiente ejemplo.

Captura en SVCD a 2250.

Compresión con DivX a una media de 900 y después con VBR a una media de 900, un mínimo de 300 y un máximo de 1500.

El tamaño del VBR variará según la complejidad de la película y seguramente va a ser mayor que el del DivX. Pero por favor sed sinceros y decirme cual va a dar mayor calidad olvidandonos un poco del tamaño.

Un saludo.
Sólo sé que no sé nada. Y lo curioso es que cuanto más aprendo, más me doy cuenta de lo poco que sé.

Zeros

DivX es un códec que tiene como objetivo principal el conseguir la máxima calidad el menor espacio posible, y para ello es necesario tener un control sobre el tamaño final del fichero obtenido.

La barra que permite dar prioridad a las escenas con mucho movimiento o con poco movimiento no implican un aumento o reducción del tamaño, ya que lo que realmente hace es que destina un porcentaje extra de la tasa de bits asignada a ese tipo de escenas, recortando de otros sitios esa tasa de bits (En la compresión con XVID este control es mucho más preciso, ya que se destinan porcentajes).

Hace unos años, antes de la aparición de las versiones 4 y 5 de DivX, cuando se usaba la version 3.11 si que teniamos un codec que utilizab una compresión VBR a una pasada (y posteriormente a doble pasada con la aparción del método Nandub). Era el llamado FAST MOTION, con el cual siempre tenias resultados distintos de tamaño para iguales configuracions de bitrate y duración, y que hacia que capturando a 6000kbps videos de 20min no ocuparan más de 200 megas, pero no se tenia ningún control sobre el.

Hay que darse cuenta de que cuando hacemos una compresión en DivX, pensamos en el soporte en el cual vamos a almacenarlo (generalmente CD), y lo que se intenta hacer es apurar al máximo ese espacio sin perder calidad, por lo que el control del tamaño es indispensable.
Como dato os comento que en muchas versiones de XVID, si no configuras bien los parámetros de compresión te puede ocurrir un efecto llamado UNDERSIZED, por el cual los videos ocupan menos del tamaño que tu especificaste (en XVID nosotros ponemos el tamaño final del video en lugar del bitrate medio), debido a un exceso de compresión, exceso que por otra parte es debido a la compresibilidad del video en cuestión.

CitarComo era de esperar en la escena sin movimiento han aparecido tan sólo 8 cuadros I a intervalos regulares, tanto en la primera pasada como en la segunda. Probablemente el códec los ha ido introduciendo transcurrido un número determinado de cuadros. En la escena con movimiento han aparecido 48 cuadros I en la primera pasada. Seis veces más que en la escena sin movimiento. Y tan sólo 15 cuadros I en la segunda pasada.

El tema del intervalo máximo de frames que hay entre keyframes se configura en la pestaña "General Parameters" del DivX, y generalmente se recomienda poner un valor 10 veces superior a la tasa de frames por segundo (FPS), por lo que en PAL se utiliza el valor 250 y en NTSC el valor 300. Este valor equivale al nº de frames que habrá como máximo entre dos keyframes. Si este valo fuera demasiado pequeño, habrian demasiados keyframes, y dado que este tipo de frames requieren de mayor tasa de bits el resultado seria una degradación del video (dado que al requerir más información y haber más, para el resto de frames quedaria menor cantidad de bits).
El codec DivX tiene un detector de cambio de escenas, mediante el cual el codec introduce un keyframe cuando detecta uno, y esa sensibilidad a lso cambios de escenas se controla con la opción "Scene Change treshold", el cual viene por defecto en 50%, que es un valor que funciona bastante bien.
Por otro lado, la primera pasada del codec se realiza usando unas opciones por defecto, que implican que el video es "codificado" con un QUANTIZER de 2 durante toda la pelicula. Para que la gente me entienda, codificar a un Quantizer de 1 seria no usar compresión y uno de 32 seria usar la máxima compresion que permite el codec, en la version 5.02 del codec este valor se podia modificar (tanto el mínimo como el máximo, que solia ponerse min2 - max8)
"May the FOURCC be with you..."

Zeros

En el actual codec DivX sólo se pueden configurar el bitrate medio, el bitrate máximo, y el intervalo máximo de keyframes. Todo lo demás lo decide el códec. No pasa así con XVID, donde tu tienes un control mucho mayor en estos aspectos.

El bitrate máximo se modifica usando los Profiles.
"May the FOURCC be with you..."

Ximo65

Un millón de gracias. Me estoy planteando pasarme al XVID.

Por cierto, en la página oficial del DivX deberían de poner un link a tu buzón para solventar dudas.  ;)

Un saludo.

Ximo
Sólo sé que no sé nada. Y lo curioso es que cuanto más aprendo, más me doy cuenta de lo poco que sé.

Sherat1

La versión PRO de Divx5.05 por decirte uno, tiene una herramienta llamada EKG, que sirve para realizar una 3 pasada al video que has comprimido.
Aquí verás en una barra temporal el bitrate que tiene asignado cada escena de la película, tu podrás aumentar el bitrate en las excenas con mucho movimiento que creas que lo necesitan y bajarlo en las que no lo necesitan.
Consiste en un control inteligente del bitrate ya que tu mismo eres el que eliges la cantidad de datos que llevará cada escena,
pero si la película es muy larga quiza sea un engorro llevar esta tarea. De esta forma el video Divx será VBR total.
Espero haberte ayudado. En internet hay manuales de como se utiliza el EKG.
Saludos.

Ximo65

Me estuve leyendo hace algún tiempo el manual del DivX, algunos apartados con más interés que otros, y leí también el del EKG.

Sin embargo no es una opción que me atrae mucho teniendo en cuenta que comprimo algunas películas de 2 horas o incluso 3 horas de duración.

Verás, mi "manía" por el VBR "puro" es una cuestión de curiosidad. Los resultados del DivX son buenos, pero me gustaría ver los resultados de comprimir con un codec que comprima realmente en VBR, y comparar. Aunque después siga comprimiendo con DivX, pero como he comentado siento curiosidad.

Por cierto he hecho algunas pruebas con el XviD y apenas hay diferencia con el DivX. No me refiero al manejo sino a los resultados.

Gracias

Ximo
Sólo sé que no sé nada. Y lo curioso es que cuanto más aprendo, más me doy cuenta de lo poco que sé.

Zeros

Ximo, espero que se te de bien el inglés. Esto es una comparativa de codecs hecha por los gurús de Doom9
http://www.doom9.org/codecs-203-1.htm
"May the FOURCC be with you..."

Ximo65

#12
Pues si, me has pasado buen material y para un buen rato. Aunque no sé si agradecertelo ...  ;) Al principio los conceptos que aprendía eran relativamente sencillos. A medida que avanzo el tema se pone cuesta arriba y necesito más tiempo para asimilar.

Por cierto, a los del DivX "les perdono" que su codec no trabaje en VBR "puro". Los resultados que estoy obteniendo son muy buenos, así que no me voy a poner a quejarme. De todas formas y como he comentado en otro hilo necesito experimentar para ver los resultados.

Es como en aquellos tiempos en los que por ejemplo a la hora de instalar un módem tenías que configurar la IRQ y la dirección de memoria para que chutase y no interfiriese con el ratón. Al principio tardabas un poco pero al cabo de colocar 2 o 3 modems le pillabas el tranquillo y te llenaba de emoción.

El inglés y el alemán se me dan bastante bien. En Londres estuve trabajando 2 años y en alemania llevo de momento 4. Si tenéis algo para traducir ya sabéis.

Ximo

P.D. Modifico para decir que el link a la página de doom9 es de paso obligatorio. Hay muy buena información, sobre todo en los manuales.
Sólo sé que no sé nada. Y lo curioso es que cuanto más aprendo, más me doy cuenta de lo poco que sé.

Zeros

Aparte los foros de Doom9 se pueden vanagloriar de tener a la gente que más sabe en temas de compresion con cualquier tipo de codec, sobretodo mpeg4.

Como tu bien has dicho ese enlace es denso, pero como te he visto con ganas te lo he puesto ;).
"May the FOURCC be with you..."

PUBLICIDAD

El spam de este foro está controlado por CleanTalk