El artículo que vinculó no es muy bueno.
Normalmente, las codificaciones de tasa de bits de paso único convierten su tasa de bits en un valor de RF con un límite máximo de tasa de bits y lo toma desde allí.
El control de frecuencia ABR de una pasada de x264 no se implementa como límite CRF +. Sin embargo, tiene razón en que 2pass es, con mucho, la mejor manera de alcanzar una tasa de bits objetivo.
Y aparentemente no se da cuenta de que podría comenzar x264 con hilos = 3 o algo así, para dejar algo de tiempo de CPU libre para otras tareas. O establezca la prioridad de x264 en verylow, para que solo obtenga el tiempo de CPU que ninguna otra tarea desea.
También mezcla hilos = 1 con el uso de CUDA, o algo así. No es de extrañar que tenga preguntas, porque ese artículo tiene una explicación TERRIBLE. Básicamente, todo el artículo se reduce a: usar x264 --preset veryslow --tune film --crf 26 in.m2ts --out out.mkv
, o tal vez usar algo de filtrado de luz con un script de entrada AviSynth. En realidad recomienda "placebo". Eso es hilarante. Nunca he visto un archivo pirateado codificado con placebo. (puede distinguir me=esa
o me=tesa
, en lugar de me=umh
todos los ajustes preestablecidos de buena calidad, hasta veryslow
.
Tampoco menciona el uso de una profundidad de color de 10 bits. Más lento para codificar y decodificar, pero incluso después de volver a convertir a 8 bits, obtienes un mejor SSIM de 8 bits. Tener más precisión para los vectores de movimiento aparentemente ayuda. Además, no es necesario redondear exactamente a un valor completo de 8 bits. Puede pensar en 8 bits por componente como un hack de velocidad; cuantificar en el dominio de la frecuencia y luego comprimir eso con CABAC significa que los coeficientes de profundidad de bits más altos no tienen que ocupar más espacio.
(Por cierto, h.265 obtiene menos beneficios de las codificaciones de 10 bits para video de 8 bits porque ya tiene más precisión para los vectores de movimiento. Si hay un beneficio al usar x265 de 10 bits para entradas de video de 8 bits, es más pequeño que con x264. Por lo tanto, es menos probable que la penalización de velocidad valga la pena).
Para responder a su pregunta real:
edit: doom9 está de nuevo ahora, así que ordenaré el enlace. Vaya a él para citar adecuadamente quién dijo qué.
http://forum.doom9.org/showthread.php?p=1135399#post1135399
Google solo almacena en caché la estúpida versión impresa que no muestra correctamente la cita. No estoy muy seguro de qué partes de estos mensajes son citas y cuáles se atribuyen a la persona misma.
Los patrones de ramificación altamente irregulares (modos de omisión) y la manipulación de bits (codificación de cuantificación / entropía) no se adaptan a las GPU actuales. En mi opinión, la única aplicación realmente buena en este momento son los algoritmos de búsqueda completa ME, al final, aunque la búsqueda completa acelerada sigue siendo lenta, incluso si es más rápida que en la CPU.
- MfA
En realidad, básicamente todo se puede hacer razonablemente en la GPU, excepto CABAC (que se puede hacer, simplemente no se puede paralelizar).
x264 CUDA implementará un algoritmo ME fullpel y subpel inicialmente; más adelante podríamos hacer algo como RDO con una aproximación de costo de bits en lugar de CABAC.
Porque tiene que hacer todo en punto flotante de precisión simple
- MfA
Incorrecto, CUDA admite matemática entera.
- Shikari oscuro
Dark Shikari es el responsable de mantenimiento x264 y desarrollador de la mayoría de las funciones desde 2007 más o menos.
AFAIK, este proyecto CUDA no funcionó. Hay soporte para usar OpenCL para descargar parte del trabajo del subproceso anticipado (decisión rápida de I / P / B, no una codificación final de alta calidad del marco).
Tengo entendido que el espacio de búsqueda para la codificación de video es TAN grande que la heurística inteligente para la terminación temprana de las rutas de búsqueda en las CPU supera la fuerza bruta que las GPU traen a la mesa, al menos para la codificación de alta calidad. Solo se compara con el lugar -preset ultrafast
donde podría elegir razonablemente la codificación HW en lugar de x264, especialmente. si tiene una CPU lenta (como una computadora portátil con doble núcleo y sin hyperthreading). En una CPU rápida (i7 quad core con hyperthreading), x264 superfast
probablemente será tan rápido y se verá mejor (a la misma tasa de bits).
Si está haciendo una codificación donde la distorsión de velocidad (calidad por tamaño de archivo) es importante, debe usar x264 -preset medium
o más lento. Si está archivando algo, pasar un poco más de tiempo de CPU ahorrará bytes mientras mantenga ese archivo.
nota al margen, si alguna vez ve mensajes de deadrats en un video foro, no será útil. Se ha equivocado sobre la mayoría de las cosas de las que habla en cada hilo que he visto. Sus publicaciones aparecieron en un par de hilos que busqué en Google sobre la codificación x264 GPU. Aparentemente no entiende por qué no es fácil, y ha publicado varias veces para decirles a los desarrolladores de x264 por qué son tontos ...
-c:v libx264 -preset slower
(que no es tan lento, como casi en tiempo real para 1920x1080p24 en un Skylake i7-6700k.)