Video Streaming

CDN was first introduced to distribute non-video content, but it is widely used in video streaming these days.
Video traffic is a major consumer of Internet bandwidth. (80% of residental ISP traffic in 2020!)

Video is sequence of images displayed at constant rate. Because sending the video as is would eat up too much traffic, we use coding!
A single frame is chosen and called the keyframe - other frames are encoded as differences from the keyframe.

  • Spatial coding: Remove redundancy within image.

  • Temporal coding: Remove redundancy between image. (i.e. between frame i and frame i+1)

  • CBR (constant bit rate): Video encoding rate is fixed.

  • VBR (variable bit rate): Video encoding rate changes as amount of spatial, temporal coding changes.

Challenges

Read more »

Peer-to-peer (P2P) architecture

  • Arbitrary end systems directly communicate each other.
  • Peers request service from other peers, peers provide service in return to other peers.
  • Used for file sharing (BitTorrent), VoIP (Skype), etc.

Self scalability - new peers bring new service capacity, and new service demands!

File distribution time

How much time does it take to distribute file (size F) from one server to N peers?

Read more »

Prototypes

We need to test our ideas!
A prototype is a simplified and incomplete models of a design used to:

  • explore ideas
  • elaborate requirements
  • refine specifications
  • validate functionality

Why prototypes?

  • Designers can understand real-world design requirements
  • Designers can visualize, test, and improve design ideas early in the process
  • Early usability testing - we can catch issues before investing in full development
  • Investing early prevents expensive rework! (Pay less now or more later)
  • Prototypes are inexpensive, fast, flexible, so you can do more of them
  • More prototypes = More ideas = Better ideas (Quantity breeds quality!)
Read more »

What is Rotation?

Rotation is very nonintuitive;

In geometry, rotation is a movement that keeps at least one point fixed.
But in physics, rotation is extremely complex!

Intermediate axis theorem: Rotation around major and minor axis is stable, but rotation around intermediate axis is unstable!
The rotation axis keeps chaning, and the object can even be flipped!

Orientation vs. Rotation

Read more »

Multi-Layer Perceptron (MLP)

Biological Analogy

This is actually similar to Retinal Ganglion Cell (RGC, 망막 신경절 세포)
RGC is connected to a group of photoreceptors which detects the existence of light.
The pattern and motion information is then transferred to Primary Visual Cortex (V1).
V1 neuron receives information from multiple RGCs and output single response, just like weighted sum + activation function.

V1 is known to have 6 layers which is similar to filters in CNN.
V1 neurons in the same column (ocular-dominance column) detects line segment.
Adjacent columns detects slightly different line orientations.

A simple cells detects a line segment of a specific direction.
A complex cell receives information from multiple simple cells, and detects a line segment.
This is similar to layers - it can extract high level feature from low level feature!

Read more »

DNS (Domain Name System)

Internet hosts (or routers) has IP address and name.
DNS maps between IP address and name and vice versa.

DNS is a distributed database implemented in hierarchy of many name servers.
It is actually an application-layer protocol: hosts and DNS servers communicate to resolve names. (address/name translation)

DNS is at network's edge; It's not core function of network!

DNS uses TCP, UDP, or even TLS!

Read more »

E-mail

E-mail has three major components:

  • User agents
  • Mail servers
  • SMTP (Simple mail transfer protocol)

User Agents

User Agents compose, edit, read mail messages.

Read more »

Design Phase: Definition

Using data collected in the analysis phase,

  • Identify and name key persona: A fictitious user representing a class of users
  • Identify and name key goals:
    • What do users want to accomplish?
    • How do different goals relate to each other?
    • Goals are not Tasks! (i.e. not related to technology)

Elastic user

Elastic user can mean anyone and thus no one.
Vauge audience leads to unfocussed design.
Trying to design for everyone often means designing for no one!

Read more »

Design Process

System-centered Design

A Technology-First approach
Still necessary if we have legal or security concerns

  • What can be built easily on this platform?
  • What can I create from the available tools?
  • What do I as a programmer find interesting to work on?

Design Thinker: Designers who create

Read more »

Viewing Pipeline

  • Modeling Coordinates: Objects are created by their own coordinates.
  • World Coordinates: The objects are placed in the same world coordinate.
  • Viewing Coordinates: Objects are now expressed relative to camera.
  • Normalized Coordinates: Everything visible to the camera is mapped to unit cube for easy clipping.
  • Device Coordinates: Normalized coordinate (unit-cube) is mapped to the device coordinate.
  • Rasterization: 2D primitives turns into pixels.

WC to VC (Viewing Transformation)

If the position and orientation of camera are given, everything is done.
qwc=[Rp01]qvc\mathbf{q}_{wc} = \begin{bmatrix} R & \mathbf{p} \\ \mathbf{0} & 1 \end{bmatrix}\mathbf{q}_{vc} where RR is camera's rotation matrix and p\mathbf{p} is camera's position.

qvc=[Rp01]1qwc=[RTRTp01]qwcqwc=Rqvc+pqwcp=RqvcRTqwcRTp=qvc\begin{align*} \therefore \mathbf{q}_{vc} = \begin{bmatrix} R & \mathbf{p} \\ \mathbf{0} & 1 \end{bmatrix}^{-1}\mathbf{q}_{wc} &= \begin{bmatrix} R^T & -R^T\mathbf{p} \\ \mathbf{0} & 1 \end{bmatrix}\mathbf{q}_{wc}\\ \because \mathbf{q}_{wc} &= R\mathbf{q}_{vc} + \mathbf{p} \\ \mathbf{q}_{wc} - \mathbf{p} &= R\mathbf{q}_{vc} \\ R^T\mathbf{q}_{wc} - R^T\mathbf{p} &= \mathbf{q}_{vc} \\ \end{align*}

Read more »
0%