mercredi 23 décembre 2015

Digital detox

I belong to generation Y and I know what it means to be addicted to smartphones, to Facebook, to Whatsapp... But as Socrates said: "I know that I don't know", i.e. I am conscious about it and trying to improve how I consume digital media in order to keep my psychological health in shape. There is a lot of articles on the subject, my goal is to share some tips and tricks from my personal experience. I will not discuss the dangers of social media (use of data, manipulation...) nor how digital is disconnecting us from reality (little birds singing on trees).

So why psychological health? because it's as important as physical health but we always tend to ignore it.
The first syndrome of digital addiction is decreasing concentration. Indeed, we are continually interrupted by notifications and can rarely focus on an idea for longtime, leading us to less mental efficiency and serenity.
The second syndrome is emotional dependency on "virtual". We humain beings need to be loved, to be noticed, to be surrounded. Evolutionary psychologists believe it is the result of years of evolution where humain beings, living in tribes, could not survive alone. Being ignored in a tribe means the risk of death and not passing his genes, thus we developed a warning mechanism associated with pain. Researchers have proved that the same areas of our brain are activated when we experience rejection or physical pain. Before digital era, people counted solely on family, on partner, on friendships to satisfy this need of belongingness. Nowadays we rely a lot on virtual "likes" of almost unknown people, which can be devastating when it disappears, because its just virtual!

So how am I trying to have a better control on all of this? here are four advices I am experimenting:
  • Use the right media for the right communication. For simplicity, let's consider that there are two types of communication: type A, important and need to reply or take actions rapidly, and type B the less important one. We should use an adapted channel for each type, for example type A requires a channel with instant notification, like SMS, and type B requires non instant channel like Facebook messaging. It means you should deactivate notification from Facebook, and never use it or let your contacts use it for important matters. That lets you avoid the need to check Facebook regularly for type A messages.
  • Separate being informed from being entertained. It should be clear in your mind, when you are consuming digital, whether you just want to lose time or obtain information. Personally, I have created two Facebook accounts: a first one where I have fun looking to friends posts and interacting with them, and a second one with no friends, but with only subscription to theater pages, news, articles, music... 
  • Put some constraints. I am testing for example the following constraints: keep the phone in your pocket hidden from your eyes, do not check your phone when in presence of others (good for respect too :)), log out each time you go to Facebook, power off phone at night, limit digital consuming time per day...
  • Be conscious of your usage. The first idea is to know how much you spend on your phone during a day. I tested an app on Android called Quality Time that shows you how much you use each app. I was shocked when I discovered that I can unlock my phone screen up to 200 times a day! The second idea, a very important one, is to ask yourself each time you want to use your smartphone why I am doing this? what motivated me? what am I looking for?

To be honest, I am still far from my goals, but I am happy to be conscious about it, and that's the most important step !

lundi 21 décembre 2015

Increase QoE of video streaming by optimizing the encoding of the video library

A week ago, Netflix engineers have revealed a project on which they were working for some time now to optimize the QoE of videos they are streaming to their subscribers. Their approach is based on video encoding settings in the back-end rather than focusing only on the front-end (peering, codec, streaming format, CDN..). The expected gain is 20% on overall traffic which is huge for a player who is accounting for more than third of the global internet traffic. Additionally, Netflix will be delivering better quality at the same connection bandwidth, which is critical for addressing emerging markets.

Content providers encode several representations of the same video asset, where each representation is formed by a bitrate and a resolution. below is an example of representations of a 4:3 main profile video according to Apple recommendations:

The goal of having several representations is serving the best one to the user according to his screen (TV  vs  mobile) and connection (4G, ADSL, FTTH..). With adaptive streaming, the same user can change the representation during video play in order to adapt to the connection bandwidth variation. 

So far content providers encoded all their video assets with the same set of representations. Netflix noticed that it doesn't make sense because for the same quality/resolution a cartoon movie requires less bitrate that an action film. Each video asset has its own "entropy" that should be taken into consideration when generating the representation set. This what Netflix is doing with their per-title encoding approach. 

In order to know what is the best representation set for a title, Netflix will encode at different resolutions (480p, 720p, 1080p...), then for each resolution they will draw the "exponential" curve of quality (PSNR) vs encoding bitrate (black, green and blue curves). Notice that a 720p @ 400Kbps representation will have a worse quality than a 480p representation encoded at the same bitrate and upscaled to 720p. The optimal representation set will be the set of dots close to the red curve.

Of course this approach will cost more computing resources in the video preparation workflow, but the gains are worth it.

On the same subject, I read this interesting scientific article, where they propose not only looking to the type of the title (cartoon vs action film...) but also to its popularity, to the limits of contracted CDN capacity, of users screen resolution, of users connection, video storage... They make interesting findings on the optimal representation set:
  • Titles with high "entropy" like action film requires more representations than low "entropy" titles like cartoons.
  • The number of representations per resolution is dependent on the distribution of devices: HDTV vs mobile phones.
  • For a given resolution, lower bitrates are closer one to the other than higher bitrates.
Of course these are the conclusions of the test conditions. It can be different for exemple if we consider a content provider targeting only mobile devices in emerging markets.

As the environment of the content provider is smoothly changing (proliferation of mobile devices, conquer strategies for emerging markets with low bandwidth connections, title popularity changing, versatile peering agreements...) I guess it would be interesting to dynamically re-encode in a continuous way the representations of the video library in order to guarantee the best global user QoE with respect to constraints imposed by this moving environment.