Difference between revisions of "SoC x264 2008"

From VideoLAN Wiki
Jump to navigation Jump to search
(x264 SoC)
 
(formatting)
Line 7: Line 7:
  
 
'''Size Key'' ''(depends heavily on the skill and willingness to work of the student)''
 
'''Size Key'' ''(depends heavily on the skill and willingness to work of the student)''
Very Large: Probably too large to completed in one summer.
+
*Very Large: Probably too large to completed in one summer.
Large: Probably the right size for a full-summer project.
+
*Large: Probably the right size for a full-summer project.
Medium: Probably too small.  Could be combined with another project, of course.
+
*Medium: Probably too small.  Could be combined with another project, of course.
 
Small: A small project, but definitely useful, and could be part of a larger project.
 
Small: A small project, but definitely useful, and could be part of a larger project.
  
 
'''Skills needed for all of these:'''
 
'''Skills needed for all of these:'''
:Basic C programming.
+
*Basic C programming.
:Basic understanding of video encoding, or at least willingness to do the appropriate reading up on the topic before the summer begins.
+
*Basic understanding of video encoding, or at least willingness to do the appropriate reading up on the topic before the summer begins.
  
 
Project: Fast inter refinement
 
Project: Fast inter refinement
:Size: Medium to large.
+
*Size: Medium to large.
:Description: Improve heuristics and decision-making for inter refinement to improve efficiency on non-insane encoding settings.  This would involve various early termination heuristics along with methods of deciding which partition modes need to be searched while performing minimal actual searching on those partition modes.  This would be similar to, but a vastly more in-depth analysis of what I proposed in my "Fast-Ref-Search" patch.
+
*Description: Improve heuristics and decision-making for inter refinement to improve efficiency on non-insane encoding settings.  This would involve various early termination heuristics along with methods of deciding which partition modes need to be searched while performing minimal actual searching on those partition modes.  This would be similar to, but a vastly more in-depth analysis of what I proposed in my "Fast-Ref-Search" patch.
 
Difficulty: Medium
 
Difficulty: Medium
  
 
Project: Fast intra refinement
 
Project: Fast intra refinement
:Size: Small to medium
+
*Size: Small to medium
:Description: Similar to above, but covering intra modes instead.  Would probably involve considerable statistical analysis of intra mode data, along with creative solutions for improved RDO refinement.  We already have some ideas on this one, but haven't implemented any of them.
+
*Description: Similar to above, but covering intra modes instead.  Would probably involve considerable statistical analysis of intra mode data, along with creative solutions for improved RDO refinement.  We already have some ideas on this one, but haven't implemented any of them.
 
Difficulty: Medium
 
Difficulty: Medium
  
 
Project: RDO B-frame decision
 
Project: RDO B-frame decision
:Size: Medium to large
+
*Size: Medium to large
:Description: x264's biggest weakness is its B-frame decision algorithm, which can often be extremely subtopimal, with OPSNR losses as high as 1db in some cases.  Improving this would drastically increase the effectiveness of the encoder.
+
*Description: x264's biggest weakness is its B-frame decision algorithm, which can often be extremely subtopimal, with OPSNR losses as high as 1db in some cases.  Improving this would drastically increase the effectiveness of the encoder.
 
Difficulty: Medium-high
 
Difficulty: Medium-high
  
 
Other possible projects which can be picked from at the request of a student:
 
Other possible projects which can be picked from at the request of a student:
:Assembly optimizations of any sort
+
*Assembly optimizations of any sort
::Extra skills: Assembly coding
+
:*Extra skills: Assembly coding
::Difficulty: Medium
+
:*Difficulty: Medium
  
:Psychovisual optimizations for mode decision and quantization (e.g. QNS)
+
*Psychovisual optimizations for mode decision and quantization (e.g. QNS)
:Extra skills: Creativity and perhaps some understanding of DCT/Fourier math.
+
:*Extra skills: Creativity and perhaps some understanding of DCT/Fourier math.
:Difficulty: Medium-high
+
:*Difficulty: Medium-high
  
:Implementing MBAFF or PicAFF (potentially too difficult for a SoC project, however)
+
*Implementing MBAFF or PicAFF (potentially too difficult for a SoC project, however)
::Difficulty: Very high
+
:*Difficulty: Very high
  
:Fast RD optimization using heuristics
+
*Fast RD optimization using heuristics
::Extra skills: Reading lots of IEEE papers
+
:*Extra skills: Reading lots of IEEE papers
::Difficulty: Medium
+
:*Difficulty: Medium
  
:Anything else that I think is reasonable, honestly.  There's all sorts of ideas floating around, and these are just the ones off the top of my head.
+
*Motion search improvements
 +
:*Difficulty: Medium
 +
 
 +
*Anything else that I think is reasonable, honestly.  There's all sorts of ideas floating around, and these are just the ones off the top of my head.

Revision as of 05:28, 14 March 2008

x264 has loads of possibilities for SoC 2008 projects. Here's just a few I thought up with. I'm willing to mentor any reasonable project on x264 to the best of my ability.

--Dark Shikari

x264 project ideas

This is not at all an exhaustive list.

'Size Key (depends heavily on the skill and willingness to work of the student)

  • Very Large: Probably too large to completed in one summer.
  • Large: Probably the right size for a full-summer project.
  • Medium: Probably too small. Could be combined with another project, of course.

Small: A small project, but definitely useful, and could be part of a larger project.

Skills needed for all of these:

  • Basic C programming.
  • Basic understanding of video encoding, or at least willingness to do the appropriate reading up on the topic before the summer begins.

Project: Fast inter refinement

  • Size: Medium to large.
  • Description: Improve heuristics and decision-making for inter refinement to improve efficiency on non-insane encoding settings. This would involve various early termination heuristics along with methods of deciding which partition modes need to be searched while performing minimal actual searching on those partition modes. This would be similar to, but a vastly more in-depth analysis of what I proposed in my "Fast-Ref-Search" patch.

Difficulty: Medium

Project: Fast intra refinement

  • Size: Small to medium
  • Description: Similar to above, but covering intra modes instead. Would probably involve considerable statistical analysis of intra mode data, along with creative solutions for improved RDO refinement. We already have some ideas on this one, but haven't implemented any of them.

Difficulty: Medium

Project: RDO B-frame decision

  • Size: Medium to large
  • Description: x264's biggest weakness is its B-frame decision algorithm, which can often be extremely subtopimal, with OPSNR losses as high as 1db in some cases. Improving this would drastically increase the effectiveness of the encoder.

Difficulty: Medium-high

Other possible projects which can be picked from at the request of a student:

  • Assembly optimizations of any sort
  • Extra skills: Assembly coding
  • Difficulty: Medium
  • Psychovisual optimizations for mode decision and quantization (e.g. QNS)
  • Extra skills: Creativity and perhaps some understanding of DCT/Fourier math.
  • Difficulty: Medium-high
  • Implementing MBAFF or PicAFF (potentially too difficult for a SoC project, however)
  • Difficulty: Very high
  • Fast RD optimization using heuristics
  • Extra skills: Reading lots of IEEE papers
  • Difficulty: Medium
  • Motion search improvements
  • Difficulty: Medium
  • Anything else that I think is reasonable, honestly. There's all sorts of ideas floating around, and these are just the ones off the top of my head.