
Recherche avancée
Autres articles (109)
-
Personnaliser en ajoutant son logo, sa bannière ou son image de fond
5 septembre 2013, parCertains 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 ;
-
Le profil des utilisateurs
12 avril 2011, parChaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...) -
Publier sur MédiaSpip
13 juin 2013Puis-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 (11257)
-
H.264 and VP8 for still image coding : WebP ?
Update : post now contains a Theora comparison as well ; see below.
JPEG is a very old lossy image format. By today’s standards, it’s awful compression-wise : practically every video format since the days of MPEG-2 has been able to tie or beat JPEG at its own game. The reasons people haven’t switched to something more modern practically always boil down to a simple one — it’s just not worth the hassle. Even if JPEG can be beaten by a factor of 2, convincing the entire world to change image formats after 20 years is nigh impossible. Furthermore, JPEG is fast, simple, and practically guaranteed to be free of any intellectual property worries. It’s been tried before : JPEG-2000 first, then Microsoft’s JPEG XR, both tried to unseat JPEG. Neither got much of anywhere.
Now Google is trying to dump yet another image format on us, “WebP”. But really, it’s just a VP8 intra frame. There are some obvious practical problems with this new image format in comparison to JPEG ; it doesn’t even support all of JPEG’s features, let alone many of the much-wanted features JPEG was missing (alpha channel support, lossless support). It only supports 4:2:0 chroma subsampling, while JPEG can handle 4:2:2 and 4:4:4. Google doesn’t seem interested in adding any of these features either.
But let’s get to the meat and see how these encoders stack up on compressing still images. As I explained in my original analysis, VP8 has the advantage of H.264′s intra prediction, which is one of the primary reasons why H.264 has such an advantage in intra compression. It only has i4x4 and i16x16 modes, not i8x8, so it’s not quite as fancy as H.264′s, but it comes close.
The test files are all around 155KB ; download them for the exact filesizes. For all three, I did a binary search of quality levels to get the file sizes close. For x264, I encoded with
--tune stillimage --preset placebo
. For libvpx, I encoded with--best
. For JPEG, I encoded with ffmpeg, then applied jpgcrush, a lossless jpeg compressor. I suspect there are better JPEG encoders out there than ffmpeg ; if you have one, feel free to test it and post the results. The source image is the 200th frame of Parkjoy, from derf’s page (fun fact : this video was shot here ! More info on the video here.).Files : (x264 [154KB], vp8 [155KB], jpg [156KB])
Results (decoded to PNG) : (x264, vp8, jpg)
This seems rather embarrassing for libvpx. Personally I think VP8 looks by far the worst of the bunch, despite JPEG’s blocking. What’s going on here ? VP8 certainly has better entropy coding than JPEG does (by far !). It has better intra prediction (JPEG has just DC prediction). How could VP8 look worse ? Let’s investigate.
VP8 uses a 4×4 transform, which tends to blur and lose more detail than JPEG’s 8×8 transform. But that alone certainly isn’t enough to create such a dramatic difference. Let’s investigate a hypothesis — that the problem is that libvpx is optimizing for PSNR and ignoring psychovisual considerations when encoding the image… I’ll encode with
--tune psnr --preset placebo
in x264, turning off all psy optimizations.Files : (x264, optimized for PSNR [154KB]) [Note for the technical people : because adaptive quantization is off, to get the filesize on target I had to use a CQM here.]
Results (decoded to PNG) : (x264, optimized for PSNR)
What a blur ! Only somewhat better than VP8, and still worse than JPEG. And that’s using the same encoder and the same level of analysis — the only thing done differently is dropping the psy optimizations. Thus we come back to the conclusion I’ve made over and over on this blog — the encoder matters more than the video format, and good psy optimizations are more important than anything else for compression. libvpx, a much more powerful encoder than ffmpeg’s jpeg encoder, loses because it tries too hard to optimize for PSNR.
These results raise an obvious question — is Google nuts ? I could understand the push for “WebP” if it was better than JPEG. And sure, technically as a file format it is, and an encoder could be made for it that’s better than JPEG. But note the word “could”. Why announce it now when libvpx is still such an awful encoder ? You’d have to be nuts to try to replace JPEG with this blurry mess as-is. Now, I don’t expect libvpx to be able to compete with x264, the best encoder in the world — but surely it should be able to beat an image format released in 1992 ?
Earth to Google : make the encoder good first, then promote it as better than the alternatives. The reverse doesn’t work quite as well.
Addendum (added Oct. 2, 03:51) :
maikmerten gave me a Theora-encoded image to compare as well. Here’s the PNG and the source (155KB). And yes, that’s Theora 1.2 (Ptalarbvorm) beating VP8 handily. Now that is embarassing. Guess what the main new feature of Ptalarbvorm is ? Psy optimizations…
Addendum (added Apr. 20, 23:33) :
There’s a new webp encoder out, written from scratch by skal (available in libwebp). It’s significantly better than libvpx — not like that says much — but it should probably beat JPEG much more readily now. The encoder design is rather unique — it basically uses K-means for a large part of the encoding process. It still loses to x264, but that was expected.
[155KB] -
Podcast Producer 2 REST api
11 septembre 2009I’ve been working on documenting the REST api that PCP2 uses for client server communication as part of a new project. I thought it might be useful to other folks. Consider this a work in progress - I’ve only documented the workflow for doing a multisource recording so far. Follow the job for the info.
Each section gives a sample command and a sample response.
All pages are behind basic HTTP auth.
General sequence of events
* get workflow list
* get cameras
* request status for camera (including thumbnail)
* start cameras
* create recording enclosure
* stop cameras, provide submission_UUID returned by above step, include title
*URL : https://pcpserver:8170/podcastproducer/info
*Type : GET
*Content : version=2
*Response :
<pre>
<podcast_producer_result>
<action>index</action>
<status>success</status>
<plist version="1.0">
<dict>
<key>server_version</key>
<string>2.0</string>
<key>http_auth_type</key>
<array>
<string>basic</string>
<string>digest</string>
<string>kerberos</string>
</array>
<key>krb_service_principals</key>
<array>
<string>pcast/x101-186-103-dhcp.cla.umn.edu@X101-186-103-DHCP.CLA.UMN.EDU</string>
</array>
<key>server_uuid</key>
<string>DB31DA49-10AE-472C-B3B9-86A8F8112399</string>
<key>cluster_members</key>
<dict>
<key>F1021B98-7E7E-44FB-8EB1-E0DA1885D5BA</key>
<dict>
<key>date_added</key>
<string>Tue Sep 01 10:23:49 -0500 2009</string>
<key>last_update</key>
<string>Tue Sep 08 10:35:17 -0500 2009</string>
<key>server_host</key>
<string>x101-186-103-dhcp.cla.umn.edu</string>
<key>server_port</key>
<string>8170</string>
<key>tunnel_agent_host</key>
<string>x101-186-103-dhcp.cla.umn.edu</string>
<key>tunnel_agent_port</key>
<string>8175</string>
<key>network_addrs</key>
<array>
<string>128.101.186.103</string>
</array>
</dict>
</dict>
</dict>
</plist>
</podcast_producer_result>
</pre>
* URL : https://pcpserver:8170/podcastproducer/workflows
* Type : GET
* Content : version=2&language=en
* Response :
<pre>
<podcast_producer_result>
<action>index</action>
<status>success</status>
<results>OK</results>
<plist version="1.0">
<dict>
<key>user_fullname</key>
<string>podcast</string>
<key>user_shortname</key>
<string>podcast</string>
<key>workflows</key>
<array>
<dict>
<key>name</key>
<string>Montage</string>
<key>title</key>
<string>Montage</string>
<key>description</key>
<string>Montage workflow</string>
<key>uuid</key>
<string>F797D54D-1539-42AA-B6AC-3CB3A4C15EF5</string>
<key>version</key>
<string>2.0</string>
<key>editor</key>
<string>Podcast Composer</string>
<key>sources</key>
<array>
<dict>
<key>contentTypes</key>
<array>
<string>com.apple.quicktime-movie</string>
<string>com.adobe.pdf</string>
<string>com.apple.iwork.keynote.key</string>
<string>com.apple.iwork.pages.pages</string>
<string>org.openxmlformats.wordprocessingml.document</string>
<string>com.microsoft.word.doc</string>
<string>org.openxmlformats.presentationml.presentation</string>
<string>com.microsoft.powerpoint.ppt</string>
<string>com.microsoft.bmp</string>
<string>com.compuserve.gif</string>
<string>public.jpeg-2000</string>
<string>public.jpeg</string>
<string>com.adobe.pdf</string>
<string>com.apple.pict</string>
<string>public.png</string>
<string>com.adobe.photoshop-image</string>
<string>com.sgi.sgi-image</string>
<string>com.truevision.tga-image</string>
<string>public.tiff</string>
</array>
<key>description</key>
<string>Any Document</string>
<key>isFolder</key>
<true/>
<key>isOptional</key>
<false/>
<key>sourceTypes</key>
<array>
<string>File</string>
</array>
</dict>
</array>
<key>user_requirements</key>
<array>
<string>Title</string>
<string>Description</string>
</array>
<key>access_control_entries</key>
<array>
</array>
</dict>
<dict>
<key>name</key>
<string>Single Source</string>
<key>title</key>
<string>Single Source</string>
<key>description</key>
<string>Single Source workflow</string>
<key>uuid</key>
<string>DEFA1587-A650-426E-92DA-01C5EB811705</string>
<key>version</key>
<string>2.0</string>
<key>editor</key>
<string>Podcast Composer</string>
<key>sources</key>
<array>
<dict>
<key>contentTypes</key>
<array>
<string>com.apple.quicktime-movie</string>
</array>
<key>description</key>
<string>Any Video</string>
<key>isFolder</key>
<false/>
<key>isOptional</key>
<false/>
<key>sourceTypes</key>
<array>
<string>Video</string>
<string>Screen</string>
<string>Audio</string>
<string>File</string>
</array>
</dict>
</array>
<key>user_requirements</key>
<array>
<string>Title</string>
<string>Description</string>
</array>
<key>access_control_entries</key>
<array>
</array>
</dict>
</array>
</dict>
</plist>
</podcast_producer_result>
</pre>
----* URL : https://pcpserver:8170/podcastproducer/cameras
* Type : GET
* Content : version=2
* Response :
<pre>
<podcast_producer_result>
<action>index</action>
<status>success</status>
<plist version="1.0">
<dict>
<key>cameras</key>
<array>
<dict>
<key>name</key>
<string>150-A Camera</string>
<key>uuid</key>
<string>307682A5-B552-4AFA-B7E2-3811D772C9A1</string>
<key>connected_to_member_uuid</key>
<string>F1021B98-7E7E-44FB-8EB1-E0DA1885D5BA</string>
<key>in_use</key>
<string>false</string>
<key>recording_status</key>
<string>online</string>
<key>preview_url</key>
<string>https://x101-186-103-dhcp.cla.umn.edu:8170/podcastproducer/previews/307682A5-B552-4AFA-B7E2-3811D772C9A1.jpg</string> ;
<key>access_control_entries</key>
<array>
</array>
</dict>
<dict>
<key>name</key>
<string>150-A Epiphan</string>
<key>uuid</key>
<string>CE610AB0-CA50-49EB-8FFE-78E57CDCA550</string>
<key>connected_to_member_uuid</key>
<string>F1021B98-7E7E-44FB-8EB1-E0DA1885D5BA</string>
<key>in_use</key>
<string>false</string>
<key>recording_status</key>
<string>online</string>
<key>preview_url</key>
<string>https://x101-186-103-dhcp.cla.umn.edu:8170/podcastproducer/previews/CE610AB0-CA50-49EB-8FFE-78E57CDCA550.jpg</string> ;
<key>access_control_entries</key>
<array>
</array>
</dict>
</array>
</dict>
</plist>
</podcast_producer_result>
</pre>
* URL : https://pcpserver:8170/podcastproducer/cameras/start
* Type : POST
* Content : action=pause&version=2&camera_name=150-A%20Camera&controller=cameras
* Response :
<pre>
<podcast_producer_result>
<action>start</action>
<status>success</status>
<results>OK</results>
</podcast_producer_result>
</pre>
* URL : https://pcpserver:8170/podcastproducer/cameras/status
* Type : POST
* Content : delay=0&action=start&version=2&camera_name=150-A%20Epiphan&controller=cameras
* Response :
<pre><podcast_producer_result>
<action>status</action>
<status>success</status>
<results>OK</results>
<plist version="1.0">
<dict>
<key>preview</key>
<string>https://x101-186-103-dhcp.cla.umn.edu:8170/podcastproducer/previews/307682A5-B552-4AFA-B7E2-3811D772C9A1.jpg</string> ;
<key>preview_image_data</key>
<string>RAW JPEG DATA RAW JPEG DATA RAW JPEG DATA RAW JPEG DATA RAW JPEG DATA</string>
<key>recording_status</key>
<string>online</string>
<key>started_at</key>
<string>Tue Sep 08 09:31:40 -0500 2009</string>
<key>stopped_at</key>
<string>Tue Sep 08 09:32:10 -0500 2009</string>
<key>elapsed</key>
<string>41</string>
<key>last_error</key>
<string>805306368</string>
</dict>
</plist>
</podcast_producer_result>
</pre>
* URL : https://pcpserver:8170/podcastproducer/cameras/pause
* Type : POST
* Content : action=pause&version=2&camera_name=150-A%20Camera&controller=cameras
* Response :
<pre><podcast_producer_result>
<action>status</action>
<status>success</status>
<results>OK</results>
<plist version="1.0">
<dict>
<key>preview</key>
<string>https://x101-186-103-dhcp.cla.umn.edu:8170/podcastproducer/previews/307682A5-B552-4AFA-B7E2-3811D772C9A1.jpg</string> ;
<key>recording_status</key>
<string>online</string>
<key>started_at</key>
<string>Tue Sep 08 09:31:40 -0500 2009</string>
<key>stopped_at</key>
<string>Tue Sep 08 09:32:10 -0500 2009</string>
<key>elapsed</key>
<string>41</string>
<key>last_error</key>
<string>805306368</string>
</dict>
</plist>
</podcast_producer_result></pre>
* URL : https://pcpserver:8170/podcastproducer/cameras/stop
* Type : POST
* Content : workflow_name=&UserMetadata_Description=&submission_uuid=7497E3AC-0A75-4C7C-8C66-26294C9274FE&action=stop&version=2&camera_name=150-A%20Epiphan&controller=cameras&UserMetadata_Title=Test123
* Response :
<pre><podcast_producer_result>
<action>stop</action>
<status>success</status>
<results>OK</results>
</podcast_producer_result>
</pre>
* URL : https://pcpserver:8170/podcastproducer/recordings/create
* Type : POST
* Content : version=2&workflow_uuid=C6EF52A7-04E3-477D-9F38-6B61F108D7B9
* Response :
<pre>
<podcast_producer_result>
<action>create</action>
<status>success</status>
<results>OK</results>
<plist version="1.0">
<dict>
<key>workflow_uuid</key>
<string>C6EF52A7-04E3-477D-9F38-6B61F108D7B9</string>
<key>recording_uuid</key>
<string>FD5A1459-F7CE-41FA-8155-049DF774298B</string>
<key>submission_uuids</key>
<array>
<string>A626D8E4-E439-4E57-9982-DB4BD035CB41</string>
<string>CFBCCB74-A41F-42D3-BEAA-58165B1116C6</string>
</array>
</dict>
</plist>
</podcast_producer_result>
</pre> -
Nexus One
19 mars 2010, par Mans — UncategorizedI have had a Nexus One for about a week (thanks Google), and naturally I have an opinion or two about it.
Hardware
With the front side dominated by a touch-screen and a lone, round button, the Nexus One appearance is similar to that of most contemporary smartphones. The reverse sports a 5 megapixel camera with LED flash, a Google logo, and a smaller HTC logo. Power button, volume control, and headphone and micro-USB sockets are found along the edges. It is with appreciation I note the lack of a front-facing camera ; the silly idea of video calls is finally put to rest.
Powering up the phone (I’m beginning to question the applicability of that word), I am immediately enamoured with the display. At 800×480 pixels, the AMOLED display is crystal-clear and easily viewable even in bright light. In a darker environment, the display automatically dims. The display does have one quirk in that the subpixel pattern doesn’t actually have a full RGB triplet for each pixel. The close-up photo below shows the pattern seen when displaying a solid white colour.
The result of this is that fine vertical lines, particularly red or blue ones, look a bit jagged. Most of the time this is not much of a problem, and I find it an acceptable compromise for the higher effective resolution it provides.
Basic interaction
The Android system is by now familiar, and the Nexus offers no surprises in basic usage. All the usual applications come pre-installed : browser, email, calendar, contacts, maps, and even voice calls. Many of the applications integrate with a Google account, which is nice. Calendar entries, map placemarks, etc. are automatically shared between desktop and mobile. Gone is the need for the bug-ridden custom synchronisation software with which mobile phones of the past were plagued.
Launching applications is mostly speedy, and recently used apps are kept loaded as long as memory needs allow. Although this garbage-collection-style of application management, where you are never quite sure whether an app is still running, takes a few moments of acclimatisation, it works reasonably well in day to day use. Most of the applications are well-behaved and save their data before terminating.
Email
Two email applications are included out of the box : one generic and one Gmail-only. As I do not use Gmail, I cannot comment on this application. The generic email client supports IMAP, but is rather limited in functionality. Fortunately, a much-enhanced version, K-9, is available for download. The main feature I find lacking here is threaded message view.
The features, or lack thereof, in the email applications is not, however, of huge importance, as composing email, or any longer piece of text, is something one rather avoids on a system like this. The on-screen keyboard, while falling among the better of its kind, is still slow to use. Lack of tactile feedback means accidentally tapping the wrong key is easily done, and entering numbers or punctuation is an outright chore.
Browser
Whatever the Nexus lacks in email abilities, it makes up for with the browser. Surfing the web on a phone has never been this pleasant. Page rendering is quick, and zooming is fast and simple. Even pages not designed for mobile viewing are easy to read with smart reformatting almost entirely eliminating the sideways scrolling which hampered many a mobile browser of old.
Calls and messaging
Being a phone, the Nexus One is obviously able to make and receive calls, and it does so with ease. Entering a number or locating a stored contact are both straight-forward operations. During a call, audio is clear and of adequate loudness, although I have yet to use the phone in really noisy surroundings.
The other traditional task of a mobile phone, messaging, is also well-supported. There isn’t really much to say about this.
Multimedia
Having a bit of an interest in most things multimedia, I obviously tested the capabilities of the Nexus by throwing some assorted samples at it, revealing ample space for improvement. With video limited to H.264 and MPEG4, and the only supported audio codecs being AAC, MP3, Vorbis, and AMR, there are many files which will not play.
To make matters worse, only selected combinations of audio and video will play together. Several video files I tested played without sound, yet when presented with the very same audio data alone, it was correctly decoded. As for container formats, it appears restricted to MP4/MOV, and Ogg (for Vorbis). AVI files are recognised as media files, but I was unable to find an AVI file which would play.
With a device clearly capable of so much more, the poor multimedia support is nothing short of embarrassing.
The Market
Much of the hype surrounding Android revolves around the Market, Google’s virtual marketplace for app authors to sell or give away their creations. The thousands of available applications are broadly categorised, and a search function is available.
The categorised lists are divided into free and paid sections, while search results, disappointingly, are not. To aid the decision, ratings and comments are displayed alongside the summary and screenshots of each application. Overall, the process of finding and installing an application is mostly painless. While it could certainly be improved, it could also have been much worse.
The applications themselves are, as hinted above, beyond numerous. Sadly, quality does not quite match up to quantity. The vast majority of the apps are pointless, though occasionally mildly amusing, gimmicks of no practical value. The really good ones, and they do exist, are very hard to find unless one knows precisely what to look for.
Battery
Packing great performance into a pocket-size device comes with a price in battery life. The battery in the Nexus lasts considerably shorter time than that in my older, less feature-packed Nokia phone. To some extent this is probably a result of me actually using it a lot more, yet the end result is the same : more frequent recharging. I should probably get used to the idea of recharging the phone every other night.
Verdict
The Nexus One is a capable hardware platform running an OS with plenty of potential. The applications are still somewhat lacking (or very hard to find), although the basic features work reasonably well. Hopefully future Android updates will see more and better core applications integrated, and I imagine that over time, I will find third-party apps to solve my problems in a way I like. I am not putting this phone on the shelf just yet.