SlideShare a Scribd company logo
1 of 23
Download to read offline
REINVENTING VIDEO CHAT!
	
  
!  Rabbit	
  is	
  a	
  new	
  way	
  to	
  share	
  live	
  experiences	
  with	
  anyone,	
  anywhere	
  
!  The	
  core	
  product	
  is	
  a	
  plaMorm	
  that	
  enables	
  unlimited	
  video	
  chat	
  and	
  content	
  sharing	
  
!  Backed	
  by	
  Google	
  Ventures,	
  CrunchFund	
  and	
  Michael	
  Birch	
  
!  Launched	
  Private	
  Beta	
  in	
  February	
  on	
  Mac,	
  extending	
  to	
  Windows	
  and	
  Web	
  in	
  Q1	
  2014	
  

2	
   |	
  	
  	
  RABBIT	
  	
  -­‐	
  REINVENTING	
  VIDEO	
  CHAT	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
DEMO	
  
!  Rabbit	
  is	
  currently	
  in	
  Beta	
  and	
  	
  available	
  on	
  Mac	
  OS	
  X	
  
!  We	
  are	
  working	
  closely	
  with	
  AMD	
  on	
  a	
  Windows	
  version	
  
!  We	
  expect	
  a	
  huge	
  performance	
  gain…	
  

Let’s see a demo…!

3	
   |	
  	
  	
  RABBIT	
  	
  -­‐	
  REINVENTING	
  VIDEO	
  CHAT	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
WHAT	
  IS	
  RABBIT	
  ?	
  	
  

Video chat with an unlimited number of people!
4	
   |	
  	
  	
  RABBIT	
  	
  -­‐	
  REINVENTING	
  VIDEO	
  CHAT	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
WHAT	
  IS	
  RABBIT	
  ?	
  

Unique video chat experience!
5	
   |	
  	
  	
  RABBIT	
  	
  -­‐	
  REINVENTING	
  VIDEO	
  CHAT	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
WHAT	
  IS	
  RABBIT	
  ?	
  

Share anything with everyone in a room!
6	
   |	
  	
  	
  RABBIT	
  	
  -­‐	
  REINVENTING	
  VIDEO	
  CHAT	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
WHAT	
  IS	
  RABBIT	
  ?	
  

Watch together!
7	
   |	
  	
  	
  RABBIT	
  	
  -­‐	
  REINVENTING	
  VIDEO	
  CHAT	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
CHALLENGES?	
  
!  In	
  short	
  Rabbit	
  allows:	
  
‒  Unlimited	
  number	
  of	
  people	
  in	
  video	
  chat	
  while	
  watching	
  content	
  together	
  
‒  Share	
  Anything	
  you	
  have	
  access	
  to	
  on	
  your	
  computer	
  
‒  Including	
  Audio…	
  
‒  All	
  that	
  with	
  a	
  unique	
  UI	
  and	
  UX…	
  
	
  

!  So	
  some	
  tech	
  challenges:	
  
‒  Stream	
  Audio/Video	
  of	
  30+	
  streams	
  of	
  LIVE	
  content	
  
‒  Render	
  30+	
  streams	
  with	
  Audio	
  Video	
  Synchronizadon	
  
‒  Guarantee	
  nice	
  and	
  dynamic	
  UI	
  at	
  60fps+	
  
‒  Screencast	
  any	
  App	
  running	
  on	
  your	
  computer	
  
‒  Audio	
  Capture,	
  Render	
  and	
  Processing….	
  	
  
‒  Allow	
  unlimited	
  number	
  of	
  people	
  to	
  join	
  a	
  room	
  

8	
   |	
  	
  	
  RABBIT	
  	
  -­‐	
  REINVENTING	
  VIDEO	
  CHAT	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
A	
  LOT	
  OF	
  STREAMS…	
  

9	
   |	
  	
  	
  RABBIT	
  	
  -­‐	
  REINVENTING	
  VIDEO	
  CHAT	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
A	
  LOT	
  OF	
  STREAMS…	
  

10	
   |	
  	
  	
  RABBIT	
  	
  -­‐	
  REINVENTING	
  VIDEO	
  CHAT	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
STREAM	
  A	
  LOT	
  OF	
  STREAMS	
  –	
  HOW?	
  
!  Star5ng	
  Point:	
  

‒  Use	
  Network	
  Friendly	
  Codecs:	
  vp8,	
  Speex	
  
‒  Use	
  Standards:	
  RTSP,	
  RTP,	
  RTCP	
  
‒  Use	
  open	
  source	
  library	
  for	
  network	
  (Live555)	
  
‒  Target	
  High	
  Bandwidth	
  Environment	
  

!  Issue:	
  
‒  Codec	
  makers:	
  
‒  Vp8	
  didn’t	
  output	
  video	
  quality	
  good	
  enough	
  for	
  real-­‐dme	
  encoding	
  when	
  we	
  started	
  	
  
‒  Opus	
  beker	
  than	
  Speex	
  for	
  audio	
  

‒  Standards	
  are	
  great,	
  but….	
  
‒  RTP/RTCP	
  has	
  port	
  rules	
  that	
  are	
  really	
  painful	
  (2	
  ports	
  per	
  stream)	
  
‒  RTSP:	
  command	
  structure	
  is	
  heavily	
  geared	
  toward	
  playing	
  movies	
  

‒  Live555	
  is	
  great	
  for	
  networking	
  and	
  streaming	
  but:	
  
‒  Single	
  Threaded	
  only	
  	
  
‒  Does	
  not	
  scale	
  past	
  100	
  streams	
  on	
  server	
  	
  
‒  Some	
  slow	
  network	
  code	
  (read	
  byte	
  by	
  byte,	
  etc..)	
  
‒  No	
  real	
  documentadon…	
  
11	
   |	
  	
  	
  RABBIT	
  	
  -­‐	
  REINVENTING	
  VIDEO	
  CHAT	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
STREAM	
  A	
  LOT	
  OF	
  STREAMS	
  –	
  HOW!	
  
	
  

‒ Custom	
  RTSP/RTP/RTCP	
  stack:	
  
‒ RTP	
  uses	
  one	
  port	
  for	
  all	
  streams	
  
‒ RTSP	
  stack	
  is	
  just	
  publish,	
  play	
  and	
  stop…	
  
‒ RTCP	
  implemented	
  pardally	
  for	
  our	
  needs	
  (live	
  streaming)	
  
‒ Custom	
  UDP	
  Framing/Deframing	
  	
  
‒ Error	
  Cancelladon	
  on	
  an	
  as-­‐needed	
  basis	
  

‒ Streaming	
  Server	
  (Hop)	
  developed	
  from	
  scratch	
  	
  
‒ Support	
  high	
  number	
  of	
  streams,	
  5k+	
  clients	
  simultaneously	
  
‒ Based	
  on	
  RTP	
  
‒ Deals	
  with	
  hole	
  punching	
  and	
  NATs	
  
‒ Only	
  one	
  port	
  used	
  for	
  streaming	
  
12	
   |	
  	
  	
  RABBIT	
  	
  -­‐	
  REINVENTING	
  VIDEO	
  CHAT	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
STREAM	
  A	
  LOT	
  OF	
  STREAMS	
  –	
  KEY	
  BENEFITS	
  WITH	
  AMD!	
  
!  While	
  our	
  network	
  layer	
  does	
  not	
  change,	
  our	
  encoding	
  and	
  decoding	
  pipeline	
  gets	
  great	
  benefits	
  from	
  
AMD	
  hardware.	
  
!  Encoding:	
  VCE	
  
‒  Designed	
  for	
  low	
  power	
  and	
  low	
  latency	
  encoding	
  (Ideal	
  for	
  real-­‐dme	
  encoding)	
  
‒  We	
  are	
  working	
  closely	
  with	
  AMD	
  to	
  use	
  it	
  for	
  all	
  our	
  encoding	
  needs	
  (5	
  different	
  streams	
  in	
  real	
  dme)	
  
‒  We	
  are	
  able	
  to	
  offload	
  all	
  our	
  encoding	
  from	
  CPU	
  (easy	
  interop	
  with	
  OpenCL)…	
  

!  Decoding:	
  UVD	
  
‒  Using	
  ffmpeg	
  for	
  automadc	
  hardware	
  decoding	
  using	
  UVD	
  via	
  DXVA	
  (simple	
  API	
  call)	
  
‒  When	
  we	
  do	
  computadon	
  (OpenCL/CV),	
  we	
  benefit	
  from	
  HSA	
  SVM	
  transparently	
  (less	
  memcopy)…	
  
‒  UVD	
  is	
  used	
  to	
  decode	
  most	
  of	
  our	
  incoming	
  streams.	
  

VCE and UVD are drastically lowering Rabbit’s CPU usage!
13	
   |	
  	
  	
  RABBIT	
  	
  -­‐	
  REINVENTING	
  VIDEO	
  CHAT	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
RENDER	
  A	
  LOT	
  OF	
  STREAMS	
  –	
  HOW?	
  

!  Where	
  we	
  started:	
  
‒  Let’s	
  decode	
  using	
  ffmpeg	
  
‒  Just	
  push	
  the	
  data	
  to	
  the	
  Cocoa	
  NSView	
  
‒  Just	
  push	
  Audio	
  to	
  the	
  speakers	
  

!  Issue:	
  
‒  Decoding	
  is	
  slow	
  and	
  falls	
  behind…	
  
‒  Simple	
  UIview	
  consumes	
  too	
  much	
  CPU	
  
‒  Audio	
  is	
  out	
  of	
  synch	
  and	
  can	
  be	
  choppy…	
  

14	
   |	
  	
  	
  RABBIT	
  	
  -­‐	
  REINVENTING	
  VIDEO	
  CHAT	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
RENDER	
  A	
  LOT	
  OF	
  STREAMS	
  –	
  HOW	
  !	
  
!  Full	
  control	
  of	
  UI	
  render	
  pipeline:	
  Go	
  OpenGL…	
  	
  
‒  A	
  lot	
  of	
  video	
  data	
  pushed	
  (15fps	
  or	
  30fps)	
  
‒  Minimize	
  memcpy	
  
‒  Use	
  shaders	
  for	
  render	
  opdmizadon	
  
‒  Be	
  smart	
  and	
  lean	
  on	
  the	
  endre	
  pipeline…	
  

!  Full	
  control	
  of	
  Audio	
  Pipeline	
  
‒  Minimize	
  memcpy	
  
‒  Use	
  Low	
  level	
  Audio	
  render	
  (Core	
  Audio)	
  

!  A/V	
  Synch	
  
‒  Buffer	
  both	
  streams	
  on	
  the	
  rendering	
  end	
  
‒  Synchronized	
  pushes	
  to	
  render	
  
‒  Cover	
  for	
  packet	
  loss	
  at	
  network	
  layer	
  

15	
   |	
  	
  	
  RABBIT	
  	
  -­‐	
  REINVENTING	
  VIDEO	
  CHAT	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
RENDER	
  A	
  LOT	
  OF	
  STREAMS	
  –	
  NOW	
  WITH	
  AMD!	
  

Capture	
  

Network	
  
In	
  

To	
  GPU	
  

To	
  GPU	
  

OpenCV	
  
filters	
  

Decode	
  

16	
   |	
  	
  	
  RABBIT	
  	
  -­‐	
  REINVENTING	
  VIDEO	
  CHAT	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  

Face	
  
Detect	
  

OpenCV	
  
filters	
  

Color	
  
Scale	
  
Crop	
  

Face	
  
Detect	
  

Encode	
  

Color	
  
Scale	
  
Crop	
  

To	
  CPU	
  

Network	
  
Out	
  

Render	
  
RENDER	
  A	
  LOT	
  OF	
  STREAMS	
  –	
  NOW	
  WITH	
  AMD!	
  
!  HSA:	
  
‒  HSA	
  seamlessly	
  shares	
  memory	
  directly	
  with	
  the	
  graphic	
  card…	
  fewer	
  copies	
  are	
  very	
  important	
  for	
  us	
  ;)	
  
‒  By	
  using	
  opdmized	
  Face	
  Detecdon,	
  we	
  plan	
  to	
  drasdcally	
  enhance	
  the	
  user	
  experience	
  (people	
  always	
  in	
  focus	
  in	
  all	
  
bubble,	
  etc…)	
  

!  OpenCL/OpenCV	
  :	
  	
  
‒  Scaling	
  /	
  pan	
  and	
  crop	
  offloaded	
  
‒  Adaptadve	
  bilateral	
  filter	
  (noise	
  reducdon)	
  
‒  CLAHE	
  filter	
  (normalize	
  light)	
  
‒  Scale	
  and	
  Crop	
  
‒  Audio	
  focus	
  calculadon	
  

17	
   |	
  	
  	
  RABBIT	
  	
  -­‐	
  REINVENTING	
  VIDEO	
  CHAT	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
RENDER	
  60	
  FPS	
  -­‐	
  HOW!	
  
!  Issue:	
  
‒  Graphics	
  look	
  choppy	
  in	
  most	
  Video	
  Chat	
  Apps	
  
‒  Priority	
  is	
  on	
  Video	
  not	
  Audio	
  
‒  Video	
  is	
  CPU	
  and	
  GPU	
  intensive	
  
‒  There	
  must	
  be	
  a	
  beker	
  way	
  ;)	
  

!  Rabbit	
  =	
  Full	
  game	
  engine:	
  
‒  Game	
  loop	
  
‒  Low	
  level	
  rendering	
  
‒  Nice	
  threading	
  to	
  handle	
  UI	
  separated	
  from	
  processing	
  
‒  Minimize	
  memcpy	
  and	
  memory	
  allocadon	
  
‒  And	
  lot	
  of	
  fun	
  opdmizadon	
  on	
  AMD	
  too;)	
  

Focus on UI/UX gives a very different feel!

18	
   |	
  	
  	
  RABBIT	
  	
  -­‐	
  REINVENTING	
  VIDEO	
  CHAT	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
SCREENCAST	
  ANY	
  APP	
  ?	
  

19	
   |	
  	
  	
  RABBIT	
  	
  -­‐	
  REINVENTING	
  VIDEO	
  CHAT	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
SCREENCAST	
  ANY	
  APP	
  –	
  HOW	
  ?	
  
!  Star5ng	
  point:	
  App	
  Capture…	
  Easy!	
  
‒  Let’s	
  capture	
  the	
  images	
  of	
  the	
  App	
  at	
  high	
  fps	
  
‒  Let’s	
  capture	
  the	
  audio	
  of	
  the	
  App	
  
‒  Let’s	
  broadcast…	
  

!  Issue:	
  
‒  Capturing	
  the	
  image	
  of	
  a	
  given	
  window	
  is	
  not	
  as	
  simple	
  as	
  capturing	
  the	
  full	
  desktop	
  
‒  App	
  only	
  audio	
  is	
  very	
  complex	
  to	
  capture	
  
‒  Nice	
  quality	
  broadcast	
  means	
  big	
  NAL	
  and	
  potendal	
  packet	
  loss	
  or	
  delay	
  

20	
   |	
  	
  	
  RABBIT	
  	
  -­‐	
  REINVENTING	
  VIDEO	
  CHAT	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
SCREENCAST	
  ANY	
  APP	
  –	
  HOW	
  ?	
  
!  Video	
  
‒  Real-­‐	
  dme	
  capture	
  of	
  an	
  App’s	
  window	
  
‒  Real-­‐dme	
  encoding	
  using	
  x264	
  on	
  Mac/VCE	
  on	
  AMD	
  	
  
‒  Slicing	
  used	
  
‒  Added	
  Forward	
  Error	
  Correcdon	
  (FEC)	
  layer	
  to	
  correct	
  loss	
  on	
  large	
  NALs	
  
	
  

!  Audio	
  
‒  No	
  way	
  to	
  capture	
  App	
  only	
  audio	
  on	
  Mac	
  
‒  Custom	
  audio	
  capture	
  of	
  system	
  audio	
  on	
  Mac	
  
‒  Real	
  dme	
  encoding	
  using	
  Opus	
  
‒  Added	
  custom	
  Error	
  Cancelladon	
  (EC)	
  to	
  support	
  audio	
  loss	
  
‒  Custom	
  render	
  of	
  full	
  Audio	
  (Rabbit	
  Ears)	
  

21	
   |	
  	
  	
  RABBIT	
  	
  -­‐	
  REINVENTING	
  VIDEO	
  CHAT	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
Q	
  &	
  A	
  

Quesdons?	
  

22	
   |	
  	
  	
  RABBIT	
  	
  -­‐	
  REINVENTING	
  VIDEO	
  CHAT	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  
DISCLAIMER	
  &	
  ATTRIBUTION	
  

The	
  informadon	
  presented	
  in	
  this	
  document	
  is	
  for	
  informadonal	
  purposes	
  only	
  and	
  may	
  contain	
  technical	
  inaccuracies,	
  omissions	
  and	
  typographical	
  errors.	
  
	
  
The	
  informadon	
  contained	
  herein	
  is	
  subject	
  to	
  change	
  and	
  may	
  be	
  rendered	
  inaccurate	
  for	
  many	
  reasons,	
  including	
  but	
  not	
  limited	
  to	
  product	
  and	
  roadmap	
  
changes,	
  component	
  and	
  motherboard	
  version	
  changes,	
  new	
  model	
  and/or	
  product	
  releases,	
  product	
  differences	
  between	
  differing	
  manufacturers,	
  sovware	
  
changes,	
  BIOS	
  flashes,	
  firmware	
  upgrades,	
  or	
  the	
  like.	
  AMD	
  assumes	
  no	
  obligadon	
  to	
  update	
  or	
  otherwise	
  correct	
  or	
  revise	
  this	
  informadon.	
  However,	
  AMD	
  
reserves	
  the	
  right	
  to	
  revise	
  this	
  informadon	
  and	
  to	
  make	
  changes	
  from	
  dme	
  to	
  dme	
  to	
  the	
  content	
  hereof	
  without	
  obligadon	
  of	
  AMD	
  to	
  nodfy	
  any	
  person	
  of	
  
such	
  revisions	
  or	
  changes.	
  
	
  
AMD	
  MAKES	
  NO	
  REPRESENTATIONS	
  OR	
  WARRANTIES	
  WITH	
  RESPECT	
  TO	
  THE	
  CONTENTS	
  HEREOF	
  AND	
  ASSUMES	
  NO	
  RESPONSIBILITY	
  FOR	
  ANY	
  
INACCURACIES,	
  ERRORS	
  OR	
  OMISSIONS	
  THAT	
  MAY	
  APPEAR	
  IN	
  THIS	
  INFORMATION.	
  
	
  
AMD	
  SPECIFICALLY	
  DISCLAIMS	
  ANY	
  IMPLIED	
  WARRANTIES	
  OF	
  MERCHANTABILITY	
  OR	
  FITNESS	
  FOR	
  ANY	
  PARTICULAR	
  PURPOSE.	
  IN	
  NO	
  EVENT	
  WILL	
  AMD	
  BE	
  
LIABLE	
  TO	
  ANY	
  PERSON	
  FOR	
  ANY	
  DIRECT,	
  INDIRECT,	
  SPECIAL	
  OR	
  OTHER	
  CONSEQUENTIAL	
  DAMAGES	
  ARISING	
  FROM	
  THE	
  USE	
  OF	
  ANY	
  INFORMATION	
  
CONTAINED	
  HEREIN,	
  EVEN	
  IF	
  AMD	
  IS	
  EXPRESSLY	
  ADVISED	
  OF	
  THE	
  POSSIBILITY	
  OF	
  SUCH	
  DAMAGES.	
  
	
  
ATTRIBUTION	
  
©	
  2013	
  Advanced	
  Micro	
  Devices,	
  Inc.	
  All	
  rights	
  reserved.	
  AMD,	
  the	
  AMD	
  Arrow	
  logo	
  and	
  combinadons	
  thereof	
  are	
  trademarks	
  of	
  Advanced	
  Micro	
  Devices,	
  
Inc.	
  in	
  the	
  United	
  States	
  and/or	
  other	
  jurisdicdons.	
  	
  SPEC	
  	
  is	
  a	
  registered	
  trademark	
  of	
  the	
  Standard	
  Performance	
  Evaluadon	
  Corporadon	
  (SPEC).	
  Other	
  
names	
  are	
  for	
  informadonal	
  purposes	
  only	
  and	
  may	
  be	
  trademarks	
  of	
  their	
  respecdve	
  owners.	
  
23	
   |	
  	
  	
  RABBIT	
  	
  -­‐	
  REINVENTING	
  VIDEO	
  CHAT	
  	
  	
  |	
  	
  	
  NOVEMBER	
  19,	
  2013	
  	
  	
  |	
  	
  	
  CONFIDENTIAL	
  

More Related Content

What's hot

WT-4073, ANGLE and cross-platform WebGL support, by Shannon Woods
WT-4073, ANGLE and cross-platform WebGL support, by Shannon WoodsWT-4073, ANGLE and cross-platform WebGL support, by Shannon Woods
WT-4073, ANGLE and cross-platform WebGL support, by Shannon WoodsAMD Developer Central
 
MM-4104, Smart Sharpen using OpenCL in Adobe Photoshop CC – Challenges and Ac...
MM-4104, Smart Sharpen using OpenCL in Adobe Photoshop CC – Challenges and Ac...MM-4104, Smart Sharpen using OpenCL in Adobe Photoshop CC – Challenges and Ac...
MM-4104, Smart Sharpen using OpenCL in Adobe Photoshop CC – Challenges and Ac...AMD Developer Central
 
PG-4039, RapidFire API, by Dmitry Kozlov
PG-4039, RapidFire API, by Dmitry KozlovPG-4039, RapidFire API, by Dmitry Kozlov
PG-4039, RapidFire API, by Dmitry KozlovAMD Developer Central
 
Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...
Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...
Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...AMD Developer Central
 
MM-4092, Optimizing FFMPEG and Handbrake Using OpenCL and Other AMD HW Capabi...
MM-4092, Optimizing FFMPEG and Handbrake Using OpenCL and Other AMD HW Capabi...MM-4092, Optimizing FFMPEG and Handbrake Using OpenCL and Other AMD HW Capabi...
MM-4092, Optimizing FFMPEG and Handbrake Using OpenCL and Other AMD HW Capabi...AMD Developer Central
 
PL-4050, An Introduction to SPIR for OpenCL Application Developers and Compil...
PL-4050, An Introduction to SPIR for OpenCL Application Developers and Compil...PL-4050, An Introduction to SPIR for OpenCL Application Developers and Compil...
PL-4050, An Introduction to SPIR for OpenCL Application Developers and Compil...AMD Developer Central
 
CE-4028, Miracast with AMD Wireless Display technology – Kickass gaming and o...
CE-4028, Miracast with AMD Wireless Display technology – Kickass gaming and o...CE-4028, Miracast with AMD Wireless Display technology – Kickass gaming and o...
CE-4028, Miracast with AMD Wireless Display technology – Kickass gaming and o...AMD Developer Central
 
PT-4058, Measuring and Optimizing Performance of Cluster and Private Cloud Ap...
PT-4058, Measuring and Optimizing Performance of Cluster and Private Cloud Ap...PT-4058, Measuring and Optimizing Performance of Cluster and Private Cloud Ap...
PT-4058, Measuring and Optimizing Performance of Cluster and Private Cloud Ap...AMD Developer Central
 
PL-4051, An Introduction to SPIR for OpenCL Application Developers and Compil...
PL-4051, An Introduction to SPIR for OpenCL Application Developers and Compil...PL-4051, An Introduction to SPIR for OpenCL Application Developers and Compil...
PL-4051, An Introduction to SPIR for OpenCL Application Developers and Compil...AMD Developer Central
 
PT-4055, Optimizing Raytracing on GCN with AMD Development Tools, by Tzachi C...
PT-4055, Optimizing Raytracing on GCN with AMD Development Tools, by Tzachi C...PT-4055, Optimizing Raytracing on GCN with AMD Development Tools, by Tzachi C...
PT-4055, Optimizing Raytracing on GCN with AMD Development Tools, by Tzachi C...AMD Developer Central
 
GS-4106 The AMD GCN Architecture - A Crash Course, by Layla Mah
GS-4106 The AMD GCN Architecture - A Crash Course, by Layla MahGS-4106 The AMD GCN Architecture - A Crash Course, by Layla Mah
GS-4106 The AMD GCN Architecture - A Crash Course, by Layla MahAMD Developer Central
 
WT-4066, The Making of Turbulenz’ Polycraft WebGL Benchmark, by Ian Ballantyne
WT-4066, The Making of Turbulenz’ Polycraft WebGL Benchmark, by Ian BallantyneWT-4066, The Making of Turbulenz’ Polycraft WebGL Benchmark, by Ian Ballantyne
WT-4066, The Making of Turbulenz’ Polycraft WebGL Benchmark, by Ian BallantyneAMD Developer Central
 
PL-4044, OpenACC on AMD APUs and GPUs with the PGI Accelerator Compilers, by ...
PL-4044, OpenACC on AMD APUs and GPUs with the PGI Accelerator Compilers, by ...PL-4044, OpenACC on AMD APUs and GPUs with the PGI Accelerator Compilers, by ...
PL-4044, OpenACC on AMD APUs and GPUs with the PGI Accelerator Compilers, by ...AMD Developer Central
 
PL-4042, Wholly Graal: Accelerating GPU offload for Java/Sumatra using the Op...
PL-4042, Wholly Graal: Accelerating GPU offload for Java/Sumatra using the Op...PL-4042, Wholly Graal: Accelerating GPU offload for Java/Sumatra using the Op...
PL-4042, Wholly Graal: Accelerating GPU offload for Java/Sumatra using the Op...AMD Developer Central
 
WT-4069, WebCL: Enabling OpenCL Acceleration of Web Applications, by Mikael ...
WT-4069, WebCL: Enabling OpenCL Acceleration of Web Applications, by  Mikael ...WT-4069, WebCL: Enabling OpenCL Acceleration of Web Applications, by  Mikael ...
WT-4069, WebCL: Enabling OpenCL Acceleration of Web Applications, by Mikael ...AMD Developer Central
 
MM-4085, Designing a game audio engine for HSA, by Laurent Betbeder
MM-4085, Designing a game audio engine for HSA, by Laurent BetbederMM-4085, Designing a game audio engine for HSA, by Laurent Betbeder
MM-4085, Designing a game audio engine for HSA, by Laurent BetbederAMD Developer Central
 
PG-4119, 3D Geometry Compression on GPU, by Jacques Lefaucheux
PG-4119, 3D Geometry Compression on GPU, by Jacques LefaucheuxPG-4119, 3D Geometry Compression on GPU, by Jacques Lefaucheux
PG-4119, 3D Geometry Compression on GPU, by Jacques LefaucheuxAMD Developer Central
 
Keynote (Phil Rogers) - The Programmers Guide to Reaching for the Cloud - by ...
Keynote (Phil Rogers) - The Programmers Guide to Reaching for the Cloud - by ...Keynote (Phil Rogers) - The Programmers Guide to Reaching for the Cloud - by ...
Keynote (Phil Rogers) - The Programmers Guide to Reaching for the Cloud - by ...AMD Developer Central
 
GS-4150, Bullet 3 OpenCL Rigid Body Simulation, by Erwin Coumans
GS-4150, Bullet 3 OpenCL Rigid Body Simulation, by Erwin CoumansGS-4150, Bullet 3 OpenCL Rigid Body Simulation, by Erwin Coumans
GS-4150, Bullet 3 OpenCL Rigid Body Simulation, by Erwin CoumansAMD Developer Central
 
PL-4043, Accelerating OpenVL for Heterogeneous Platforms, by Gregor Miller
PL-4043, Accelerating OpenVL for Heterogeneous Platforms, by Gregor MillerPL-4043, Accelerating OpenVL for Heterogeneous Platforms, by Gregor Miller
PL-4043, Accelerating OpenVL for Heterogeneous Platforms, by Gregor MillerAMD Developer Central
 

What's hot (20)

WT-4073, ANGLE and cross-platform WebGL support, by Shannon Woods
WT-4073, ANGLE and cross-platform WebGL support, by Shannon WoodsWT-4073, ANGLE and cross-platform WebGL support, by Shannon Woods
WT-4073, ANGLE and cross-platform WebGL support, by Shannon Woods
 
MM-4104, Smart Sharpen using OpenCL in Adobe Photoshop CC – Challenges and Ac...
MM-4104, Smart Sharpen using OpenCL in Adobe Photoshop CC – Challenges and Ac...MM-4104, Smart Sharpen using OpenCL in Adobe Photoshop CC – Challenges and Ac...
MM-4104, Smart Sharpen using OpenCL in Adobe Photoshop CC – Challenges and Ac...
 
PG-4039, RapidFire API, by Dmitry Kozlov
PG-4039, RapidFire API, by Dmitry KozlovPG-4039, RapidFire API, by Dmitry Kozlov
PG-4039, RapidFire API, by Dmitry Kozlov
 
Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...
Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...
Keynote (Johan Andersson) - Mantle for Developers - by Johan Andersson, Techn...
 
MM-4092, Optimizing FFMPEG and Handbrake Using OpenCL and Other AMD HW Capabi...
MM-4092, Optimizing FFMPEG and Handbrake Using OpenCL and Other AMD HW Capabi...MM-4092, Optimizing FFMPEG and Handbrake Using OpenCL and Other AMD HW Capabi...
MM-4092, Optimizing FFMPEG and Handbrake Using OpenCL and Other AMD HW Capabi...
 
PL-4050, An Introduction to SPIR for OpenCL Application Developers and Compil...
PL-4050, An Introduction to SPIR for OpenCL Application Developers and Compil...PL-4050, An Introduction to SPIR for OpenCL Application Developers and Compil...
PL-4050, An Introduction to SPIR for OpenCL Application Developers and Compil...
 
CE-4028, Miracast with AMD Wireless Display technology – Kickass gaming and o...
CE-4028, Miracast with AMD Wireless Display technology – Kickass gaming and o...CE-4028, Miracast with AMD Wireless Display technology – Kickass gaming and o...
CE-4028, Miracast with AMD Wireless Display technology – Kickass gaming and o...
 
PT-4058, Measuring and Optimizing Performance of Cluster and Private Cloud Ap...
PT-4058, Measuring and Optimizing Performance of Cluster and Private Cloud Ap...PT-4058, Measuring and Optimizing Performance of Cluster and Private Cloud Ap...
PT-4058, Measuring and Optimizing Performance of Cluster and Private Cloud Ap...
 
PL-4051, An Introduction to SPIR for OpenCL Application Developers and Compil...
PL-4051, An Introduction to SPIR for OpenCL Application Developers and Compil...PL-4051, An Introduction to SPIR for OpenCL Application Developers and Compil...
PL-4051, An Introduction to SPIR for OpenCL Application Developers and Compil...
 
PT-4055, Optimizing Raytracing on GCN with AMD Development Tools, by Tzachi C...
PT-4055, Optimizing Raytracing on GCN with AMD Development Tools, by Tzachi C...PT-4055, Optimizing Raytracing on GCN with AMD Development Tools, by Tzachi C...
PT-4055, Optimizing Raytracing on GCN with AMD Development Tools, by Tzachi C...
 
GS-4106 The AMD GCN Architecture - A Crash Course, by Layla Mah
GS-4106 The AMD GCN Architecture - A Crash Course, by Layla MahGS-4106 The AMD GCN Architecture - A Crash Course, by Layla Mah
GS-4106 The AMD GCN Architecture - A Crash Course, by Layla Mah
 
WT-4066, The Making of Turbulenz’ Polycraft WebGL Benchmark, by Ian Ballantyne
WT-4066, The Making of Turbulenz’ Polycraft WebGL Benchmark, by Ian BallantyneWT-4066, The Making of Turbulenz’ Polycraft WebGL Benchmark, by Ian Ballantyne
WT-4066, The Making of Turbulenz’ Polycraft WebGL Benchmark, by Ian Ballantyne
 
PL-4044, OpenACC on AMD APUs and GPUs with the PGI Accelerator Compilers, by ...
PL-4044, OpenACC on AMD APUs and GPUs with the PGI Accelerator Compilers, by ...PL-4044, OpenACC on AMD APUs and GPUs with the PGI Accelerator Compilers, by ...
PL-4044, OpenACC on AMD APUs and GPUs with the PGI Accelerator Compilers, by ...
 
PL-4042, Wholly Graal: Accelerating GPU offload for Java/Sumatra using the Op...
PL-4042, Wholly Graal: Accelerating GPU offload for Java/Sumatra using the Op...PL-4042, Wholly Graal: Accelerating GPU offload for Java/Sumatra using the Op...
PL-4042, Wholly Graal: Accelerating GPU offload for Java/Sumatra using the Op...
 
WT-4069, WebCL: Enabling OpenCL Acceleration of Web Applications, by Mikael ...
WT-4069, WebCL: Enabling OpenCL Acceleration of Web Applications, by  Mikael ...WT-4069, WebCL: Enabling OpenCL Acceleration of Web Applications, by  Mikael ...
WT-4069, WebCL: Enabling OpenCL Acceleration of Web Applications, by Mikael ...
 
MM-4085, Designing a game audio engine for HSA, by Laurent Betbeder
MM-4085, Designing a game audio engine for HSA, by Laurent BetbederMM-4085, Designing a game audio engine for HSA, by Laurent Betbeder
MM-4085, Designing a game audio engine for HSA, by Laurent Betbeder
 
PG-4119, 3D Geometry Compression on GPU, by Jacques Lefaucheux
PG-4119, 3D Geometry Compression on GPU, by Jacques LefaucheuxPG-4119, 3D Geometry Compression on GPU, by Jacques Lefaucheux
PG-4119, 3D Geometry Compression on GPU, by Jacques Lefaucheux
 
Keynote (Phil Rogers) - The Programmers Guide to Reaching for the Cloud - by ...
Keynote (Phil Rogers) - The Programmers Guide to Reaching for the Cloud - by ...Keynote (Phil Rogers) - The Programmers Guide to Reaching for the Cloud - by ...
Keynote (Phil Rogers) - The Programmers Guide to Reaching for the Cloud - by ...
 
GS-4150, Bullet 3 OpenCL Rigid Body Simulation, by Erwin Coumans
GS-4150, Bullet 3 OpenCL Rigid Body Simulation, by Erwin CoumansGS-4150, Bullet 3 OpenCL Rigid Body Simulation, by Erwin Coumans
GS-4150, Bullet 3 OpenCL Rigid Body Simulation, by Erwin Coumans
 
PL-4043, Accelerating OpenVL for Heterogeneous Platforms, by Gregor Miller
PL-4043, Accelerating OpenVL for Heterogeneous Platforms, by Gregor MillerPL-4043, Accelerating OpenVL for Heterogeneous Platforms, by Gregor Miller
PL-4043, Accelerating OpenVL for Heterogeneous Platforms, by Gregor Miller
 

Similar to IS-4081, Rabbit: Reinventing Video Chat, by Philippe Clavel

Single Board Computers & Raspberry Pi Basics
Single Board Computers & Raspberry Pi BasicsSingle Board Computers & Raspberry Pi Basics
Single Board Computers & Raspberry Pi BasicsEueung Mulyana
 
AMD VIDEO CODING ENGINE: THE ROUTE TOWARDS LOW-LATENCY CLOUD GAMING SOLUTIONS
AMD VIDEO CODING ENGINE: THE ROUTE TOWARDS LOW-LATENCY CLOUD GAMING SOLUTIONSAMD VIDEO CODING ENGINE: THE ROUTE TOWARDS LOW-LATENCY CLOUD GAMING SOLUTIONS
AMD VIDEO CODING ENGINE: THE ROUTE TOWARDS LOW-LATENCY CLOUD GAMING SOLUTIONSKhaled MAMOU
 
raspberry pi (generalised)
 raspberry pi (generalised) raspberry pi (generalised)
raspberry pi (generalised)Amit Dwivedi
 
ICE: The ultimate way of beating NAT in SIP
ICE: The ultimate way of beating NAT in SIPICE: The ultimate way of beating NAT in SIP
ICE: The ultimate way of beating NAT in SIPSaúl Ibarra Corretgé
 
NAB 2019 Latest Technical and Business Progress with AV1
NAB 2019 Latest Technical and Business Progress with AV1NAB 2019 Latest Technical and Business Progress with AV1
NAB 2019 Latest Technical and Business Progress with AV1Karan "Kay" Singh
 
London Video Tech - Adventures in cutting every last millisecond from glass-t...
London Video Tech - Adventures in cutting every last millisecond from glass-t...London Video Tech - Adventures in cutting every last millisecond from glass-t...
London Video Tech - Adventures in cutting every last millisecond from glass-t...Kieran Kunhya
 
Raspberry Pi
Raspberry PiRaspberry Pi
Raspberry Pibagal7694
 
Raspberry jam sargodha
Raspberry jam sargodhaRaspberry jam sargodha
Raspberry jam sargodhaMuhammad Afzal
 
bitdash - Simple & Easy MPEG-DASH Player for Web and Mobile
bitdash - Simple & Easy MPEG-DASH Player for Web and Mobilebitdash - Simple & Easy MPEG-DASH Player for Web and Mobile
bitdash - Simple & Easy MPEG-DASH Player for Web and MobileBitmovin Inc
 
CE-4117, HSA Optimizations and Impact on end User Experiences for AfterShot P...
CE-4117, HSA Optimizations and Impact on end User Experiences for AfterShot P...CE-4117, HSA Optimizations and Impact on end User Experiences for AfterShot P...
CE-4117, HSA Optimizations and Impact on end User Experiences for AfterShot P...AMD Developer Central
 
Multimedia lossy compression
Multimedia lossy compressionMultimedia lossy compression
Multimedia lossy compressionanjunarayanan
 
High Quality 360 Video Rendering and Streaming
High Quality 360 Video Rendering and StreamingHigh Quality 360 Video Rendering and Streaming
High Quality 360 Video Rendering and StreamingITU
 
GS-4151, Developing Thief with new AMD technology, by Jurjen Katsman
GS-4151, Developing Thief with new AMD technology, by Jurjen KatsmanGS-4151, Developing Thief with new AMD technology, by Jurjen Katsman
GS-4151, Developing Thief with new AMD technology, by Jurjen KatsmanAMD Developer Central
 

Similar to IS-4081, Rabbit: Reinventing Video Chat, by Philippe Clavel (20)

Feature satip4
Feature satip4Feature satip4
Feature satip4
 
Feature satip4
Feature satip4Feature satip4
Feature satip4
 
Feature satip4
Feature satip4Feature satip4
Feature satip4
 
Feature satip4
Feature satip4Feature satip4
Feature satip4
 
Feature satip4
Feature satip4Feature satip4
Feature satip4
 
Single Board Computers & Raspberry Pi Basics
Single Board Computers & Raspberry Pi BasicsSingle Board Computers & Raspberry Pi Basics
Single Board Computers & Raspberry Pi Basics
 
AMD VIDEO CODING ENGINE: THE ROUTE TOWARDS LOW-LATENCY CLOUD GAMING SOLUTIONS
AMD VIDEO CODING ENGINE: THE ROUTE TOWARDS LOW-LATENCY CLOUD GAMING SOLUTIONSAMD VIDEO CODING ENGINE: THE ROUTE TOWARDS LOW-LATENCY CLOUD GAMING SOLUTIONS
AMD VIDEO CODING ENGINE: THE ROUTE TOWARDS LOW-LATENCY CLOUD GAMING SOLUTIONS
 
raspberry pi (generalised)
 raspberry pi (generalised) raspberry pi (generalised)
raspberry pi (generalised)
 
Feature satip4
Feature satip4Feature satip4
Feature satip4
 
ICE: The ultimate way of beating NAT in SIP
ICE: The ultimate way of beating NAT in SIPICE: The ultimate way of beating NAT in SIP
ICE: The ultimate way of beating NAT in SIP
 
NAB 2019 Latest Technical and Business Progress with AV1
NAB 2019 Latest Technical and Business Progress with AV1NAB 2019 Latest Technical and Business Progress with AV1
NAB 2019 Latest Technical and Business Progress with AV1
 
Feature satip4
Feature satip4Feature satip4
Feature satip4
 
London Video Tech - Adventures in cutting every last millisecond from glass-t...
London Video Tech - Adventures in cutting every last millisecond from glass-t...London Video Tech - Adventures in cutting every last millisecond from glass-t...
London Video Tech - Adventures in cutting every last millisecond from glass-t...
 
Raspberry Pi
Raspberry PiRaspberry Pi
Raspberry Pi
 
Raspberry jam sargodha
Raspberry jam sargodhaRaspberry jam sargodha
Raspberry jam sargodha
 
bitdash - Simple & Easy MPEG-DASH Player for Web and Mobile
bitdash - Simple & Easy MPEG-DASH Player for Web and Mobilebitdash - Simple & Easy MPEG-DASH Player for Web and Mobile
bitdash - Simple & Easy MPEG-DASH Player for Web and Mobile
 
CE-4117, HSA Optimizations and Impact on end User Experiences for AfterShot P...
CE-4117, HSA Optimizations and Impact on end User Experiences for AfterShot P...CE-4117, HSA Optimizations and Impact on end User Experiences for AfterShot P...
CE-4117, HSA Optimizations and Impact on end User Experiences for AfterShot P...
 
Multimedia lossy compression
Multimedia lossy compressionMultimedia lossy compression
Multimedia lossy compression
 
High Quality 360 Video Rendering and Streaming
High Quality 360 Video Rendering and StreamingHigh Quality 360 Video Rendering and Streaming
High Quality 360 Video Rendering and Streaming
 
GS-4151, Developing Thief with new AMD technology, by Jurjen Katsman
GS-4151, Developing Thief with new AMD technology, by Jurjen KatsmanGS-4151, Developing Thief with new AMD technology, by Jurjen Katsman
GS-4151, Developing Thief with new AMD technology, by Jurjen Katsman
 

More from AMD Developer Central

DX12 & Vulkan: Dawn of a New Generation of Graphics APIs
DX12 & Vulkan: Dawn of a New Generation of Graphics APIsDX12 & Vulkan: Dawn of a New Generation of Graphics APIs
DX12 & Vulkan: Dawn of a New Generation of Graphics APIsAMD Developer Central
 
Leverage the Speed of OpenCL™ with AMD Math Libraries
Leverage the Speed of OpenCL™ with AMD Math LibrariesLeverage the Speed of OpenCL™ with AMD Math Libraries
Leverage the Speed of OpenCL™ with AMD Math LibrariesAMD Developer Central
 
An Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware Webinar
An Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware WebinarAn Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware Webinar
An Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware WebinarAMD Developer Central
 
Webinar: Whats New in Java 8 with Develop Intelligence
Webinar: Whats New in Java 8 with Develop IntelligenceWebinar: Whats New in Java 8 with Develop Intelligence
Webinar: Whats New in Java 8 with Develop IntelligenceAMD Developer Central
 
The Small Batch (and other) solutions in Mantle API, by Guennadi Riguer, Mant...
The Small Batch (and other) solutions in Mantle API, by Guennadi Riguer, Mant...The Small Batch (and other) solutions in Mantle API, by Guennadi Riguer, Mant...
The Small Batch (and other) solutions in Mantle API, by Guennadi Riguer, Mant...AMD Developer Central
 
TressFX The Fast and The Furry by Nicolas Thibieroz
TressFX The Fast and The Furry by Nicolas ThibierozTressFX The Fast and The Furry by Nicolas Thibieroz
TressFX The Fast and The Furry by Nicolas ThibierozAMD Developer Central
 
Rendering Battlefield 4 with Mantle by Yuriy ODonnell
Rendering Battlefield 4 with Mantle by Yuriy ODonnellRendering Battlefield 4 with Mantle by Yuriy ODonnell
Rendering Battlefield 4 with Mantle by Yuriy ODonnellAMD Developer Central
 
Low-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil PerssonLow-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil PerssonAMD Developer Central
 
Direct3D12 and the Future of Graphics APIs by Dave Oldcorn
Direct3D12 and the Future of Graphics APIs by Dave OldcornDirect3D12 and the Future of Graphics APIs by Dave Oldcorn
Direct3D12 and the Future of Graphics APIs by Dave OldcornAMD Developer Central
 
Introduction to Direct 3D 12 by Ivan Nevraev
Introduction to Direct 3D 12 by Ivan NevraevIntroduction to Direct 3D 12 by Ivan Nevraev
Introduction to Direct 3D 12 by Ivan NevraevAMD Developer Central
 
Holy smoke! Faster Particle Rendering using Direct Compute by Gareth Thomas
Holy smoke! Faster Particle Rendering using Direct Compute by Gareth ThomasHoly smoke! Faster Particle Rendering using Direct Compute by Gareth Thomas
Holy smoke! Faster Particle Rendering using Direct Compute by Gareth ThomasAMD Developer Central
 
Computer Vision Powered by Heterogeneous System Architecture (HSA) by Dr. Ha...
Computer Vision Powered by Heterogeneous System Architecture (HSA) by  Dr. Ha...Computer Vision Powered by Heterogeneous System Architecture (HSA) by  Dr. Ha...
Computer Vision Powered by Heterogeneous System Architecture (HSA) by Dr. Ha...AMD Developer Central
 
Productive OpenCL Programming An Introduction to OpenCL Libraries with Array...
Productive OpenCL Programming An Introduction to OpenCL Libraries  with Array...Productive OpenCL Programming An Introduction to OpenCL Libraries  with Array...
Productive OpenCL Programming An Introduction to OpenCL Libraries with Array...AMD Developer Central
 
Rendering Battlefield 4 with Mantle by Johan Andersson - AMD at GDC14
Rendering Battlefield 4 with Mantle by Johan Andersson - AMD at GDC14Rendering Battlefield 4 with Mantle by Johan Andersson - AMD at GDC14
Rendering Battlefield 4 with Mantle by Johan Andersson - AMD at GDC14AMD Developer Central
 

More from AMD Developer Central (20)

DX12 & Vulkan: Dawn of a New Generation of Graphics APIs
DX12 & Vulkan: Dawn of a New Generation of Graphics APIsDX12 & Vulkan: Dawn of a New Generation of Graphics APIs
DX12 & Vulkan: Dawn of a New Generation of Graphics APIs
 
Leverage the Speed of OpenCL™ with AMD Math Libraries
Leverage the Speed of OpenCL™ with AMD Math LibrariesLeverage the Speed of OpenCL™ with AMD Math Libraries
Leverage the Speed of OpenCL™ with AMD Math Libraries
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.js
 
Media SDK Webinar 2014
Media SDK Webinar 2014Media SDK Webinar 2014
Media SDK Webinar 2014
 
An Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware Webinar
An Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware WebinarAn Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware Webinar
An Introduction to OpenCL™ Programming with AMD GPUs - AMD & Acceleware Webinar
 
DirectGMA on AMD’S FirePro™ GPUS
DirectGMA on AMD’S  FirePro™ GPUSDirectGMA on AMD’S  FirePro™ GPUS
DirectGMA on AMD’S FirePro™ GPUS
 
Webinar: Whats New in Java 8 with Develop Intelligence
Webinar: Whats New in Java 8 with Develop IntelligenceWebinar: Whats New in Java 8 with Develop Intelligence
Webinar: Whats New in Java 8 with Develop Intelligence
 
The Small Batch (and other) solutions in Mantle API, by Guennadi Riguer, Mant...
The Small Batch (and other) solutions in Mantle API, by Guennadi Riguer, Mant...The Small Batch (and other) solutions in Mantle API, by Guennadi Riguer, Mant...
The Small Batch (and other) solutions in Mantle API, by Guennadi Riguer, Mant...
 
Inside XBox- One, by Martin Fuller
Inside XBox- One, by Martin FullerInside XBox- One, by Martin Fuller
Inside XBox- One, by Martin Fuller
 
TressFX The Fast and The Furry by Nicolas Thibieroz
TressFX The Fast and The Furry by Nicolas ThibierozTressFX The Fast and The Furry by Nicolas Thibieroz
TressFX The Fast and The Furry by Nicolas Thibieroz
 
Rendering Battlefield 4 with Mantle by Yuriy ODonnell
Rendering Battlefield 4 with Mantle by Yuriy ODonnellRendering Battlefield 4 with Mantle by Yuriy ODonnell
Rendering Battlefield 4 with Mantle by Yuriy ODonnell
 
Low-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil PerssonLow-level Shader Optimization for Next-Gen and DX11 by Emil Persson
Low-level Shader Optimization for Next-Gen and DX11 by Emil Persson
 
Gcn performance ftw by stephan hodes
Gcn performance ftw by stephan hodesGcn performance ftw by stephan hodes
Gcn performance ftw by stephan hodes
 
Inside XBOX ONE by Martin Fuller
Inside XBOX ONE by Martin FullerInside XBOX ONE by Martin Fuller
Inside XBOX ONE by Martin Fuller
 
Direct3D12 and the Future of Graphics APIs by Dave Oldcorn
Direct3D12 and the Future of Graphics APIs by Dave OldcornDirect3D12 and the Future of Graphics APIs by Dave Oldcorn
Direct3D12 and the Future of Graphics APIs by Dave Oldcorn
 
Introduction to Direct 3D 12 by Ivan Nevraev
Introduction to Direct 3D 12 by Ivan NevraevIntroduction to Direct 3D 12 by Ivan Nevraev
Introduction to Direct 3D 12 by Ivan Nevraev
 
Holy smoke! Faster Particle Rendering using Direct Compute by Gareth Thomas
Holy smoke! Faster Particle Rendering using Direct Compute by Gareth ThomasHoly smoke! Faster Particle Rendering using Direct Compute by Gareth Thomas
Holy smoke! Faster Particle Rendering using Direct Compute by Gareth Thomas
 
Computer Vision Powered by Heterogeneous System Architecture (HSA) by Dr. Ha...
Computer Vision Powered by Heterogeneous System Architecture (HSA) by  Dr. Ha...Computer Vision Powered by Heterogeneous System Architecture (HSA) by  Dr. Ha...
Computer Vision Powered by Heterogeneous System Architecture (HSA) by Dr. Ha...
 
Productive OpenCL Programming An Introduction to OpenCL Libraries with Array...
Productive OpenCL Programming An Introduction to OpenCL Libraries  with Array...Productive OpenCL Programming An Introduction to OpenCL Libraries  with Array...
Productive OpenCL Programming An Introduction to OpenCL Libraries with Array...
 
Rendering Battlefield 4 with Mantle by Johan Andersson - AMD at GDC14
Rendering Battlefield 4 with Mantle by Johan Andersson - AMD at GDC14Rendering Battlefield 4 with Mantle by Johan Andersson - AMD at GDC14
Rendering Battlefield 4 with Mantle by Johan Andersson - AMD at GDC14
 

Recently uploaded

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 

Recently uploaded (20)

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 

IS-4081, Rabbit: Reinventing Video Chat, by Philippe Clavel

  • 2. !  Rabbit  is  a  new  way  to  share  live  experiences  with  anyone,  anywhere   !  The  core  product  is  a  plaMorm  that  enables  unlimited  video  chat  and  content  sharing   !  Backed  by  Google  Ventures,  CrunchFund  and  Michael  Birch   !  Launched  Private  Beta  in  February  on  Mac,  extending  to  Windows  and  Web  in  Q1  2014   2   |      RABBIT    -­‐  REINVENTING  VIDEO  CHAT      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 3. DEMO   !  Rabbit  is  currently  in  Beta  and    available  on  Mac  OS  X   !  We  are  working  closely  with  AMD  on  a  Windows  version   !  We  expect  a  huge  performance  gain…   Let’s see a demo…! 3   |      RABBIT    -­‐  REINVENTING  VIDEO  CHAT      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 4. WHAT  IS  RABBIT  ?     Video chat with an unlimited number of people! 4   |      RABBIT    -­‐  REINVENTING  VIDEO  CHAT      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 5. WHAT  IS  RABBIT  ?   Unique video chat experience! 5   |      RABBIT    -­‐  REINVENTING  VIDEO  CHAT      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 6. WHAT  IS  RABBIT  ?   Share anything with everyone in a room! 6   |      RABBIT    -­‐  REINVENTING  VIDEO  CHAT      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 7. WHAT  IS  RABBIT  ?   Watch together! 7   |      RABBIT    -­‐  REINVENTING  VIDEO  CHAT      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 8. CHALLENGES?   !  In  short  Rabbit  allows:   ‒  Unlimited  number  of  people  in  video  chat  while  watching  content  together   ‒  Share  Anything  you  have  access  to  on  your  computer   ‒  Including  Audio…   ‒  All  that  with  a  unique  UI  and  UX…     !  So  some  tech  challenges:   ‒  Stream  Audio/Video  of  30+  streams  of  LIVE  content   ‒  Render  30+  streams  with  Audio  Video  Synchronizadon   ‒  Guarantee  nice  and  dynamic  UI  at  60fps+   ‒  Screencast  any  App  running  on  your  computer   ‒  Audio  Capture,  Render  and  Processing….     ‒  Allow  unlimited  number  of  people  to  join  a  room   8   |      RABBIT    -­‐  REINVENTING  VIDEO  CHAT      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 9. A  LOT  OF  STREAMS…   9   |      RABBIT    -­‐  REINVENTING  VIDEO  CHAT      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 10. A  LOT  OF  STREAMS…   10   |      RABBIT    -­‐  REINVENTING  VIDEO  CHAT      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 11. STREAM  A  LOT  OF  STREAMS  –  HOW?   !  Star5ng  Point:   ‒  Use  Network  Friendly  Codecs:  vp8,  Speex   ‒  Use  Standards:  RTSP,  RTP,  RTCP   ‒  Use  open  source  library  for  network  (Live555)   ‒  Target  High  Bandwidth  Environment   !  Issue:   ‒  Codec  makers:   ‒  Vp8  didn’t  output  video  quality  good  enough  for  real-­‐dme  encoding  when  we  started     ‒  Opus  beker  than  Speex  for  audio   ‒  Standards  are  great,  but….   ‒  RTP/RTCP  has  port  rules  that  are  really  painful  (2  ports  per  stream)   ‒  RTSP:  command  structure  is  heavily  geared  toward  playing  movies   ‒  Live555  is  great  for  networking  and  streaming  but:   ‒  Single  Threaded  only     ‒  Does  not  scale  past  100  streams  on  server     ‒  Some  slow  network  code  (read  byte  by  byte,  etc..)   ‒  No  real  documentadon…   11   |      RABBIT    -­‐  REINVENTING  VIDEO  CHAT      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 12. STREAM  A  LOT  OF  STREAMS  –  HOW!     ‒ Custom  RTSP/RTP/RTCP  stack:   ‒ RTP  uses  one  port  for  all  streams   ‒ RTSP  stack  is  just  publish,  play  and  stop…   ‒ RTCP  implemented  pardally  for  our  needs  (live  streaming)   ‒ Custom  UDP  Framing/Deframing     ‒ Error  Cancelladon  on  an  as-­‐needed  basis   ‒ Streaming  Server  (Hop)  developed  from  scratch     ‒ Support  high  number  of  streams,  5k+  clients  simultaneously   ‒ Based  on  RTP   ‒ Deals  with  hole  punching  and  NATs   ‒ Only  one  port  used  for  streaming   12   |      RABBIT    -­‐  REINVENTING  VIDEO  CHAT      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 13. STREAM  A  LOT  OF  STREAMS  –  KEY  BENEFITS  WITH  AMD!   !  While  our  network  layer  does  not  change,  our  encoding  and  decoding  pipeline  gets  great  benefits  from   AMD  hardware.   !  Encoding:  VCE   ‒  Designed  for  low  power  and  low  latency  encoding  (Ideal  for  real-­‐dme  encoding)   ‒  We  are  working  closely  with  AMD  to  use  it  for  all  our  encoding  needs  (5  different  streams  in  real  dme)   ‒  We  are  able  to  offload  all  our  encoding  from  CPU  (easy  interop  with  OpenCL)…   !  Decoding:  UVD   ‒  Using  ffmpeg  for  automadc  hardware  decoding  using  UVD  via  DXVA  (simple  API  call)   ‒  When  we  do  computadon  (OpenCL/CV),  we  benefit  from  HSA  SVM  transparently  (less  memcopy)…   ‒  UVD  is  used  to  decode  most  of  our  incoming  streams.   VCE and UVD are drastically lowering Rabbit’s CPU usage! 13   |      RABBIT    -­‐  REINVENTING  VIDEO  CHAT      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 14. RENDER  A  LOT  OF  STREAMS  –  HOW?   !  Where  we  started:   ‒  Let’s  decode  using  ffmpeg   ‒  Just  push  the  data  to  the  Cocoa  NSView   ‒  Just  push  Audio  to  the  speakers   !  Issue:   ‒  Decoding  is  slow  and  falls  behind…   ‒  Simple  UIview  consumes  too  much  CPU   ‒  Audio  is  out  of  synch  and  can  be  choppy…   14   |      RABBIT    -­‐  REINVENTING  VIDEO  CHAT      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 15. RENDER  A  LOT  OF  STREAMS  –  HOW  !   !  Full  control  of  UI  render  pipeline:  Go  OpenGL…     ‒  A  lot  of  video  data  pushed  (15fps  or  30fps)   ‒  Minimize  memcpy   ‒  Use  shaders  for  render  opdmizadon   ‒  Be  smart  and  lean  on  the  endre  pipeline…   !  Full  control  of  Audio  Pipeline   ‒  Minimize  memcpy   ‒  Use  Low  level  Audio  render  (Core  Audio)   !  A/V  Synch   ‒  Buffer  both  streams  on  the  rendering  end   ‒  Synchronized  pushes  to  render   ‒  Cover  for  packet  loss  at  network  layer   15   |      RABBIT    -­‐  REINVENTING  VIDEO  CHAT      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 16. RENDER  A  LOT  OF  STREAMS  –  NOW  WITH  AMD!   Capture   Network   In   To  GPU   To  GPU   OpenCV   filters   Decode   16   |      RABBIT    -­‐  REINVENTING  VIDEO  CHAT      |      NOVEMBER  19,  2013      |      CONFIDENTIAL   Face   Detect   OpenCV   filters   Color   Scale   Crop   Face   Detect   Encode   Color   Scale   Crop   To  CPU   Network   Out   Render  
  • 17. RENDER  A  LOT  OF  STREAMS  –  NOW  WITH  AMD!   !  HSA:   ‒  HSA  seamlessly  shares  memory  directly  with  the  graphic  card…  fewer  copies  are  very  important  for  us  ;)   ‒  By  using  opdmized  Face  Detecdon,  we  plan  to  drasdcally  enhance  the  user  experience  (people  always  in  focus  in  all   bubble,  etc…)   !  OpenCL/OpenCV  :     ‒  Scaling  /  pan  and  crop  offloaded   ‒  Adaptadve  bilateral  filter  (noise  reducdon)   ‒  CLAHE  filter  (normalize  light)   ‒  Scale  and  Crop   ‒  Audio  focus  calculadon   17   |      RABBIT    -­‐  REINVENTING  VIDEO  CHAT      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 18. RENDER  60  FPS  -­‐  HOW!   !  Issue:   ‒  Graphics  look  choppy  in  most  Video  Chat  Apps   ‒  Priority  is  on  Video  not  Audio   ‒  Video  is  CPU  and  GPU  intensive   ‒  There  must  be  a  beker  way  ;)   !  Rabbit  =  Full  game  engine:   ‒  Game  loop   ‒  Low  level  rendering   ‒  Nice  threading  to  handle  UI  separated  from  processing   ‒  Minimize  memcpy  and  memory  allocadon   ‒  And  lot  of  fun  opdmizadon  on  AMD  too;)   Focus on UI/UX gives a very different feel! 18   |      RABBIT    -­‐  REINVENTING  VIDEO  CHAT      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 19. SCREENCAST  ANY  APP  ?   19   |      RABBIT    -­‐  REINVENTING  VIDEO  CHAT      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 20. SCREENCAST  ANY  APP  –  HOW  ?   !  Star5ng  point:  App  Capture…  Easy!   ‒  Let’s  capture  the  images  of  the  App  at  high  fps   ‒  Let’s  capture  the  audio  of  the  App   ‒  Let’s  broadcast…   !  Issue:   ‒  Capturing  the  image  of  a  given  window  is  not  as  simple  as  capturing  the  full  desktop   ‒  App  only  audio  is  very  complex  to  capture   ‒  Nice  quality  broadcast  means  big  NAL  and  potendal  packet  loss  or  delay   20   |      RABBIT    -­‐  REINVENTING  VIDEO  CHAT      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 21. SCREENCAST  ANY  APP  –  HOW  ?   !  Video   ‒  Real-­‐  dme  capture  of  an  App’s  window   ‒  Real-­‐dme  encoding  using  x264  on  Mac/VCE  on  AMD     ‒  Slicing  used   ‒  Added  Forward  Error  Correcdon  (FEC)  layer  to  correct  loss  on  large  NALs     !  Audio   ‒  No  way  to  capture  App  only  audio  on  Mac   ‒  Custom  audio  capture  of  system  audio  on  Mac   ‒  Real  dme  encoding  using  Opus   ‒  Added  custom  Error  Cancelladon  (EC)  to  support  audio  loss   ‒  Custom  render  of  full  Audio  (Rabbit  Ears)   21   |      RABBIT    -­‐  REINVENTING  VIDEO  CHAT      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 22. Q  &  A   Quesdons?   22   |      RABBIT    -­‐  REINVENTING  VIDEO  CHAT      |      NOVEMBER  19,  2013      |      CONFIDENTIAL  
  • 23. DISCLAIMER  &  ATTRIBUTION   The  informadon  presented  in  this  document  is  for  informadonal  purposes  only  and  may  contain  technical  inaccuracies,  omissions  and  typographical  errors.     The  informadon  contained  herein  is  subject  to  change  and  may  be  rendered  inaccurate  for  many  reasons,  including  but  not  limited  to  product  and  roadmap   changes,  component  and  motherboard  version  changes,  new  model  and/or  product  releases,  product  differences  between  differing  manufacturers,  sovware   changes,  BIOS  flashes,  firmware  upgrades,  or  the  like.  AMD  assumes  no  obligadon  to  update  or  otherwise  correct  or  revise  this  informadon.  However,  AMD   reserves  the  right  to  revise  this  informadon  and  to  make  changes  from  dme  to  dme  to  the  content  hereof  without  obligadon  of  AMD  to  nodfy  any  person  of   such  revisions  or  changes.     AMD  MAKES  NO  REPRESENTATIONS  OR  WARRANTIES  WITH  RESPECT  TO  THE  CONTENTS  HEREOF  AND  ASSUMES  NO  RESPONSIBILITY  FOR  ANY   INACCURACIES,  ERRORS  OR  OMISSIONS  THAT  MAY  APPEAR  IN  THIS  INFORMATION.     AMD  SPECIFICALLY  DISCLAIMS  ANY  IMPLIED  WARRANTIES  OF  MERCHANTABILITY  OR  FITNESS  FOR  ANY  PARTICULAR  PURPOSE.  IN  NO  EVENT  WILL  AMD  BE   LIABLE  TO  ANY  PERSON  FOR  ANY  DIRECT,  INDIRECT,  SPECIAL  OR  OTHER  CONSEQUENTIAL  DAMAGES  ARISING  FROM  THE  USE  OF  ANY  INFORMATION   CONTAINED  HEREIN,  EVEN  IF  AMD  IS  EXPRESSLY  ADVISED  OF  THE  POSSIBILITY  OF  SUCH  DAMAGES.     ATTRIBUTION   ©  2013  Advanced  Micro  Devices,  Inc.  All  rights  reserved.  AMD,  the  AMD  Arrow  logo  and  combinadons  thereof  are  trademarks  of  Advanced  Micro  Devices,   Inc.  in  the  United  States  and/or  other  jurisdicdons.    SPEC    is  a  registered  trademark  of  the  Standard  Performance  Evaluadon  Corporadon  (SPEC).  Other   names  are  for  informadonal  purposes  only  and  may  be  trademarks  of  their  respecdve  owners.   23   |      RABBIT    -­‐  REINVENTING  VIDEO  CHAT      |      NOVEMBER  19,  2013      |      CONFIDENTIAL