<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.xiph.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tomvanbraeckel</id>
	<title>XiphWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.xiph.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tomvanbraeckel"/>
	<link rel="alternate" type="text/html" href="https://wiki.xiph.org/Special:Contributions/Tomvanbraeckel"/>
	<updated>2026-05-12T03:31:16Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://wiki.xiph.org/index.php?title=Daala&amp;diff=16114</id>
		<title>Daala</title>
		<link rel="alternate" type="text/html" href="https://wiki.xiph.org/index.php?title=Daala&amp;diff=16114"/>
		<updated>2015-10-26T08:35:10Z</updated>

		<summary type="html">&lt;p&gt;Tomvanbraeckel: Link to new Etherpad Lite&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Daala is the codename for a new video compression technology.&lt;br /&gt;
&lt;br /&gt;
The effort is a collaboration between the [https://www.mozilla.org/en-US/research/ Mozilla Foundation], the [https://www.xiph.org/ Xiph.Org Foundation] and any other contributors that wish to help.&lt;br /&gt;
&lt;br /&gt;
The goal of the project is to provide a video format that&#039;s free to implement, use and distribute, and a reference implementation with technical performance superior to [https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding H.265]. &lt;br /&gt;
&lt;br /&gt;
Please see the links below or the [https://www.xiph.org/daala/ main page] for more information.&lt;br /&gt;
&lt;br /&gt;
== Wiki Pages ==&lt;br /&gt;
* [[Daala Quickstart|Daala Quickstart (Linux/MacOS)]]&lt;br /&gt;
* [[Daala Quickstart Windows|Daala Quickstart (Windows)]]&lt;br /&gt;
* [[Daala MinGW64 Environment]]&lt;br /&gt;
&lt;br /&gt;
* [[Daala Weekly Meetings|Daala Weekly Meetings]]&lt;br /&gt;
&lt;br /&gt;
* [[AreWeCompressedYet]]&lt;br /&gt;
* [[RD Curve Data Format]]&lt;br /&gt;
&lt;br /&gt;
* [[DaalaTodo|Daala To-do List]]&lt;br /&gt;
* [[DaalaRoadmap|Daala Roadmap]]&lt;br /&gt;
&lt;br /&gt;
* [[Intra|Intra-prediction within Daala]]&lt;br /&gt;
&lt;br /&gt;
* [[Videos|Digital Primers]] - educational videos about audio/video technology&lt;br /&gt;
&lt;br /&gt;
== Communication ==&lt;br /&gt;
You are &#039;&#039;&#039;encouraged&#039;&#039;&#039; to join the&lt;br /&gt;
* [irc://irc.freenode.net/daala &#039;&#039;&#039;#daala&#039;&#039;&#039; IRC channel at freenode.net] - if you don&#039;t have an IRC client, you can use Freenode&#039;s &#039;&#039;&#039;[https://webchat.freenode.net/?channels=%23daala webchat]&#039;&#039;&#039; instead.&lt;br /&gt;
* [http://lists.xiph.org/mailman/listinfo/daala Daala Email List]&lt;br /&gt;
&lt;br /&gt;
=== Weekly Meetings ===&lt;br /&gt;
You are also welcome to attend the public [[Daala Weekly Meetings|weekly progress meetings]] by installing and using [http://wiki.mumble.info Mumble].&amp;lt;br /&amp;gt;&lt;br /&gt;
The address is &#039;&#039;&#039;mf4.xiph.org&#039;&#039;&#039; and the port is &#039;&#039;&#039;64738&#039;&#039;&#039; (you can run &#039;&#039;&#039;mumble://mf4.xiph.org:64738&#039;&#039;&#039; within your browser as a shortcut).&amp;lt;br /&amp;gt;&lt;br /&gt;
The meetings occur on &#039;&#039;&#039;Tuesdays&#039;&#039;&#039; at &#039;&#039;&#039;[http://www.timeanddate.com/worldclock/fixedtime.html?msg=Daala+Weekly+Meeting&amp;amp;iso=20150428T09&amp;amp;p1=1241 9AM Pacific Time]&#039;&#039;&#039; (5PM UTC/GMT).&lt;br /&gt;
The meeting agenda used to be available at &#039;&#039;&#039;[https://daala.etherpad.mozilla.org/weekly-meeting this Etherpad]&#039;&#039;&#039;, the October 13, 2015 meeting is available on [https://docs.google.com/document/d/1JP_Ko3wPuyDWhooZcp_m9kndyfZ75xN5YOi5yIMCW0s/edit?pli=1 Google Docs] and, following the migration to Etherpad Lite, the meeting agenda and minutes are now available at [https://public.etherpad-mozilla.org/p/daala-weekly-meeting this Etherpad].&lt;br /&gt;
&lt;br /&gt;
=== Other ===&lt;br /&gt;
* [http://forum.doom9.org/showthread.php?t=168004 Doom9 Forum discussion] - generic forum thread regarding Daala&lt;br /&gt;
* &amp;lt;del&amp;gt;[https://daala.etherpad.mozilla.org/ep/padlist/all-pads Daala Etherpads] - you can [https://daala.etherpad.mozilla.org/ep/account/request-account request a free account] to view these. You should receive access within a few days.&amp;lt;/del&amp;gt; Mozilla are transitioning to Etherpad Lite.&lt;br /&gt;
* [http://benjamin.smedbergs.us/weekly-updates.fcgi/project/daala Daala Project Status Board] - what Daala bits the Mozilla people are working on&lt;br /&gt;
&lt;br /&gt;
== Coding ==&lt;br /&gt;
You can get a copy of the latest Daala Source Code from [https://git.xiph.org/?p=daala.git;a=summary &#039;&#039;&#039;git.xiph.org&#039;&#039;&#039;] or [https://github.com/xiph/daala &#039;&#039;&#039;GitHub&#039;&#039;&#039;]. Please stick to the &#039;&#039;&#039;[https://git.xiph.org/?p=daala.git;a=blob_plain;f=doc/coding_style.html Coding Style Guide]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* [https://review.xiph.org/all?limit=100 Xiph Code Reviews] - there is a proposal on the review process &#039;&#039;&#039;[[DaalaReview|here]]&#039;&#039;&#039;&lt;br /&gt;
* [https://github.com/xiph/daala/issues Daala&#039;s issues] - Issue/bug tracker on Github&lt;br /&gt;
* [https://mf4.xiph.org/jenkins/view/daala/ Continuous Integration Tests] - these run every time a new commit is made to the Daala git master, to make sure the new code hasn&#039;t broken existing functionality.&lt;br /&gt;
&lt;br /&gt;
== Demos ==&lt;br /&gt;
* [https://people.xiph.org/~xiphmont/demo/daala/player-demo.shtml Daala Video Player] - an example implementation of a Daala decoder and player, ported to Javascript using [https://github.com/kripken/emscripten Emscripten].&lt;br /&gt;
&lt;br /&gt;
=== Codec Techniques ===&lt;br /&gt;
* [https://people.xiph.org/~xiphmont/demo/ Demo Articles] - explanations on certain techniques used in Daala (and other Xiph.Org projects)&lt;br /&gt;
* [http://exp.martres.me/edi/ Edge-Directed Interpolation] ([https://github.com/smarter/edi source code])&lt;br /&gt;
* [https://people.xiph.org/~ds/edi/info.html More Edge-Directed Interpolation]&lt;br /&gt;
* [https://people.xiph.org/~unlord/demo/intra.html Intra-prediction]&lt;br /&gt;
* [https://people.xiph.org/~unlord/zigzags.html Macroblock Coefficient Zigzag Graph] - HTML page generated using [https://github.com/xiph/daala/blob/master/tools/draw_zigzags.c tools/draw_zigzags.c] from the Daala source code.&lt;br /&gt;
&lt;br /&gt;
== Documents ==&lt;br /&gt;
* [https://people.xiph.org/~unlord/spie_cfl.pdf Chroma from Luma (CfL)]&lt;br /&gt;
* [http://jmvalin.ca/papers/spie_pvq.pdf Perceptual Vector Quantisation (PVQ)]&lt;br /&gt;
* [https://people.xiph.org/~tterribe/daala/vbsobmc.pdf Overlapped Block Motion Compensation (OBMC)]&lt;br /&gt;
* [https://mf4.xiph.org/jenkins/job/daala-autotools/ws/doc/html/index.html C API Documentation]&lt;br /&gt;
* [https://people.xiph.org/~yushin/tmp__/yushin_phd_thesis.pdf Image Coding Thesis] by Yushin Cho&lt;br /&gt;
* [http://arxiv.org/pdf/1411.4290v1.pdf Maximising Coding Efficiency Through Block Rotation] and why it [http://lists.xiph.org/pipermail/daala/2015-January/000054.html won&#039;t work well within Daala]&lt;br /&gt;
* [http://jmvalin.ca/video/theoretical_results.pdf JMSpeex&#039; Journal of Dubious Theoretical Results] - &amp;quot;take with an entire shaker-full of salt&amp;quot;&lt;br /&gt;
* [https://people.xiph.org/~unlord/pcs_daala.pdf Using Daala Intra Frames for Still Picture Coding]&lt;br /&gt;
&lt;br /&gt;
=== IETF Drafts ===&lt;br /&gt;
* [https://tools.ietf.org/html/draft-egge-videocodec-tdlt Time-Domain Lapped Transforms (TDLT)] - documents the Lapped Transform pre- and post-filters used for block-edge decorrelation&lt;br /&gt;
* [https://tools.ietf.org/html/draft-valin-videocodec-pvq Perceptual Vector Quantisation (PVQ)] - &lt;br /&gt;
* [https://tools.ietf.org/html/draft-terriberry-codingtools Coding Tools] - documents Entropy Coding, Integer Transforms and other techniques&lt;br /&gt;
* [https://tools.ietf.org/html/draft-moffitt-netvc-requirements Internet Video Codec (NetVC) Requirements] - explains what requirements and use cases Daala is trying to cater for&lt;br /&gt;
* [https://tools.ietf.org/html/draft-daede-netvc-testing Internet Video Codec (NetVC) Testing and Quality Measurement]&lt;br /&gt;
* [https://tools.ietf.org/html/draft-terriberry-ipr-license Example IPR Licence Terms]&lt;br /&gt;
&lt;br /&gt;
Additional drafts can be found at the [https://datatracker.ietf.org/wg/netvc/documents/ IETF DataTracker].&lt;br /&gt;
&lt;br /&gt;
== Presentations ==&lt;br /&gt;
* 2015-09-19 VideoLAN Dev Days - [https://www.youtube.com/playlist?list=PLQLpBN3oI7E44HIdTOovThc1MNHLchgHE YouTube Playlist]&lt;br /&gt;
* 2015-07-22 IETF 93 - [http://recordings.conf.meetecho.com/Playout/watch.jsp?recording=IETF93_NETVC_II&amp;amp;chapter=chapter_1 NetVC Session 2/2] - [https://datatracker.ietf.org/meeting/93/agenda/netvc/ Agenda] - [http://www.meetecho.com/ietf93/netvc_II Video and Chat] - Slides - [https://www.ietf.org/jabber/logs/netvc/2015-07-22.html Jabber Log]&lt;br /&gt;
* 2015-07-20 IETF 93 - [http://recordings.conf.meetecho.com/Playout/watch.jsp?recording=IETF93_NETVC&amp;amp;chapter=chapter_1 NetVC Session 1/2] - [https://datatracker.ietf.org/meeting/93/agenda/netvc/ Agenda] - [http://www.meetecho.com/ietf93/netvc Video and Chat] - [https://www.ietf.org/proceedings/93/slides/slides-93-netvc-3.pdf Slides] - [https://www.ietf.org/jabber/logs/netvc/2015-07-20.html Jabber Log]&lt;br /&gt;
* 2015-03-24 IETF 92 - [http://recordings.conf.meetecho.com/Playout/watch.jsp?recording=IETF92_NETVC&amp;amp;chapter=chapter_0 NetVC Session] - Audio as [https://people.xiph.org/~tdaede/audio/ietf92-venetian-20150324-0900-am1.opus Opus] (29MB) or [https://www.ietf.org/audio/ietf92/ietf92-venetian-20150324-0900-am1.mp3 MP3] (119MB, action starts at 14:50) - [https://www.ietf.org/proceedings/92/slides/slides-92-netvc-0.pdf Slides] - [https://www.ietf.org/mail-archive/web/video-codec/current/msg00235.html Notes] - [https://www.ietf.org/jabber/logs/netvc/2015-03-24.html Jabber Log]&lt;br /&gt;
* 2015-02-11 SPIE talks:&lt;br /&gt;
&amp;lt;!-- Originals of these 3 videos can be found at http://people.xiph.org/~unlord/ --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Someday, do a better encode --&amp;gt;&lt;br /&gt;
** [http://people.xiph.org/~tdaede/video/SPIE_Nathan.webm Chroma from Luma (CfL)] - [https://people.xiph.org/~unlord/SPIE-2015-CfL.pdf Slides] - [https://people.xiph.org/~unlord/spie_cfl.pdf Paper]&lt;br /&gt;
** [http://people.xiph.org/~tdaede/video/SPIE_PVQ.webm Perceptual Vector Quantisation (PVQ)] - [http://people.xiph.org/~tterribe/daala/spie_pvq_slides.pdf Slides] - [http://jmvalin.ca/papers/spie_pvq.pdf Paper]&lt;br /&gt;
** [http://people.xiph.org/~tdaede/video/SPIE_Tim.webm Overlapped Block Motion Compensation (OBMC)] - [http://people.xiph.org/~tterribe/daala/spie_pvq_slides.pdf Slides] - [https://people.xiph.org/~tterribe/daala/vbsobmc.pdf Paper]&lt;br /&gt;
* 2015-01-31 [http://ftp.osuosl.org/pub/fosdem/2015/devroom-open_media/daala.mp4 Daala Project Update at FOSDEM 2015] - [https://fosdem.org/2015/schedule/event/daala/ summary] - [https://fosdem.org/2015/schedule/event/daala/attachments/slides/569/export/events/attachments/daala/slides/569/Daala_FOSDEM_2015.pdf Slides]&lt;br /&gt;
* 2015-01-14 [https://www.youtube.co.uk/watch?v=Dmho4gcRvQ4 Linux Conf 2015] - [http://lca2015.linux.org.au/schedule/30187/view_talk presentation summary] - [https://people.xiph.org/~tterribe/pubs/lca2015/daala.pdf Slides]&lt;br /&gt;
-------&lt;br /&gt;
* 2014-09-16 [https://air.mozilla.org/daala-are-we-compressed-yet/ Daala: Are We Compressed Yet?]&lt;br /&gt;
* 2014-06-25 [https://air.mozilla.org/sparsity-induced-prediction-for-images-and-video/ Sparsity Induced Prediction for Images and Video]&lt;br /&gt;
* 2014-06-06 VP9 Summit (no video available) - [https://people.xiph.org/~xiphmont/demo/daala/daala-vp9summit-20140606.pdf Slides]&lt;br /&gt;
-------&lt;br /&gt;
* 2013-10-23 [https://people.xiph.org/~xiphmont/video/Free_Codecs_Update_Opus_and_Daala.ogv Opus and Daala: State of the Art Royalty-free Codecs] - [https://people.xiph.org/~greg/gstreamer-daala-opus.pdf Slides]&lt;br /&gt;
* 2013-09-30 [https://people.xiph.org/~tterribe/daala/coding_party2/?C=M;O=A Daala Coding Party 2] - [https://people.xiph.org/~unlord/Daala-Intra.pdf Slides]&lt;br /&gt;
* 2013-05-02 [https://people.xiph.org/~xiphmont/tim-terriberry-presents-daala/ Tim Terriberry Presents Daala]&lt;br /&gt;
-------&lt;br /&gt;
* 2012-01-24 [https://media.basilgohar.com/derf-talks/?C=M;O=A Introduction to Video Coding] - [https://people.xiph.org/~tterribe/pubs/lca2012/auckland/intro_to_video1.pdf Slides] (no video for slides 1-50)&lt;br /&gt;
&lt;br /&gt;
== Other Websites ==&lt;br /&gt;
* [https://www.zazzle.com/daala_tee_shirt-235139149596175944 Daala T-shirts] - if you&#039;d like a free one, help out with the project and ask the Mozilla guys nicely for one :-)&lt;br /&gt;
* [https://www.xiph.org/donate/ Donate to Xiph.Org] &lt;br /&gt;
* [[Daala_on_Wheels|Historical Daala wiki page]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Daala]]&lt;/div&gt;</summary>
		<author><name>Tomvanbraeckel</name></author>
	</entry>
	<entry>
		<id>https://wiki.xiph.org/index.php?title=Daala_Weekly_Meetings&amp;diff=15003</id>
		<title>Daala Weekly Meetings</title>
		<link rel="alternate" type="text/html" href="https://wiki.xiph.org/index.php?title=Daala_Weekly_Meetings&amp;diff=15003"/>
		<updated>2014-09-24T07:15:11Z</updated>

		<summary type="html">&lt;p&gt;Tomvanbraeckel: Add minutes of September 23th, 2014 from https://daala.etherpad.mozilla.org/weekly-meeting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We&#039;ve been having weekly progress meetings on mumble.&lt;br /&gt;
&lt;br /&gt;
* 2012 June 4  [https://people.xiph.org/~giles/2012/daala_20120604.txt minutes] (actually a work week)&lt;br /&gt;
* 2012 June 22 [https://people.xiph.org/~giles/2012/daala_20120622.txt minutes]&lt;br /&gt;
* 2012 June 29 [https://people.xiph.org/~giles/2012/daala_20120629.txt minutes] [https://people.xiph.org/~giles/2012/daala_20120629.opus recording]&lt;br /&gt;
* 2012 July 6 [https://people.xiph.org/~giles/2012/daala_20120706.txt minutes]&lt;br /&gt;
* 2012 July 13 [https://people.xiph.org/~giles/2012/daala_20120713.txt minutes]&lt;br /&gt;
* 2012 July 20 [https://people.xiph.org/~giles/2012/daala_20120720.txt minutes]&lt;br /&gt;
* 2012 July 27 [https://people.xiph.org/~giles/2012/daala_20120727.txt minutes]&lt;br /&gt;
* 2012 August 3 [https://people.xiph.org/~giles/2012/daala_20120803.txt minutes] [https://people.xiph.org/~giles/2012/daala_20120803.opus recording]&lt;br /&gt;
* 2012 August 10 [https://people.xiph.org/~giles/2012/daala_20120810.txt minutes]&lt;br /&gt;
* 2012 August 17 - no meeting&lt;br /&gt;
* 2012 August 24 - [https://people.xiph.org/~giles/2012/daala_20120824.txt minutes] [https://people.xiph.org/~giles/2012/daala_20120824.opus recording]&lt;br /&gt;
* 2012 August 31 - no meeting&lt;br /&gt;
* 2012 September 7 - no meeting&lt;br /&gt;
* 2012 September 14 - no meeting&lt;br /&gt;
* 2012 September 21 - [https://people.xiph.org/~giles/2012/daala_20120921.txt minutes]&lt;br /&gt;
* 2012 September 28 - [https://people.xiph.org/~giles/2012/daala_20120928.txt minutes] [https://people.xiph.org/~giles/2012/daala_20120928.opus recording]&lt;br /&gt;
* 2012 October 5 - [https://people.xiph.org/~giles/2012/daala_20121005.opus recording]&lt;br /&gt;
* 20120 October 26 - &lt;br /&gt;
* 2012 Novemeber 2 - no meeting&lt;br /&gt;
* 2012 December 7 - [https://people.xiph.org/~giles/2012/daala_20121207.txt minutes]&lt;br /&gt;
* [[DaalaMeeting20130911|2013 September 11]] - logistics, status updates, coding party agenda&lt;br /&gt;
* [[DaalaMeeting20130917|2013 September 17]] - summit plans, research talks, coding party agenda, monty&#039;s TF ideas&lt;br /&gt;
* [[DaalaMeeting20130924|2013 September 24]] - training results, 32x32 code, and 2nd stage TF&lt;br /&gt;
* [[DaalaMeeting20131008|2013 October 8]] - pvq status, training, chroma from luma&lt;br /&gt;
* [[DaalaMeeting20131022|2013 October 22]] - even/odd quantizer, determinant 1, IETF, chroma from luma&lt;br /&gt;
* [[DaalaMeeting20131029|2013 October 29]] - gstreamer conf, ietf, chroma from luma&lt;br /&gt;
* [[DaalaMeeting20131112|2013 November 12]] - chroma from luma, pvq&lt;br /&gt;
* [[DaalaMeeting20131203|2013 December 3]] - chroma from luma, pvq, misc&lt;br /&gt;
* [[DaalaMeeting20131217|2013 December 17]] - luma intraprediction, pvq decoder, interns&lt;br /&gt;
* [[DaalaMeeting20140107|2014 January 07]] - reviews, pvq projects, and det1&lt;br /&gt;
* [[DaalaMeeting20140114|2014 January 14]] - pvq, det1, new projects&lt;br /&gt;
* [[DaalaMeeting20140121|2014 January 21]] - project planning&lt;br /&gt;
* [[DaalaMeeting20140128|2014 January 28]] - pvq, work week&lt;br /&gt;
* [[DaalaMeeting20140211|2014 February 11]] - 32x32, activity masking, current issues&lt;br /&gt;
* [[DaalaMeeting20140218|2014 February 18]] - input scaling, prediction error&lt;br /&gt;
* [[DaalaMeeting20140225|2014 February 25]] - det1, pvq, fastssim&lt;br /&gt;
* [[DaalaMeeting20140304|2014 March 4]] - det1, quant matrix, metrics&lt;br /&gt;
* [[DaalaMeeting20140318|2014 March 18]] - det1, fastssim, activity masking&lt;br /&gt;
* [[DaalaMeeting20140401|2014 April 1]] - crushing jpeg, pvq&lt;br /&gt;
* [[DaalaMeeting20140408|2014 April 8]] - reviews, pvq presentation&lt;br /&gt;
* [[DaalaMeeting20140415|2014 April 15]] - pvq experiments, activity masking&lt;br /&gt;
* [[DaalaMeeting20140422|2014 April 22]] - block size switching, gpu jpeg&lt;br /&gt;
* [[DaalaMeeting20140506|2014 May 6]] - workweek debrief, trained vq&lt;br /&gt;
* [[DaalaMeeting20140513|2014 May 13]] - trained vq, intraprediction&lt;br /&gt;
* [[DaalaMeeting20140520|2014 May 20]] - dc encoding&lt;br /&gt;
* [[DaalaMeeting20140527|2014 May 27]] - standard metrics&lt;br /&gt;
* [[DaalaMeeting20140603|2014 June 3]] - deringing filter&lt;br /&gt;
* [[DaalaMeeting20140624|2014 June 24]] - deringing filter&lt;br /&gt;
* [[DaalaMeeting20140701|2014 July 1]] - multi-frame motion compensation, jean-marc crazy ideas&lt;br /&gt;
* [[DaalaMeeting20140708|2014 July 8]] - intrapred ideas, journaling, rd_collect issues&lt;br /&gt;
* [[DaalaMeeting20140715|2014 July 15]] - VIPC, intrapred&lt;br /&gt;
* [[DaalaMeeting20140722|2014 July 22]] - demo progress, video results, edi, deringing, new intra&lt;br /&gt;
* [[DaalaMeeting20140729|2014 July 29]] - edi, intra paint&lt;br /&gt;
* [[DaalaMeeting20140805|2014 August 5]] - edi, intra paint&lt;br /&gt;
* [[DaalaMeeting20140812|2014 August 12]] - multi-frame MC, intra paint, edi&lt;br /&gt;
* [[DaalaMeeting20140826|2014 August 26]] - intra paint, halfpel BMA&lt;br /&gt;
* [[DaalaMeeting20140902|2014 September 2]] - demos, multi-frame motion compensation, deringing&lt;br /&gt;
* [[DaalaMeeting20140909|2014 September 9]] - reviews, deringing, intraprediction, non-photographic video&lt;br /&gt;
* [[DaalaMeeting20140916|2014 September 16]] - reviews, unlapping&lt;br /&gt;
* [[DaalaMeeting20140923|2014 September 23]] - reviews, VDD debrief, deringing demo, intraprediction tests&lt;/div&gt;</summary>
		<author><name>Tomvanbraeckel</name></author>
	</entry>
	<entry>
		<id>https://wiki.xiph.org/index.php?title=DaalaMeeting20140923&amp;diff=15002</id>
		<title>DaalaMeeting20140923</title>
		<link rel="alternate" type="text/html" href="https://wiki.xiph.org/index.php?title=DaalaMeeting20140923&amp;diff=15002"/>
		<updated>2014-09-24T07:13:12Z</updated>

		<summary type="html">&lt;p&gt;Tomvanbraeckel: Add weekly meeting report of 20140923&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# Meeting 2014-09-23&lt;br /&gt;
 &lt;br /&gt;
Mumble:  mf4.xiph.org:64738&lt;br /&gt;
 &lt;br /&gt;
# Agenda&lt;br /&gt;
- VDD debrief (derf, unlord)&lt;br /&gt;
- reviews&lt;br /&gt;
- Deringing demo (jm)&lt;br /&gt;
- more intra pred tests (unlord) http://people.xiph.org/~unlord/intra/&lt;br /&gt;
- travel plans IETF-91&lt;br /&gt;
- ?&lt;br /&gt;
 &lt;br /&gt;
# Attending&lt;br /&gt;
 &lt;br /&gt;
unlord, jack, derf, bkoc, jmspeex, td-linux&lt;br /&gt;
 &lt;br /&gt;
# Reviews&lt;br /&gt;
 &lt;br /&gt;
- td-linux will review gal&#039;s patch&lt;br /&gt;
- monty will review td-linux&#039;s quantizer scaling&lt;br /&gt;
 &lt;br /&gt;
# VDD&lt;br /&gt;
 &lt;br /&gt;
- u: Tim gave a great talk.&lt;br /&gt;
- d: I thought it was good. We gave away some tshirts and got a potential intern for next year. &lt;br /&gt;
- u: We have patches from new contributors in rietveld. Hopefully they will continue!&lt;br /&gt;
- d: katarina has been trying to correct the scale factor between the different levels. she managed to make the curves go down a bit, but she hasn&#039;t gotten very far.&lt;br /&gt;
- jm: all our dcs have similar scaling now.&lt;br /&gt;
- d: they were within about 0.9.&lt;br /&gt;
- jm: Still awesome that someone is looking at this.&lt;br /&gt;
- u: I&#039;m also looking at it. I think I figured about how to handle the Haar DC fi we want to not code the blocks outside the frame. I&#039;ll try and send a patch for that in the next day or so.&lt;br /&gt;
 &lt;br /&gt;
# deringing&lt;br /&gt;
 &lt;br /&gt;
- jm: Who&#039;s seen the demo I came up with?&lt;br /&gt;
- j: I haven&#039;t seen it.&lt;br /&gt;
- jm: I haven&#039;t had any comments yet.&lt;br /&gt;
- d: In general I thought it was great and I used it in my presentation. I can give you more detailed feedback today.&lt;br /&gt;
- jm: While working on this I think I came up with a decent way to do the search. Basically in terms of complexity in each direction I would have only one add per pixel and two multiplies per line. Meaning for horizontal and vertical you have N lines and for 45 degree and diagonal you have 2N-1 but still relatively cheap.&lt;br /&gt;
- d: What are you actually doing there to get that?&lt;br /&gt;
- jm: Nothing fundamentally different. I just did a bit of simpliciation. My criterion is the MSE compared to the painted image. The painted image is just an average along a certain direction. MSE - avg is basically the variance. If I go back to the variance computation, you are doing sum of the squares minus sum squared divided by N and the sum of the squares is constant across all the directions you search for. In the ned all you need to do is for each direction you follow each line summing, and then divide by N and sum all the lines.&lt;br /&gt;
- d: You are just recentering your variance calculation. That&#039;s fine.&lt;br /&gt;
- jm: You&#039;re just computing all the sums for each direction and then squaring and divinging.&lt;br /&gt;
- d: Do you really get away with squaring things along the line?&lt;br /&gt;
- jm: It all cancels out between directions. All the x^2 terms cancel each other.&lt;br /&gt;
- d: This is starting to sound more promising.&lt;br /&gt;
- jm: It runs pretty fast now.&lt;br /&gt;
- d: How fast?&lt;br /&gt;
- jm: I still haven&#039;t optimized the painting but if I look at the total time it goes from .5s to .7s instead of going to 3s. This is on fruits.&lt;br /&gt;
- d: I still think there should be a way to do this without computing the paint image for every direction.&lt;br /&gt;
- jm: I suspect most of the complexity is no longer the search. I suspecting painting has become more complex because I&#039;m still doing the square roots and divisions and stuff.&lt;br /&gt;
- d: I&#039;d like to avoid doing the paints for all or most of the directions as part of the search.&lt;br /&gt;
- jm: I don&#039;t see a way to avoid that. Mayber there is but I haven&#039;t seen it. I think the way I&#039;m doing it now is viable. In terms of per pixel operations it is 9 now.&lt;br /&gt;
- d: Yes, but maybe you can look at the first few AC coefficents and compute a gradient and then your per pixel operations is zero.&lt;br /&gt;
- jm: I think we&#039;re going to have a really hard time figuring out a direction in the general case that I&amp;quot;m trying to handle. LIke I&amp;quot;ve got a boundary between texture and something smooth or I have a whole bunch of lines in different directions. If we could see AC coefficients could we code it efficiently?&lt;br /&gt;
- d: I still think it is worth experimenting with. I don&#039;t think it will be as good as what you are doing now, but maybe it will be close and you&#039;ll only have to search a few directions.&lt;br /&gt;
- jm: It&#039;s hard to do much. If you have a few directions to search you haven&#039;t reduced the complexity very much. The base complexity is not high.&lt;br /&gt;
- d: I don&#039;t have to do all the painting for those directions&lt;br /&gt;
- jm: I don&#039;t do the painting there.&lt;br /&gt;
- d: Oh, nevermind.&lt;br /&gt;
- jm: I paint only in the one direction, and that hasn&#039;t been optimized. Right now I&#039;m painting the whole image even if some blocks are disabled. The decoder will be able to avoid painting disabled blocks.&lt;br /&gt;
- d: Maybe not as big of a deal as a thought, but probably still worth taking a look at.&lt;br /&gt;
- jm: It seems like anything you would try would be more complex than what I&#039;m currently doing. Right now I&#039;m just searching for 8 directions and considering whether to do a refinement to 16, but maybe the search for 8 could be 4 plus refinement. I&#039;m not sure if it&#039;s worth it. http://pastebin.mozilla.org/6594773 This is my directional search.&lt;br /&gt;
- d: This looks like pretty good progress.&lt;br /&gt;
- jm: For the on/off switch I think I want to do something else. At low rates just coding one flag per 8x8 block would be bad. I need to figure out what I want to do instead. Either going to 16x16 or automatically disabling the postfilter in blocks where we don&#039;t think it will be useful.&lt;br /&gt;
- d; Either that or you do some hierarchical thing. As in you code at 32x32 whether there are any blocks to dering and split down.&lt;br /&gt;
- jm: Right now if I just let it choose which ones seem best it picks about half/half. At -v 80. At lower v it picks fewer blocks. If i just let it choose with no constraint there&#039;s no way to reduce the rate. It&#039;s going to cost me one bit per block. &lt;br /&gt;
(missed some)&lt;br /&gt;
- jm: Unlike other stuff I&#039;ve done this one is basically just a post filter. Is anyone up for helping merge this?&lt;br /&gt;
- d: If I get time I&#039;m interested. I&#039;ll see what tomorrow looks like.&lt;br /&gt;
- jm: Monty did you look at this?&lt;br /&gt;
- x: It was spooky because it looked like something I would write.&lt;br /&gt;
- jm: http://jmvalin.ca/daala/demo1/&lt;br /&gt;
 &lt;br /&gt;
# intrapred tests&lt;br /&gt;
 &lt;br /&gt;
- u: I continued the work from last week. There&#039;s a URL in the agenda above that has a bunch of images.&lt;br /&gt;
- j: This looks amazing. Unlapping closed most of the gap with VP8.&lt;br /&gt;
- u: I&#039;m not including mode signaling cost yet, so still need to do that and Haar DC.&lt;br /&gt;
- jm: for the cp ones, you should try copying only the coefficients which have horizontal energy. I would like to see this graph as it gets closer to master&#039;s features.&lt;br /&gt;
- u: I&#039;m working on that.&lt;br /&gt;
(missed some)&lt;br /&gt;
- jm: You would look at left blocka nd see horitonzal energy. And look up at vertical energy. Let&#039;s say it&#039;s the one on the left. Youy would take the N horizontal coeffs to predict the current block. If it&#039;s bad you just signal noref. In this case,  you&#039;d have no signaling for the mode.&lt;br /&gt;
- u: The mode selection has to take it into account.&lt;br /&gt;
- jm: There is no signaling needed here. The decoder picks automatically.&lt;br /&gt;
- u: We could try this right now.&lt;br /&gt;
- jm: It wouldn&#039;t be entirely free because you&#039;re signaling noref, but it&#039;s pretty cheap compared to 8 modes. There&#039;s no potential for making bad decisions like spending 3 bits to code a mode which is thrown away.&lt;br /&gt;
- u: Currently we should take into account noref when we spend those three bits.&lt;br /&gt;
- d: This needs research because it sounds vaguely like what mpeg4 part 2 did with copying one row or column of AC.&lt;br /&gt;
- u: There&#039;s more things I want to experiment with. 1) Take the intrapredictors (TFing neightbors down to 4x4) and add it to this graph 2) Go back and retrain where you are using just AC coeffs. 3) Instead of training as we do now, train which coeffs to copy.&lt;br /&gt;
- jm: Are these variable block size?&lt;br /&gt;
- d: These are all 8x8 but adding the rest is in my plan.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tomvanbraeckel</name></author>
	</entry>
	<entry>
		<id>https://wiki.xiph.org/index.php?title=Daala_Weekly_Meetings&amp;diff=14985</id>
		<title>Daala Weekly Meetings</title>
		<link rel="alternate" type="text/html" href="https://wiki.xiph.org/index.php?title=Daala_Weekly_Meetings&amp;diff=14985"/>
		<updated>2014-09-16T13:01:05Z</updated>

		<summary type="html">&lt;p&gt;Tomvanbraeckel: Add minutes of September 9th, 2014 from https://daala.etherpad.mozilla.org/weekly-meeting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We&#039;ve been having weekly progress meetings on mumble.&lt;br /&gt;
&lt;br /&gt;
* 2012 June 4  [https://people.xiph.org/~giles/2012/daala_20120604.txt minutes] (actually a work week)&lt;br /&gt;
* 2012 June 22 [https://people.xiph.org/~giles/2012/daala_20120622.txt minutes]&lt;br /&gt;
* 2012 June 29 [https://people.xiph.org/~giles/2012/daala_20120629.txt minutes] [https://people.xiph.org/~giles/2012/daala_20120629.opus recording]&lt;br /&gt;
* 2012 July 6 [https://people.xiph.org/~giles/2012/daala_20120706.txt minutes]&lt;br /&gt;
* 2012 July 13 [https://people.xiph.org/~giles/2012/daala_20120713.txt minutes]&lt;br /&gt;
* 2012 July 20 [https://people.xiph.org/~giles/2012/daala_20120720.txt minutes]&lt;br /&gt;
* 2012 July 27 [https://people.xiph.org/~giles/2012/daala_20120727.txt minutes]&lt;br /&gt;
* 2012 August 3 [https://people.xiph.org/~giles/2012/daala_20120803.txt minutes] [https://people.xiph.org/~giles/2012/daala_20120803.opus recording]&lt;br /&gt;
* 2012 August 10 [https://people.xiph.org/~giles/2012/daala_20120810.txt minutes]&lt;br /&gt;
* 2012 August 17 - no meeting&lt;br /&gt;
* 2012 August 24 - [https://people.xiph.org/~giles/2012/daala_20120824.txt minutes] [https://people.xiph.org/~giles/2012/daala_20120824.opus recording]&lt;br /&gt;
* 2012 August 31 - no meeting&lt;br /&gt;
* 2012 September 7 - no meeting&lt;br /&gt;
* 2012 September 14 - no meeting&lt;br /&gt;
* 2012 September 21 - [https://people.xiph.org/~giles/2012/daala_20120921.txt minutes]&lt;br /&gt;
* 2012 September 28 - [https://people.xiph.org/~giles/2012/daala_20120928.txt minutes] [https://people.xiph.org/~giles/2012/daala_20120928.opus recording]&lt;br /&gt;
* 2012 October 5 - [https://people.xiph.org/~giles/2012/daala_20121005.opus recording]&lt;br /&gt;
* 20120 October 26 - &lt;br /&gt;
* 2012 Novemeber 2 - no meeting&lt;br /&gt;
* 2012 December 7 - [https://people.xiph.org/~giles/2012/daala_20121207.txt minutes]&lt;br /&gt;
* [[DaalaMeeting20130911|2013 September 11]] - logistics, status updates, coding party agenda&lt;br /&gt;
* [[DaalaMeeting20130917|2013 September 17]] - summit plans, research talks, coding party agenda, monty&#039;s TF ideas&lt;br /&gt;
* [[DaalaMeeting20130924|2013 September 24]] - training results, 32x32 code, and 2nd stage TF&lt;br /&gt;
* [[DaalaMeeting20131008|2013 October 8]] - pvq status, training, chroma from luma&lt;br /&gt;
* [[DaalaMeeting20131022|2013 October 22]] - even/odd quantizer, determinant 1, IETF, chroma from luma&lt;br /&gt;
* [[DaalaMeeting20131029|2013 October 29]] - gstreamer conf, ietf, chroma from luma&lt;br /&gt;
* [[DaalaMeeting20131112|2013 November 12]] - chroma from luma, pvq&lt;br /&gt;
* [[DaalaMeeting20131203|2013 December 3]] - chroma from luma, pvq, misc&lt;br /&gt;
* [[DaalaMeeting20131217|2013 December 17]] - luma intraprediction, pvq decoder, interns&lt;br /&gt;
* [[DaalaMeeting20140107|2014 January 07]] - reviews, pvq projects, and det1&lt;br /&gt;
* [[DaalaMeeting20140114|2014 January 14]] - pvq, det1, new projects&lt;br /&gt;
* [[DaalaMeeting20140121|2014 January 21]] - project planning&lt;br /&gt;
* [[DaalaMeeting20140128|2014 January 28]] - pvq, work week&lt;br /&gt;
* [[DaalaMeeting20140211|2014 February 11]] - 32x32, activity masking, current issues&lt;br /&gt;
* [[DaalaMeeting20140218|2014 February 18]] - input scaling, prediction error&lt;br /&gt;
* [[DaalaMeeting20140225|2014 February 25]] - det1, pvq, fastssim&lt;br /&gt;
* [[DaalaMeeting20140304|2014 March 4]] - det1, quant matrix, metrics&lt;br /&gt;
* [[DaalaMeeting20140318|2014 March 18]] - det1, fastssim, activity masking&lt;br /&gt;
* [[DaalaMeeting20140401|2014 April 1]] - crushing jpeg, pvq&lt;br /&gt;
* [[DaalaMeeting20140408|2014 April 8]] - reviews, pvq presentation&lt;br /&gt;
* [[DaalaMeeting20140415|2014 April 15]] - pvq experiments, activity masking&lt;br /&gt;
* [[DaalaMeeting20140422|2014 April 22]] - block size switching, gpu jpeg&lt;br /&gt;
* [[DaalaMeeting20140506|2014 May 6]] - workweek debrief, trained vq&lt;br /&gt;
* [[DaalaMeeting20140513|2014 May 13]] - trained vq, intraprediction&lt;br /&gt;
* [[DaalaMeeting20140520|2014 May 20]] - dc encoding&lt;br /&gt;
* [[DaalaMeeting20140527|2014 May 27]] - standard metrics&lt;br /&gt;
* [[DaalaMeeting20140603|2014 June 3]] - deringing filter&lt;br /&gt;
* [[DaalaMeeting20140624|2014 June 24]] - deringing filter&lt;br /&gt;
* [[DaalaMeeting20140701|2014 July 1]] - multi-frame motion compensation, jean-marc crazy ideas&lt;br /&gt;
* [[DaalaMeeting20140708|2014 July 8]] - intrapred ideas, journaling, rd_collect issues&lt;br /&gt;
* [[DaalaMeeting20140715|2014 July 15]] - VIPC, intrapred&lt;br /&gt;
* [[DaalaMeeting20140722|2014 July 22]] - demo progress, video results, edi, deringing, new intra&lt;br /&gt;
* [[DaalaMeeting20140729|2014 July 29]] - edi, intra paint&lt;br /&gt;
* [[DaalaMeeting20140805|2014 August 5]] - edi, intra paint&lt;br /&gt;
* [[DaalaMeeting20140812|2014 August 12]] - multi-frame MC, intra paint, edi&lt;br /&gt;
* [[DaalaMeeting20140826|2014 August 26]] - intra paint, halfpel BMA&lt;br /&gt;
* [[DaalaMeeting20140902|2014 September 2]] - demos, multi-frame motion compensation, deringing&lt;br /&gt;
* [[DaalaMeeting20140909|2014 September 9]] - reviews, deringing, intraprediction, non-photographic video&lt;/div&gt;</summary>
		<author><name>Tomvanbraeckel</name></author>
	</entry>
	<entry>
		<id>https://wiki.xiph.org/index.php?title=DaalaMeeting20140909&amp;diff=14984</id>
		<title>DaalaMeeting20140909</title>
		<link rel="alternate" type="text/html" href="https://wiki.xiph.org/index.php?title=DaalaMeeting20140909&amp;diff=14984"/>
		<updated>2014-09-16T12:57:07Z</updated>

		<summary type="html">&lt;p&gt;Tomvanbraeckel: Unscrew the formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
# Meeting 2014-09-09&lt;br /&gt;
&lt;br /&gt;
Mumble:  mf4.xiph.org:64738&lt;br /&gt;
&lt;br /&gt;
# Agenda&lt;br /&gt;
&lt;br /&gt;
- reviews&lt;br /&gt;
- deringing&lt;br /&gt;
- intraprediction&lt;br /&gt;
- non-photographic video&lt;br /&gt;
&lt;br /&gt;
# Attending&lt;br /&gt;
- unlord, tmatth, smarter, jack&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Reviews&lt;br /&gt;
&lt;br /&gt;
https://review.xiph.org/455/&lt;br /&gt;
https://review.xiph.org/456/&lt;br /&gt;
&lt;br /&gt;
# derining&lt;br /&gt;
&lt;br /&gt;
- jm: I&#039;ve continued on using paint as deringing. I have results that are slightly cheating but getting better. http://jmvalin.ca/video/dering/ What this is doing is computing a paint image and from the coded image figuring out (from variances and stuff) the gain that should apply to the derining. Ie, how much of the paint image we should use vs. how much of the decoded, pre-paint image we should use. It&#039;s doing a reasonable job but it&#039;s not perfect. On top of this I&#039;m adding a single flag per block which disables the filter entirely for the block (gain of 0). I don&#039;t have crossfade, but I didn&#039;t notice much of an issue with blocking artifacts. I didn&#039;t generate images because I wasn&#039;t quite sure what the best thing to generate was.&lt;br /&gt;
- d: Howa bout Clovis?&lt;br /&gt;
- x: Good torture test.&lt;br /&gt;
- jm:&lt;br /&gt;
off: http://jmvalin.ca/video/dering/clovis0.png&lt;br /&gt;
on: http://jmvalin.ca/video/dering/clovis.png&lt;br /&gt;
 We can see easily. It&#039;s at least helping on the edges of the dunes. The color edges are just chroma contrast so they don&#039;t show up. I&#039;m not sure yet how to handle chroma. THere&#039;s many ways to handle it. One way is through CfL. Ie, not apply deringing to chroma at all, but just on luma.&lt;br /&gt;
- d: That means you have to delay chroma until a whole line of superblocks has beend one. That is specifically what the HW people didn&#039;t like about CfL. We have an advantage because of doing it in the frequency domain.&lt;br /&gt;
- jm: Actually more than that because of the filter. Two superblock rows.&lt;br /&gt;
- jm: Those are -v60. Output is 18k. This is much below what I normally used for testing.&lt;br /&gt;
- d: I notice it does a fairly good job on the big balloon in the center on the upper left edge. But on the right edge seems like it does nothing.&lt;br /&gt;
- jm: It can&#039;t do much for features that are horizontal or vertical because the 2d dct is already a directional basis and its artifacts will be aligned with the direction of the image. If you look just below the bulge where its 45 degrees you see a huge difference.&lt;br /&gt;
- d: It seems bad that can&#039;t do anything about horizontal or vertical.&lt;br /&gt;
- jm: The rining is worst on the diagonals usually.&lt;br /&gt;
- d: The big question is &amp;quot;how slow is this?&amp;quot;&lt;br /&gt;
- jm: The normal encoder would take 0.4 seconds, and deringing takes a little under 3s. The vast majority is spent in the direction search.&lt;br /&gt;
- j: 6x slower!&lt;br /&gt;
- d: To be clear, just for this feature he is using 150x the decoder budget!&lt;br /&gt;
- d: Does the operation scale linearly with blocksize?&lt;br /&gt;
- jm: 16x16 is at most 2x as complex as 8x8 but it depends on what directional resolution we want. So per-pixel it&#039;s the same cost. The number of ops per pixel is on the order of 50. Assuming we don&#039;t do any downscaling before we find the direction.&lt;br /&gt;
- d: That&#039;s not completely unreasonable so why is it 150x slower?&lt;br /&gt;
- jm: I&#039;m doing optimal interpolation weights around all four edges etc. If you look at intrapaint.c there is a pixel_interp function and that takes most of the cost. You call this for every pixel and it uses square roots etc. Then numbers I gave you are too optimistic. I forgot computing the distortion. It may be closer to 100 or 150.&lt;br /&gt;
- d: ekr is trying to hook us up with someone who&#039;s done speed optimizations for opensll, etc. Would it make sense for you to talk to him for trying to make this function super fast?&lt;br /&gt;
- jm: Yeah. Unlike openssl, I&#039;m pretty flexible on the outputs.&lt;br /&gt;
- d: If all you want is a direction, why not just take an edge detection algoirthm and run an arctan?&lt;br /&gt;
- jm: I&#039;m not a video guy so I&#039;ve never run an edge detector. Actually that wouldn&#039;t work. I am not necesarily looking at edges, i&#039;m looking at stuff like low variance in one direction and low variance in another. Like the tail of the horse.&lt;br /&gt;
- d: I&#039;m talking about running a gradient operator. If one direction is dominant you should be able to find it. At lower rate you need a larger support for your gradient operator. We need to figure out if it is possible to make it sufficiently fast. Are you interested Monty?&lt;br /&gt;
- x: I think it is doomed. I&#039;m not convinced it is generally useful. It does give a pleasing effect at low bitrates. I dont&#039; see what it buys Daala; it&#039;s not codec specific.&lt;br /&gt;
- jm: Right now it&#039;s about the only thing we have to deal with ringing since we don&#039;t have intra.&lt;br /&gt;
- d: Monty to be clear, this is not a post processor. It&#039;s in-loop.&lt;br /&gt;
- x: Oh, I missed that. This is interesting, but we have other problems to ship a codec and I don&#039;t see how this solves our problems.&lt;br /&gt;
- d: Right now directional edges and features are not captured well since we haven&#039;t figured out intra.&lt;br /&gt;
- x: But we&#039;ve also failed to make deringing from other codecs work. Figuring that out seems like a much more interesting problem.&lt;br /&gt;
- jm: I don&#039;t think the 265 stuff can get rid of the ringing we get at low bitrates. It just changes individual samples.&lt;br /&gt;
- x: Won&#039;t do that in 265 either right?&lt;br /&gt;
- jm: No, but 265 has intra prediction!&lt;br /&gt;
- j: Sounds like you want to spend more time on intra?&lt;br /&gt;
- x: Yes.&lt;br /&gt;
- d: Nathan is working on this. Sounds like you should move on to the next thing in your pipeline.&lt;br /&gt;
&lt;br /&gt;
# intraprediction&lt;br /&gt;
&lt;br /&gt;
- u: I have the still image test bed and it produces RD curves now. I&#039;ll post some of the curves. I don&#039;t think that AC coeefs from neighbors is a reasonable approach. It requires too large of support.&lt;br /&gt;
- d: Especially for shallow angles.&lt;br /&gt;
- u: At 45 you can go one block away, but at others you ahve to go 2 away. I&#039;ll post curves later today. I can&#039;t point you at the code Monty. It&#039;s super simple.&lt;br /&gt;
&lt;br /&gt;
# non-photographic video&lt;br /&gt;
&lt;br /&gt;
- jm: I think this is very useful and we should start planning for it.&lt;br /&gt;
- d; I was not going to worry about it until next year.&lt;br /&gt;
- jm: This has the potential to be a killer feature.&lt;br /&gt;
- x: That all by itself would get RedHat&#039;s attention.&lt;br /&gt;
- j: I brought htis up as a differentiator but Tim didn&#039;t seem super supportive.&lt;br /&gt;
- x: It&#039;s hard.&lt;br /&gt;
- d: I don&#039;t htink it&#039;s that hard.&lt;br /&gt;
- jm: There is a big piece that is missing from what I did for paint. Being able to encode antialiased text.&lt;br /&gt;
- d: Anything you can imagine you can do in the spatial domain and then transform it into the frequency domain.&lt;br /&gt;
- jm: Why would you want to do that?&lt;br /&gt;
- d: Because that way you don&#039;t have to worry about mode switching and all this other stuff. IT makes a bunch of stuff simpler.&lt;br /&gt;
- jm: If you get that to work, then you get paint to work.&lt;br /&gt;
- u: Didn&#039;t we talk about this with Greg in Orlando?&lt;br /&gt;
- d: I don&#039;t remember this discussion at all. I remember the Thai food, but not hte discussion. Go ask Greg if he remembers.&lt;br /&gt;
- jm: This would be even worse than paint. How do you disable it? Having no safe fallback... On top of that, if you code something, you&#039;re going to ring all over the place. If you ever code a DCT on top of the first step then it rings all over the place. In every piece that is non-photographic you can&#039;t code a dct on top of a basis function anyway. Attempting to code the whole thing with DCT and then using beefed up version of deringing to fix things up, ensuring the background for the text is flat, etc, you would already have wasted tons of bits on other things. I don&#039;t see a 2 pass version really working.&lt;br /&gt;
- d; Try to think of something that does work and in conjunction with motion compensation.&lt;br /&gt;
- jm: A separate codec that you switch block by block basis is the kind of thing I&#039;m thinking of. In the desktop case, the motion will be flat. Either you&#039;re moving not at all or large areas at the same speed.&lt;br /&gt;
- j: With all the animations window managers have, that kidn of motion doesn&#039;t seem realistic.&lt;br /&gt;
- jm: The text is really the thing to focus on.&lt;br /&gt;
- d: The particular tool you use is not important. How it integrates into the codec is the hardest part of this problem.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tomvanbraeckel</name></author>
	</entry>
	<entry>
		<id>https://wiki.xiph.org/index.php?title=DaalaMeeting20140909&amp;diff=14983</id>
		<title>DaalaMeeting20140909</title>
		<link rel="alternate" type="text/html" href="https://wiki.xiph.org/index.php?title=DaalaMeeting20140909&amp;diff=14983"/>
		<updated>2014-09-16T12:56:35Z</updated>

		<summary type="html">&lt;p&gt;Tomvanbraeckel: Add minutes from https://daala.etherpad.mozilla.org/weekly-meeting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;# Meeting 2014-09-09&lt;br /&gt;
&lt;br /&gt;
Mumble:  mf4.xiph.org:64738&lt;br /&gt;
&lt;br /&gt;
# Agenda&lt;br /&gt;
&lt;br /&gt;
- reviews&lt;br /&gt;
- deringing&lt;br /&gt;
- intraprediction&lt;br /&gt;
- non-photographic video&lt;br /&gt;
&lt;br /&gt;
# Attending&lt;br /&gt;
- unlord, tmatth, smarter, jack&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Reviews&lt;br /&gt;
&lt;br /&gt;
https://review.xiph.org/455/&lt;br /&gt;
https://review.xiph.org/456/&lt;br /&gt;
&lt;br /&gt;
# derining&lt;br /&gt;
&lt;br /&gt;
- jm: I&#039;ve continued on using paint as deringing. I have results that are slightly cheating but getting better. http://jmvalin.ca/video/dering/ What this is doing is computing a paint image and from the coded image figuring out (from variances and stuff) the gain that should apply to the derining. Ie, how much of the paint image we should use vs. how much of the decoded, pre-paint image we should use. It&#039;s doing a reasonable job but it&#039;s not perfect. On top of this I&#039;m adding a single flag per block which disables the filter entirely for the block (gain of 0). I don&#039;t have crossfade, but I didn&#039;t notice much of an issue with blocking artifacts. I didn&#039;t generate images because I wasn&#039;t quite sure what the best thing to generate was.&lt;br /&gt;
- d: Howa bout Clovis?&lt;br /&gt;
- x: Good torture test.&lt;br /&gt;
- jm:&lt;br /&gt;
off: http://jmvalin.ca/video/dering/clovis0.png&lt;br /&gt;
on: http://jmvalin.ca/video/dering/clovis.png&lt;br /&gt;
 We can see easily. It&#039;s at least helping on the edges of the dunes. The color edges are just chroma contrast so they don&#039;t show up. I&#039;m not sure yet how to handle chroma. THere&#039;s many ways to handle it. One way is through CfL. Ie, not apply deringing to chroma at all, but just on luma.&lt;br /&gt;
- d: That means you have to delay chroma until a whole line of superblocks has beend one. That is specifically what the HW people didn&#039;t like about CfL. We have an advantage because of doing it in the frequency domain.&lt;br /&gt;
- jm: Actually more than that because of the filter. Two superblock rows.&lt;br /&gt;
- jm: Those are -v60. Output is 18k. This is much below what I normally used for testing.&lt;br /&gt;
- d: I notice it does a fairly good job on the big balloon in the center on the upper left edge. But on the right edge seems like it does nothing.&lt;br /&gt;
- jm: It can&#039;t do much for features that are horizontal or vertical because the 2d dct is already a directional basis and its artifacts will be aligned with the direction of the image. If you look just below the bulge where its 45 degrees you see a huge difference.&lt;br /&gt;
- d: It seems bad that can&#039;t do anything about horizontal or vertical.&lt;br /&gt;
- jm: The rining is worst on the diagonals usually.&lt;br /&gt;
- d: The big question is &amp;quot;how slow is this?&amp;quot;&lt;br /&gt;
- jm: The normal encoder would take 0.4 seconds, and deringing takes a little under 3s. The vast majority is spent in the direction search.&lt;br /&gt;
- j: 6x slower!&lt;br /&gt;
- d: To be clear, just for this feature he is using 150x the decoder budget!&lt;br /&gt;
- d: Does the operation scale linearly with blocksize?&lt;br /&gt;
- jm: 16x16 is at most 2x as complex as 8x8 but it depends on what directional resolution we want. So per-pixel it&#039;s the same cost. The number of ops per pixel is on the order of 50. Assuming we don&#039;t do any downscaling before we find the direction.&lt;br /&gt;
- d: That&#039;s not completely unreasonable so why is it 150x slower?&lt;br /&gt;
- jm: I&#039;m doing optimal interpolation weights around all four edges etc. If you look at intrapaint.c there is a pixel_interp function and that takes most of the cost. You call this for every pixel and it uses square roots etc. Then numbers I gave you are too optimistic. I forgot computing the distortion. It may be closer to 100 or 150.&lt;br /&gt;
- d: ekr is trying to hook us up with someone who&#039;s done speed optimizations for opensll, etc. Would it make sense for you to talk to him for trying to make this function super fast?&lt;br /&gt;
- jm: Yeah. Unlike openssl, I&#039;m pretty flexible on the outputs.&lt;br /&gt;
- d: If all you want is a direction, why not just take an edge detection algoirthm and run an arctan?&lt;br /&gt;
- jm: I&#039;m not a video guy so I&#039;ve never run an edge detector. Actually that wouldn&#039;t work. I am not necesarily looking at edges, i&#039;m looking at stuff like low variance in one direction and low variance in another. Like the tail of the horse.&lt;br /&gt;
- d: I&#039;m talking about running a gradient operator. If one direction is dominant you should be able to find it. At lower rate you need a larger support for your gradient operator. We need to figure out if it is possible to make it sufficiently fast. Are you interested Monty?&lt;br /&gt;
- x: I think it is doomed. I&#039;m not convinced it is generally useful. It does give a pleasing effect at low bitrates. I dont&#039; see what it buys Daala; it&#039;s not codec specific.&lt;br /&gt;
- jm: Right now it&#039;s about the only thing we have to deal with ringing since we don&#039;t have intra.&lt;br /&gt;
- d: Monty to be clear, this is not a post processor. It&#039;s in-loop.&lt;br /&gt;
- x: Oh, I missed that. This is interesting, but we have other problems to ship a codec and I don&#039;t see how this solves our problems.&lt;br /&gt;
- d: Right now directional edges and features are not captured well since we haven&#039;t figured out intra.&lt;br /&gt;
- x: But we&#039;ve also failed to make deringing from other codecs work. Figuring that out seems like a much more interesting problem.&lt;br /&gt;
- jm: I don&#039;t think the 265 stuff can get rid of the ringing we get at low bitrates. It just changes individual samples.&lt;br /&gt;
- x: Won&#039;t do that in 265 either right?&lt;br /&gt;
- jm: No, but 265 has intra prediction!&lt;br /&gt;
- j: Sounds like you want to spend more time on intra?&lt;br /&gt;
- x: Yes.&lt;br /&gt;
- d: Nathan is working on this. Sounds like you should move on to the next thing in your pipeline.&lt;br /&gt;
&lt;br /&gt;
# intraprediction&lt;br /&gt;
&lt;br /&gt;
- u: I have the still image test bed and it produces RD curves now. I&#039;ll post some of the curves. I don&#039;t think that AC coeefs from neighbors is a reasonable approach. It requires too large of support.&lt;br /&gt;
- d: Especially for shallow angles.&lt;br /&gt;
- u: At 45 you can go one block away, but at others you ahve to go 2 away. I&#039;ll post curves later today. I can&#039;t point you at the code Monty. It&#039;s super simple.&lt;br /&gt;
&lt;br /&gt;
# non-photographic video&lt;br /&gt;
&lt;br /&gt;
- jm: I think this is very useful and we should start planning for it.&lt;br /&gt;
- d; I was not going to worry about it until next year.&lt;br /&gt;
- jm: This has the potential to be a killer feature.&lt;br /&gt;
- x: That all by itself would get RedHat&#039;s attention.&lt;br /&gt;
- j: I brought htis up as a differentiator but Tim didn&#039;t seem super supportive.&lt;br /&gt;
- x: It&#039;s hard.&lt;br /&gt;
- d: I don&#039;t htink it&#039;s that hard.&lt;br /&gt;
- jm: There is a big piece that is missing from what I did for paint. Being able to encode antialiased text.&lt;br /&gt;
- d: Anything you can imagine you can do in the spatial domain and then transform it into the frequency domain.&lt;br /&gt;
- jm: Why would you want to do that?&lt;br /&gt;
- d: Because that way you don&#039;t have to worry about mode switching and all this other stuff. IT makes a bunch of stuff simpler.&lt;br /&gt;
- jm: If you get that to work, then you get paint to work.&lt;br /&gt;
- u: Didn&#039;t we talk about this with Greg in Orlando?&lt;br /&gt;
- d: I don&#039;t remember this discussion at all. I remember the Thai food, but not hte discussion. Go ask Greg if he remembers.&lt;br /&gt;
- jm: This would be even worse than paint. How do you disable it? Having no safe fallback... On top of that, if you code something, you&#039;re going to ring all over the place. If you ever code a DCT on top of the first step then it rings all over the place. In every piece that is non-photographic you can&#039;t code a dct on top of a basis function anyway. Attempting to code the whole thing with DCT and then using beefed up version of deringing to fix things up, ensuring the background for the text is flat, etc, you would already have wasted tons of bits on other things. I don&#039;t see a 2 pass version really working.&lt;br /&gt;
- d; Try to think of something that does work and in conjunction with motion compensation.&lt;br /&gt;
- jm: A separate codec that you switch block by block basis is the kind of thing I&#039;m thinking of. In the desktop case, the motion will be flat. Either you&#039;re moving not at all or large areas at the same speed.&lt;br /&gt;
- j: With all the animations window managers have, that kidn of motion doesn&#039;t seem realistic.&lt;br /&gt;
- jm: The text is really the thing to focus on.&lt;br /&gt;
- d: The particular tool you use is not important. How it integrates into the codec is the hardest part of this problem.&lt;/div&gt;</summary>
		<author><name>Tomvanbraeckel</name></author>
	</entry>
</feed>