Blog

Sung-Jin Kim, Ph.D. Co-Founder / Chief Technology Officer


Recent Posts

3 min read

Hiperwall Version 4.6: Streaming at its Best | Hiperwall Video Wall Solutions

By Sung-Jin Kim, Ph.D. Co-Founder / Chief Technology Officer on Aug 3, 2017 4:40:00 AM

A few years ago we introduced a streaming capability in the Hiperwall system. Our Streamer was a small application you could run on the PC and it was able to send a desktop screen at 60 FPS to the wall. If the machine had a device capture such as HDMI capture, it could stream whatever the device pushed out.

Although this worked well, we saw room for improvement. The question for us was: What is the cost of improving performance on the computing/networking resources? To answer that, let’s take a look at the four steps involved in streaming a desktop screen, for example.

Step 1. Capture
Certain resources are required to capture the desktop screen. This process can be fairly CPU intensive, however starting with Windows 8.1, Microsoft began providing a very efficient method of capturing a screen. Because of this, the CPU usage cost was lowered and became reasonable, at least from our point of view.

Step 2. Compress/encode
The raw data of a captured screen is too big to send over a network -- it needs to be compressed in some way. In our original Streamer, we used a light compression technology assisted by a modern GPU such as an Nvidia graphics card. This methodology required a more powerful GPU, but CPU usage was reduced. Compression became easy to render and display on the receiving side, but it also used a lot of network bandwidth.

Step 3. Sending over the network
Even though we compressed the data, it still required a massive amount of bandwidth to be sent over the network. Streaming a 1920 x 1080 screen at 30 FPS consumes about 51% of a gigabit network. With a properly configured switch, multiple streams from multiple sources could go to multiple destinations, but misconfigured switches could easily overwhelm the entire network.

Step 4. Render and display the stream
On the receiving end, a portion of the video wall that will display the stream receives it and renders it. Our old approach using light compression was extremely easy to render. Fairly low-level machines could be used to display streams without too much effort.

As you can see, our strength in utilizing resources was in Step 2 and 4. Our greatest weakness was in Step 3 where the network bandwidth became the bottleneck of streaming. Even though we could perfectly meet the customer demands of having multiple video streams on the LED video wall, the network infrastructure had to be setup appropriately and required special care.

Today, people want to stream higher resolution screens with higher frame rates. Upgrading to a larger network bandwidth such as a 10 gigabit network will accommodate this of course, but it doesn’t actually solve the problem.

So, we looked back into our design and decided to focus on improving Steps 2 and 4 in order to reduce network bandwidth usage. This makes the most sense since computing resources such as the CPU and GPU continue to get faster and more powerful, while network bandwidth remains mostly the same. In a perfect world 10 gigabit networks would be widely available, but we are not holding our breath for that to happen.

In Step 2, we added an industry-standard H.264 encoding engine which encodes a 1920 x 1080 screen at 60 FPS comfortably using modern CPU/GPUs. Then we added our own special patent pending sauce to serve our specific purpose.  The result is that the network bandwidth (Step 3) is now reduced to about 50-100 Mb/s, or 5-10% of a gigabit network which reduces the burden on network infrastructure and enables more simultaneous video streams across the video wall. As an added benefit, the encoding engine also allows for much higher image quality than our old compression engine.

In Step 4, the receiving side decodes and renders the stream, which is more work than before. However, since most CPU/GPUs these days include very efficient methods of decoding H.264 streams, the CPU/GPU resource usage increases only by a little.

With this rebalancing of resource usage, we can achieve very efficient streaming with improved image quality and a network bandwidth reduction of about 10 fold.

We place a lot of emphasis on future-proofing. Our software technology can easily adapt to hardware improvement. When more powerful encoding/decoding hardware engines are available, our software engine will be able to utilize them to provide higher resolution streams with minimal network bandwidth increase.


Topics: insider
Continue Reading
3 min read

How can I send my PC screen to my video wall? | Video Wall Solutions

By Sung-Jin Kim, Ph.D. Co-Founder / Chief Technology Officer on Mar 28, 2017 4:23:00 AM

Introduction

That is one of the most common questions we get from Hiperwall customers. Hiperwall’s HiperSource software family provides several different ways to accomplish this fundamental feature of a video wall.

What is HiperSource?

HiperSource is a component of the Hipewall system that enables remote content viewing on a Hiperwall enabled LED video wall. It includes three different programs, HiperSource Sender, HiperSource Streamer and HiperSource IP Streams. Each program is designed to stream a PC screen and each has its own strengths and weaknesses.

First the user should decide how many “sources” he wants to see on the wall simultaneously. That number is the HiperSource license count. Then the user can mix-match any combination of HiperSource Sender/Streamer/IP Streams to meet his needs.

HiperSource Sender

Sender is a Java application that the users can install on any computer that supports standard Java (which excludes mobile devices, unfortunately). HiperSource Sender captures the whole screen or a region of the screen and sends it to the Hiperwall system through a SSL encrypted TCP channel.

It is designed to capture a large screen which can have a resolution as high as 8000 x 3000 pixels or more, for example. It provides slightly lower framerates and is ideal for more static contents. 

It provides keyboard video mouse (KVM) functionality meaning, the human operator of the Hiperwall system can remotely control the source PC that sends its screen. 

Capturing and sending a desktop image relies heavily on the CPU and HiperSource Sender can utilize multiple-cores in a CPU. More cores, better the performance.

HiperSource Streamer

Streamer is a Windows® application that users can install on any computer with an Intel or Nvidia graphics card onboard. It can stream three different types of video to Hiperwall, 1) video from a file, 2) video from a capture device, and 3) complete desktop capture or partial capture. If the PC with HiperSource Streamer installed has a capture card inside, it can stream any video coming out of the capture device. Also, the Streamer enabled PC can capture whole or part of the desktop screen and stream it to Hiperwall.

HiperSource Streamer is ideal for video oriented content but requires a heavy network bandwidth.

Capturing desktop and sending relies heavily on the CPU and network.

HiperSource IP Streams

HiperSource IP Streams is a Windows® application that receives IP streams coming from any ONVIF compliant camera or RTSP streaming device. It contacts the IP camera or RTSP streaming device and relays incoming IP streams to the Hiperwall software with minor modifications to the stream. It’s designed to handle about 30 incoming and outgoing IP streams in a moderately configured PC. 

Multiple network interface cards can be used to separate the incoming network and the outgoing (to Hiperwall) network.

Which one should I use?

It depends. Each one is designed for different cases. After carefully defining what the user wants to see on his video wall, he can choose based on his needs. 

If you want to show cable TV, then HiperSource Streamer with a capture card or HiperSource IP Stream with a H.264 encoder device is ideal.

If you want to show live video feeds from a PC, then HiperSource Streamer can be installed on that PC, or a separate Streamer PC with a capture card that can capture the output of the video feed PC.

If you want to show content of the PC that is outside corporate network and requires secure network communication between the PC and Hiperwall, HiperSource Sender is the choice.

In the end, Hiperwall can accept any type of “source” from each of the HiperSource programs and the user can design the system that meets his needs. 

 

Topics: insider
Continue Reading

Featured