Log in

View Full Version : News Idea for x264 dev


Sagittaire
11th March 2012, 12:07
Unfortunaly I am unable to code for x264 but I have many Idea:

1) Intermediaire Uncompressed File (IUF)
Many encoding have heavy and slow prefiltering. x264 could encoding in H264 lossless in first pass and use this lossless file for the next pass.

2) Coding Interuption (CI)
Usefull option maybe interupt coding (with Fn touch for example) and recall coding with recall work command. I think it's possible if you use info.txt file with complete information from current encoding.

3) New Rate Control mode: Progressive Quality Rate Control (PQRC)
It's a progressive rate control quality. Many pass for each part with higher quality for each pass.

In first fastest pass x264 make Intermediaire Uncompressed file and use fastest possible quality mode in one pass for encoding. Intermediaire Uncompressed file and Intermediaire Encoding will be cut in small part (GOP, IDR, chapter part or user frame range selection for example).

In Next pass, x264 use Intermediaire Uncumpressed file for source and use higher quality than Previous pass for coding and replace progressively each previous Intermediaire encoding file by the new enconding part.

User can choose the quality pass progression: [fastest, medium, high, extreme placebo] or [fastest, fast, medium, high, extreme, extreme placebo] for example. First pass will be always fastest quality mode and last pass will be always extreme placebo quality mode.

User can control the encoding quality in real time (User can open Intermediaire encoding files for example). If user decide that quality is good enought (file size, file quality ...) then he can decide to stop encoding (Coding Interuption) with Fn touch. x264 stop encoding and join all Intermediaire Encoding File for make final complete file encoding. If user decide finaly that quality is not good enought then he can recall encoding with info.txt file call.

User can decide to boost quality in particular encoding part (higher bitrate) if the quality is not good in this particular part for him (Info.txt edition for example).

In this rate control mode, x264 encoding virtualy never stop. In fact user decide himself to stop encoding if quality is good for him (after part reencoding for example). It's more a rate control for professional with power user PC.

nm
11th March 2012, 17:12
2) Coding Interuption (CI)
Usefull option maybe interupt coding (with Fn touch for example) and recall coding with recall work command. I think it's possible if you use info.txt file with complete information from current encoding.


This has been requested many times in the last couple years. Saving and restoring the state not a simple task and main x264 developers haven't been interested in implementing it, but patches would probably be welcome.


1) Intermediaire Uncompressed File (IUF)
Many encoding have heavy and slow prefiltering. x264 could encoding in H264 lossless in first pass and use this lossless file for the next pass.

3) New Rate Control mode: Progressive Quality Rate Control (PQRC)
It's a progressive rate control quality. Many pass for each part with higher quality for each pass.

These could be done with current x264 and one of the AviSynth piping tools (+ a set of shell tools like tee). It's a matter of building a GUI for easy control over the process.

mandarinka
11th March 2012, 17:17
It is much easier to just encode your heavy avs script to a lossless file in the first place, and use that for the main encoding.

Didée
11th March 2012, 17:25
That "progressive refinement" method would be an interesting subject to statistical investigation. If you iterate super/very/fast,medium,slow/er/very~, couldn't this easily take more time than just using e.g. slower and be done in one go? In addition, isn't there the danger of being tempted to wait for the next refinement pass, in order to judge if the current pass is good enough?

mandarinka
11th March 2012, 17:43
If you iterate super/very/fast,medium,slow/er/very~

It would probably exceed the time needed for placebo 2-pass. Question is if it could beat it :)

Actually, reading for a second time, I do see this...

In this rate control mode, x264 encoding virtualy never stop..

Sagittaire
11th March 2012, 18:18
That "progressive refinement" method would be an interesting subject to statistical investigation. If you iterate super/very/fast,medium,slow/er/very~, couldn't this easily take more time than just using e.g. slower and be done in one go? In addition, isn't there the danger of being tempted to wait for the next refinement pass, in order to judge if the current pass is good enough?

Well user can stop encoding at fastest, fast or medium quality if the encoding is good enought ... it's the concept.

Sagittaire
11th March 2012, 18:22
It would probably exceed the time needed for placebo 2-pass. Question is if it could beat it :)

Actually, reading for a second time, I do see this...

Well in case of reencoding part, encoding virtually never stop.

And for me extreme placebo is profil with exhaustive search for all option. Something very very very slow that you use just for this particular RC because you can stop encoding when you want.

gyth
11th March 2012, 22:23
twriteavi cache (http://forum.doom9.org/showthread.php?p=1073371#post1073371)

mandarinka
12th March 2012, 00:49
avs2yuv IIRC has a function like this, too.

smok3
12th March 2012, 09:15
In this rate control mode, x264 encoding virtualy never stop. In fact user decide himself to stop encoding if quality is good for him (after part reencoding for example). It's more a rate control for professional with power user PC.

This is basically a concept that some (rare?) 3d rendering engines take, like fprime
(http://www.worley.com/E/Products/fprime/fprime.html), and it is useful in that regard, but 3d rendering is way slower and you are dealing with individual frames there. It has an option to render forever or "stop at quality X". Ok, i forgot what was the point of my post, coffee time...

kolak
13th March 2012, 00:36
Cinemacrfat encoders use similar ideas as yours- intermediate file (so all filtering is done only once), many passes....