DaalaRoadmap: Difference between revisions

From XiphWiki
Jump to navigation Jump to search
 
(10 intermediate revisions by 3 users not shown)
Line 18: Line 18:


1) Lapped Transforms
1) Lapped Transforms
* https://people.xiph.org/~xiphmont/demo/daala/demo1.shtml
* [https://people.xiph.org/~xiphmont/demo/daala/demo1.shtml Monty's LT demo]
* http://thanglong.ece.jhu.edu/Tran/Pub/prepost.pdf
* [[TDLT|Time-Domain Lapped Transforms]] wiki page
* https://thanglong.ece.jhu.edu/Tran/Pub/prepost.pdf
* https://research.microsoft.com/pubs/102075/malvar_elt_tsp1192.pdf
* https://research.microsoft.com/pubs/102075/malvar_elt_tsp1192.pdf


2) Frequency Domain Intraprediction
2) Frequency Domain Intra-prediction
* https://people.xiph.org/~xiphmont/demo/daala/demo2.shtml
* [https://people.xiph.org/~xiphmont/demo/daala/demo2.shtml Monty's Intra-prediction demo]
* [[Intra|Intraprediction]] wiki page
* [[Intra|Intra-prediction]] wiki page


3) Time/Frequency resolution switching  
3) Time/Frequency resolution switching  
* https://people.xiph.org/~xiphmont/demo/daala/demo3.shtml
* [https://people.xiph.org/~xiphmont/demo/daala/demo3.shtml Monty's TF switching demo]


4) Chroma from Luma
4) Chroma from Luma (CfL)
* http://people.xiph.org/~xiphmont/demo/daala/demo4.shtml
* [https://people.xiph.org/~xiphmont/demo/daala/demo4.shtml Monty's CfL demo]


5) Motion Compensation tools
5) Motion Compensation tools
Line 39: Line 40:


1) Edge-directed Interpolation  
1) Edge-directed Interpolation  
*http://elynxsdk.free.fr/ext-docs/Demosaicing/more/news0/New%20Edge-Directed%20Interpolation.pdf
* https://elynxsdk.free.fr/ext-docs/Demosaicing/more/news0/New%20Edge-Directed%20Interpolation.pdf
* [https://exp.martres.me/edi/ smarter's EDI demo in Javascript]


2) Multi-frame Motion Compensation
2) Multi-frame Motion Compensation
Line 61: Line 63:
By September, 2014: Be able to show significant quality improvements compared to Daala's performance today (September, 2013).
By September, 2014: Be able to show significant quality improvements compared to Daala's performance today (September, 2013).


=== Progress and planning tools we'll use along the way: ===
=== Plans for 2015 ===
* Every 6-8 weeks the team will report on what he has accomplished.
 
[https://people.xiph.org/~tterribe/daala/daala-schedule-20150313/Daala%20Schedule.pdf Schedule by task]
 
[https://people.xiph.org/~tterribe/daala/daala-schedule-20150313/Daala%20Schedule2.pdf Schedule by person]
 
=== Progress and Planning Tools ===
* Every week a [[Daala_Weekly_Meetings|Mumble meeting]] will occur to discuss current development.
* Every month the team will create a detailed task list of what they plan to do for that month.
* Every month the team will create a detailed task list of what they plan to do for that month.
* Every 6-8 weeks the team will report on what they have accomplished.
=== Estimates of Technique Effectiveness ===
These estimates are mostly guessing, based on no actual data. Take them with an entire salt shaker full of salt.
{| border="1" cellspacing="0" cellpadding="5"
|-
! Technique
! % of bitrate est.
! risk
|-
| intraprediction
| 10%
|
|-
| rate control
| 10%
| low
|-
| multiple reference frames
| 10%
|
|-
| alternate motion predictors
| 5%
|
|-
| multi-resolution blending
| 2%
|
|-
| edge-directed interpolation
| 4-5%
|
|-
| sub-pel search
| 2%
|
|-
| mixed prediction (intra+inter)
| 12%
| high
|-
| generic encoder replacement/optimization
| 1%
|
|-
| skip work
| 5%
|
|-
| deringing
| 10%
| medium
|-
| bi-prediction
| 15%
|
|-
| k-tokenizer
| +/- 1%
|
|-
| 32x32 motion
| 10%
| low
|-
| don't code outside frame
| 1-2%
|
|-
| adaptive motion compensation work
adjacent blocks differing by more than 1 level
| 10%
| high
|-
| don't use SAD (Sum of Absolute Differences)
|
|
|}
=== September 2015 ===
* [https://www.videolan.org/videolan/events/vdd15/ Videolan Dev Days] took place. There are videos on [https://www.youtube.com/playlist?list=PLQLpBN3oI7E44HIdTOovThc1MNHLchgHE youtube].
* [https://arewecompressedyet.com/ arewecompressedyet.com] got a new images tab for comparing images between different Daala builds
[[Category:Daala]]

Latest revision as of 13:33, 23 September 2015

Daala Planning

This is an overview of the Daala project roadmap.

Information on this page is highly subject to update and change.

Please help reach out to us if you are interested in contributing to the project. We would love your help!

Plans for 2014

See this etherpad for details. Most information has moved there. See also the weekly meeting minutes on Daala for current efforts.

Plans for September, 2013 to March, 2014

Improve existing techniques

Examining and significantly modifying some of the basic coding tools within Daala to improve efficiency and quality:

1) Lapped Transforms

2) Frequency Domain Intra-prediction

3) Time/Frequency resolution switching

4) Chroma from Luma (CfL)

5) Motion Compensation tools

Research new techniques

Investigate the following to see if they should be adopted into Daala:

1) Edge-directed Interpolation

2) Multi-frame Motion Compensation

Testing tools

1) Experiment with command-line encode/decode/performance tools

  • Help people try the codec
  • Self-testing
  • Improvement metrics for casual contributors to verify changes

2) Prototype RTP in GIPS/webrtc.org/browser code

3) Prototype HTTP streaming.

Plans for March, 2014 to September, 2014

From March, 2014 to June, 2014: Tuning the various coding tools and components of Daala (assumes investigation and major modifications of the basic coding tools are completed)

By September, 2014: Be able to show significant quality improvements compared to Daala's performance today (September, 2013).

Plans for 2015

Schedule by task

Schedule by person

Progress and Planning Tools

  • Every week a Mumble meeting will occur to discuss current development.
  • Every month the team will create a detailed task list of what they plan to do for that month.
  • Every 6-8 weeks the team will report on what they have accomplished.

Estimates of Technique Effectiveness

These estimates are mostly guessing, based on no actual data. Take them with an entire salt shaker full of salt.

Technique % of bitrate est. risk
intraprediction 10%
rate control 10% low
multiple reference frames 10%
alternate motion predictors 5%
multi-resolution blending 2%
edge-directed interpolation 4-5%
sub-pel search 2%
mixed prediction (intra+inter) 12% high
generic encoder replacement/optimization 1%
skip work 5%
deringing 10% medium
bi-prediction 15%
k-tokenizer +/- 1%
32x32 motion 10% low
don't code outside frame 1-2%
adaptive motion compensation work

adjacent blocks differing by more than 1 level

10% high
don't use SAD (Sum of Absolute Differences)

September 2015