Recherche avancée

Médias (0)

Mot : - Tags -/content

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (57)

  • Personnaliser en ajoutant son logo, sa bannière ou son image de fond

    5 septembre 2013, par

    Certains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;

  • Ecrire une actualité

    21 juin 2013, par

    Présentez les changements dans votre MédiaSPIP ou les actualités de vos projets sur votre MédiaSPIP grâce à la rubrique actualités.
    Dans le thème par défaut spipeo de MédiaSPIP, les actualités sont affichées en bas de la page principale sous les éditoriaux.
    Vous pouvez personnaliser le formulaire de création d’une actualité.
    Formulaire de création d’une actualité Dans le cas d’un document de type actualité, les champs proposés par défaut sont : Date de publication ( personnaliser la date de publication ) (...)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

Sur d’autres sites (8828)

  • Error converting .flv to .avi with ffmpeg

    5 juillet 2012, par user1504396

    When i try the 2d code, with a 5 minutes 7 second video, I get a 28 minutes 29 seconds video, What did I do wrong ?

    Here is the ffmpeg output :

    [Me@Hewlett-Packard Downloads]$ ffmpeg -i "0042473.flv" -s 400x240 -aspect 2:1 -r 20 -vcodec mjpeg -qscale 1 -acodec adpcm_ima_wav -ac 2 "VID_0001.AVI"
    ffmpeg version 0.8.10, Copyright © 2000-2011 the FFmpeg developers
    built on Feb 29 2012 16:30:44 with gcc 4.6.2 20111027 (Red Hat 4.6.2-1)
    configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic' --enable-bzlib --enable-libcelt --enable-libdc1394 --enable-libdirac --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-x11grab --enable-avfilter --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64 --enable-runtime-cpudetect
    libavutil 51. 9. 1 / 51. 9. 1
    libavcodec 53. 8. 0 / 53. 8. 0
    libavformat 53. 5. 0 / 53. 5. 0
    libavdevice 53. 1. 1 / 53. 1. 1
    libavfilter 2. 23. 0 / 2. 23. 0
    libswscale 2. 0. 0 / 2. 0. 0
    libpostproc 51. 2. 0 / 51. 2. 0
    [flv @ 0x2165600] Estimating duration from bitrate, this may be inaccurate

    Seems stream 0 codec frame rate differs from container frame rate: 59.94 (2997/50) -> 29.97 (30000/1001)
    Input #0, flv, from '0042473.flv':
    Metadata:
    minor_version : 1
    stereo : true
    videocodecid : 7
    audiodatarate : 62
    audiosamplerate : 44100
    audiosize : 2476815
    canSeekToEnd : true
    creation_time : 2011-05-01 18:06:43
    copyright :
    compatible_brands: isomavc1
    datasize : 16589374
    duration : 308
    copyright-eng :
    encoder : Lavf52.104.0
    videodatarate : 351
    hasAudio : true
    hasCuePoints : false
    hasKeyframes : true
    hasMetadata : true
    hasVideo : true
    width : 480
    lasttimestamp : 308
    audiocodecid : 10
    metadatacreator : flvtool++ (Facebook, Motion project, dweatherford)
    major_brand : isom
    audiosamplesize : 16
    totalframes : 9225
    framerate : 30
    height : 272
    videosize : 13863389
    filesize : 16587742
    Duration: 00:05:07.94, start: 0.000000, bitrate: 423 kb/s
    Stream #0.0: Video: h264 (High), yuv420p, 480x272 [PAR 1:1 DAR 30:17], 359 kb/s, 29.97 tbr, 1k tbn, 59.94 tbc
    Stream #0.1: Audio: aac, 44100 Hz, stereo, s16, 63 kb/s
    Incompatible pixel format 'yuv420p' for codec 'mjpeg', auto-selecting format 'yuvj420p'
    [buffer @ 0x216b180] w:480 h:272 pixfmt:yuv420p tb:1/1000000 sar:1/1 sws_param:
    [scale @ 0x216bf40] w:480 h:272 fmt:yuv420p -> w:400 h:240 fmt:yuvj420p flags:0x4
    Output #0, avi, to 'VID_0001.AVI':
    Metadata:
    minor_version : 1
    stereo : true
    videocodecid : 7
    audiodatarate : 62
    audiosamplerate : 44100
    audiosize : 2476815
    canSeekToEnd : true
    creation_time : 2011-05-01 18:06:43
    ICOP :
    compatible_brands: isomavc1
    datasize : 16589374
    duration : 308
    copyright-eng :
    filesize : 16587742
    videodatarate : 351
    hasAudio : true
    hasCuePoints : false
    hasKeyframes : true
    hasMetadata : true
    hasVideo : true
    width : 480
    lasttimestamp : 308
    audiocodecid : 10
    metadatacreator : flvtool++ (Facebook, Motion project, dweatherford)
    major_brand : isom
    audiosamplesize : 16
    totalframes : 9225
    framerate : 30
    height : 272
    videosize : 13863389
    ISFT : Lavf53.5.0
    Stream #0.0: Video: mjpeg, yuvj420p, 400x240 [PAR 6:5 DAR 2:1], q=2-31, 200 kb/s, 20 tbn, 20 tbc
    Stream #0.1: Audio: adpcm_ima_wav, 44100 Hz, stereo, s16, 352 kb/s
    Stream mapping:
    Stream #0.0 -> #0.0
    Stream #0.1 -> #0.1
    Press [q] to stop, [?] for help
    frame= 43 fps= 0 q=1.0 size= 1330kB time=00:00:02.12 bitrate=5135.7kbits/sframe= 87 fps= 86 q=1.0 size= 2712kB time=00:00:04.35 bitrate=5097.2kbits/sframe= 135 fps= 89 q=1.0 size= 3579kB time=00:00:06.78 bitrate=4324.9kbits/sframe= 185 fps= 92 q=1.0 size= 4307kB time=00:00:09.27 bitrate=3805.9kbits/sframe= 231 fps= 92 q=1.0 size= 5208kB time=00:00:11.55 bitrate=3692.4kbits/sframe= 276 fps= 91 q=1.0 size= 6129kB time=00:00:13.83 bitrate=3628.5kbits/sframe= 318 fps= 90 q=1.0 size= 6978kB time=00:00:15.91 bitrate=3592.6kbits/sframe= 366 fps= 91 q=1.0 size= 7990kB time=00:00:18.33 bitrate=3570.2kbits/sframe= 408 fps= 90 q=1.0 size= 8912kB time=00:00:20.43 bitrate=3573.2kbits/sframe= 451 fps= 90 q=1.0 size= 9831kB time=00:00:22.55 bitrate=3570.9kbits/sframe= 495 fps= 89 q=1.0 size= 10827kB time=00:00:24.74 bitrate=3584.4kbits/sframe= 539 fps= 89 q=1.0 size= 11845kB time=00:00:26.91 bitrate=3605.5kbits/sframe= 583 fps= 89 q=1.0 size= 12939kB time=00:00:29.14 bitrate=3636.2kbits/sframe= 630 fps= 89 q=1.0 size= 13790kB time=00:00:31.52 bitrate=3583.5kbits/sframe= 676 fps= 89 q=1.0 size= 14710kB time=00:00:33.80 bitrate=3564.4kbits/sframe= 723 fps= 90 q=1.0 size= 15651kB time=00:00:36.16 bitrate=3545.7kbits/sframe= 767 fps= 90 q=1.0 size= 16589kB time=00:00:38.35 bitrate=3543.6kbits/sframe= 809 fps= 89 q=1.0 size= 17576kB time=00:00:40.42 bitrate=3561.7kbits/sframe= 852 fps= 89 q=1.0 size= 18598kB time=00:00:42.61 bitrate=3575.0kbits/sframe= 898 fps= 89 q=1.0 size= 19548kB time=00:00:44.90 bitrate=3566.6kbits/sframe= 940 fps= 89 q=1.0 size= 20666kB time=00:00:46.97 bitrate=3603.9kbits/sframe= 982 fps= 89 q=1.0 size= 21739kB time=00:00:49.12 bitrate=3625.5kbits/sframe= 1024 fps= 88 q=1.0 size= 22711kB time=00:00:51.25 bitrate=3630.2kbits/sframe= 1070 fps= 88 q=1.0 size= 23769kB time=00:00:53.47 bitrate=3640.9kbits/sframe= 1118 fps= 89 q=1.0 size= 24935kB time=00:00:55.90 bitrate=3654.2kbits/sframe= 1165 fps= 89 q=1.0 size= 26047kB time=00:00:58.22 bitrate=3664.3kbits/sframe= 1213 fps= 89 q=1.0 size= 27187kB time=00:01:00.62 bitrate=3673.5kbits/sframe= 1265 fps= 90 q=1.0 size= 27935kB time=00:01:03.23 bitrate=3619.0kbits/sframe= 1315 fps= 90 q=1.0 size= 28590kB time=00:01:05.79 bitrate=3559.7kbits/sframe= 1366 fps= 90 q=1.0 size= 29229kB time=00:01:08.30 bitrate=3505.3kbits/sframe= 1415 fps= 91 q=1.0 size= 29928kB time=00:01:10.75 bitrate=3465.2kbits/sframe= 1464 fps= 91 q=1.0 size= 30612kB time=00:01:13.25 bitrate=3423.5kbits/sframe= 1512 fps= 91 q=1.0 size= 31309kB time=00:01:15.64 bitrate=3390.8kbits/sframe= 1561 fps= 91 q=1.0 size= 31997kB time=00:01:18.06 bitrate=3357.8kbits/sframe= 1608 fps= 91 q=1.0 size= 32760kB time=00:01:20.36 bitrate=3339.3kbits/sframe= 1654 fps= 91 q=1.0 size= 33563kB time=00:01:22.69 bitrate=3324.7kbits/sframe= 1700 fps= 91 q=1.0 size= 34318kB time=00:01:24.98 bitrate=3308.2kbits/sframe= 1745 fps= 91 q=1.0 size= 35041kB time=00:01:27.24 bitrate=3290.4kbits/sframe= 1791 fps= 91 q=1.0 size= 35749kB time=00:01:29.56 bitrate=3269.6kbits/sframe= 1837 fps= 91 q=1.0 size= 36442kB time=00:01:31.85 bitrate=3250.1kbits/sframe= 1884 fps= 91 q=1.0 size= 37121kB time=00:01:34.20 bitrate=3228.0kbits/sframe= 1931 fps= 91 q=1.0 size= 37840kB time=00:01:36.53 bitrate=3211.1kbits/sframe= 1978 fps= 91 q=1.0 size= 38561kB time=00:01:38.90 bitrate=3193.8kbits/sframe= 2025 fps= 91 q=1.0 size= 39279kB time=00:01:41.28 bitrate=3176.9kbits/sframe= 2072 fps= 91 q=1.0 size= 40005kB time=00:01:43.59 bitrate=3163.6kbits/sframe= 2117 fps= 91 q=1.0 size= 40833kB time=00:01:45.87 bitrate=3159.5kbits/sframe= 2158 fps= 91 q=1.0 size= 41561kB time=00:01:47.90 bitrate=3155.3kbits/sframe= 2202 fps= 91 q=1.0 size= 42407kB time=00:01:50.14 bitrate=3154.1kbits/sframe= 2248 fps= 91 q=1.0 size= 43201kB time=00:01:52.42 bitrate=3147.9kbits/sframe= 2295 fps= 91 q=1.0 size= 43975kB time=00:01:54.75 bitrate=3139.3kbits/sframe= 2342 fps= 91 q=1.0 size= 44739kB time=00:01:57.10 bitrate=3129.7kbits/sframe= 2388 fps= 91 q=1.0 size= 45532kB time=00:01:59.43 bitrate=3123.0kbits/sframe= 2435 fps= 91 q=1.0 size= 46306kB time=00:02:01.80 bitrate=3114.5kbits/sframe= 2481 fps= 91 q=1.0 size= 47095kB time=00:02:04.02 bitrate=3110.7kbits/sframe= 2530 fps= 91 q=1.0 size= 47778kB time=00:02:06.49 bitrate=3094.3kbits/sframe= 2578 fps= 91 q=1.0 size= 48507kB time=00:02:08.91 bitrate=3082.5kbits/sframe= 2622 fps= 91 q=1.0 size= 49169kB time=00:02:11.08 bitrate=3072.9kbits/sframe= 2670 fps= 91 q=1.0 size= 49851kB time=00:02:13.54 bitrate=3057.9kbits/sframe= 2718 fps= 91 q=1.0 size= 50531kB time=00:02:15.92 bitrate=3045.5kbits/sframe= 2764 fps= 91 q=1.0 size= 51242kB time=00:02:18.18 bitrate=3037.8kbits/sframe= 2810 fps= 92 q=1.0 size= 51959kB time=00:02:20.51 bitrate=3029.3kbits/sframe= 2835 fps= 90 q=1.0 size= 52376kB time=00:02:21.78 bitrate=3026.2kbits/sframe= 2879 fps= 90 q=1.0 size= 53093kB time=00:02:23.94 bitrate=3021.5kbits/sframe= 2923 fps= 90 q=1.0 size= 53853kB time=00:02:26.18 bitrate=3017.8kbits/sframe= 2968 fps= 90 q=1.0 size= 54594kB time=00:02:28.39 bitrate=3013.7kbits/sframe= 3012 fps= 90 q=1.0 size= 55444kB time=00:02:30.63 bitrate=3015.2kbits/sframe= 3056 fps= 90 q=1.0 size= 56495kB time=00:02:32.78 bitrate=3029.2kbits/sframe= 3098 fps= 90 q=1.0 size= 57463kB time=00:02:34.90 bitrate=3039.0kbits/sframe= 3141 fps= 90 q=1.0 size= 58433kB time=00:02:37.04 bitrate=3048.0kbits/sframe= 3186 fps= 90 q=1.0 size= 59457kB time=00:02:39.33 bitrate=3057.0kbits/sframe= 3232 fps= 90 q=1.0 size= 60471kB time=00:02:41.59 bitrate=3065.6kbits/sframe= 3277 fps= 90 q=1.0 size= 61485kB time=00:02:43.82 bitrate=3074.5kbits/sframe= 3322 fps= 90 q=1.0 size= 62297kB time=00:02:46.11 bitrate=3072.3kbits/sframe= 3365 fps= 90 q=1.0 size= 63043kB time=00:02:48.27 bitrate=3069.0kbits/sframe= 3409 fps= 90 q=1.0 size= 63752kB time=00:02:50.46 bitrate=3063.7kbits/sframe= 3455 fps= 90 q=1.0 size= 64529kB time=00:02:52.75 bitrate=3060.0kbits/sframe= 3499 fps= 90 q=1.0 size= 65306kB time=00:02:54.96 bitrate=3057.7kbits/sframe= 3545 fps= 90 q=1.0 size= 66070kB time=00:02:57.24 bitrate=3053.6kbits/sframe= 3594 fps= 90 q=1.0 size= 66804kB time=00:02:59.71 bitrate=3045.1kbits/sframe= 3644 fps= 90 q=1.0 size= 67554kB time=00:03:02.18 bitrate=3037.6kbits/sframe= 3690 fps= 90 q=1.0 size= 68436kB time=00:03:04.48 bitrate=3038.8kbits/sframe= 3740 fps= 90 q=1.0 size= 69121kB time=00:03:07.00 bitrate=3028.0kbits/sframe= 3787 fps= 90 q=1.0 size= 69953kB time=00:03:09.33 bitrate=3026.7kbits/sframe= 3832 fps= 90 q=1.0 size= 70857kB time=00:03:11.59 bitrate=3029.7kbits/sframe= 3878 fps= 90 q=1.0 size= 71622kB time=00:03:13.92 bitrate=3025.6kbits/sframe= 3925 fps= 90 q=1.0 size= 72343kB time=00:03:16.25 bitrate=3019.8kbits/sframe= 3973 fps= 90 q=1.0 size= 73100kB time=00:03:18.64 bitrate=3014.5kbits/sframe= 4021 fps= 90 q=1.0 size= 73867kB time=00:03:21.07 bitrate=3009.5kbits/sframe= 4070 fps= 90 q=1.0 size= 74643kB time=00:03:23.53 bitrate=3004.2kbits/sframe= 4119 fps= 90 q=1.0 size= 75363kB time=00:03:25.95 bitrate=2997.6kbits/sframe= 4167 fps= 90 q=1.0 size= 76077kB time=00:03:28.35 bitrate=2991.1kbits/sframe= 4216 fps= 91 q=1.0 size= 76751kB time=00:03:30.77 bitrate=2983.0kbits/sframe= 4263 fps= 91 q=1.0 size= 77432kB time=00:03:33.15 bitrate=2975.9kbits/sframe= 4315 fps= 91 q=1.0 size= 78087kB time=00:03:35.73 bitrate=2965.1kbits/sframe= 4367 fps= 91 q=1.0 size= 78795kB time=00:03:38.34 bitrate=2956.3kbits/sframe= 4418 fps= 91 q=1.0 size= 79475kB time=00:03:40.90 bitrate=2947.2kbits/sframe= 4469 fps= 91 q=1.0 size= 80174kB time=00:03:43.46 bitrate=2939.1kbits/sframe= 4519 fps= 91 q=1.0 size= 80865kB time=00:03:45.90 bitrate=2932.4kbits/sframe= 4567 fps= 91 q=1.0 size= 81621kB time=00:03:48.32 bitrate=2928.4kbits/sframe= 4611 fps= 91 q=1.0 size= 82613kB time=00:03:50.56 bitrate=2935.2kbits/sframe= 4655 fps= 91 q=1.0 size= 83653kB time=00:03:52.80 bitrate=2943.7kbits/sframe= 4699 fps= 91 q=1.0 size= 84646kB time=00:03:54.97 bitrate=2951.1kbits/sframe= 4743 fps= 91 q=1.0 size= 85543kB time=00:03:57.20 bitrate=2954.3kbits/sframe= 4789 fps= 91 q=1.0 size= 86344kB time=00:03:59.42 bitrate=2954.3kbits/sframe= 4836 fps= 91 q=1.0 size= 87090kB time=00:04:01.79 bitrate=2950.6kbits/sframe= 4883 fps= 91 q=1.0 size= 87821kB time=00:04:04.17 bitrate=2946.4kbits/sframe= 4930 fps= 91 q=1.0 size= 88571kB time=00:04:06.50 bitrate=2943.5kbits/sframe= 4977 fps= 91 q=1.0 size= 89318kB time=00:04:08.85 bitrate=2940.3kbits/sframe= 5024 fps= 91 q=1.0 size= 90014kB time=00:04:11.18 bitrate=2935.7kbits/sframe= 5070 fps= 91 q=1.0 size= 90743kB time=00:04:13.55 bitrate=2931.8kbits/sframe= 5120 fps= 91 q=1.0 size= 91438kB time=00:04:16.00 bitrate=2926.0kbits/sframe= 5165 fps= 91 q=1.0 size= 92265kB time=00:04:18.28 bitrate=2926.4kbits/sframe= 5211 fps= 91 q=1.0 size= 93079kB time=00:04:20.56 bitrate=2926.3kbits/sframe= 5258 fps= 91 q=1.0 size= 93913kB time=00:04:22.87 bitrate=2926.6kbits/sframe= 5304 fps= 91 q=1.0 size= 94739kB time=00:04:25.20 bitrate=2926.4kbits/sframe= 5351 fps= 91 q=1.0 size= 95565kB time=00:04:27.60 bitrate=2925.5kbits/sframe= 5398 fps= 91 q=1.0 size= 96368kB time=00:04:29.90 bitrate=2924.9kbits/sframe= 5444 fps= 91 q=1.0 size= 97176kB time=00:04:32.16 bitrate=2924.9kbits/sframe= 5490 fps= 91 q=1.0 size= 98049kB time=00:04:34.54 bitrate=2925.6kbits/sframe= 5538 fps= 91 q=1.0 size= 98914kB time=00:04:36.91 bitrate=2926.1kbits/sframe= 5587 fps= 91 q=1.0 size= 99817kB time=00:04:39.36 bitrate=2927.0kbits/sframe= 5636 fps= 91 q=1.0 size= 100709kB time=00:04:41.83 bitrate=2927.3kbits/sframe= 5682 fps= 91 q=1.0 size= 101490kB time=00:04:44.11 bitrate=2926.3kbits/sframe= 5732 fps= 91 q=1.0 size= 102230kB time=00:04:46.60 bitrate=2922.0kbits/sframe= 5781 fps= 91 q=1.0 size= 102991kB time=00:04:49.07 bitrate=2918.6kbits/sframe= 5827 fps= 91 q=1.0 size= 103918kB time=00:04:51.35 bitrate=2921.8kbits/sframe= 5874 fps= 92 q=1.0 size= 104873kB time=00:04:53.73 bitrate=2924.9kbits/sframe= 5921 fps= 92 q=1.0 size= 105844kB time=00:04:56.08 bitrate=2928.5kbits/sframe= 5970 fps= 92 q=1.0 size= 106670kB time=00:04:58.50 bitrate=2927.4kbits/sframe= 6028 fps= 92 q=1.0 size= 108198kB time=00:05:01.43 bitrate=2940.5kbits/sframe= 6080 fps= 91 q=1.0 size= 109527kB time=00:05:03.99 bitrate=2951.5kbits/sframe= 6138 fps= 92 q=1.0 size= 110623kB time=00:05:06.85 bitrate=2953.3kbits/sframe= 6156 fps= 92 q=1.0 Lsize= 111017kB time=00:05:07.85 bitrate=2954.2kbits/s dup=0 drop=3067

    video:97193kB audio:13354kB global headers:0kB muxing overhead 0.425158%

    Where is my problem ?

  • Achieving very poor fps for my iphone app for decode + display h264 frames using ffmpeg and opengl

    29 décembre 2015, par sam18

    I have three steps process for my application which display h264 frame on iPhone screen.

    1. decode using ffmpeg.
    2. scale and colorspace conversion (scale to 256 X 256 Opengl ES 1 texture and convert colospace from yuv420p to rgb565 using sws_Scale from ffmpeg).
    3. Render opengl 1 texture to frame buffer to render buffer

    after these three step process, I got my picture on iPhone screen.

    When I was testing the performance for 720 X 576 resolution frames, I obtain very poor FPS. It is reaching max to 180 milliseconds and hence resulting into 5 to 6 FPS.

    Any direction will be grateful.

  • Greed is Good ; Greed Works

    25 novembre 2010, par Multimedia Mike — VP8

    Greed, for lack of a better word, is good ; Greed works. Well, most of the time. Maybe.

    Picking Prediction Modes
    VP8 uses one of 4 prediction modes to predict a 16x16 luma block or 8x8 chroma block before processing it (for luma, a block can also be broken into 16 4x4 blocks for individual prediction using even more modes).

    So, how to pick the best predictor mode ? I had no idea when I started writing my VP8 encoder. I did not read any literature on the matter ; I just sat down and thought of a brute-force approach. According to the comments in my code :

    // naive, greedy algorithm :
    //   residual = source - predictor
    //   mean = mean(residual)
    //   residual -= mean
    //   find the max diff between the mean and the residual
    // the thinking is that, post-prediction, the best block will
    // be comprised of similar samples
    

    After removing the predictor from the macroblock, individual 4x4 subblocks are put through a forward DCT and quantized. Optimal compression in this scenario results when all samples are the same since only the DC coefficient will be non-zero. Failing that, when the input samples are at least similar to each other, few of the AC coefficients will be non-zero, which helps compression. When the samples are all over the scale, there aren’t a whole lot of non-zero coefficients unless you crank up the quantizer, which results in poor quality in the reconstructed subblocks.

    Thus, my goal was to pick a prediction mode that, when applied to the input block, resulted in a residual in which each element would feature the least deviation from the mean of the residual (relative to other prediction choices).

    Greedy Approach
    I realized that this algorithm falls into the broad general category of "greedy" algorithms— one that makes locally optimal decisions at each stage. There are most likely smarter algorithms. But this one was good enough for making an encoder that just barely works.

    Compression Results
    I checked the total file compression size on my usual 640x360 Big Buck Bunny logo image while forcing prediction modes vs. using my greedy prediction picking algorithm. In this very simple test, DC-only actually resulted in slightly better compression than the greedy algorithm (which says nothing about overall quality).

    prediction mode quantizer index = 0 (minimum) quantizer index = 10
    greedy 286260 98028
    DC 280593 95378
    vertical 297206 105316
    horizontal 295357 104185
    TrueMotion 311660 113480

    As another data point, in both quantizer cases, my greedy algorithm selected a healthy mix of prediction modes :

    • quantizer index 0 : DC = 521, VERT = 151, HORIZ = 183, TM = 65
    • quantizer index 10 : DC = 486, VERT = 167, HORIZ = 190, TM = 77

    Size vs. Quality
    Again, note that this ad-hoc test only measures one property (a highly objective one)— compression size. It did not account for quality which is a far more controversial topic that I have yet to wade into.