| 86 | |
| 87 | |
| 88 | {{{#!div class="box" |
| 89 | == Ideas for future Work == |
| 90 | |
| 91 | * finding the actual encoder dimension limits, which are currently hardcoded since there are no values in the header files: creating encoding contexts is pretty cheap, so we should be able to detect the limit by trial and error |
| 92 | * better tuning: most default options are targeted at video |
| 93 | * detect application profile ({{{xterm}}} vs {{{mplayer}}} vs {{{browser}}}) and tune settings |
| 94 | * motion algorithm improvements: |
| 95 | * tweak motion range (see [http://mewiki.project357.com/wiki/X264_Settings#merange merange]) |
| 96 | * use a better motion algorithm where appropriate: {{{esa}}} ({{{exhaustive search algorithm}}}) is expensive, {{{dia}}} ({{{diamond search}}}) is a better fit for traditional scrolling |
| 97 | * write one where we can feed the information ourselves (assuming we do get it somehow) |
| 98 | * tune {{{input-range}}} (see [http://mewiki.project357.com/wiki/X264_Settings#input-range X264 Settings: input-range] |
| 99 | * allow intra frames when dealing with high fps: buffer one frame, we must schedule a timeout to ensure the buffered frames do get sent. (and force an IDR frame to flush) |
| 100 | |
| 101 | etc.. |
| 102 | }}} |