Customer Premises Equipment Virtualization
Virtualization 1
Virtualization Virtualization the creation of a virtual rather than actual version of a device Internet of Things (IoT) integration of the physical world into computer-based systems
Virtualization ETSI(European Telecommunications Standards Institute) Network Function Virtualization (NFV) design, deploy and manage a fully virtualized infrastructure
Traditional Home Enironment Virtualized Home Enironment STB/RGW vSTB/vRGW
Pros & Cons of vSTB/vRGW CAPEX Reduction OPEX Reduction Improved QoE Reduced dependency on the CPE Cons Enormous amounts of cloud resources
Network Topology Source Video Transmission vSTB/vRGW Video Reception Transcoding Video Relay PVR (Personal Video Recorder) Destination Video Reception Video Projection
Inventory 2
OpenStack Services Compute Storage Networking Overview Dashboard Command line interface (CLI)
OpenStack Dashboard CLI
RTP & RTCP Real-Time Transmission Protocol Payload Identification Source Identification Sequence Numbering Timestamping RTP Control Protocol QoS Monitoring Congestion Control Identification Session size estimation Scaling
GStreamer API for multimedia applications Pipeline Architecture Plugin Architecture Protocol Handling Extensible
Useful Libraries GLib Provide the main loop GTK+ GIO Graphical User Interface GIO User network control
Implementation 3
Destination characteristics Video Projection
Destination Implementation Graphical User Interface Interaction PLAYING: State changing Destination → vSTB/vRGW → Source PAUSE: State changing Destination → vSTB/vRGW → Source START_RECORDING: Branch adding Destination → vSTB/vRGW STOP_RECORDING: Branch removing Destination → vSTB/vRGW UP: Caps modification Destination → vSTB/vRGW DOWN: Caps modification Destination → vSTB/vRGW
vSTB/vRGW characteristics Block Diagram
vSTB/vRGW characteristics Video Recording branch Adding branch: Removing branch: if (gst_pad_link (tee_save_pad, bin_pad) != GST_PAD_LINK_OK) { g_printerr ("Save-Tee could not be linked.\n"); gst_object_unref (pipeline); return -1; } //Set the bin state to PLAYING// gst_element_set_state (bin, GST_STATE_PLAYING); /* remove the probe first */ gst_pad_remove_probe (pad, GST_PAD_PROBE_INFO_ID (info)); gst_object_ref (bin); gst_bin_remove (GST_BIN (pipeline), bin); gst_pad_send_event (bin_pad, gst_event_new_eos ()); gst_element_set_state (bin, GST_STATE_NULL);
vSTB/vRGW characteristics Video Transcoding branch Changing caps: Caps specifications: g_object_set (G_OBJECT(capsfilter), "caps", caps6, NULL); resol ++; g_print("Changing resolution to %d:\n", resol); /* setting up the caps on videoscale elements caps6 = gst_caps_new_simple ("video/x-raw", "width", G_TYPE_INT, 640, "height", G_TYPE_INT, 360, NULL); caps5 = gst_caps_new_simple ("video/x-raw", "width", G_TYPE_INT, 360, "height", G_TYPE_INT, 280, NULL); caps4 = gst_caps_new_simple ("video/x-raw", "width", G_TYPE_INT, 280, "height", G_TYPE_INT, 240, NULL); …
Measurements 4
Quality comparison High quality content Low quality content
Network distribution High quality content
Network traffic However Thus
Sum of network traffic For the same stream: thus:
Network distribution Quality variations in content Low Quality content
Sum of network traffic For the transcoded stream:
Workload Distribution High quality, no recording enabled High quality with recording enabled
Workload Distribution Low quality, no recording enabled Low quality with recording enabled
Statistics Statistics reception GstStructure *stats; gchar *str; /* get the source stats */ g_object_get (source, "stats", &stats, NULL); /* simply dump the stats structure */ str = gst_structure_to_string (stats); g_print ("source stats: %s\n", str); Statistics publications
Conclusion Reduced cost Improved transition Environment friendly