[Haskell-cafe] Re: [Haskell] Google Summer of Code 2009
Krzysztof Skrzętnicki
gtener at gmail.com
Wed Feb 11 18:19:41 EST 2009
On Wed, Feb 11, 2009 at 21:00, Jamie <haskell at datakids.org> wrote:
> Hi Gwern,
>
> On Wed, 11 Feb 2009, Gwern Branwen wrote:
>
>>> I just checked H.263 and it looks like it does not require patent
>>> licensing
>>> at all (it is created by ITU-T Video Coding Experts Group (VCEG)) so one
>>> can
>>> write H.263 in Haskell and release freely without patent licensing
>>> issues.
>>>
>>> So writing H.263 in Haskell could be a good GSoC project. One mentioned
>>> that GHC produce slow code, well H.263 could be a good test case to
>>> improve
>>> GHC optimization over time. In The Computer Language Benchmarks Game,
>>> Haskell has some catching up to do. :)
>>
>> It does sound like a reasonably discrete task, and it sounds like you have
>> a use for it; but I wonder if it's doable in a single summer?
>
> I have no idea, I have not dig deeper into H.263 C source code but I guess
> it should be quite trivial as it is a black box with video frame input and
> output with several parameters for encoding and just frame in/out for
> decoding.
I didn't dig into the source code either, but I've just skimmed
through Wikipedia page on that codec:
http://en.wikipedia.org/wiki/H.263
and in seems far from trivial. Anything that has 23 annexes is likely
to be quite complex :-)
Therefore I seriously doubt chances for success of such project. I did
some checks: in libavcodec at least following files consist of
implementation of H.263:
h263.c h263data.h h263dec.c h263.h
h263_parser.c h263_parser.h
How many lines are there?
[Tener at laptener libavcodec]$ wc h263*
6295 19280 218932 h263.c
314 2117 10423 h263data.h
816 2171 26675 h263dec.c
46 217 2032 h263.h
91 282 2361 h263_parser.c
29 165 1047 h263_parser.h
7591 24232 261470 razem
In Haskell project one would also need to provide some additional
utility code which is part of libavcodec.
Fast grep shows the tip of an iceberg:
[Tener at laptener libavcodec]$ grep include h263* | grep -v "<"
h263.c:#include "dsputil.h"
h263.c:#include "avcodec.h"
h263.c:#include "mpegvideo.h"
h263.c:#include "h263data.h"
h263.c:#include "mpeg4data.h"
h263.c:#include "mathops.h"
h263data.h:#include "mpegvideo.h"
h263dec.c:#include "avcodec.h"
h263dec.c:#include "dsputil.h"
h263dec.c:#include "mpegvideo.h"
h263dec.c:#include "h263_parser.h"
h263dec.c:#include "mpeg4video_parser.h"
h263dec.c:#include "msmpeg4.h"
h263.h:#include "config.h"
h263.h:#include "msmpeg4.h"
h263_parser.c:#include "parser.h"
h263_parser.h:#include "parser.h"
Bottom line: I don't think it is reasonable to assume anyone without
previous knowledge of H.263 is able to fit that project into one
summer. But! It's Haskell community, and people here see the
impossible happen from time to time ;-)
All best
Christopher Skrzętnicki
More information about the Haskell-Cafe
mailing list