Network Coding For Multi-State Video Transmission - ŞENGEL, ÖZNUR (İstanbul Kültür Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Anabilim Dalı, 2013)
Bu çalışmanın konusu dayanıklı video paketlerinin gönderiminde kullanılan Multi-State Video Coding (MSVC) Tekniği ile Ağ Kodlama tekniklerini kullanarak daha fazla ağ yayılımı ve video kalitesi ile paketleri tüm ağdaki düğümlere göndermektir. Böylece düğümler kendisine ait olan paketlere daha hızlı bir şekilde erişebilecektir. Sistemin iki ana kısmı bulunmaktadır 1) Multi-State Video Coding ve 2) Ağ Kodlama. Çalışmanın amacı hem video kalitesini hem de ağ yayılımını arttırmaktır. Multi-State Video Coding tekniğini dayanıklılığı sağlamak ve Ağ Kodlamayı ise ağ üzerindeki yayılımı artırmak için kullanıyoruz. Bu mantıkla öncelikle var olan video paketlerini MSVC tekniği ile iki ayrı alt dizine ayırıp ağ kodlama ile paketlerin gönderimini sağlıyoruz. Böylece, ağ üzerinde paketlerin dayanıklılığı gibi yayılımını ve videonun kalitesinide artırmayı amaçlıyoruz. Multi-State Video Coding (MSVC) bir video streaming tekniği olan Multiple Description Coding temeline dayanan Video Kodlama Teknolojisidir. MSVC ile video iki veya daha fazla altdizine ayrılmaktadır. Biz çalışmamızda videoyu iki altdizine ayırıyoruz: birinci altdizinde sadece çift numaralı çerçeveler, ikinci altdizinde tek numaralı çerçeveler bulunmaktadır. Oluşan bu altdizinler kodlanarak paketler haline getirilmektedir. Herbir paket sırasıyla ağda farklı kanallar üzerinden alıcılara gönderilmektedir. Eğer alıcı hem tek hem de çift numaralı çerçeveleri almış ise alıcı çözümlemeyi yapıp çerçeveleri oluşturur. Eger çerçevelerden biri kayıp ise, alıcı kayıp çerçeveyi farklı altdizinlerde bulunan bir önceki ve sonraki çerçeveler ile MSVC tekniğinin durum iyileştirme yapısını kullanarak oluşturabilmektedir. MSVC tekniği ile oluşan altdizinlerdeki paketlerin gönderimi için ağ kodlama yapılmaktadır. Çalışmamızda iki farklı ağ kodlama algoritması ile paketlerin gönderimi yapılmaktadır. İlk algoritma "Network Coding for Video (NCV)" daha iyi video kalitesi ile videoların alıcıya ulaşmasını sağlamaktadır. Bunun için altdizinlerdeki ilk aktif paketi alıp belirli kriterler ile diğer paketleri birleştirip aday paketleri oluşturmaktadır. Daha sonra en iyi ve yüksek kaliteyi sağlayan paketi ağdaki tüm nodelara göndermektedir. İkinci algoritma "Network Coding for Video: looking into the queue in depth (NCVD)" NCV'nin yaptığı gibi paketleri oluşturmaktadır, bu sefer ilk aktif paket ile oluşanlar dışında, kuyruktaki diğer aktif paketler ile de aday paketleri oluşturmaktadır. Oluşan tüm aday kodlar arasından en iyi paketi seçmektedir. Ağ kodlama algoritmaları ile gönderilen paketler ağdaki tüm düğümlere ulaşmaktadır. Ulaşan paketler alıcı düğümler tarafından çözümlenmektedir. Çözümlenen paketler içinde alıcıya ait paketler var ise gönderilen paket yerine ulaşmış demektir. Ana paketin dışında alıcıya ulaşan kendisine ait olmayan başka paketler var ise alıcı bu paketleri de saklamaktadır. Ağ kodlama esnasında ara düğüm kendi ağındaki düğümler ile sürekli bilgi alışverişi içinde olduğundan ara düğüm paket gönderimi yapmadan önce ağdaki tüm düğümlerdeki bu paketlerin bilgisini almaktadır. Ara düğüm bu paketleri aday paketlerden en yüksek verimi sağlayanı bulmak için kullanmaktadır. Ara düğüm gönderilecek paketi en fazla düğüm tarafından çözümlenerek kendi çerçevesini elde etmesini sağlayacak şekilde belirlemektedir. Bu kapsam için geliştirdiğimiz sistemi farklı ağ senaryolarında denemelerini gerçekleştirdik. Öncelikle, sistemin çalışacağı ağı oluşturduk. Ağı ara düğüm ve ara düğüm ile etkileşim içinde olan birden fazla düğümden oluşturduk. Birbirleri ile haberleşmelerini sağlamak için ara düğüm ağdaki tüm düğümleri dinlemeye başlıyor. Düğümler kendilerine ait videonun transferinin başlamasından önce ara düğüme bir önceki transfere ait buffer bilgilerini göndermektedir. Buffer bilgilerini alan ara düğüm ilgili algoritmanın yapısına göre paketleri oluşturup bilgi alışverişi içinde olduğu tüm düğümlere göndermektedir. Oluşturduğumuz farklı senaryolarda, ara düğümün gönderdiği ilk aktif paketin her iki algoritmada da (1) Network Coding for Video (NCV), (2) Network Coding for Video: looking into the queue in depth (NCVD) alıcıya başarılı bir şekilde ulaştığını gördük. Ağda ara düğüm ile düğüm arasında haberleşmenin kesildiği ve bir önceki paketin alımı bitmeden diğer paketin gönderiminden kaynaklanan paket kayıplarında alıcı düğüm kendisine gönderilen çerçeveye ulaşamadığı durumlar ile karşılaştık. Böyle çerçevenin ulaşmadığı durumlarda MSVC tekniğinin durum iyileştirme özelliği ile kayıp frame oluşturulmakta ve videoda oluşabilecek kesinti alıcıya yansımamaktır.

The goal of this work is to send video packets to all nodes in the network by enveloping Multi-State Video Coding (MSVC) at the same time network coding to maximize the throughput and video quality. This work has two main parts: 1) Multi-State Video Coding and 2) Network Coding. The main purpose of this work is to maximize not only the video quality but also the network throughput. We will use Multi-State Video Coding to achieve robustness and we will use network coding to increase throughput over the network. After generating the two subsequences using MSVC, we apply network coding to support transmission of packets. In this manner, we aim to increase the throughput as well as robustness and quality of the video transmission. Multi-State Video Coding (MSVC) is based on Multiple Description Coding which is a kind of video coding technique. Video is split into two or more subsequences with MSVC. In our work, we have two subsequences; the first subsequence includes even numbered frames, the second subsequence includes odd numbered frames. These subsequences are encoded and distributed into packets. Each packet is transferred using the same channel or different channels to the receiver. If the receiver takes both even and odd frames correctly, it decodes packet to create frames. If any frame is lost, the receiver may reconstruct lost frame from previous and next frames of the different subsequences. This situation is referred to as state recovery of MSVC. We use network coding to send each packet in substreams generated via MSVC. In our work, we apply two network coding algorithms to send packets. The first algorithm is "Network Coding for Video (NCV)". It provides delivered video to recipient with best and high video quality. For this, it chooses the first active packet from the queue and combine active packet with other packet to create candidate network code according to some criteria. Before encoding, algorithm calculates the improvement for each candidate network code. Then, the maximum improvement packet is delivered to all nodes over the network. The second algorithm is "Network Coding for Video: looking into the queue in depth (NCVD)" is similar to NCV in creating packets. But it not only looks the first active packet of the queue but also looks the other active packet in the queue to create candidate code. NCVD chooses the video packet which is satisfies the high video quality. Packets are delivered to all nodes in the network via network coding algorithm. Received packets are decoded by target nodes. If there is any packet for that receiver in decoded packet, the primary packet is received successfully. If there are other packets which are not belongs to receiver, the receiver also stores this packet. Before sending any packets, the intermediate node takes this packets information from all nodes in network through the intermediate node is always in information exchange via all nodes in network. The intermediate node uses this packet to find which candidate code provides the highest video quality. The intermediate node determines the packet that decoded more node to obtain own frame. We tested our system in different network scenarios. First of all, we create the network that the system will work on it. There are intermediate node and more than one node that interact with intermediate node in network. Intermediate node starts listening to ensure all nodes in the network communicate with each other. Nodes send frames information of the previous transfer to intermediate node before starting video transfer. After taking all buffer information of the nodes, intermediate node sends packet that is generated according to the structure of the algorithm to all nodes on network. Created in different scenarios, the first active packet that is sending by intermediate node, is received successfully in both algorithm (1) Network Coding for Video (NCV), (2) Network Coding for Video: looking into the queue in depth (NCVD). We encountered with the communication cuts off between intermediate node and other node and the receiver does not reach the own frame because the packet is sent before the end the previous packet. In such case frame is not received to target, the lost frame generated with state recovery of MSVC technique and the interruption is not recognized by receiver. Key words: Multi-State Video Coding (MSVC), Network Coding, Network Coding for Video (NCV), Network Coding for Video: looking into the queue in depth (NCVD), Video Streaming, Video Transmission
Çoklu Durum Video İletimi İçin Ağ Kodlama
Keywords: Bilgisayar Mühendisliği Bilimleri; Bilgisayar ve Kontrol; Computer Engineering; Computer Science and Control