Difference between revisions of "SoC 2009/Weighted P-frame Prediction"
(New page: {{SoCProject|year=2009|student=Dylan Yudaken|mentor=ason Garrett-Glaser}} == Abstract == x264 is a highly popular h264 encoder. It currently does not implement the entire spec of h264. Cu...) |
(Vadalism Undo revision 15317 by Talk)) |
||
(9 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | {{SoCProject|year=2009|student=Dylan Yudaken|mentor= | + | {{SoCProject|year=2009|student=Dylan Yudaken|mentor=Jason Garrett-Glaser}} |
== Abstract == | == Abstract == | ||
x264 is a highly popular h264 encoder. It currently does not implement the entire spec of h264. Currently weighted P-frames are not used to assist in prediction. If implemented this would give huge benefits in cases where the scene fades or where there are flashes. I am proposing to implement an implementation of this that is good enough and fast enough to warrant inclusion in most video encodings. | x264 is a highly popular h264 encoder. It currently does not implement the entire spec of h264. Currently weighted P-frames are not used to assist in prediction. If implemented this would give huge benefits in cases where the scene fades or where there are flashes. I am proposing to implement an implementation of this that is good enough and fast enough to warrant inclusion in most video encodings. | ||
+ | |||
+ | == Code == | ||
+ | My patches (and codebase) are [http://repo.or.cz/w/x264/x264-p-frames.git?a=shortlog;h=refs/heads/gsoc here] for now, but they may soon move to videolan's server | ||
== Goals == | == Goals == | ||
Line 8: | Line 11: | ||
! No. !! Task Description !! Status !! Comment | ! No. !! Task Description !! Status !! Comment | ||
|- | |- | ||
− | |1 || Build weighting framework || style="background: #00ff00"|done || | + | |1 || Build weighting framework || style="background: #00ff00"|done || . |
+ | |- | ||
+ | |2 || Brute Force Optimal Weights||style="background: #00ff00"|done || | ||
+ | |- | ||
+ | |3 || Try use these new weights for some interesting things to improve quality||style="background: #00ff00"|done || | ||
+ | |- | ||
+ | |4 || Find Optimal Weights in a fast way (probably based on the findings in 3.) ||style="background: #00ff00"|done || | ||
|- | |- | ||
− | | | + | |5 || DSP Functions ||style="background: #00ff00"|Done || |
|- | |- | ||
− | | | + | |6 || Try duplicating reference frames ||style="background: #00ff00"|Done|| |
|- | |- | ||
− | | | + | |7 || Other weird uses ||style="background: #00ff00"|done || Implemented a k-means cluster algorithm to find a number (k) of good weights and use them |
− | |||
|- | |- | ||
− | | | + | |8 || Finish off small things ||style="background: #00aa00"|Working || Todo: Finish multipass, cleanup k-means a bit |
|- | |- | ||
− | | | + | |9 || Optimize algorithms and test like crazy || Not started || |
|- | |- | ||
− | | | + | |10 || Cleanup and code review || Not started || |
|} | |} | ||
+ | |||
+ | ===Current Issues=== | ||
== Timeline == | == Timeline == | ||
Line 28: | Line 38: | ||
'''March 20th or so - April 3''' Qualifying task. Was a first attempt at goal 1. | '''March 20th or so - April 3''' Qualifying task. Was a first attempt at goal 1. | ||
+ | |||
'''April 20''' Students announce | '''April 20''' Students announce | ||
+ | |||
'''April 21 - May''' Goal 1 redone better and acceptably. | '''April 21 - May''' Goal 1 redone better and acceptably. | ||
+ | |||
'''May 1 - May 20''' Work on goal 2 | '''May 1 - May 20''' Work on goal 2 | ||
+ | |||
''' May 23''' Program Starts | ''' May 23''' Program Starts | ||
+ | |||
''' May 26 - June 12 ''' Exams | ''' May 26 - June 12 ''' Exams | ||
+ | |||
''' June 13 - July 13''' Code | ''' June 13 - July 13''' Code | ||
+ | |||
''' July 13''' Mid Term deadline. Goals for here have not been set but personally I would like to have goal 2 & 4 finished with goal 3 having a decent chunk of work done. This weird out of order thing is because goal 3 can be worked on continuously as it is not really set, more the trying of ideas. | ''' July 13''' Mid Term deadline. Goals for here have not been set but personally I would like to have goal 2 & 4 finished with goal 3 having a decent chunk of work done. This weird out of order thing is because goal 3 can be worked on continuously as it is not really set, more the trying of ideas. | ||
+ | |||
''' July 13 - August 17''' Code | ''' July 13 - August 17''' Code | ||
+ | |||
'''August 17''' Program end | '''August 17''' Program end |
Latest revision as of 06:23, 12 January 2010
This project is part of Google Summer of Code 2009.
|
Contents
Abstract
x264 is a highly popular h264 encoder. It currently does not implement the entire spec of h264. Currently weighted P-frames are not used to assist in prediction. If implemented this would give huge benefits in cases where the scene fades or where there are flashes. I am proposing to implement an implementation of this that is good enough and fast enough to warrant inclusion in most video encodings.
Code
My patches (and codebase) are here for now, but they may soon move to videolan's server
Goals
No. | Task Description | Status | Comment |
---|---|---|---|
1 | Build weighting framework | done | . |
2 | Brute Force Optimal Weights | done | |
3 | Try use these new weights for some interesting things to improve quality | done | |
4 | Find Optimal Weights in a fast way (probably based on the findings in 3.) | done | |
5 | DSP Functions | Done | |
6 | Try duplicating reference frames | Done | |
7 | Other weird uses | done | Implemented a k-means cluster algorithm to find a number (k) of good weights and use them |
8 | Finish off small things | Working | Todo: Finish multipass, cleanup k-means a bit |
9 | Optimize algorithms and test like crazy | Not started | |
10 | Cleanup and code review | Not started |
Current Issues
Timeline
This is an estimation.
March 20th or so - April 3 Qualifying task. Was a first attempt at goal 1.
April 20 Students announce
April 21 - May Goal 1 redone better and acceptably.
May 1 - May 20 Work on goal 2
May 23 Program Starts
May 26 - June 12 Exams
June 13 - July 13 Code
July 13 Mid Term deadline. Goals for here have not been set but personally I would like to have goal 2 & 4 finished with goal 3 having a decent chunk of work done. This weird out of order thing is because goal 3 can be worked on continuously as it is not really set, more the trying of ideas.
July 13 - August 17 Code
August 17 Program end