<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.videolan.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Irock</id>
	<title>VideoLAN Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.videolan.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Irock"/>
	<link rel="alternate" type="text/html" href="https://wiki.videolan.org/Special:Contributions/Irock/"/>
	<updated>2026-11-04T16:40:40Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=X264_TODO&amp;diff=23792</id>
		<title>X264 TODO</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=X264_TODO&amp;diff=23792"/>
		<updated>2013-03-05T22:06:33Z</updated>

		<summary type="html">&lt;p&gt;Irock: /* x86 assembly */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page contains an incomplete list of things available in x264 for you to do. It&#039;s organized into sections covering various parts of x264. &lt;br /&gt;
&lt;br /&gt;
Some useful resources: [http://www.x264.nl/developers/Dark_Shikari/?dir=./src Dark Shikari&#039;s pile of junk], [http://akuvian.org/src/x264/ Pengvado&#039;s pile of junk]. &lt;br /&gt;
&lt;br /&gt;
If you&#039;re interested in doing any of this, drop by #x264dev on Freenode IRC. There are no experience or educational requirements for doing any of this, though you are expected to know how to code. &lt;br /&gt;
&lt;br /&gt;
Bolded features may have companies willing to sponsor or provide bounties. This is not complete either; just because it&#039;s not bolded doesn&#039;t mean there aren&#039;t resources out there. If your company is interested in offering a bounty, drop by IRC. &lt;br /&gt;
&lt;br /&gt;
=== Motion Estimation ===&lt;br /&gt;
&lt;br /&gt;
*Sequential elimination (SEA), used for exhaustive search, might be more generally applicable to algorithms like UMH, by letting us skip a lot of SADs. The downside is we won&#039;t be able to use SAD_X4 anymore. &lt;br /&gt;
*(T)ESA is currently wrong for motion searches done on weightp duplicates. This effect is miniscule, but it still should be fixed. &lt;br /&gt;
*Hierarchical motion estimation might be a useful way to catch very long motion vectors without the cost of UMH or ESA. It might also help regularize motion.&lt;br /&gt;
**I have a patch for this in the lookahead, but it didn&#039;t help much, since it only added predictors.&lt;br /&gt;
*Somehow take into account the effect of motion vector decision on future blocks. &lt;br /&gt;
**Hierarchical motion estimation &lt;br /&gt;
**Approximations from lookahead MVs &lt;br /&gt;
**Iterative ME (as per Snow) &lt;br /&gt;
**Trellis motion estimation &lt;br /&gt;
*We don&#039;t need to check all 11 predictors all the time for 16x16 fullpel motion search. &lt;br /&gt;
**But how do we know which ones we can afford to skip, and when? &lt;br /&gt;
**Xvid and libtheora have algorithms for this, but the former&#039;s is almost surely 100% useless and the latter doesn&#039;t seem impressive either. &lt;br /&gt;
*libtheora does fullpel motion estimation on the source pixels instead of decoded pixels. Does this give a better starting point for the subpel search and discourage &amp;quot;weird&amp;quot; MVs? &lt;br /&gt;
*With extremely fast encoding settings (subme 0), can we rip off lookahead MVs instead of doing a real search? &lt;br /&gt;
**This seems to be awful from my testing, but maybe there&#039;s something we can do?&lt;br /&gt;
*Try sub-8x8 partitions in B-frames. Is it at all useful? &lt;br /&gt;
*Try bidir motion estimation for fullpel. That is, considering L1&#039;s MV when doing L0 (or vice versa). Xvid does this. How much does it help? &lt;br /&gt;
*Fullpel chroma ME? &lt;br /&gt;
**For TESA?&lt;br /&gt;
&lt;br /&gt;
=== Intra Analysis ===&lt;br /&gt;
&lt;br /&gt;
*Make the early terminations smarter. Currently they&#039;re just hacks -- some statistical analysis might be useful.&lt;br /&gt;
**With the SSSE3-based fast intra analysis, we no longer do any early terminations for different modes, at least in SAD/SATD analysis.  But there might still be improvements to be made.&lt;br /&gt;
*SAD (subme 1) i8x8 vs i4x4 decision is a bit bad. Can it be improved without significant speed loss?&lt;br /&gt;
&lt;br /&gt;
=== Mode Decision ===&lt;br /&gt;
&lt;br /&gt;
*Can we find more ways to skip more motion searches in multiref?&lt;br /&gt;
**A while back, I tried using weaker motion searches on older refs.  This helped a bit for speed-vs-compression, but is ironically the opposite of what one wants; older refs will be harder to find good MVs in, and therefore really need better searches.&lt;br /&gt;
*On extremely fast encoding settings, fast skip is actually kind of slow. But anything dumber (e.g. SAD) is completely useless. Is there some better balance that can be achieved here?&lt;br /&gt;
**Can we do something smart by analyzing fenc?  It&#039;s impossible to tell whether a block is motionless by looking at fdec, but looking at the source pixels is useful.  There&#039;s still complexity such as lower-QP-than-reference though.&lt;br /&gt;
*See the TODOs for deblock-aware RD in common/deblock.c.&lt;br /&gt;
**I tried correcting weightp references for deblock RDO, but it didn&#039;t help.&lt;br /&gt;
**I tried chroma, too, and again, it didn&#039;t help measurably.&lt;br /&gt;
*Is there a faster way than SA8D/SATD to do 8x8dct vs 4x4dct mode decision? At very fast settings, the time this uses is nontrivial.&lt;br /&gt;
**Doing a merged 4x4/8x8 SATD would help here, but would require new asm.&lt;br /&gt;
*Is there a faster way than RD to do 8x8dct vs 4x4dct mode decision that&#039;s still better than SATD? RD takes over an order of magnitude more time than SATD, so it might be useful to have something in the middle. &lt;br /&gt;
*Is there some value to swapping the mode decision metric from SATD to SA8D if we think that the macroblock will use 8x8dct? [http://akuvian.org/src/x264/x264_dct8_guess.diff This has been tried before], but only helped if our guess was extremely good (better than we could get in reality). &lt;br /&gt;
*With trellis 2, can we skip most of CABAC and CAVLC bit cost calculation?&lt;br /&gt;
*How about saving CABAC state between each trellis call, rather than basing them all on the CABAC state at the start of the macroblock?&lt;br /&gt;
*Make subme=11 not do thresholding in qpel RD and bidir RD.&lt;br /&gt;
&lt;br /&gt;
=== Psy ===&lt;br /&gt;
&lt;br /&gt;
*Psy-RD is a hack. It works, but it&#039;s a hack. If you apply QNS with Psy-RD as the metric, it goes way overboard and gives terrible results. This means that Psy-RD only works because normal mode decision is limited in the way it can modify the image to better suit the metric. Is there a way to make it better? &lt;br /&gt;
*Should RD be linear at all? Perhaps we should weight more heavily against low quality blocks and also try to ignore minuscule distortion that viewers can&#039;t see. &lt;br /&gt;
*Psy-trellis (and maybe psy-RD?) are too strong at very high QPs. &lt;br /&gt;
*Psy-trellis should be merged with Psy-RD. There are patches for this, but they probably won&#039;t be committed until psy-RD itself is fixed. &lt;br /&gt;
*RD should take into account local variance. &lt;br /&gt;
*Lambda should be varied on a per-DCT-block basis instead of a per-macroblock basis. &lt;br /&gt;
*Lambda should be picked independent of quantizer (i.e. with greater precision). &lt;br /&gt;
*Classic problem: a block is mostly high complexity but has a small area of low complexity. How do we judge whether that area is important? Good example: sharp text on background with film grain; grain gets blurred out because of the text. &lt;br /&gt;
**If we think it&#039;s important all the time, we ruin the quality of many clips that rely on raising complexity on edges (Touhou). &lt;br /&gt;
*Should motion estimation lambda be as high as it is at very high quantizers? There&#039;s some value to capturing &amp;quot;true motion&amp;quot;... &lt;br /&gt;
*Macroblock tree correlates pretty well with visual perception in that its concept of a &amp;quot;high complexity&amp;quot; matches well with the visual concept. Except for local illumination changes. Talk to Dark Shikari for a patch.&lt;br /&gt;
&lt;br /&gt;
=== Lookahead ===&lt;br /&gt;
&lt;br /&gt;
*Temporal MV predictors in lookahead? There&#039;s a patch for these somewhere, but they biased heavily in favor of B-frames, likely by improving the motion search. &lt;br /&gt;
*Should lookahead use variable lambda based on quantizer (esp. due to adaptive quant)? If so, should it take into account estimated ratecontrol quantizer, too? If so, how?&lt;br /&gt;
*B-adapt 1 could be made quite a bit better -- it&#039;s important because it&#039;s used on all the fast speed modes (and even the defaults).  &amp;quot;Harbour 4CIF&amp;quot; is a good example of a clip where it does noticeably badly.&lt;br /&gt;
&lt;br /&gt;
=== Quantization ===&lt;br /&gt;
&lt;br /&gt;
*CAVLC &amp;quot;trellis&amp;quot; is a hack. It works, but it&#039;s a hack. Make it better. See the TODOs in encoder/rdo.c.&lt;br /&gt;
**This is doubly important now, as CABAC trellis has been made way faster, but CAVLC hasn&#039;t.  Many of the CABAC trellis improvements can be backported.&lt;br /&gt;
*There&#039;s room for something between trellis and deadzone in terms of complexity. libvpx has a good example -- it biases towards zero-runs in its &amp;quot;medium speed&amp;quot; quantizer. This can&#039;t be SIMD&#039;d easily, but is still vastly faster than trellis. A nonlinear quantizer (be more likely to round up larger coefficients) might also be useful.&lt;br /&gt;
**How useful is this with an entropy coder that doesn&#039;t really bias towards zero-runs, as in CABAC?&lt;br /&gt;
*Floyd-Steinberg for quantization? Try pushing quantization error to nearby DCT coefficients. Should this go from high to low or low to high? &lt;br /&gt;
*Energy-preserving quantizer -- maintain L1 (or maybe L2? I&#039;m not sure) energy. Should we maintain it in the spatial domain (post-iDCT) or residual domain? Probably the former. &lt;br /&gt;
**See [https://github.com/saintdev/x264-devel/compare/enquant-base...energy-quant saintdev&#039;s github] for one attempt at this.&lt;br /&gt;
*Decimation is currently just a ripoff of the JVT recommended algorithm. Can we do this more optimally? With RD?&lt;br /&gt;
&lt;br /&gt;
=== Transform ===&lt;br /&gt;
&lt;br /&gt;
*Analyze the error characteristics of the fDCT. Is there any way to make it more accurate without much speed loss? Particularly at extremely low quantizers, this might help. &lt;br /&gt;
*Before forward transform, run a &amp;quot;blocking filter&amp;quot; that acts as the approximate inverse of the deblock filter. See [http://akuvian.org/src/x264/Shwang_loopfilter_thesis.pdf this paper].&lt;br /&gt;
&lt;br /&gt;
=== Interlacing ===&lt;br /&gt;
&lt;br /&gt;
*Lookahead currently blend-deinterlaces to get the lowres. Is this a good idea? Is there something better that isn&#039;t much slower? &lt;br /&gt;
*Constrained intra + adaptive MBAFF. Does anyone care about this? &lt;br /&gt;
*PAFF + MBAFF adaptive - PAFF performs better than Adaptive MBAFF on high motion scenes because it can predict from the previous field.&lt;br /&gt;
&lt;br /&gt;
=== Weighted Prediction ===&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;Make weightp work with interlacing. Preferably abuse reference duplication to make it useful for MBAFF.&#039;&#039;&#039; &lt;br /&gt;
*Finish K-means decision for weightp. Talk to DylanZA about getting his current patch for this one. &lt;br /&gt;
*Add explicit weighting for B-frames, too. This helps in nonlinear fades, among other cases. &lt;br /&gt;
*Improve weighted prediction analysis to do more searching based on an estimated offset vs scale gradient.&lt;br /&gt;
&lt;br /&gt;
=== Ratecontrol ===&lt;br /&gt;
&lt;br /&gt;
*Current per-frame VBV is a hack. It only adapts per row and is O(N^2), where N is the number of rows. An O(N) solution would be able to react more often and thus be more accurate. &lt;br /&gt;
*Make the frame size and row size predictors better. They currently are kind of crappy. &lt;br /&gt;
*Ratecontrol code as a whole is a bit of a mess. It could be improved. There&#039;s a lot of cruft left over that is probably not needed now, like qblur.&lt;br /&gt;
*1-pass ratecontrol often can&#039;t adapt fast enough when there are lots of threads (12, 16, 24, etc), especially with smallish VBV buffers.  Improve this?&lt;br /&gt;
*2-pass VBV is actually a bit more likely to underflow than 1-pass because it doesn&#039;t adapt as aggressively and trusts first pass data a lot. This trust is often misplaced if the first pass was a fast one. This should be improved.&lt;br /&gt;
**2-pass is still better in the case of many threads, due to the above.&lt;br /&gt;
*2-pass macroblock-tree: if we added the ability to do macroblock-tree on real encoded data, we&#039;d get better results (particularly with repeating patterns and multiref, such as an anime character&#039;s mouth moving).&lt;br /&gt;
*Macroblock-tree: make it more psy-aware. Maybe we should cap how much it lowers the quantizer on extremely static scenes? This might tie into the &amp;quot;just-noticeable error&amp;quot; issue in RD.&lt;br /&gt;
&lt;br /&gt;
=== GPU ===&lt;br /&gt;
&lt;br /&gt;
*Motion estimation? &lt;br /&gt;
**Methods &lt;br /&gt;
***Hierarchical? &lt;br /&gt;
***2D Wave? &lt;br /&gt;
***Something else? &lt;br /&gt;
**&amp;quot;Easy&amp;quot;: lookahead motion estimation &lt;br /&gt;
***Extremely high parallelism, hundreds of frame searches (each with thousands of searches) at once. &lt;br /&gt;
**&amp;quot;Hard&amp;quot;: main motion estimation &lt;br /&gt;
***Difficult synchronization issues, not as heavily parallel in terms of number of macroblocks, but far more partition sizes and refs to search. &lt;br /&gt;
***But potentially more useful... &lt;br /&gt;
*Other things?&lt;br /&gt;
*MultiCoreWare is currently looking on a GPU-based lookahead.&lt;br /&gt;
&lt;br /&gt;
=== x86 assembly ===&lt;br /&gt;
&lt;br /&gt;
*Find holger, lock him in a closet, and make him commit his local patches.  It&#039;s been years now!&lt;br /&gt;
&lt;br /&gt;
=== Other assembly ===&lt;br /&gt;
&lt;br /&gt;
*There&#039;s still a lot of unreviewed NEON assembly.  Can we please get this in?&lt;br /&gt;
*Altivec assembly is very lacking. &lt;br /&gt;
*SPARC VIS assembly is only available when high bit-depth is disabled.  But nobody cares about SPARC anyways.&lt;br /&gt;
&lt;br /&gt;
=== Other CPU optimizations ===&lt;br /&gt;
&lt;br /&gt;
*x264 needs more prefetching. How many L1 and L2 cache misses (particularly L1) can we get rid of via smart prefetching in the right places? Warning: this is often hard to benchmark. &lt;br /&gt;
*Different CPUs take different relative times for some functions. Is this enough (particularly across architectures) to justify different encoding settings for different CPUs?&lt;br /&gt;
&lt;br /&gt;
=== Other features ===&lt;br /&gt;
&lt;br /&gt;
*MPEG-2 encoding support&lt;br /&gt;
**[https://github.com/kierank/x262/wiki/TODO x262]&lt;br /&gt;
*VP8 encoding support&lt;br /&gt;
**[https://github.com/DarkShikari/xvp8 xvp8]&lt;br /&gt;
*Support for SMPTE timecodes &lt;br /&gt;
*Merge speedcontrol &lt;br /&gt;
*Mixed lossless/lossy encoding.&lt;br /&gt;
*Segment re-encoding&lt;br /&gt;
*Spec compliant AVC-Intra encoding (ask kierank for spec)&lt;br /&gt;
**I tried this, but the problem is that the encoders/decoders in reality don&#039;t actually abide by their own spec.  This is completely insane.&lt;br /&gt;
&lt;br /&gt;
=== x264CLI ===&lt;br /&gt;
&lt;br /&gt;
*Finish audio support. Talk to Kovensky about this one.&lt;br /&gt;
*Make the filtering system aware of BT.601 vs BT.709.&lt;br /&gt;
*Add more filters. &lt;br /&gt;
**Deinterlacers (YADIF). &lt;br /&gt;
**Denoisers (HQDN3D?). &lt;br /&gt;
**IVTC, decomb? &lt;br /&gt;
*Merge L-SMASH mp4 muxer. &lt;br /&gt;
*Add TS muxing support using HRD. Talk to kierank about this one. &lt;br /&gt;
*Add --device support. &lt;br /&gt;
*Add automatic --level restriction support.&lt;/div&gt;</summary>
		<author><name>Irock</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=SoC_2010/High_Bit_Depth_Encoding&amp;diff=16152</id>
		<title>SoC 2010/High Bit Depth Encoding</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=SoC_2010/High_Bit_Depth_Encoding&amp;diff=16152"/>
		<updated>2010-05-26T12:38:18Z</updated>

		<summary type="html">&lt;p&gt;Irock: /* Timeline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SoCProject|year=2010|student=[[User:Irock|Oskar Arvidsson]]|mentor=[[User:Holger|Holger Lubitz]]}}&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
&lt;br /&gt;
The primary goal for this project is to prepare the code base of x264 for encoding H.264 video with user defined sample depths. This will involve templating the encoder and migrating existing C code for use with higher sample depths.&lt;br /&gt;
&lt;br /&gt;
A lot of optimizations are done with assembly, and will thus also need to be migrated. The secondary goal for this project is therefore to identify new assembly code to be written.&lt;br /&gt;
&lt;br /&gt;
== Milestones ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Status !! Deadline !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Done || May 30 || 16-bit infrastructure ready for testing&lt;br /&gt;
|-&lt;br /&gt;
| No problems encountered so far || June 6 || Encoding with 16-bit infrastructure produce same results as 8-bit infrastructure.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
&lt;br /&gt;
This schedule is preliminary.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Status !! Date !! Period !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Done || May 17 - May 23 || Week 1 || Identify C code that should be templated.&lt;br /&gt;
|-&lt;br /&gt;
| Done || May 24 - May 30 || Week 2 || Start templating the encoder for 16-bit infrastructure.&lt;br /&gt;
|-&lt;br /&gt;
| In progress || May 31 - June 6 || Week 3 || Test templated encoder. Identify C code that need modification to support higher sample depth.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || June 7 - June 13 || Week 4 || Start modifying the encoder to support higher sample depth.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || June 14 - June 20 || Week 5 || Continue work with encoder.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || June 21 - June 27 || Week 6 || Continue work with encoder.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || June 28 - July 4 || || Vacation / extra time&lt;br /&gt;
|-&lt;br /&gt;
| Not started || July 5 - July 11 || Week 7 || Test encoder with higher sample depths.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || July 12 - July 18 || Week 8 || Fix issues encountered during testing.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || July 19 - July 25 || Week 9 || Modify build chain to allow compilation for higher sample depth. Add options to set sample rate.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || July 26 - August 1 || Week 10 || Identify assembly code that needs modification to support higher sample depth.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Repository ==&lt;br /&gt;
&lt;br /&gt;
* http://github.com/irock/x264-high-bit-encoding/tree/high-bit-encoding&lt;br /&gt;
&lt;br /&gt;
How to test the current code:&lt;br /&gt;
&lt;br /&gt;
  $ git clone git://github.com/irock/x264-high-bit-encoding.git&lt;br /&gt;
  $ cd x264-high-bit-encoding&lt;br /&gt;
  $ git checkout high-bit-encoding&lt;br /&gt;
  $ ./configure --disable-asm --enable-16-bit&lt;br /&gt;
  $ make&lt;/div&gt;</summary>
		<author><name>Irock</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=SoC_2010/High_Bit_Depth_Encoding&amp;diff=16151</id>
		<title>SoC 2010/High Bit Depth Encoding</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=SoC_2010/High_Bit_Depth_Encoding&amp;diff=16151"/>
		<updated>2010-05-26T11:57:17Z</updated>

		<summary type="html">&lt;p&gt;Irock: /* Timeline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SoCProject|year=2010|student=[[User:Irock|Oskar Arvidsson]]|mentor=[[User:Holger|Holger Lubitz]]}}&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
&lt;br /&gt;
The primary goal for this project is to prepare the code base of x264 for encoding H.264 video with user defined sample depths. This will involve templating the encoder and migrating existing C code for use with higher sample depths.&lt;br /&gt;
&lt;br /&gt;
A lot of optimizations are done with assembly, and will thus also need to be migrated. The secondary goal for this project is therefore to identify new assembly code to be written.&lt;br /&gt;
&lt;br /&gt;
== Milestones ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Status !! Deadline !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Done || May 30 || 16-bit infrastructure ready for testing&lt;br /&gt;
|-&lt;br /&gt;
| No problems encountered so far || June 6 || Encoding with 16-bit infrastructure produce same results as 8-bit infrastructure.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
&lt;br /&gt;
This schedule is preliminary.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Status !! Date !! Period !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Done || May 17 - May 23 || Week 1 || Identify C code that should be templated.&lt;br /&gt;
|-&lt;br /&gt;
| Done || May 24 - May 30 || Week 2 || Start templating the encoder for 16-bit infrastructure.&lt;br /&gt;
|-&lt;br /&gt;
| In progress || May 31 - June 6 || Week 3 || Test templated encoder. Identify C code that need modification to support higher sample depth.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || June 7 - June 13 || Week 4 || Start modifying the encoder to support higher sample depth.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || June 14 - June 20 || Week 5 || Continue work with encoder.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || June 21 - June 27 || Week 6 || Continue work with encoder.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || June 28 - July 4 || || Vacation&lt;br /&gt;
|-&lt;br /&gt;
| Not started || July 5 - July 11 || || Vacation&lt;br /&gt;
|-&lt;br /&gt;
| Not started || July 12 - July 18 || Week 7 || Test encoder with higher sample depths.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || July 19 - July 25 || Week 8 || Fix issues encountered during testing.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || July 26 - August 1 || Week 9 || Modify build chain to allow compilation for higher sample depth. Add options to set sample rate.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || August 2 - August 8 || Week 10 || Identify assembly code that needs modification to support higher sample depth.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Repository ==&lt;br /&gt;
&lt;br /&gt;
* http://github.com/irock/x264-high-bit-encoding/tree/high-bit-encoding&lt;br /&gt;
&lt;br /&gt;
How to test the current code:&lt;br /&gt;
&lt;br /&gt;
  $ git clone git://github.com/irock/x264-high-bit-encoding.git&lt;br /&gt;
  $ cd x264-high-bit-encoding&lt;br /&gt;
  $ git checkout high-bit-encoding&lt;br /&gt;
  $ ./configure --disable-asm --enable-16-bit&lt;br /&gt;
  $ make&lt;/div&gt;</summary>
		<author><name>Irock</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=SoC_2010/High_Bit_Depth_Encoding&amp;diff=16150</id>
		<title>SoC 2010/High Bit Depth Encoding</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=SoC_2010/High_Bit_Depth_Encoding&amp;diff=16150"/>
		<updated>2010-05-26T11:51:36Z</updated>

		<summary type="html">&lt;p&gt;Irock: /* Repository */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SoCProject|year=2010|student=[[User:Irock|Oskar Arvidsson]]|mentor=[[User:Holger|Holger Lubitz]]}}&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
&lt;br /&gt;
The primary goal for this project is to prepare the code base of x264 for encoding H.264 video with user defined sample depths. This will involve templating the encoder and migrating existing C code for use with higher sample depths.&lt;br /&gt;
&lt;br /&gt;
A lot of optimizations are done with assembly, and will thus also need to be migrated. The secondary goal for this project is therefore to identify new assembly code to be written.&lt;br /&gt;
&lt;br /&gt;
== Milestones ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Status !! Deadline !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Done || May 30 || 16-bit infrastructure ready for testing&lt;br /&gt;
|-&lt;br /&gt;
| No problems encountered so far || June 6 || Encoding with 16-bit infrastructure produce same results as 8-bit infrastructure.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
&lt;br /&gt;
This schedule is preliminary.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Status !! Date !! Period !! Description&lt;br /&gt;
|-&lt;br /&gt;
| In progress || May 17 - May 23 || Week 1 || Identify C code that should be templated.&lt;br /&gt;
|-&lt;br /&gt;
| In progress || May 24 - May 30 || Week 2 || Start templating the encoder for 16-bit infrastructure.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || May 31 - June 6 || Week 3 || Test templated encoder. Identify C code that need modification to support higher sample depth.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || June 7 - June 13 || Week 4 || Start modifying the encoder to support higher sample depth.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || June 14 - June 20 || Week 5 || Continue work with encoder.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || June 21 - June 27 || Week 6 || Continue work with encoder.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || June 28 - July 4 || || Vacation&lt;br /&gt;
|-&lt;br /&gt;
| Not started || July 5 - July 11 || || Vacation&lt;br /&gt;
|-&lt;br /&gt;
| Not started || July 12 - July 18 || Week 7 || Test encoder with higher sample depths.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || July 19 - July 25 || Week 8 || Fix issues encountered during testing.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || July 26 - August 1 || Week 9 || Modify build chain to allow compilation for higher sample depth. Add options to set sample rate.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || August 2 - August 8 || Week 10 || Identify assembly code that needs modification to support higher sample depth.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Repository ==&lt;br /&gt;
&lt;br /&gt;
* http://github.com/irock/x264-high-bit-encoding/tree/high-bit-encoding&lt;br /&gt;
&lt;br /&gt;
How to test the current code:&lt;br /&gt;
&lt;br /&gt;
  $ git clone git://github.com/irock/x264-high-bit-encoding.git&lt;br /&gt;
  $ cd x264-high-bit-encoding&lt;br /&gt;
  $ git checkout high-bit-encoding&lt;br /&gt;
  $ ./configure --disable-asm --enable-16-bit&lt;br /&gt;
  $ make&lt;/div&gt;</summary>
		<author><name>Irock</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=SoC_2010/High_Bit_Depth_Encoding&amp;diff=16149</id>
		<title>SoC 2010/High Bit Depth Encoding</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=SoC_2010/High_Bit_Depth_Encoding&amp;diff=16149"/>
		<updated>2010-05-26T11:44:32Z</updated>

		<summary type="html">&lt;p&gt;Irock: /* Milestones */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SoCProject|year=2010|student=[[User:Irock|Oskar Arvidsson]]|mentor=[[User:Holger|Holger Lubitz]]}}&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
&lt;br /&gt;
The primary goal for this project is to prepare the code base of x264 for encoding H.264 video with user defined sample depths. This will involve templating the encoder and migrating existing C code for use with higher sample depths.&lt;br /&gt;
&lt;br /&gt;
A lot of optimizations are done with assembly, and will thus also need to be migrated. The secondary goal for this project is therefore to identify new assembly code to be written.&lt;br /&gt;
&lt;br /&gt;
== Milestones ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Status !! Deadline !! Description&lt;br /&gt;
|-&lt;br /&gt;
| Done || May 30 || 16-bit infrastructure ready for testing&lt;br /&gt;
|-&lt;br /&gt;
| No problems encountered so far || June 6 || Encoding with 16-bit infrastructure produce same results as 8-bit infrastructure.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
&lt;br /&gt;
This schedule is preliminary.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Status !! Date !! Period !! Description&lt;br /&gt;
|-&lt;br /&gt;
| In progress || May 17 - May 23 || Week 1 || Identify C code that should be templated.&lt;br /&gt;
|-&lt;br /&gt;
| In progress || May 24 - May 30 || Week 2 || Start templating the encoder for 16-bit infrastructure.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || May 31 - June 6 || Week 3 || Test templated encoder. Identify C code that need modification to support higher sample depth.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || June 7 - June 13 || Week 4 || Start modifying the encoder to support higher sample depth.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || June 14 - June 20 || Week 5 || Continue work with encoder.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || June 21 - June 27 || Week 6 || Continue work with encoder.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || June 28 - July 4 || || Vacation&lt;br /&gt;
|-&lt;br /&gt;
| Not started || July 5 - July 11 || || Vacation&lt;br /&gt;
|-&lt;br /&gt;
| Not started || July 12 - July 18 || Week 7 || Test encoder with higher sample depths.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || July 19 - July 25 || Week 8 || Fix issues encountered during testing.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || July 26 - August 1 || Week 9 || Modify build chain to allow compilation for higher sample depth. Add options to set sample rate.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || August 2 - August 8 || Week 10 || Identify assembly code that needs modification to support higher sample depth.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Repository ==&lt;br /&gt;
&lt;br /&gt;
* http://github.com/irock/x264-high-bit-encoding/tree/high-bit-encoding&lt;/div&gt;</summary>
		<author><name>Irock</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=SoC_2010/High_Bit_Depth_Encoding&amp;diff=16073</id>
		<title>SoC 2010/High Bit Depth Encoding</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=SoC_2010/High_Bit_Depth_Encoding&amp;diff=16073"/>
		<updated>2010-05-19T19:19:56Z</updated>

		<summary type="html">&lt;p&gt;Irock: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SoCProject|year=2010|student=[[User:Irock|Oskar Arvidsson]]|mentor=[[User:Holger|Holger Lubitz]]}}&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
&lt;br /&gt;
The primary goal for this project is to prepare the code base of x264 for encoding H.264 video with user defined sample depths. This will involve templating the encoder and migrating existing C code for use with higher sample depths.&lt;br /&gt;
&lt;br /&gt;
A lot of optimizations are done with assembly, and will thus also need to be migrated. The secondary goal for this project is therefore to identify new assembly code to be written.&lt;br /&gt;
&lt;br /&gt;
== Milestones ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Status !! Deadline !! Description&lt;br /&gt;
|-&lt;br /&gt;
| - || May 30 || 16-bit infrastructure ready for testing&lt;br /&gt;
|-&lt;br /&gt;
| - || June 6 || Encoding with 16-bit infrastructure produce same results as 8-bit infrastructure.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
&lt;br /&gt;
This schedule is preliminary.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Status !! Date !! Period !! Description&lt;br /&gt;
|-&lt;br /&gt;
| In progress || May 17 - May 23 || Week 1 || Identify C code that should be templated.&lt;br /&gt;
|-&lt;br /&gt;
| In progress || May 24 - May 30 || Week 2 || Start templating the encoder for 16-bit infrastructure.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || May 31 - June 6 || Week 3 || Test templated encoder. Identify C code that need modification to support higher sample depth.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || June 7 - June 13 || Week 4 || Start modifying the encoder to support higher sample depth.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || June 14 - June 20 || Week 5 || Continue work with encoder.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || June 21 - June 27 || Week 6 || Continue work with encoder.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || June 28 - July 4 || || Vacation&lt;br /&gt;
|-&lt;br /&gt;
| Not started || July 5 - July 11 || || Vacation&lt;br /&gt;
|-&lt;br /&gt;
| Not started || July 12 - July 18 || Week 7 || Test encoder with higher sample depths.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || July 19 - July 25 || Week 8 || Fix issues encountered during testing.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || July 26 - August 1 || Week 9 || Modify build chain to allow compilation for higher sample depth. Add options to set sample rate.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || August 2 - August 8 || Week 10 || Identify assembly code that needs modification to support higher sample depth.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Repository ==&lt;br /&gt;
&lt;br /&gt;
* http://github.com/irock/x264-high-bit-encoding/tree/high-bit-encoding&lt;/div&gt;</summary>
		<author><name>Irock</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=SoC_2010/High_Bit_Depth_Encoding&amp;diff=16072</id>
		<title>SoC 2010/High Bit Depth Encoding</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=SoC_2010/High_Bit_Depth_Encoding&amp;diff=16072"/>
		<updated>2010-05-19T19:19:16Z</updated>

		<summary type="html">&lt;p&gt;Irock: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SoCProject|year=2010|student=[[User:Irock|Oskar Arvidsson]]|mentor=[[User:Holger|Holger Lubitz]]}}&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
&lt;br /&gt;
The primary goal for this project is to prepare the code base of x264 for encoding H.264 video with user defined sample depths. This will involve templating the encoder and migrating existing C code for use with higher sample depths.&lt;br /&gt;
&lt;br /&gt;
A lot of optimization is done with assembly, and will thus also need to be migrated. The secondary goal for this project is therefore to identify new assembly code to be written.&lt;br /&gt;
&lt;br /&gt;
== Milestones ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Status !! Deadline !! Description&lt;br /&gt;
|-&lt;br /&gt;
| - || May 30 || 16-bit infrastructure ready for testing&lt;br /&gt;
|-&lt;br /&gt;
| - || June 6 || Encoding with 16-bit infrastructure produce same results as 8-bit infrastructure.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
&lt;br /&gt;
This schedule is preliminary.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Status !! Date !! Period !! Description&lt;br /&gt;
|-&lt;br /&gt;
| In progress || May 17 - May 23 || Week 1 || Identify C code that should be templated.&lt;br /&gt;
|-&lt;br /&gt;
| In progress || May 24 - May 30 || Week 2 || Start templating the encoder for 16-bit infrastructure.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || May 31 - June 6 || Week 3 || Test templated encoder. Identify C code that need modification to support higher sample depth.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || June 7 - June 13 || Week 4 || Start modifying the encoder to support higher sample depth.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || June 14 - June 20 || Week 5 || Continue work with encoder.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || June 21 - June 27 || Week 6 || Continue work with encoder.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || June 28 - July 4 || || Vacation&lt;br /&gt;
|-&lt;br /&gt;
| Not started || July 5 - July 11 || || Vacation&lt;br /&gt;
|-&lt;br /&gt;
| Not started || July 12 - July 18 || Week 7 || Test encoder with higher sample depths.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || July 19 - July 25 || Week 8 || Fix issues encountered during testing.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || July 26 - August 1 || Week 9 || Modify build chain to allow compilation for higher sample depth. Add options to set sample rate.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || August 2 - August 8 || Week 10 || Identify assembly code that needs modification to support higher sample depth.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Repository ==&lt;br /&gt;
&lt;br /&gt;
* http://github.com/irock/x264-high-bit-encoding/tree/high-bit-encoding&lt;/div&gt;</summary>
		<author><name>Irock</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=SoC_2010_projects&amp;diff=16069</id>
		<title>SoC 2010 projects</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=SoC_2010_projects&amp;diff=16069"/>
		<updated>2010-05-18T21:13:55Z</updated>

		<summary type="html">&lt;p&gt;Irock: /* Support for high bit encoding */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is a list of the accepted projects for Google Summer of Code 2O10.&lt;br /&gt;
&lt;br /&gt;
= List of current VLC projects =&lt;br /&gt;
==Shader support for video post-processing==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Project page: [[SoC 2010 Shader Support]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: [[User:Skoruga|Sasha Koruga]]&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: Adrien Maglo&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
A lot of video post-processing such as RGB-YUV conversion can be accelerated by using the GPU. This can either be achieved through a fragment shader, where it is the last step before a pixel is displayed on the screen, or it can be done with DirectCompute/CUDA/OpenCL. The method will vary depending on the task and intent. I will implement support for shaders by using the DirectX and OpenGL API and write a few shaders such as RGB-YUV conversion.&lt;br /&gt;
&lt;br /&gt;
== ASF demuxer ==&lt;br /&gt;
* &#039;&#039;&#039;Project page: [[SoC 2010 ASF Demuxer]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: [[User:juhovh|Juho Vähä-Herttua]]&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: Ilkka Ollakka&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
I was selected to do a project related to ASF and Matroska demuxers, but since there&#039;s some overlap related to Matroska, my main goal now is to improve the ASF demuxer as much as I can and then find another similar project to work on the rest of the time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implementing BD-J support in libbluray and VLC ==&lt;br /&gt;
* &#039;&#039;&#039;Project page: [[SoC 2010/Implementing BD-J support in libbluray and VLC]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: [[User:Will07c5|William Hahne]]&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: [[User:Jpsaman|Jean-Paul Saman]]&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
This project will focus primarily on getting BD-J (Blu-ray Disc Java) support into libbluray. BD-J support is important because many of the advanced features and extra content in Blu-ray movies uses BD-J. Currently people with Blu-ray drives are tied to Windows if they want to access this content, they are forced to use proprietary Blu-ray software which does not run on Linux or various other operating systems. This project will also integrate the BD-J support into VLC.&lt;br /&gt;
&lt;br /&gt;
= List of current x264 projects =&lt;br /&gt;
==Support for high bit depth encoding==&lt;br /&gt;
* &#039;&#039;&#039;Project page&#039;&#039;&#039;: [[SoC 2010/High Bit Depth Encoding]]&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: [[User:Irock|Oskar Arvidsson]]&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: [[User:Holger|Holger Lubitz]]&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
The primary goal for this project is to prepare the code base of x264 for encoding H.264 video with user defined sample depths. This will involve templating the encoder and migrating existing C code for use with higher sample depths.&lt;br /&gt;
&lt;br /&gt;
= List of current VLMC projects =&lt;br /&gt;
==Enhancing VLMC==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Project page: [[SoC 2010/Youtube Integration VLMC|SoC 2010/Youtube Integration in VLMC]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: [[User:Rohityadav|Rohit Yadav]]&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: Ludovic &#039;etix&#039; Fauvet&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
Youtube is the most popular video sharing website, right now. VLMC is a video editing software and having features in VLMC to search-retrieve videos, directly upload/update/delete videos on Youtube, within the application itself, would be awesome. The aim of this project is to write a small C++/Qt based Youtube client library for VLMC that provides her all the APIs to perform all those things.&lt;br /&gt;
&lt;br /&gt;
= List of current Phonon projects =&lt;br /&gt;
== PCM I/O API ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Project page&#039;&#039;&#039;: [[SoC 2010/PCM IO API (Phonon)]]&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: [[User:Mforney|Michael Forney]]&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: Jean-Baptiste Kempf&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
Design a fully featured PCM I/O API for Phonon, and provide an implementation for the Phonon-VLC backend and one other (either MPlayer or Xine). This API will allow developers to capture PCM data from devices like a sound card, or to play back raw audio from memory, or elsewhere. This will provide some important missing features in Phonon, and open the door for many applications waiting to make use of an API like this.&lt;br /&gt;
&lt;br /&gt;
[[Category:SoC_2010_Project]][[Category:SoC]]&lt;br /&gt;
&lt;br /&gt;
== Capture API ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Project page: [[SoC 2010 Phonon Capture API]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: [[User:Skelet|Casian Andrei]]&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: Hugo Beauzee-Luyssen&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
The goal of this project is to enable Phonon applications to access and display input devices, like webcams. The Phonon code-base is well designed and flexible, and apparently no major modifications are needed to the current API. The ease of use for the Phonon application developer is a priority. Features implemented in Phonon will be implemented in the Phonon-VLC back-end in parallel. Various device classes should be supported.&lt;br /&gt;
&lt;br /&gt;
[[Category:SoC_2010_Project]][[Category:SoC]]&lt;/div&gt;</summary>
		<author><name>Irock</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=SoC_2010_projects&amp;diff=16068</id>
		<title>SoC 2010 projects</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=SoC_2010_projects&amp;diff=16068"/>
		<updated>2010-05-18T21:13:18Z</updated>

		<summary type="html">&lt;p&gt;Irock: /* List of current x264 projects */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is a list of the accepted projects for Google Summer of Code 2O10.&lt;br /&gt;
&lt;br /&gt;
= List of current VLC projects =&lt;br /&gt;
==Shader support for video post-processing==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Project page: [[SoC 2010 Shader Support]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: [[User:Skoruga|Sasha Koruga]]&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: Adrien Maglo&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
A lot of video post-processing such as RGB-YUV conversion can be accelerated by using the GPU. This can either be achieved through a fragment shader, where it is the last step before a pixel is displayed on the screen, or it can be done with DirectCompute/CUDA/OpenCL. The method will vary depending on the task and intent. I will implement support for shaders by using the DirectX and OpenGL API and write a few shaders such as RGB-YUV conversion.&lt;br /&gt;
&lt;br /&gt;
== ASF demuxer ==&lt;br /&gt;
* &#039;&#039;&#039;Project page: [[SoC 2010 ASF Demuxer]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: [[User:juhovh|Juho Vähä-Herttua]]&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: Ilkka Ollakka&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
I was selected to do a project related to ASF and Matroska demuxers, but since there&#039;s some overlap related to Matroska, my main goal now is to improve the ASF demuxer as much as I can and then find another similar project to work on the rest of the time.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implementing BD-J support in libbluray and VLC ==&lt;br /&gt;
* &#039;&#039;&#039;Project page: [[SoC 2010/Implementing BD-J support in libbluray and VLC]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: [[User:Will07c5|William Hahne]]&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: [[User:Jpsaman|Jean-Paul Saman]]&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
This project will focus primarily on getting BD-J (Blu-ray Disc Java) support into libbluray. BD-J support is important because many of the advanced features and extra content in Blu-ray movies uses BD-J. Currently people with Blu-ray drives are tied to Windows if they want to access this content, they are forced to use proprietary Blu-ray software which does not run on Linux or various other operating systems. This project will also integrate the BD-J support into VLC.&lt;br /&gt;
&lt;br /&gt;
= List of current x264 projects =&lt;br /&gt;
==Support for high bit encoding==&lt;br /&gt;
* &#039;&#039;&#039;Project page&#039;&#039;&#039;: [[SoC 2010/High Bit Depth Encoding]]&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: [[User:Irock|Oskar Arvidsson]]&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: [[User:Holger|Holger Lubitz]]&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
The primary goal for this project is to prepare the code base of x264 for encoding H.264 video with user defined sample depths. This will involve templating the encoder and migrating existing C code for use with higher sample depths.&lt;br /&gt;
&lt;br /&gt;
= List of current VLMC projects =&lt;br /&gt;
==Enhancing VLMC==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Project page: [[SoC 2010/Youtube Integration VLMC|SoC 2010/Youtube Integration in VLMC]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: [[User:Rohityadav|Rohit Yadav]]&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: Ludovic &#039;etix&#039; Fauvet&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
Youtube is the most popular video sharing website, right now. VLMC is a video editing software and having features in VLMC to search-retrieve videos, directly upload/update/delete videos on Youtube, within the application itself, would be awesome. The aim of this project is to write a small C++/Qt based Youtube client library for VLMC that provides her all the APIs to perform all those things.&lt;br /&gt;
&lt;br /&gt;
= List of current Phonon projects =&lt;br /&gt;
== PCM I/O API ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Project page&#039;&#039;&#039;: [[SoC 2010/PCM IO API (Phonon)]]&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: [[User:Mforney|Michael Forney]]&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: Jean-Baptiste Kempf&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
Design a fully featured PCM I/O API for Phonon, and provide an implementation for the Phonon-VLC backend and one other (either MPlayer or Xine). This API will allow developers to capture PCM data from devices like a sound card, or to play back raw audio from memory, or elsewhere. This will provide some important missing features in Phonon, and open the door for many applications waiting to make use of an API like this.&lt;br /&gt;
&lt;br /&gt;
[[Category:SoC_2010_Project]][[Category:SoC]]&lt;br /&gt;
&lt;br /&gt;
== Capture API ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Project page: [[SoC 2010 Phonon Capture API]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: [[User:Skelet|Casian Andrei]]&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: Hugo Beauzee-Luyssen&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
The goal of this project is to enable Phonon applications to access and display input devices, like webcams. The Phonon code-base is well designed and flexible, and apparently no major modifications are needed to the current API. The ease of use for the Phonon application developer is a priority. Features implemented in Phonon will be implemented in the Phonon-VLC back-end in parallel. Various device classes should be supported.&lt;br /&gt;
&lt;br /&gt;
[[Category:SoC_2010_Project]][[Category:SoC]]&lt;/div&gt;</summary>
		<author><name>Irock</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=SoC_2010/High_Bit_Depth_Encoding&amp;diff=16067</id>
		<title>SoC 2010/High Bit Depth Encoding</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=SoC_2010/High_Bit_Depth_Encoding&amp;diff=16067"/>
		<updated>2010-05-18T21:09:09Z</updated>

		<summary type="html">&lt;p&gt;Irock: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SoCProject|year=2010|student=[[User:Irock|Oskar Arvidsson]]|mentor=[[User:Holger|Holger Lubitz]]}}&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
&lt;br /&gt;
The primary goal for this project is to prepare the code base of x264 for encoding H.264 video with user defined sample depths. This will involve templating the encoder and migrating existing C code for use with higher sample depths.&lt;br /&gt;
&lt;br /&gt;
As a lot of the code that handles the actual encoding is written in assembly, templating and migrating the encoder won&#039;t suffice to enable support for higher sample depths. The secondary goal for the project is therefore to identify new assembly code to be written.&lt;br /&gt;
&lt;br /&gt;
== Milestones ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Status !! Deadline !! Description&lt;br /&gt;
|-&lt;br /&gt;
| - || May 30 || 16-bit infrastructure ready for testing&lt;br /&gt;
|-&lt;br /&gt;
| - || June 6 || Encoding with 16-bit infrastructure produce same results as 8-bit infrastructure.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
&lt;br /&gt;
This schedule is preliminary.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Status !! Date !! Period !! Description&lt;br /&gt;
|-&lt;br /&gt;
| In progress || May 17 - May 23 || Week 1 || Identify C code that should be templated.&lt;br /&gt;
|-&lt;br /&gt;
| In progress || May 24 - May 30 || Week 2 || Start templating the encoder for 16-bit infrastructure.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || May 31 - June 6 || Week 3 || Test templated encoder. Identify C code that need modification to support higher sample depth.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || June 7 - June 13 || Week 4 || Start modifying the encoder to support higher sample depth.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || June 14 - June 20 || Week 5 || Continue work with encoder.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || June 21 - June 27 || Week 6 || Continue work with encoder.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || June 28 - July 4 || || Vacation&lt;br /&gt;
|-&lt;br /&gt;
| Not started || July 5 - July 11 || || Vacation&lt;br /&gt;
|-&lt;br /&gt;
| Not started || July 12 - July 18 || Week 7 || Test encoder with higher sample depths.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || July 19 - July 25 || Week 8 || Fix issues encountered during testing.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || July 26 - August 1 || Week 9 || Modify build chain to allow compilation for higher sample depth. Add options to set sample rate.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || August 2 - August 8 || Week 10 || Identify assembly code that needs modification to support higher sample depth.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Repository ==&lt;br /&gt;
&lt;br /&gt;
* http://github.com/irock/x264-high-bit-encoding/tree/high-bit-encoding&lt;/div&gt;</summary>
		<author><name>Irock</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=SoC_2010/High_Bit_Depth_Encoding&amp;diff=16066</id>
		<title>SoC 2010/High Bit Depth Encoding</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=SoC_2010/High_Bit_Depth_Encoding&amp;diff=16066"/>
		<updated>2010-05-18T21:05:23Z</updated>

		<summary type="html">&lt;p&gt;Irock: Created wiki page for SoC project &amp;quot;Higher bit depth encoding support for x264&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SoCProject|year=2010|student=[[User:Irock|Oskar Arvidsson]]|mentor=[[User:Holger|Holger Lubitz]]}}&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
&lt;br /&gt;
The primary goal for this project is to prepare the code base for encoding H.264 video with user defined sample depths. This will involve templating the encoder and migrating existing C code for use with higher sample depths.&lt;br /&gt;
&lt;br /&gt;
As a lot of the code that handles the actual encoding is written in assembly, templating and migrating the encoder won&#039;t suffice to enable support for higher sample depths. The secondary goal for the project is therefore to identify new assembly code to be written.&lt;br /&gt;
&lt;br /&gt;
== Milestones ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Status !! Deadline !! Description&lt;br /&gt;
|-&lt;br /&gt;
| - || May 30 || 16-bit infrastructure ready for testing&lt;br /&gt;
|-&lt;br /&gt;
| - || June 6 || Encoding with 16-bit infrastructure produce same results as 8-bit infrastructure.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
&lt;br /&gt;
This schedule is preliminary.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Status !! Date !! Period !! Description&lt;br /&gt;
|-&lt;br /&gt;
| In progress || May 17 - May 23 || Week 1 || Identify C code that should be templated.&lt;br /&gt;
|-&lt;br /&gt;
| In progress || May 24 - May 30 || Week 2 || Start templating the encoder for 16-bit infrastructure.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || May 31 - June 6 || Week 3 || Test templated encoder. Identify C code that need modification to support higher sample depth.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || June 7 - June 13 || Week 4 || Start modifying the encoder to support higher sample depth.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || June 14 - June 20 || Week 5 || Continue work with encoder.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || June 21 - June 27 || Week 6 || Continue work with encoder.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || June 28 - July 4 || || Vacation&lt;br /&gt;
|-&lt;br /&gt;
| Not started || July 5 - July 11 || || Vacation&lt;br /&gt;
|-&lt;br /&gt;
| Not started || July 12 - July 18 || Week 7 || Test encoder with higher sample depths.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || July 19 - July 25 || Week 8 || Fix issues encountered during testing.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || July 26 - August 1 || Week 9 || Modify build chain to allow compilation for higher sample depth. Add options to set sample rate.&lt;br /&gt;
|-&lt;br /&gt;
| Not started || August 2 - August 8 || Week 10 || Identify assembly code that needs modification to support higher sample depth.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Repository ==&lt;br /&gt;
&lt;br /&gt;
* http://github.com/irock/x264-high-bit-encoding/tree/high-bit-encoding&lt;/div&gt;</summary>
		<author><name>Irock</name></author>
	</entry>
</feed>