Aunque con equipos potentes es posible comprimir en tiempo real con buenos resultados de calidad, es indudable que si dejamos al ordenador trabajar "a su ritmo" con cada cuadro en lugar de dejarle tan sólo 0.04 segundos que dura cada cuadro en tiempo real, obtendremos resultados mucho mejores. Evidentemente, si vamos a trabajar con programas de compresión en tiempo no-real deberemos realizar primero las capturas sin compresión, es decir, en RGB. Aunque la pérdida de calidad en compresión YUV es difícil de apreciar a simple vista, hemos te tener en cuenta que todos los programas de compresión la utilizan y si le damos al programa de catura en tiempo no real un original ya comprimido en YUV no podrá realizar bien su trabajo puesto que parte de su labor ya estará hecha y, posiblemente, no de la forma en que el programa la hubiera realizado si él hubiera hecho la compresión. Por tanto, es importante usar capturas en RGB sin compresión antes de comprimirlos con estos programas.
Con los programas de compresión en tiempo no-real podremos, o bien reducir el tamaño de una captura preservando el máximo de calidad posible, o bien producir un "render" o versión final de una edición. Son muy famosos los "plug-in" (extras) para Premiere con los que podremos "exportar" la versión final de nuestros vídeos usando alguno de estos programas de compresión en tiempo no-real.
7.1 TMPEnc (http://www.tmpgenc.com/)
No creo que me pille las manos si digo que actualmente (Ver 0. Acerca de...) TMPEnc es la utilidad de compresión que mejores resultados da, tanto en calidad como compresión, aunque eso sí... se toma su tiempo. Al igual que VirtualDub, TMPEnc también permite modificar los ficheros antes o después de capturarlos. Lo único que se le echa en falta a TMPEnc es que no ofrezca ningún plug-in (extra) para poder realizar versiones finales (renders) directamente desde Adobe Premiere. Al igual que con VirtualDub, tan sólo explicaré las opciones más comunes, dejando el resto para vuestra experimentación u otros manuales.
- New project (nuevo proyecto), Open project (abrir proyecto),
Save
project (guardar proyecto): TMPEnc se inicia por defecto con los parámetros
de la última sesión. Pinchad en "New project" para limpiar
todo.
- Preview (vista previa): Esta vista previa es del vídeo a comprimir y *NO* de cómo quedará el vídeo comprimido.
- Output to file (salida a fichero): Aquí podemos elegir el formato de salida: MPEG, AVI, WAVE o secuencia de imágenes.
- Batch encode (tanda de compresión):Ya
he dicho que TMPEnc se toma su tiempo para comprimir. Normalmente dejaremos
el ordenador comprimiendo unas cuantas horas mientras dormimos, nos
vamos al trabajo, de juerga, o lo que sea. Como el ordenador estará
unas "horillas" encendido podemos aprovechar para que, en lugar de un sólo
archivo, empiece por uno y conforme acabe pase a otro y a otro, etc. Para
eso necesitaremos primero guardar los proyectos que queramos añadir
a la tanda.
Una vez que pinchamos en "Batch encode" aparece
una pantalla en la que podemos añadir proyectos con la opción
"Add" (añadir), quitarlos de la lista con "Delete" (borrar) o borrar
toda la lista con "Clear". Para comenzar la tanda hay que pinchar en "Run"
(ejecutar).
Al comenzar la tanda aparece una casiila con una
opción de gran utilidad llamada "Shut down after finish encoding"
(apagar al terminar la codificación), que, como su nombre indica,
apaga el ordenador cuando termine de comprimir la tanda. Lo cierto es que
no entiendo porqué no aparece al comprimir tan sólo un archivo,
aunque siempre podemos guardar el proyecto actual y hacer una tanda de
un sólo archivo.
- Add current project to batch list (añadir el proyecto actual a la lista de la tanda)
- MPEG Tools (herrramientas MPEG): Aquí encontramos varias utilidades
· Simple multiplex
(multiplexación simple): Elegimos un "input" (entrada) de vídeo,
otro de audio, el tipo (type) de MPEG resultante y le damos a Run (ejecutar)
para otener el MPEG que indiquemos en "output" (salida) que contenga el
vídeo y audio seleccionados.
· Simple de-multiplex
(desmultiplexación simple): Con esta opción podremos separar
el vídeo y el audio de un MPEG en archivos independientes.
· Multipex (multiplexación):
Igual que "Simple multiplex", sólo que podremos incluir más
de un archivo de vídeo y/o audio fuentes (input), añadiendo
elementos a la lista con "Add" (añadir) ,elminándolos con
"Delete" (eliminar) o eliminando toda la lista con "Clear"
· Demultiplex (desmultiplexación):
Igual que "Simple de-multiplex", sólo que una vez elegido el archivo
input deberemos hacer doble-clic en la pista (stream) que queramos extraer
de entre las que aparecen al seleccionar el archivo fuente.
· Merge&Cut (fundir
y cortar): Una vez añadidos los archivos (add) podremos editar (edit)
los puntos de comienzo y fin de los mismos. Una vez confeccionada la lista
de archivos a fundir (merge) pinchamos en "Run" para que cree el fichero
de salida (output) que hayamos seleccionados. La opción "Correct"
(corregir) sirve para evitar conflictos entre los archivos seleccionados
eliminado los que no sean compatibles con el formato MPEG (type) seleccionado
como salida (output)
- Enviromental settings (ajustes globales): Ajustes menores como directorio temporal, características de la CPU, procesador de auido externo y opciones especiales de procesamiento de TMPEnc.
- Language (idioma): ¿Se os da el japonés mejor que el español? ¿¿¿NOOOO??? Pues mejor dejáis el inglés :-(
- Set current project as default (definir el proyecto actual como opción por defecto)
7.1.3 Definiendo el tipo de MPEG de salida: el meollo de la cuestión
La imágen que hay a continuación pertenece a la parte inferior de la pantalla principal de TMPEnc. Aquí está realmente la potencia de TMPEnc. Arriba debemos elegir la fuente de vídeo y audio (video/audio source). Al elegir un vídeo, por defecto, se selecciona la misma fuente como audio, debiendo cambiar el archivo fuente si no queremos el sonido original del vídeo. En "Output file name" aparece automáticamente el mismo nombre y directorio de origen que el orginal, pero con la extensión cambiada, si procede. En cuanto al tipo de pista (stream type) podemos seleccionar "Video only" (sólo Video, sin pista de audio) "Audio only" (solo Audio, sin pista de vídeo), "System (Video only)" (Sistema, sólo vídeo, añade una pista de audio en blanco), "System (Audio only)" (sistema, sólo audio, añade una pista de vídeo en blanco), "System (Video+Audio)" (el formato que normalmente usaremos, un archivo de vídeo con las dos pistas integradas)
Como veremos, la opción "Setting" (ajustes) es bastante amplia y contiene numerosos parámetros para configurar. Con el programa vienen algunas configuraciones estándar (DVD, VCD y SVCD) que se pueden cargar simplemente pinchando el botón "Load" (cargar). Cuando seleccionemos una de estas opciones predeterminadas NO podremos realizar ningún cambio en los parámetros que carga. Para poder hacer cambios deberemos usar "New project" y definir nosotros la cofiguración. También podremos guardar nuestras propias configuraciones con la opción "Save", que podremos guardar en el mismo directorio en el que se encuentran las opciones por defecto, o bien en otro de nuestra elección.
Los ajustes que realicemos dentro de "Setting" se verán indicados en la parte inferior de la pantalla (lo que he rodeado de rojo) De izquierda a derecha indica el tipo de archivo (MPEG 1/2), el tamaño, los fotogramas por segundo, el fujo de datos (constante o variable y cantidad), y por último la frecuencia y flujo del audio.
*** Ver 7.1.3.5 Setting/System***
- Stream type (tipo de vídeo): MPEG1
o MPEG2
- Size (tamaño): Para VHS y VCD capturaremos
a 352x288, para DVD 720x576
- Aspect ratio (proporciones): Eligiremos
1:1 si el destino es VGA y 4:3 o 16:9 si el destino final va a ser vídeo
o televión.
- Frame rate (velocidad de fotograma): 25
fps (cuadros por segundo -frames per second) para PAL
- Rate control mode (modo de control de flujo):
(Ver 4.2 Flujo de datos)
· "Constant bitrate" (flujo de datos constante)
· "2 pass variable bitrate" (flujo de datos constante en dos pasadas):
En este modo TMPEnc hace una primera lectura del archivo de vídeo
a comprimir ANTES de realizar la verdadera compresión. Al analizar
el vídeo antes de comprimirlo se consigue una mejor captura. En
los ajustes (setting) se puede definir un flujo de datos medio al que TMPEnc
trata de adaptarse, y unos valores máximo y mínimo
· "Manual VBR": En el apartado "Setting" podemos establecer el flujo
máximo y mínimo así como la configuración de
la degradación de los cuadros P y B durante el proceso de compresión
· "Automatic VBR (CQ_VBR)": Esta opción ofrece control sobre
"flujo de datos variable con calidad constante (CQ-> Constant Quality).
Funciona igual que la opción anterior,sólo que en lugar de
definir la calidad de forma manual la elegimos mediante un porcentaje para
que sea TMPEnc quién la ajuste.
· "Constant quality" (Calidad constante): Esta es mi opción
más utilizada, ya que permite ajustar la calidad sin importar el
tamaño resultante. En mi equipo se consigue la máxima calidad
con los ajustes de la imágen. Aunque un bitrate mayor proporcionaría
más calidad, a partir de 5.500 kbit/s tengo problemas de reproducción
a pantalla completa. La opción de la parte inferior, común
a "Manual VBR", configura la degradación de los cuadros P
y B durante el proceso de compresión.
·
"Real time CBR (RT_CBR)" (CBR en tiempo real) y "Real time CQ (RT_CQ)"
(Calidad constante en tiempo real): En mi opinión estas opciones
no tienen mucho sentido, ya que TEMPEnc es un programa de compresión
en tiempo no-real, es decir, trabaja con archivos ya capturados, no con
entrada de vídeo, por lo tanto, trabajar en tiempo real tan sólo
supondrá una degradación de calidad notable a cambio de un
tiempo menor. No creo que estas opciones le interesen a nadie.
- Bit rate (flujo de datos): Cuando en "Rate
control mode" (modo de control de flujo) elijamos una opción CBR,
aquí podremos especificar el flujo de datos deseado.
- VBV buffer size (tamaño de búfer):
(Ver 4.3.5.2 Control
de búfer) Si no tienes ni idea de lo que hacer esta opción
lo mejor será que lo dejes en cero (0 automatic)
Nota: Las siguientes cinco opciones sólo pueden ser modificadas cuando comprimamos a MPEG2
- Profile&level (perfil y nivel): Ver
4.3.5.3
Perfiles y niveles (Profiles&Levels)
- Video format (formato de vídeo):
Seleccioanar PAL
- Encode mode (modo de codificación):
Sólo nos interesan las opciones "Interlace" (entrelazado), la que
normalmente usaremos para resoluciones verticales mayores o iguales a 288
puntos, o "non-interlace" (no-entrelazado)
- YUV format (formato YUV): Si elegimos MP@ML
en "Profile&level" sólo podremos seleccionar 4:2:0 (Ver 4.3.2.1.
Subsampling)
- DC component precision: Con bits más
altos lograremos mayor suavidad en el vídeo final.
- Motion search precition (precisión en la búsqueda de movimiento): Esta opción SÍ puede elegirse siempre. En la inmensa mayoría de las ocasiones obtendremos el mejor resultado con la opción "Highest quality (very slow)" (Máxima calidad - muy lento) y la mayor rapidez con "lowest quality (very fast)" (calidad mínima - muy rápido)
En este apartado informamos a TMPEnc del tipo de vídeo con el que va a trabajar (Video source setting - ajustes del vídeo origen) y NO tienen porqué coincidir con el formato de salida .
- Video source type (tipe vídeo fuente):
Interlace (entrelazado), Non-interlace (no-entrelazado).
- Field order (órden de campo): Ver
4.1
Tamaño de captura
- Source aspect ratio (porporciones de origen)
El formato de TV y video en España es 4:3 o 16:9 (televisores panorámicos)
PAL 625 líneas
- Video arrange Method (método de
distribución del vídeo): Cuando el formato NO es 1:1 VGA,
podemos elegir las diversas formas de distribución de la imágen
a pantalla completa.. Las opciones son:
· Center (centrado)
· Center (keep aspect ratio) (centrado manteniendo
las proporciones)
· Center (custom size) (centrado con tamaño
personalizado
· Full screen (pantalla completa)
· Full screen (keel aspect ratio) (pantalla
completa manteniendo proporciones
· No margin (keep aspect ratio) (sin márgenes
manteniendo proporciones)
Por último en la parte inferior hay una serie de filtros que podemos aplicar durante la compresión seleccioando la(s) casilla(s) correspondientes. Los filtos son muy similares a los que podemos encontrar en VirtualDub
Ver 4.3.5.1 La secuencia GOP: I-frames, P-frames y B-frames
- Number of I-picture in GOP (número
de cuadros-I en la secuencia GOP)
- Number of P-picture in GOP (número
de cuadros-P en la secuencia GOP)
- Number of B-picture in GOP (número
de cuadros-B en la secuencia GOP)
- Detect scene change (detectar cambios de
secuencias): Seleccionado esta opción TMPEnc detectará automáticamente
los cambios de escena para marcar el primer cuadro de cada nueva escena
como cuadro-I
- Force picture type setting: (forzar ajuste en el tipo de cuadro)
Con esta opción podremos ser TREMENDAMENTE ESCRUPULOSOS con la calidad
de la compresión, puesto que permite marcar uno por uno,
de forma manual, el tipo de cuadro (I, P o B) Para ello, una vez seleccionada
la casilla, debemos pichar en "setting" (ajustes), lo que nos lleva a una
pantalla en la que aparece el vídeo que vayamos a comprimir cuadro
a cuadro. Pinchando con el botón derecho en el cuadro deseado, podremos
acceder a diversos ajustes INDIVIDUALES por cada cuadro, entre los que
destacan
· Selección
de cuadro I, P o B (I, P, B picture)
· Selección
de flujo de datos (set bitrate)
· Selección
de matriz de cuantificación (Quantize matrix): Ver 7.1.3.4
Setting/Quantize matrix
· Iniciar nuevo GOP
· Ajustar la precisión
de movimiento
· Establecer la secuencia
GOP según el patrón establececido en 7.1.3.3
Setting/GOP Structure
· Eliminar la selección
de cuadros I, P y B a partir del cuadro seleccionado (Clear after this
frame)
Después de "trastear" todos esos parámetros es más que probable que no queramos jugárnosla todo a una carta. Para eso tenemos las opciones "Save" para guardar los ajustes de una configuración determinada y la opción "Load" para cargarla posteriormente. Esto nos permite hacer unos ajustes, comprimir, analizar los resultados y volver a cargar la esa configuración para realizar pequeños cambios sin tener que volver a modificarlo todo a mano trabajo que, en vídeos extensos, puede ser realmente extenuante.
Por último comentar que, como punto de partida, bien podríamos usar la opción "Auto-setting" (ajuste automático) Una vez finalizada la detección de cambios de imágenes podremos ver qué es lo que TMPEnc habría hecho con la opción Detect scene change (detectar cambios de secuencias)
7.1.3.4 Setting/Quantize matrix
¿Qué tal se te dan las matemáticas? ¿Te apetece conocer cómo se consigue la compresión DCT (discreet cosine transformation - transformación discreta de coseno) por cada cuadro-I? ¿Sí? Pues ala, aquí tienes la fórmula...
Todo eso de ahí arriba quiere decir que la imágen se divide en cuadros NxN (en el caso de MPEG de 8x8) pero la distrubución de la cantidad de información no se realiza de forma equitativa asignando la misma cantidad de información por cada píxel, sino que la cantidad de luminosidad y color son analizadas y los valores cercanos a cero se desprecian, asignando la cantidad despreciada a otros píxeles con mayor cantidad de información y, por tanto, más imporantes. Esto tan complicado se puede entender mejor echando un vistazo a las siguientes imágenes:
TMPEnc permite modificar de forma diferente los valores DCT para los cuadros-I y para los cuadros-P-B (Ver 4.3.5.1 La secuencia GOP: I-frames, P-frames y B-frames) Las opciones son:
- Default: (por defecto): Pues eso... lo que
TMPEnc deja por defecto...
- MPEG1 standar (estándar MPEG1):
Pues eso... el estándar MPEG1
- CG/Animation (Gráficos y animaciones):
Pues eso... para gráficos y dibujos animados. Puesto que los dibujos
animados y los gráficos tienen tonos constantes de color será
más adecuado asignar la misma cantidad de información a cada
píxel.
- Output YUV Data as Basic YCbCr not CCIR601
(salida de datos YUV como YCbCr básico no-CCIR601) Conseguimos más
tonos de color (más calidad) a costa de un formato NO estándar.
- Use DCT floating point: (Usar DCT en punto
flotante). Con esta opción el DCT usará operaciones en punto
flotante, lo que ofrece una mayor precisión de cálculo a
costa de un notable aumento en el tiempo de codificación.
- No motion search for still pictures part by
half pixels (no realizar búsqueda de movimiento en la mitad
de píxeles en imágenes estáticas): En secuencias de
imágenes estáticas eliminamos la sensación de "parada"
a costa de perder calidad en secuencias con imágenes en movimiento.
- Soften block noise (suavizar el ruido de bloque): En flujos de datos reducidos esta opción elimina pixelación a cambio de definición de imágen. Podemos seleccionar de manera independiente la reducción para cuadros-I y para cuadros-P-B
Independientemente de la calidad del sonido original
de la captura, aquí podemos seleccionar el formato de salida. Ni
que decir tiene que lo mejor es exportar en el mismo formato de captura,
pero aquí siempre podemos hacer cambios. Creo que todo el mundo
lo sabe ya, pero decir que la calidad CD se consigue con 44.100 Hz y estéreo(
(16 bits en formato .WAV) En cuanto al flujo de datos (bitrate), con 128
kbit/s ya tenemos una calidad muy similar al CD. El formato estándar
VCD REQUIERE un bitrate de 224. Podremos
reducir el bitrate del audio para aumentar el flujo de datos (y por tanto
la calidad) del vídeo, pero eso no es compatible al 100% con todos
los reproductores.
Después de tantas y tantas opciones, parece que esta tan "simple" no tiene importancia y que "da lo mismo", cuando en realdiad es la más imporante. Con "Stream type" (tipo de vídeo) estamos definiendo el formato final de nuestro vídeo. Es decir, debe estar en concordancia con los parámetros seleccionados en 7.1.3.1 Setting/Vídeo puesto que de no ser así el vídeo se ajustará a las especificaciones establecidas en este apartado.