mercredi 16 juin 2010

Content Aware Video Encoding

It’s a thought I had since a few years, but recently I was inspired again by the Football World Cup going on in South Africa, so I decided to write about it.
The purpose is to improve video encoding in order to reduce network congestion by unicast/multicast video streams when diffusing a common broadcast show like a football game. The idea is to encode the video stream while considering what we already know about its content. In fact since we already know a lot of information about the specific content, for example the football field will be green!, we can try to use this information in the coding process, so we can somehow decrease the "entropy" of the stream and thus increase the compression of the video, and saving this way more bandwidth.

I can give many examples in the case of the football game:

1 - Decrease bits used to represent the green field, but conserving the quality of bits representing white strips on the field.
2 - Decrease bits used to represent the fans in the stadium, if the view is distant!
3 - Encode positions of players
4 - Focus on THE BALL!
5 - Players uniforms are the same for each team, use this information!!!

In fact essential information for watcher must be highly encoded, other information in a lower quality.

This kind of encoding would be possible for other kind of broadcast shows, for example a politician speech, where the background doesn't move, and is not important! this way each kind of broadcast show can have its own encoder. I called this Content Aware Video Encoding (CAVE, sexy name no? :) ).

I don't know how technically can this be implemented, but its worth studying to see how much we can reduce bandwidth using these kind of algorithms. A major criteria for adopting a possible CAVE encoder is the quality of the video, and the complexity of the algorithm. A drawback of CAVE is the need of alot of encoders for different shows. This might be critical on low resources devices such as mobile telephones.

vendredi 4 juin 2010

Panoramic Video Streaming with RTSP

The Real Time Streaming Protocol (RTSP) is a protocol developed by the Internet Engineering Task Force (IETF) and published as RFC 2326 in 1998. RTSP is a network protocol designed to control the streaming of a media server.
In a simple scenario, you would like to watch a video on a media server. Using your RTSP client (the famous VideoLAN VLC for example), you control the streaming session on your media server (Darwin Streaming Server for example). The client sends at first a DESCRIBE message to the server to get description of the video: codecs, parameters, ports... Once the client knows how to connect to the server it sends a SETUP message to reserve resources on the server for the streaming session. Then the client controls the session by PLAY/PAUSE messages. Finally when the client decides to end the session, it sends a TEARDOWN message to free allocated resources on the server.
Streamed videos are being revolutionized: High Definition Videos, 3D videos… Those new concepts are gaining more and more popularity and rapidly being deployed. RTSP as it is today is capable of supporting these technologies. For example in 3D videos, the 3D layer can be considered as an additional media to audio and basic video, and all medias will be controlled simultaneously by RTSP.
Recently I stopped on a new Concept: Panoramic videos. In these videos, the user can choose any direction in 360 degrees at any moment for his view. It’s an interactive video. Immersive Media Company is a leading provider for such solutions. I recommend checking this demo video at their website:



I was thinking about the feasibility of this kind of video using RTSP. First, the media server must be capable of receiving information about the desired direction of view, then project his video data into this direction and stream it to the client. The client will perceive it as a single stream.
Now we have to find a way to control the view direction of the video using RTSP. Fortunately there is a mechanism in RTSP that allows it: using the GET_PARAMETER and SET_PARAMETER messages.
The message flow starts as usual with OPTIONS, DESCRIBE, SETUP and PLAY. In the response to the OPTIONS message the server must allow GET_PARAMETER and SET_PARAMETER requests. After PLAY, the client would like to know the initial angle from which the server has started streaming. To do this, the client sends the following request:

            GET_PARAMETER rtsp://example.com/fizzle/foo RTSP/1.0
            CSeq: 431
            Content-Type: text/parameters
            Session: 12345678
            Content-Length: 25

            inclination
            azimuth


where the azimuth and the inclination angles are the parameters received in the response that identifies the direction of the view:

            RTSP/1.0 200 OK
            CSeq: 431
            Content-Length: 46
            Content-Type: text/parameters

            inclination: 100
            azimuth: 150


Now the user decides to change the view direction. To do this, it sends the following request to the server:

            SET_PARAMETER rtsp://example.com/fizzle/foo RTSP/1.0
            CSeq: 441
            Content-length: 46
            Content-type: text/parameters

            inclination: 120
            azimuth: 160


if the operation is successful, the server sends a 200 OK, otherwise it sends a 451 Invalid Parameter response. In the successful case, the server must gradually change the orientation of the view for a good user experience.

The success of RTSP in supporting Panoramic videos depends on its reactivity to the user actions.

mercredi 2 juin 2010

Une approche motivationnelle du Green IT : La Prime Ecologique

Le bilan carbone d’une entreprise est constitué de deux composantes : une qui est maitrisée par la direction et l’autre par la masse salariale.
La direction par sa politique et le choix de ses investissements Green maitrise une partie du bilan carbone. Les exemples sont nombreux :
1    La politique du transport qui représente le pourcentage le plus important du bilan carbone (50%) : favoriser les transports non polluants comme le train (évidemment électrique), investir dans une navette privée pour le transport des salariés, encourager les visioconférences comme un alternatif vert du transport.
2    L’investissement dans des matériels informatiques (immobilisations) ayant une longue durée de vie et une consommation électrique minimale.
3    L’investissement dans des solutions de control de dépenses énergétiques, comme l’illumination sur détection de personnes, l’utilisation des technologies comme les Blades pour les serveurs dans les plateformes…
Par contre la direction ne maitrise pas une grande partie qui relève plus du comportement des salariés. Cette partie est une grande composante des charges fixes d’exploitation de l’entreprise.
Les salariés peuvent agir sur deux axes principaux pour la réduction de ces charges à la fois  écologiques et d’exploitation:
1.    La réduction de la consommation d’électricité, ex : éteindre les PC le soir, et à midi à la limite. Eteindre la lumière lorsqu’il fait jour.
2.    La réduction de l’utilisation des consommables, ex : Mug en verre à la place des gobelets en plastique, favoriser les versions électroniques des documents à la place des versions imprimés, et à la limite réduire les impressions par des économies de papiers (recto verso, pages multiples sur le même papier)

Jusqu’à maintenant il n’y a rien de nouveau. Ce que je propose c’est de distribuer l’écart entre la composante des charges fixes réelles maitrisées par les salariés, et la valeur planifiée de ces charges par la direction, sur les salariés eux même, sous forme de primes écologiques. Pour ce dire d’une autre façon plus simple : les économies faites par les salariés seront récompensées par des primes.
La valeur ajoutée (VA) se trouvera augmentée par le faite de la réduction des charges, et ce plus de VA sera distribué sur la masse salariale, donc il n’y aura aucun impact sur l’excédent brut d’exploitation de l’entreprise.

Bref, c’est une situation Win/Win :
•    Les salariés auront plus de rémunération.
•    Par le bais de ces prime, la direction motive les salariés à réduire leur part du bilan carbone, et ainsi, pour un même résultat d’exploitation, elle aura moins d’émissions CO2.  Cela pourrait être un élément positif dans la stratégie de l’entreprise, ou le Green It est l’un des positionnements les plus récents pour se différencier des concurrents.

Je souligne quand même les limites de cette proposition :
1.    Est-ce que les baisses de consommation produiront des primes assez attrayantes pour faire un effort ? un collaborateur ne sera pas trop motivé par 10 euros de plus par année.
2.    Est-ce que les autres joueurs de l’entreprise accepteront que le surplus de la valeur ajoutée va aux salaries ?
3.    La prime est repartie équitablement sur les salariés, et non pas en fonction de l’effort personnel, car il n’ya pas un moyen pratique de le faire. N’est il pas un facteur démotivant ?