KR20170004418A - 멀티캐스트 스크린 미러링 장치 및 방법 - Google Patents

멀티캐스트 스크린 미러링 장치 및 방법 Download PDF

Info

Publication number
KR20170004418A
KR20170004418A KR1020150094739A KR20150094739A KR20170004418A KR 20170004418 A KR20170004418 A KR 20170004418A KR 1020150094739 A KR1020150094739 A KR 1020150094739A KR 20150094739 A KR20150094739 A KR 20150094739A KR 20170004418 A KR20170004418 A KR 20170004418A
Authority
KR
South Korea
Prior art keywords
video frame
packet
block
received
packets
Prior art date
Application number
KR1020150094739A
Other languages
English (en)
Other versions
KR101706573B1 (ko
Inventor
신연철
이규진
최성현
장희석
정창훈
한진환
Original Assignee
서울대학교산학협력단
주식회사 인프라웨어
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 서울대학교산학협력단, 주식회사 인프라웨어 filed Critical 서울대학교산학협력단
Priority to KR1020150094739A priority Critical patent/KR101706573B1/ko
Publication of KR20170004418A publication Critical patent/KR20170004418A/ko
Application granted granted Critical
Publication of KR101706573B1 publication Critical patent/KR101706573B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/64Addressing
    • H04N21/6405Multicasting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234327Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into layers, e.g. base layer and one or more enhancement layers

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

멀티캐스트 스크린 미러링 장치 및 방법이 제공된다. 멀티캐스트 스크린 미러링 방법은 비디오 프레임을 압축하여 압축된 비디오 프레임을 생성하는 단계, 압축된 비디오 프레임을 네트워크 코딩 (Network Coding) 으로 인코딩하여 인코딩 패킷을 생성하는 단계 및 인코딩 패킷을 멀티캐스트로 전송하는 단계를 포함하는 것을 특징으로 한다.

Description

멀티캐스트 스크린 미러링 장치 및 방법{DEVICE AND METHOD FOR MULTICAST SCREEN MIRRORING}
본 발명은 멀티캐스트 스크린 미러링 장치 및 방법에 관한 것으로서, 보다 상세하게는 다중 사용자에게 스크린 미러링을 제공할 수 있는 멀티캐스트 스크린 미러링 장치 및 방법에 관한 것이다.
최근 스마트폰, 태블릿 PC 등과 같은 다양한 전자 디바이스들이 개발됨에 따라 이러한 전자 디바이스들에서 구현되는 다양한 어플리케이션들이 제공되고 있다. 이러한 다양한 어플리케이션 중 스크린 미러링 어플리케이션은 하나의 전자 디바이스의 스크린이 다른 전자 디바이스 상에서 동시에 표시되도록 하는 어플리케이션이다. 예를 들어, 전자 칠판이 사용되는 어플리케이션에서, 교사는 전자 칠판을 통해 수업을 진행할 수 있고, 학생은 전자 칠판과 스크린 미러링되는 전자 디바이스를 통해 교육을 받을 수 있다.
상술한 바와 같이 전자 칠판을 사용하는 상황을 가정하면, 교실 내에서 전자 칠판 화면을 여러 명의 학생들의 전자 디바이스에 미러링하는 상황과 같이 하나의 사용자의 화면을 여러 명의 사용자에게 미러링하는 경우, 무선랜 액세스 포인트 (Access Point; AP) 를 거쳐서 미러링을 하거나  WiFi-Direct 연결을 통해서 미러링을 하게 된다. 이 때 스크린 미러링을 위해 다중 사용자의 전자 디바이스에 유니캐스트로 데이터를 전송하거나 멀티캐스트로 데이터를 전송할 수 있다. 유니캐스트로 데이터 전송 시, 수신 사용자의 수가 늘어남에 따라 사용되는 대역폭이 비례적으로 증가하여, 특정 숫자 이상의 수신 사용자가 동시에 수신하려고 하는 경우, 전송이 불가능하다. 또한, 멀티캐스트로 데이터 전송 시, 기존의 무선랜은 ACK 충돌 (collision) 등의 문제로 ACK 패킷을 전송하지 않아서 신뢰성을 보장하지 못하는 단점이 있다. 따라서 스크린 미러링과 관련된 종래 기술들은 다수의 사용자에게 스크린 미러링을 함에 있어 적합하지 않은 문제가 있다.
[관련기술문헌]
1. 광역 미러링 라우터(한국특허출원번호 제 10-2014-7009591 호)
이에, 본 발명이 해결하고자 하는 과제는 다중 사용자에게 스크린을 미러링함에 있어서, 높은 확장성과 높은 신뢰성을 제공할 수 있는 멀티캐스트 스크린 미러링 장치 및 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 다른 과제는 네트워크 코딩 (Network Coding; NC) 방식을 채택하여 일부 패킷이 소실되더라도 안전하게 패킷을 복원할 수 있는 멀티캐스트 스크린 미러링 장치 및 방법을 제공하는 것이다.
본 발명의 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 멀티캐스트 스크린 미러링 방법은 비디오 프레임을 압축하여 압축된 비디오 프레임을 생성하는 단계, 압축된 비디오 프레임을 네트워크 코딩 (Network Coding) 으로 인코딩하여 인코딩 패킷을 생성하는 단계 및 인코딩 패킷을 멀티캐스트로 전송하는 단계를 포함하는 것을 특징으로 한다.
본 발명의 다른 특징에 따르면, 비디오 프레임은 캡쳐 주기마다 스크린이 캡쳐된 데이터인 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 압축된 비디오 프레임을 생성하는 단계는, 사용자로부터 입력된 비트레이트, 프레임 레이트, 해상도 및 I 프레임 인터벌 (I frame interval) 중 적어도 하나에 기초하여 비디오 프레임을 압축하는 단계를 포함하는 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 인코딩 패킷을 생성하는 단계는, 압축된 비디오 프레임을 소정의 길이의 패킷들로 분리하여 하나 이상의 원본 패킷을 생성하는 단계, 원본 패킷들을 소정의 개수씩 그룹화하여 하나 이상의 블록을 생성하는 단계 및 블록 단위로 네트워크 코딩으로 인코딩하는 단계를 포함하는 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 블록 단위로 네트워크 코딩으로 인코딩하는 단계는 결합 계수와 원본 패킷의 데이터 값을 선형 결합 (linear combination) 하여 인코딩 패킷을 생성하는 단계를 포함하는 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 인코딩 패킷을 멀티캐스트로 전송하는 단계는 인코딩 패킷과 함께 원본 패킷을 멀티캐스트로 전송하는 단계를 포함하는 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 인코딩 패킷은 헤더 및 패이로드를 포함하고, 헤더는 블록 내의 원본 패킷들의 개수, 블록 내에서의 원본 패킷 순서, 블록 ID, 비디오 프레임 ID, 비디오 프레임의 전체 바이트 (byte) 크기, 결합 계수 및 비디오 프레임 내에서의 원본 패킷의 순서를 포함하는 것을 특징으로 한다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 멀티캐스트 스크린 미러링 장치는 비디오 프레임을 압축하여 압축된 비디오 프레임을 생성하도록 구성된 비디오 인코더 모듈, 압축된 비디오 프레임을 네트워크 코딩 (Network Coding) 으로 인코딩하여 인코딩 패킷을 생성하도록 구성된 네트워크 코딩 인코더 모듈 및 인코딩 패킷을 멀티캐스트로 전송하도록 구성된 트래픽 쉐이퍼 모듈을 포함하는 것을 특징으로 한다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 컴퓨터 판독가능 기록매체는 비디오 프레임을 압축하여 압축된 비디오 프레임을 생성하고, 압축된 비디오 프레임을 네트워크 코딩 (Network Coding) 으로 인코딩하여 인코딩 패킷을 생성하고, 인코딩 패킷을 멀티캐스트로 전송하게 하는 명령어들의 세트를 포함하는 것을 특징으로 한다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 멀티캐스트 스크린 미러링 방법은 수신 패킷의 헤더의 비디오 프레임 ID를 확인하는 단계, 비디오 프레임 ID가 현재 수신 중인 비디오 프레임의 ID와 일치하는 경우, 헤더의 블록 ID 별로 수신 패킷을 수집하는 단계, 수신 패킷이 원본 패킷인 경우, 수신 패킷을 참조하여 비디오 프레임 상의 정해진 위치에 데이터 값을 저장하는 단계 및 블록 ID가 나타내는 블록에 포함되는 패킷이 소정의 개수 이상 수신된 경우, 블록에 대한 네트워크 코딩 디코딩을 수행하는 단계를 포함하는 것을 특징으로 한다.
본 발명의 다른 특징에 따르면, 멀티캐스트 스크린 미러링 방법은 비디오 프레임 ID가 현재 수신 중인 비디오 프레임의 ID와 일치하지 않는 경우, 헤더의 블록 ID 별로 수신 패킷을 수집하는 단계 이전에, 이전 비디오 프레임에 대한 디코딩을 수행하는 단계 및 새로운 비디오 프레임을 저장할 버퍼 메모리를 할당하는 단계를 더 포함하는 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 멀티캐스트 스크린 미러링 방법은 디코딩에 성공하는 경우, 디코딩 패킷의 데이터 값을 비디오 프레임 상의 정해진 위치에 저장하는 단계 및 디코딩에 성공한 블록을 나타내는 블록 ID를 갖는 수신 패킷을 삭제하는 단계를 더 포함하는 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 멀티캐스트 스크린 미러링 방법은 디코딩에 실패하는 경우, 선형적으로 종속적인 (linearly dependent) 수신 패킷을 제거하는 단계 및 디코딩에 실패한 블록을 나타내는 블록 ID를 갖는 수신 패킷을 대기하는 단계를 더 포함하는 것을 특징으로 한다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 멀티캐스트 스크린 미러링 장치는 수신 패킷의 헤더의 비디오 프레임 ID를 확인하도록 구성되고, 비디오 프레임 ID가 현재 수신 중인 비디오 프레임의 ID와 일치하는 경우, 헤더의 블록 ID 별로 수신 패킷을 수집하고, 수신 패킷이 원본 패킷인 경우, 수신 패킷을 참조하여 비디오 프레임 상의 정해진 위치에 데이터 값을 저장하고, 블록 ID가 나타내는 블록에 포함되는 패킷이 소정의 개수 이상 수신된 경우, 블록에 대한 네트워크 코딩 디코딩을 수행하도록 구성된 네트워크 코딩 디코더를 포함하는 것을 특징으로 한다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 컴퓨터 판독가능 기록매체는 수신 패킷의 헤더의 비디오 프레임 ID를 확인하고, 비디오 프레임 ID가 현재 수신 중인 비디오 프레임의 ID와 일치하는 경우, 헤더의 블록 ID 별로 수신 패킷을 수집하고, 수신 패킷이 원본 패킷인 경우, 수신 패킷을 참조하여 비디오 프레임 상의 정해진 위치에 데이터 값을 저장하고, 블록 ID가 나타내는 블록에 포함되는 패킷이 소정의 개수 이상 수신된 경우, 블록에 대한 네트워크 코딩 디코딩을 수행하게 하는 명령어들의 세트를 포함하는 것을 특징으로 한다.
기타 실시예의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명은 다중 사용자에게 스크린을 미러링함에 있어서, 높은 확장성과 높은 신뢰성을 제공할 수 있다.
또한, 본 발명은 네트워크 코딩 방식을 채택하여 일부 패킷이 소실되더라도 안전하게 패킷을 복원할 수 있다.
본 발명에 따른 효과는 이상에서 예시된 내용에 의해 제한되지 않으며, 더욱 다양한 효과들이 본 명세서 내에 포함되어 있다.
도 1은 본 발명의 일 실시예에 따른 멀티캐스트 스크린 미러링 시스템의 개략도이다.
도 2는 본 발명의 일 실시예에 따른 멀티캐스트 스크린 미러링 장치 중 송신 장치에 대한 개략도이다.
도 3은 본 발명의 일 실시예에 따른 멀티캐스트 스크린 미러링 방법에서의 송신 방법에 대한 순서도이다.
도 4는 본 발명의 일 실시예에 따른 인코딩 패킷에 대한 개략도이다.
도 5는 본 발명의 일 실시예에 따른 멀티캐스트 스크린 미러링 장치 중 수신 장치에 대한 개략도이다.
도 6은 본 발명의 일 실시예에 따른 멀티캐스트 스크린 미러링 방법에서의 송신 방법에 대한 순서도이다.
도 7은 본 발명의 다른 실시예에 따른 멀티캐스트 스크린 미러링 장치에 대한 개략도이다.
도 8은 본 발명의 일 실시예에 따른 멀티캐스트 스크린 미러링 장치 및 방법에서의 인코딩 수율 그래프이다.
도 9a 및 도 9b는 본 발명의 일 실시예에 따른 멀티캐스트 스크린 미러링 장치 및 방법에서의 디코딩 수율 그래프이다.
도 10a 및 도 10b는 본 발명의 일 실시예에 따른 멀티캐스트 스크린 미러링 장치 및 방법에서의 패킷 손실률을 설명하기 위한 측정 토폴로지 및 그래프이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 펌웨어 (firmware), 소프트웨어 (software), 또는 하드웨어 (hardware) 로 구성된, 알고리즘 또는 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 알고리즘 또는 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 디지털 신호 처리 디바이스 (Digital Signal Processing Device) 의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 알고리즘 또는 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또한, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
본 발명의 여러 실시예들의 각각 특징들이 부분적으로 또는 전체적으로 서로 결합 또는 조합 가능하며, 당업자가 충분히 이해할 수 있듯이 기술적으로 다양한 연동 및 구동이 가능하며, 각 실시예들이 서로에 대하여 독립적으로 실시 가능할 수도 있고 연관 관계로 함께 실시 가능할 수도 있다.
이하, 첨부된 도면을 참조하여 본 발명의 다양한 실시예들을 상세히 설명한다.
도 1은 본 발명의 일 실시예에 따른 멀티캐스트 스크린 미러링 시스템의 개략도이다. 도 1을 참조하면, 멀티캐스트 스크린 미러링 시스템 (1000) 은 멀티캐스트 스크린 미러링 장치로서 송신 장치 (100) 와 수신 장치 (200), 및 액세스 포인트 (300) 로 구성된다.
송신 장치 (100) 는 멀티캐스트 스크린 미러링 장치로서, 다수의 사용자에게 스크린 미러링 될 데이터를 송신하기 위한 전자 디바이스를 의미한다. 송신 장치 (100) 로서는 다양한 전자 디바이스가 사용될 수 있으며, 예를 들어, TV, 데스크탑 등과 같은 다양한 고정형 디바이스뿐만 아니라, 스마트폰, 노트북 컴퓨터, 디지털 방송용 단말기, PDA (Personal Digital Assistants), PMP (Portable Multimedia Player) 등과 같은 다양한 모바일 디비아스가 사용될 수 있다. 예를 들어, 송신 장치 (100) 는 전자 칠판과 같은 전자 디바이스일 수 있다. 송신 장치 (100) 에 대한 보다 상세한 설명은 도 2 및 도 3을 참조하여 상세히 설명한다.
수신 장치 (200) 는 멀티캐스트 스크린 미러링 장치로서, 스크린 미러링될 데이터를 수신하기 위해 다수의 사용자가 사용할 수 있는 전자 디바이스를 의미한다. 수신 장치 (200) 로서 다양한 전자 디바이스가 사용될 수 있으며, 수신 장치 (200) 로서 사용될 수 있는 전자 디바이스의 종류는 송신 장치 (100) 와 동일할 수 있다. 예를 들어, 수신 장치 (200) 는 스마트폰과 같은 전자 디바이스일 수 있다. 수신 장치 (200) 는 액세스 포인트 (300) 를 통해 송신 장치 (100) 와 통신하고, 액세스 포인트 (300) 는 송신 장치 (100) 로부터의 데이터를 멀티캐스트 방식으로 다수의 수신 장치 (200) 로 전송할 수 있다. 수신 장치 (200) 에 대한 보다 상세한 설명은 도 5 및 도 6을 참조하여 상세히 설명한다.
또한, 멀티캐스트 스크린 미러링 장치는 하나의 장치가 송신 장치 (100) 로 기능하거나 수신 장치 (200) 로 기능할 수도 있다. 즉, 멀티캐스트 스크린 미러링 장치의 모드 설정을 통해 하나의 장치가 특정 경우에는 송신 장치 (100) 로 기능하고 다른 특정 경우에는 수신 장치 (200) 로 기능할 수도 있다. 이에 대해서는 도 7을 참조하여 상세히 설명한다.
도 2는 본 발명의 일 실시예에 따른 멀티캐스트 스크린 미러링 장치 중 송신 장치에 대한 개략도이다. 도 3은 본 발명의 일 실시예에 따른 멀티캐스트 스크린 미러링 방법에서의 송신 방법에 대한 순서도이다. 도 2를 참조하면, 송신 장치 (100) 는 UI 모듈 (110), 스크린 캡쳐 모듈 (120), 비디오 인코딩 모듈 (130), 네트워크 코딩 인코더 모듈 (140) 및 트래픽 쉐이퍼 모듈 (150) 을 포함한다. 이하에서는 송신 장치 (100) 에 대한 보다 상세한 설명을 위해 도 2 및 도 3을 함께 참조한다.
먼저, 송신 장치 (100) 는 UI 모듈 (110) 을 통해 비디오 코덱, 네트워크 코딩 코덱, 트래픽 쉐이퍼의 환경 변수를 설정하고, 전송을 시작 및 중지하는 입력을 수신할 수 있다. UI 모듈 (110) 은 간단한 버튼들로 구성될 수 있다. 예를 들어, UI 모듈 (110) 은 전송을 시작하거나 중지할 수 있는 버튼을 포함할 수 있다. 또한, UI 모듈 (110) 은 멀티캐스트 전송을 위한 멀티캐스트 주소와 포트 번호를 지정할 수 있는 입력창을 통해 멀티캐스트 주소와 포트 번호를 수신할 수 있다. UI 모듈 (110) 은 비디오 인코딩과 관련된 비디오 코덱 설정값을 입력받을 수 있도록 구성될 수 있다. 예를 들어, UI 모듈 (110) 은 비트 레이트, 해상도, 프레임 레이트, I 프레임 인터벌 (I frame interval) 등과 같은 비디오 코덱 설정값을 입력받을 수 있다. UI 모듈 (110) 은 네트워크 코딩 인코딩과 관련된 설정값을 입력받을 수 있도록 구성될 수 있다. 예를 들어, UI 모듈 (110) 은 원본 패킷의 길이 (L), 그룹화되어 블록을 구성하는 원본 패킷의 개수 (K) 등과 같은 다양한 변수를 입력받을 수 있다. 또한, UI 모듈 (110) 은 트래픽 쉐이퍼의 토큰 (Token) 레이트와 최대 토큰 개수 등의 변수를 입력받을 수 있다. 각각의 설정값과 변수에 대해서는 후술한다.
UI 모듈 (110) 에서 전송 시작 입력을 수신하면, 설정된 변수들이 적용되고 스크린 캡쳐 모듈 (120) 의 동작이 시작된다.
전송 시작 입력이 수신되면, 송신 장치 (100) 의 스크린 캡쳐 모듈 (120) 은 캡쳐 주기마다 스크린을 캡쳐하여 비디오 인코더 모듈에 입력한다. 캡쳐 주기는 초당 재생하는 프레임 수인 프레임 레이트 값의 역수로 정해진다. 예를 들어, UI 모듈 (110) 을 통해 20 frame/sec의 프레임 레이트가 설정되었다면, 캡쳐 주기는 0.05 초이다.
이어서, 송신 장치 (100) 의 비디오 인코더 모듈은 비디오 프레임을 압축하여 압축된 비디오 프레임을 생성한다 (S300).
비디오 인코더 모듈은 비디오 프레임, 즉, 스크린 캡쳐 모듈 (120) 에서 캡쳐된 스크린의 데이터를 압축하여 데이터량을 줄이는 모듈이다. 현재 널리 사용되는 H.264, MPEG 4 등 다양한 코덱이 비디오 인코더 모듈에서 사용될 수 있다. 비디오 인코더 모듈에서 압축된 비디오 프레임을 형성하기 위해 사용되는 설정값들은 UI 모듈 (110) 을 통해 사용자로부터 입력되어 결정될 수 있다. 예를 들어, 전체 전송량을 결정하는 비트 레이트, 초당 재생하는 비디오 프레임 수를 결정하는 프레임 레이트, 해상도, 독립적인 디코딩이 가능한 범위를 결정하는 I 프레임 인터벌 등은 UI 모듈 (110) 에서 조절 가능하다. 비디오 인코더 모듈은 사용자로부터 입력된 비트 레이트, 프레임 레이트, 해상도 및 I 프레임 인터벌 (I frame interval) 중 적어도 하나에 기초하여 비디오 프레임을 압축할 수 있다. 비디오 인코더 모듈은 압축 과정을 거쳐 생성된 압축된 비디오 프레임을 네트워크 코딩 인코더 모듈 (140) 로 전달한다.
이어서, 송신 장치 (100) 의 네트워크 코딩 인코더 모듈 (140) 은 압축된 비디오 프레임을 네트워크 코딩으로 인코딩하여 인코딩 패킷을 생성한다 (S310).
네트워크 코딩 과정에 대해 보다 상세히 설명하면, 네트워크 코딩 인코더 모듈 (140) 은 비디오 인코더 모듈로부터 전달받은 압축된 비디오 프레임을 소정의 길이의 패킷들로 분리하여 하나 이상의 원본 패킷을 생성한다 (S311).
구체적으로, 네트워크 코딩 인코더 모듈 (140) 은 압축된 비디오 프레임을 동일한 길이 (L) (bytes) 로 분리한다. 이렇게 분리된 패킷들을 원본 패킷이라고 정의한다. 길이 (L) 은, 예를 들어, UI 모듈 (110) 을 통해 설정 가능하다. 압축된 비디오 프레임이 L로 나누어 떨어지지 않는 경우, 마지막 원본 패킷은 L 보다 작은 패킷 길이인 L'를 갖는다. 원본 패킷들에는 비디오 프레임 내에서 해당 원본 패킷의 순서가 기록된다.
이어서, 네트워크 코딩 인코더 모듈 (140) 은 원본 패킷들을 소정의 개수씩 그룹화하여 하나 이상의 블록을 생성한다 (S312).
네트워크 코딩 인코더 모듈 (140) 은 원본 패킷들을 소정의 개수 (K) 씩 묶어 하나 이상의 블록을 생성한다. 총 원본 패킷의 개수가 K개로 나누어 떨어지지 않는 경우, 마지막 블록은 K보다 작은 K'개의 원본 패킷으로 이루어지게 된다. 각 블록은 해당 블록을 식별하기 위한 블록 ID (BID) 를 갖게 된다.
이어서, 네트워크 코딩 인코더 모듈 (140) 은 블록 단위로 네트워크 코딩으로 인코딩하고 (S313), 인코딩 패킷에 헤더를 부착한다 (S314).
네트워크 코딩 인코더 모듈 (140) 은 블록 단위로 랜덤 선형 네트워크 코딩 (Random Linear Network Coding; RLNC) 을 이용하여 인코딩한다. 구체적으로, 블록 단위로 인코딩을 하여 블록 당 (N-K) 개의 인코딩 패킷을 추가적으로 생성한다. 따라서, 송신 장치 (100) 는 블록 당 K개의 원본 패킷과 (N-K) 개의 인코딩 패킷을 전송하게 되므로, 블록 당 총 N개의 패킷을 전송하게 된다. 마지막 블록이 K보다 작은 K'개의 원본 패킷으로 이루어지는 경우, 마지막 블록은 (N'-K') 개의 인코딩 패킷을 추가적으로 생성하게 되고, N'개의 패킷을 전송하게 된다.
랜덤 선형 네트워크 코딩으로 인코딩 패킷을 추가적으로 생성하는 과정은 다음과 같다. K개의 임의의 결합 계수 (coefficient) 들과 원본 패킷의 데이터 값을 선형 결합 (Linear combination) 하여 인코딩 패킷을 생성한다. 길이 L'인 원본 패킷이 존재하는 경우, 짧은 원본 패킷의 뒷 부분 (L-L') 만큼을 0으로 생각하고 인코딩한다. 이 때 선형 결합 연산은 유한 필드 (finite field) 연산으로 이루어지고, 유한 필드 연산의 속도를 높이면서 적절한 메모리 사용량을 유지하기 위해 필드 크기는 8 byte, 심볼 크기는 1 byte를 사용하고, 곱셈과 나눗셈 계산에서는 2D 룩업 테이블 (lookup table) 을 이용한다. 해당 과정을 수식으로 표현하면 다음과 같다.
[수학식 1]
yi=a_1 x_1i+a_2 x_2i++a_K x_Ki, 
여기서 yi는 생성된 인코딩 패킷의 i번째 byte를 뜻하고 _ji는 j번째 원본 패킷의 i번째 byte를 뜻한다. a_j는 j번째 원본 패킷에 곱해지는 임의의 결합 계수 (coefficient) 값이다. 이를 행렬 형태로 바꾸면 다음과 같다.
Y=AX,
Y 는 (N-K)×L 크기의 결과 행렬, A는 (N-K)×K 크기의 결합 계수 행렬, X는 K×L 크기의 원본 패킷 행렬이다.
상술한 바와 같은 인코딩 과정을 통해 생성된 인코딩 패킷에 대한 보다 상세한 설명을 위해 도 4를 함께 참조한다.
도 4는 본 발명의 일 실시예에 따른 인코딩 패킷에 대한 개략도이다.
도 4를 참조하면, 인코딩 패킷은 헤더 및 패이로드 (payload) 를 포함한다. 즉, 디코딩 과정을 위해 인코딩 패킷에는 헤더가 추가된다. 헤더는 블록 내의 원본 패킷들의 개수 (K), 블록 내에서의 원본 패킷 순서 (sys), 블록 ID (BID), 비디오 프레임 ID (FID), 비디오 프레임의 전체 바이트 (byte) 크기 (Flength), 결합 계수 (Coefficient) 및 비디오 프레임 내에서의 원본 패킷의 순서 (fseq) 를 포함한다. 즉, K는 블록 내의 원본 패킷 개수를 나타내고, sys는 원본 패킷에 대해서 몇 번째 원본 패킷인지를 나타내고, BID는 블록을 식별하기 위한 블록 ID이고, FID는 비디오 프레임을 식별하기 위한 비디오 프레임 ID이다. Flength는 비디오 프레임의 전체 byte 크기로 해당 값과 K, 값을 이용해서 K', L' 을 얻어낸다. 그리고 Coefficient는 인코딩 시에 사용한 결합 계수 값을 전달한다. fseq는 비디오 프레임 내에서 해당 패킷의 순서로 애초에 비디오 프레임을 패킷 단위로 자를 때 기록된다. 이러한 헤더 값들을 참조하여 수신 장치 (200) 에서는 순서에 맞게 비디오 프레임을 구성할 수 있다. payload는 데이터의 값이 기록된다. 원본 패킷의 경우 payload와 fseq는 인코딩이 되지 않고 전송되고, 추가로 생성된 인코딩 패킷은 payload와 fseq 부분이 인코딩되어 전송된다.
상술한 바와 같이 인코딩이 완료되면, 네트워크 코딩 인코더 모듈 (140) 은 원본 패킷 및 인코딩 패킷을 트래픽 쉐이퍼 모듈 (150) 로 전달한다. 이 때, 하나의 블록에서 하나의 패킷을 전송하고, 다음 블록에서 하나의 패킷을 전송하는 방식으로 블록 별로 돌아가면서 패킷을 하나씩 전송하여 모든 패킷을 전송한다. 이와 같은 비디오 프레임 단위 인터리빙 방식을 사용하여 버스트 (burst) 한 패킷 에러가 발생하는 무선 채널에 강인하도록 한다.
이어서, 트래픽 쉐이퍼 모듈 (150) 은 원본 패킷과 인코딩 패킷을 멀티캐스트로 전송한다 (S320).
트래픽 쉐이퍼 모듈 (150) 은 네트워크 코딩 인코더 모듈 (140) 로부터 받은 패킷들을 전송함에 있어 전송량을 조절하여 멀티캐스트로 전송하는 모듈이다. 트래픽 쉐이퍼 모듈 (150) 은 한번에 많은 양의 패킷을 전송할 때 발생 가능한 버퍼 오버플로우 (buffer overflow) 에 의한 패킷 손실을 막기 위한 모듈이다. 예를 들어, 무선랜 멀티캐스트를 통해서 스크린 미러링을 하는 경우, 송신 장치 (100) 에서 액세스 포인트 (300) 로 유니캐스트 업링크로 전송되고, 액세스 포인트 (300) 에서 해당 패킷을 멀티캐스트 다운링크로 수신 장치 (200) 로 전송한다. 이 때, 유니캐스트 업링크의 속도가 멀티캐스트 다운링크의 속도에 비해 상대적으로 빠르기 때문에, 한꺼번에 많은 양의 패킷을 전송하게 되면 액세스 포인트 (300) 에서 보내지 못하고 버퍼에 저장되는 패킷이 생기게 된다. 이 때 저장되는 패킷의 수가 일정량 이상이 되면 더 이상 저장하지 못하고 버려지는 버퍼 오버플로우가 발생할 수 있다. 이에, 트래픽 쉐이퍼는 토큰 버킷 (Token bucket) 등과 같은 다양한 트래픽 쉐이퍼 알고리즘을 사용하여 상술한 바와 같은 버퍼 오버플로우를 방지할 수 있다.
트래픽 쉐이퍼가 토큰 버킷 알고리즘을 사용하는 경우, 트래픽 쉐이퍼는 주기적으로 토큰을 생성한다. 토큰 생성 주기는 토큰 레이트의 역수이다. 그리고 트래픽 쉐이퍼는 미리 설정한 최대 개수까지 토큰을 보유할 수 있고, 최대 개수 이상은 가질 수 없다. 이 때, 네트워크 코딩 인코더 모듈 (140) 로부터 패킷을 받을 때 가지고 있는 토큰 개수만큼 패킷을 전송하고, 그 이상의 패킷은 저장한다. 그 후 저장된 패킷들은 토큰이 생성될 때 하나씩 전송된다. 토큰 레이트와 최대 토큰 개수는 버퍼의 크기 및 네트워크 상 링크들의 전송 속도에 의해 결정될 수 있다.
이하에서는 멀티캐스트 스크린 미러링 장치 중 상술한 바와 같은 인코딩 과정을 거쳐 전송된 패킷을 수신하는 수신 장치 (200) 에 대해 설명한다.
도 5는 본 발명의 일 실시예에 따른 멀티캐스트 스크린 미러링 장치 중 수신 장치에 대한 개략도이다. 도 6은 본 발명의 일 실시예에 따른 멀티캐스트 스크린 미러링 방법에서의 송신 방법에 대한 순서도이다. 도 5를 참조하면, 수신 장치 (200) 는 UI 모듈 (210), 스크린 재생 모듈 (220), 비디오 디코더 모듈 (230) 및 네트워크 코딩 디코더 모듈 (240) 을 포함한다. 이하에서는 수신 장치 (200) 에 대한 보다 상세한 설명을 위해 도 5 및 도 6을 함께 참조한다.
먼저, 수신 장치 (200) 는 UI 모듈 (210) 을 통해 수신을 시작 및 중지하는 입력을 수신할 수 있다. UI 모듈 (210) 은 간단한 버튼들로 구성될 수 있다. 예를 들어, UI 모듈 (210) 은 수신을 시작하거나 중지할 수 있는 버튼을 포함할 수 있다. 또한, UI 모듈 (210) 은 멀티캐스트 전송을 위한 멀티캐스트 주소와 포트 번호를 지정할 수 있는 입력창을 통해 멀티캐스트 주소와 포트 번호를 수신할 수 있다. UI 모듈 (210) 을 통해 수신을 시작하는 입력을 수신하는 경우, 설정한 주소와 포트번호에 대한 패킷을 수신할 수 있도록 소켓을 열고 수신한 패킷을 네트워크 코딩 디코더 모듈 (240) 로 입력한다.
수신 장치 (200) 의 네트워크 코딩 디코더 모듈 (240) 은 소켓에서 수신한 수신 패킷을 블록별로 모은 뒤 디코딩하고, 획득된 패킷들로 압축된 비디오 프레임을 복원해 비디오 디코더 모듈 (230) 로 입력한다.
구체적으로, 수신 장치 (200) 에 도착하는 패킷인 수신 패킷이 도착하면 (S600), 네트워크 코딩 디코더 모듈 (240) 은 수신 패킷의 헤더의 비디오 프레임 ID (FID) 를 확인한다 (S605).
네트워크 코딩 디코더 모듈 (240) 은 비디오 프레임 ID (FID) 가 현재 수신 중인 비디오 프레임의 ID와 일치하지 않는 경우, 이전 비디오 프레임에 대한 디코딩을 수행한다 (S610).
즉, 네트워크 코딩 디코더 모듈 (240) 은 비디오 프레임 ID (FID) 가 현재 수신 중인 비디오 프레임의 ID와 일치하지 않는 경우, 하나의 비디오 프레임에 대한 수신이 완료되었다고 판단하고, 해당 비디오 프레임에 대한 네트워크 코딩 디코딩을 수행한 후, 해당 비디오 프레임에 대한 데이터를 비디오 디코더 모듈 (230) 로 전달한다. 스크린 미러링 어플리케이션에서의 딜레이를 감소시키기 위해, 네트워크 코딩 디코더 모듈 (240) 은 이전 비디오 프레임을 버퍼링하지 않고 다음 프레임이 수신되는 시점에서 이전 비디오 프레임을 비디오 디코더 모듈 (230) 로 입력한다.
이어서, 네트워크 코딩 디코더 모듈 (240) 은 새로운 비디오 프레임을 저장할 버퍼 메모리를 할당한다 (S615).
네트워크 코딩 디코더 모듈 (240) 은 수신 패킷의 헤더에 포함된 데이터 값을 통해 L 또는 L'값과 K 또는 K'값과 해당 비디오 프레임의 총 블록 개수를 찾아낸다. 또한, 네트워크 코딩 디코더 모듈 (240) 은 비디오 프레임의 전체 byte 크기를 나타내는 Flength값에 따라 새로 완성할 비디오 프레임을 저장할 버퍼 메모리를 할당한 후 수신 패킷을 블록 ID (BID) 에 맞게 저장한다.
이어서, 비디오 프레임 ID (FID) 가 현재 수신 중인 비디오 프레임의 ID와 일치하는 경우 또는 비디오 프레임 ID (FID) 가 현재 수신 중인 비디오 프레임의 ID와 일치하지는 않으나 해당 비디오 프레임에 대한 버퍼 메모리가 할당된 경우, 네트워크 코딩 디코더 모듈 (240) 은 해당 블록 ID (BID) 가 디코딩이 필요한지 확인한다 (S620).
네트워크 코딩 디코더 모듈 (240) 은 수신 패킷의 헤더를 확인하여 수신 패킷이 포함되는 블록의 블록 ID (BID) 를 확인하고, 해당 블록 ID가 나타내는 블록에 대한 디코딩이 완료되었는지 여부를 판단한다. 만약, 해당 블록에 대한 디코딩이 완료된 경우, 해당 블록 ID (BID) 가 디코딩이 필요하지 않은 것으로 판단하고 해당 수신 패킷을 삭제한다 (S625).
해당 블록 ID (BID) 가 디코딩이 필요하면, 네트워크 코딩 디코더 모듈 (240) 은 헤더의 블록 ID (BID) 별로 수신 패킷을 수집한다 (S630).
이어서, 네트워크 코딩 디코더 모듈 (240) 은 수신 패킷이 원본 패킷인지 확인한다 (S635).
수신 패킷이 원본 패킷인 경우, 네트워크 코딩 디코더 모듈 (240) 은 수신 패킷을 참조하여 비디오 프레임 상의 정해진 위치에 데이터 값을 저장한다 (S640).
네트워크 코딩 디코더 모듈 (240) 은 수신 패킷의 헤더에서 블록 내에서의 원본 패킷 순서 (sys) 가 0이 아닌 원본 패킷을 확인하고, 수신 패킷의 헤더에서 비디오 프레임 내에서의 원본 패킷의 순서 (fseq) 를 확인하여 비디오 프레임 상의 정해진 위치에 데이터 값을 입력한 뒤 저장한다.
수신 패킷이 원본 패킷이 아닌 경우, 그리고 수신 패킷이 원본 패킷인 경우 모두 네트워크 코딩 디코더 모듈 (240) 은 수신 패킷의 해당 블록 ID (BID) 가 디코딩 조건인지 확인한다 (S645).
네트워크 코딩 디코더 모듈 (240) 에서 사용되는 랜덤 선형 네트워크 코딩 방식에서는 하나의 블록에 대응하여 송신 장치 (100) 에서 전송되는 총 N개의 패킷 중 K개의 선형 독립인 패킷들을 수신하면 K개의 원본 패킷을 복원 가능하다. 따라서, 네트워크 코딩 디코더 모듈 (240) 이 해당 블록 ID (BID) 에 대해 K개의 수신 패킷을 수신하면 디코딩을 시도할 수 있는 디코딩 조건을 충족한다. 만약, 블록 ID (BID) 가 마지막 블록을 식별하는 경우, 네트워크 코딩 디코더 모듈 (240) 이 해당 블록 ID (BID) 에 대해 K'개의 수신 패킷을 수신하면 디코딩을 시도할 수 있는 디코딩 조건을 충족한다.
해당 블록 ID (BID) 가 디코딩 조건이 아닌 경우, 즉, 블록 ID (BID) 가 나타내는 블록에 포함되는 패킷이 소정의 개수 (K) 미만 수신된 경우, 수신 패킷을 저장하고 (S650), 수신 패킷을 대기한다.
해당 블록 ID (BID) 가 디코딩 조건인 경우, 즉, 블록 ID (BID) 가 나타내는 블록에 포함되는 패킷이 소정의 개수 이상 수신된 경우, 블록에 대한 디코딩을 수행한다.
구체적으로, 결합 계수 (Coefficient) 행렬의 모든 행이 선형적으로 독립 (linearly independent) 인지 확인한다 (S655).
상술한 바와 같이, 랜덤 선형 네트워크 코딩 방식에서는 하나의 블록에 대응하여 송신 장치 (100) 에서 전송되는 총 N개의 패킷 중 K개의 선형 독립인 패킷들을 수신하면 K개의 원본 패킷을 복원 가능하므로, 디코딩 조건이 충족된 경우, 즉, K개의 수신 패킷을 수신한 경우 K개의 수신 패킷 모두가 선형적으로 독립이어야 디코딩에 성공할 수 있다. 이에, K개의 수신 패킷 모두가 선형적으로 독립인지 확인하고, K개의 수신 패킷 중 하나라도 선형적으로 종속적인 (linearly dependent) 수신 패킷이 있는 경우 디코딩에 실패하는 것으로 판단한다.
디코딩에 실패하는 경우, 즉, 결합 계수 (Coefficient) 행렬의 모든 행이 선형적으로 독립이 아닌 경우, 네트워크 코딩 디코더 모듈 (240) 은 선형적으로 종속적인 수신 패킷을 제거하고 (S660), 디코딩에 실패한 블록을 나타내는 블록 ID를 갖는 수신 패킷을 대기한다.
디코딩에 성공하는 경우, 즉, 수신한 K개의 수신 패킷이 선형적으로 독립인 것으로 판단된 경우 LU 분해 (LU decomposition) 를 통해 원본 패킷을 복원한다 (S665).
네트워크 코딩 디코더 모듈 (240) 에서의 디코딩 과정은 결합 계수 (Coefficient) 행렬의 역행렬을 구해서 이를 수신 패킷에 곱하는 과정이다. 결합 계수 행렬의 역행렬을 구하는 과정에서는 LU 분해 (LU decomposition) 를 이용하여 계산하는데, 일반적으로 사용하는 가우스 소거법보다 연산 속도가 빨라 디코딩 속도를 높일 수 있다. 마지막 블록의 마지막 패킷의 경우 길이가 L'인 패킷이므로 0이 붙은 부분을 제거한다. 이와 같은 디코딩 과정을 통해 복원된 패킷을 디코딩 패킷으로 지칭한다.
이어서, 네트워크 코딩 디코더 모듈 (240) 은 디코딩 패킷의 데이터 값을 비디오 프레임 상의 정해진 위치에 저장하고 (S670), 디코딩에 성공한 블록을 나타내는 블록 ID를 갖는 수신 패킷을 삭제한다 (S675).
네트워크 코딩 디코더 모듈 (240) 은 디코딩 패킷의 헤더의 을 각 패킷의 비디오 프레임 내에서의 원본 패킷의 순서 (fseq) 를 확인하고, 비디오 프레임 상의 정해진 위치에 데이터 값을 저장하고, 디코딩에 성공한 블록을 나타내는 블록 ID를 갖는 수신 패킷을 삭제한다. 또한, 네트워크 코딩 디코더 모듈 (240) 은 그 후에 수신되는 동일 블록 ID (BID) 에 대한 수신 패킷들 또한 삭제한다 (S625).
상술한 바와 같은 네트워크 코딩 디코더 모듈 (240) 에서의 비디오 프레임에 대한 디코딩 과정이 완료되면, 해당 비디오 프레임에 대한 데이터는 비디오 디코더 모듈 (230) 로 전달된다. 비디오 디코더 모듈 (230) 은 네트워크 코딩 디코더 모듈 (240) 에서 만들어진 디코딩 전의 비디오 프레임을 재생 가능한 화면으로 디코딩하는 모듈이다. 비디오 디코더 모듈 (230) 은 송신 장치 (100) 의 비디오 인코더 모듈에서 사용한 것과 같은 비디오 코덱을 사용하여 디코딩을 수행한다. 비디오 디코더 모듈 (230) 은 디코딩을 통해 생성된 스크린 데이터를 스크린 재생 모듈 (220) 로 입력한다.
스크린 재생 모듈 (220) 은 비디오 디코더 모듈 (230) 에서 디코딩된 재생 가능한 비디오 프레임을 스크린에서 재생하는 동작을 한다. 수신 장치 (200) 의 스크린 크기가 비디오의 해상도보다 클 경우, 스크린 재생 모듈 (220) 은 비율에 맞게 비디오 프레임을 확대하여 재생한다.
본 발명의 일 실시예에 따른 멀티스크린 미러링 장치 및 방법에서는 다중 사용자에게 스크린 미러링 시 네트워크 코딩을 사용한 멀티캐스트 전송을 수행하여, 수신 장치 (200) 의 수가 늘어나도 사용되는 대역폭이 증가하지 않고, 신뢰성 높은 전송이 가능할 수 있다.
또한, 본 발명의 일 실시예에 따른 멀티스크린 미러링 장치 및 방법에서는 종래 기술들과 달리 네트워크 코딩 인코더 모듈 (140) 및 네트워크 코딩 디코더 모듈 (240) 을 사용하고, 네트워크 코딩 인코더 모듈 (140) 과 네트워크 코딩 디코더 모듈 (240) 을 효율적으로 설계하여, 멀티캐스트 송신 시 딜레이를 증가시키기지 않으면서 신뢰성 높은 멀티캐스트 전송이 가능할 수 있다.
또한, 본 발명의 일 실시예에 따른 멀티스크린 미러링 장치 및 방법에서는 비디오 프레임 단위로 인코딩하여 효율이 개선되고, 코딩에 의한 추가 딜레이가 감소될 수 있다. 또한, 본 발명의 일 실시예에 따른 멀티스크린 미러링 장치 및 방법에서는 비디오 프레임 단위로 인터리빙하여 패킷을 전송하여 버스트 (Burst) 한 에러에 강인한 서비스를 제공할 수 있다.
또한, 본 발명의 일 실시예에 따른 멀티스크린 미러링 장치 및 방법에서는 트래픽 쉐이퍼를 통해 전송량을 조절하여 버퍼 오버플로우에 의한 패킷 손실을 최소화할 수 있다.
또한, 본 발명의 일 실시예에 따른 멀티스크린 미러링 장치 및 방법에서는 송신 장치 (100) 에서 송신되는 N개의 패킷 중 K개의 패킷 만을 수신 장치 (200) 에서 수신하더라도 정상적으로 디코딩이 완료될 수 있다. 수신 장치 (200) 가 K개의 패킷을 수신하였을 때 이들이 서로 선형 독립일 확률은 대략 99.7%이다. 또한, 수신 장치 (200) 가 (K+1) 개의 패킷을 수신한 경우 K개의 선형 독립인 패킷이 있을 확률은 대략 99.998%이다. 또한, 원본 패킷을 모두 복원하지 못한 경우에는 원본 패킷 형태로 수신한 패킷들에 한해서 복원이 가능하다. 따라서, N을 증가시키면 선형 독립인 패킷 K개를 수신할 확률이 증가하므로 비율에 따라 신뢰도 조절이 가능하다. 또한, 송신 장치 (100) 에서 수신되는 N개의 패킷 중 일부 패킷이 소실되더라도 정상적으로 디코딩이 완료될 수 있다는 장점이 있다.
도 7은 본 발명의 다른 실시예에 따른 멀티캐스트 스크린 미러링 장치에 대한 개략도이다. 도 7에 도시된 멀티캐스트 스크린 미러링 장치는 도 2에 도시된 송신 장치 (100) 와 도 5에 도시된 수신 장치 (200) 가 결합된 송수신 장치 (400) 로서, UI 모듈 (410), 스크린 캡쳐 모듈 (120), 비디오 인코딩 모듈 (130), 네트워크 코딩 인코더 모듈 (140), 트래픽 쉐이퍼 모듈 (150), 스크린 재생 모듈 (220), 비디오 디코더 모듈 (230) 및 네트워크 코딩 디코더 모듈 (240) 을 포함한다.
도 7을 참조하면, 멀티캐스트 스크린 미러링 장치로서 송수신 장치 (400) 는 선택에 의해 도 2에 도시된 송신 장치 (100) 로 기능하거나 도 5에 도시된 수신 장치 (200) 로 기능할 수 있다. 구체적으로, 송수신 장치 (400) 가 UI 모듈 (110) 을 통해 송수신 장치 (400) 를 송신 장치 (100) 로 사용하겠다는 입력을 수신하는 경우, 송수신 장치 (400) 는 UI 모듈 (110), 스크린 캡쳐 모듈 (120), 비디오 인코더 모듈, 네트워크 코딩 인코더 모듈 (140) 및 트래픽 쉐이퍼 모듈 (150) 을 사용하여 도 2에 도시된 바와 같은 송신 장치 (100) 로 기능할 수 있다. 또한, 송수신 장치 (400) 가 UI 모듈 (110) 을 통해 송수신 장치 (400) 를 수신 장치 (200) 로 사용하겠다는 입력을 수신하는 경우, 송수신 장치 (400) 는 UI 모듈 (110), 스크린 재생 모듈 (220), 비디오 디코더 모듈 (230) 및 네트워크 코딩 디코더 모듈 (240) 을 사용하여 도 5에 도시된 바와 같은 수신 장치 (200) 로 기능할 수 있다. 여기서, 송신 용으로 설정하여 실행된 어플리케이션을 송신 어플리케이션이라 하고, 수신 용으로 설정하여 실행한 어플리케이션을 수신 어플리케이션이라고 한다. 이에 따라, 본 발명의 다른 실시예에 따른 멀티캐스트 스크린 미러링 장치로서 송수신 장치 (400) 는 어플리케이션 계층만으로 멀티캐스트 스크린 미러링의 송수신이 가능하게 하여 장치를 바꾸지 않고 범용적으로 사용가능 하다.
도 8은 본 발명의 일 실시예에 따른 멀티캐스트 스크린 미러링 장치 및 방법에서의 인코딩 수율 그래프이다. 도 8에서는 송신 장치로서 전자 칠판 단말 (Odroid XU) 을 사용한 경우의 인코딩 수율 그래프이다.
인코딩 수율은 초당 인코딩을 위해 사용되는 패킷의 총 비트수를 뜻한다. 인코딩 수율은 네크워크 코딩 코덱의 성능의 지표로 해당 값이 비디오 비트 레이트보다 클 때 모듈에서 추가적인 지연없이 전송이 가능하다.
전자 칠판 단말 (Odroid XU) 를 이용한 인코딩 수율 결과 그래프인 도 8을 참조하면, 하나의 블록을 처리하는데 걸리는 지연 시간은 하나의 블록을 구성하는 원본 패킷의 개수 (K) 에 따라 증가하고, 이에 따라 인코딩 수율은 하나의 블록을 구성하는 원본 패킷의 개수 (K) 가 증가함에 따라 감소하는 것을 확인할 수 있다. 그 이유는 하나의 블록을 구성하는 원본 패킷의 개수 (K) 가 증가할수록 필요한 연산의 수가 비례적으로 증가하기 때문이다. 결과를 보면 K가 20 이하인 상황에서 인코딩 수율이 20 Mb/s 이상이 나옴을 확인할 수 있고, 일반적으로 HD급 고화질 비디오의 비트 레이트를 3 Mb/s로 볼 때 충분히 큰 인코딩 수율을 얻음을 확인할 수 있다.
도 9a 및 도 9b는 본 발명의 일 실시예에 따른 멀티캐스트 스크린 미러링 장치 및 방법에서의 디코딩 수율 그래프이다. 도 9a는 수신 장치로서 Galaxy Note 10.1 2014 edition을 사용한 경우인 실시예 1에 대한 디코딩 수율 그래프이고, 도 9b는 수신 장치로서 Galaxy Note 10.1 2012 edition을 사용한 경우인 실시예 2에 대한 디코딩 수율 그래프이다. 도 9a 및 도 9b에서는 다양한 K값에 따른 디코딩 수율 그래프로서, 각각의 K값에서의 원본 패킷의 비율에 따른 디코딩 수율 그래프를 도시하였다.
디코딩 수율은 초당 디코딩을 할 수 있는 패킷의 총 비트수를 뜻한다. 디코딩 수율은 네크워크 코딩 코덱의 성능의 지표로 해당 값이 비디오 비트 레이트보다 클 때 모듈에서 추가적인 지연없이 수신이 가능하다.
디코딩 수율 결과의 경우 K개의 패킷 수신 시 그 중 원본 패킷의 수신 비율에 따라 디코딩 수율이 달라진다. 모든 수신 패킷이 원본 패킷인 경우, 별도의 디코딩 과정이 필요없어 200 Mb/s 이상의 큰 수율을 갖는다. 원본 패킷의 수신 비율이 낮을수록 디코딩 과정에서 필요한 연산의 수가 증가하여 디코딩 수율이 감소한다. 또한 K값이 클수록 인코딩 수율과 마찬가지로 연산의 양이 증가하여 디코딩 수율이 감소한다. 하지만, 실시예 1 및 실시예 2 모두에서 9 Mb/s 이상의 디코딩 수율을 획득하는 것을 확인할 수 있다. 실시예 1의 경우 실시예 2에 비해 대략 1.7배 정도 빠른 결과를 보이는데, 이는 실시예 1 및 실시예 2에 사용된 각 단말의 CPU 클럭 (clock) 차이 (실시예 1: 2300 MHz, 실시예 2: 1400 MHz) 로 기인한 것으로 판단된다.
도 10a 및 도 10b는 본 발명의 일 실시예에 따른 멀티캐스트 스크린 미러링 장치 및 방법에서의 패킷 손실률을 설명하기 위한 측정 토폴로지 및 그래프이다. 도 10a는 패킷 손실률을 측정하기 위한 실험 환경 및 액세스 포인트, 송신 장치, 제1 수신 장치, 제2 수신 장치 및 제3 수신 장치의 위치를 나타낸 개략도이고, 각각의 위치에 대한 좌표는 원점을 기준으로 한 좌표로서 단위는 미터 (m) 이다. 도 10b는 N이 5, 10, 15인 경우 각각에 대한 제1 수신 장치, 제2 수신 장치 및 제3 수신 장치의 패킷 손실률 (PLR) 을 나타내는 그래프이다.
패킷 손실률은 전송 패킷 개수 대비 손실된 비디오 패킷 개수를 뜻하며 성능 지표로 널리 자용된다. 패킷 손실률 측정을 위해 무선랜 액세스 포인트에 송신 장치로서 전자 칠판 단말 (Odroid XU) 을 연결하고, 교실 환경에서 세 군데의 위치에 제1 수신 장치, 제2 수신 장치 및 제3 수신 장치를 배치한 뒤 성능을 측정하였다. 실험에 사용된 액세스 포인트는 MMC Tech의 MW-5150 AP이고, 5 GHz 대역에서 측정하였다. 실험에서 K는 5로 설정하고, N을 5, 10, 15로 바꾸며 측정하였다. N이 5인 경우는 비교예로서, 인코딩 패킷에 대한 송신 없이 원본 패킷만 전송되므로, 네트워크 코딩을 사용하지 않은 종래 기술에서의 결과와 동일하다. 비디오 코딩 파라미터로 비트 레이트는 1 Mb/s, GOP는 20, FPS는 20, 해상도는 1280x720으로 설정하였다. 토큰 주기는 0.277ms 이고, 최대 토큰 개수는 180개로 설정하였다. 멀티캐스트 전송 속도는 54 Mb/s로 설정하여 측정하였다. 제1 수신 장치, 제2 수신 장치 및 제3 수신 장치는 Galaxy Note 10.1 2012 edition을 사용하였다.
측정 결과, N=5로 네트워크 코딩을 사용한 패킷을 전송하지 않는 경우, 즉, 원본 패킷 만을 전송하는 종래 기술인 비교예의 경우 10% 이상의 패킷 손실률이 측정됨을 확인하였다. 그에 반해 N이 10인 경우와 15인 경우인 실시예들의 경우, 일반적인 비디오 스트리밍 시 패킷 손실률 요구 조건인 1% 미만의 패킷 손실률을 얻을 수 있었다.
본 명세서에 개시된 실시예들과 관련하여 설명된 방법 또는 알고리즘의 단계는 프로세서에 의해 실행되는 하드웨어, 소프트웨어 모듈 또는 그 2개의 결합으로 직접 구현될 수도 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 착탈형 디스크, CD-ROM 또는 당업계에 알려진 임의의 다른 형태의 저장 매체에 상주할 수도 있다. 예시적인 저장 매체는 프로세서에 커플링되며, 그 프로세서는 저장 매체로부터 정보를 판독할 수 있고 저장 매체에 정보를 기입할 수 있다. 다른 방법으로, 저장 매체는 프로세서와 일체형일 수도 있다. 프로세서 및 저장 매체는 주문형 집적회로 (ASIC) 내에 상주할 수도 있다. ASIC는 사용자 단말기 내에 상주할 수도 있다. 다른 방법으로, 프로세서 및 저장 매체는 사용자 단말기 내에 개별 컴포넌트로서 상주할 수도 있다.
이상으로 실시예를 들어 본 발명을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것은 아니고, 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형실시될 수 있다. 따라서 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100: 송신 장치
110: UI 모듈
120: 스크린 캡쳐 모듈
130: 비디오 인코딩 모듈
140: 네트워크 코딩 인코더 모듈
150: 트래픽 쉐이퍼 모듈
200: 수신 장치
210: UI 모듈
220: 스크린 재생 모듈
230: 비디오 디코더 모듈
240: 네트워크 코딩 디코더 모듈
300: 액세스 포인트
400: 송수신 장치
410: UI 모듈
1000: 멀티캐스트 스크린 미러링 시스템

Claims (15)

  1. 비디오 프레임을 압축하여 압축된 비디오 프레임을 생성하는 단계;
    상기 압축된 비디오 프레임을 네트워크 코딩 (Network Coding) 으로 인코딩하여 인코딩 패킷을 생성하는 단계; 및
    상기 인코딩 패킷을 멀티캐스트로 전송하는 단계를 포함하는 것을 특징으로 하는, 멀티캐스트 스크린 미러링 방법.
  2. 제1항에 있어서,
    상기 비디오 프레임은 캡쳐 주기마다 스크린이 캡쳐된 데이터인 것을 특징으로 하는, 멀티캐스트 스크린 미러링 방법.
  3. 제1항에 있어서,
    상기 압축된 비디오 프레임을 생성하는 단계는, 사용자로부터 입력된 비트레이트, 프레임 레이트, 해상도 및 I 프레임 인터벌 (I frame interval) 중 적어도 하나에 기초하여 상기 비디오 프레임을 압축하는 단계를 포함하는 것을 특징으로 하는, 멀티캐스트 스크린 미러링 방법.
  4. 제1항에 있어서,
    상기 인코딩 패킷을 생성하는 단계는,
    상기 압축된 비디오 프레임을 소정의 길이의 패킷들로 분리하여 하나 이상의 원본 패킷을 생성하는 단계;
    상기 원본 패킷들을 소정의 개수씩 그룹화하여 하나 이상의 블록을 생성하는 단계; 및
    상기 블록 단위로 네트워크 코딩으로 인코딩하는 단계를 포함하는 것을 특징으로 하는, 멀티캐스트 스크린 미러링 방법.
  5. 제4항에 있어서,
    상기 블록 단위로 네트워크 코딩으로 인코딩하는 단계는 결합 계수와 원본 패킷의 데이터 값을 선형 결합 (linear combination) 하여 상기 인코딩 패킷을 생성하는 단계를 포함하는 것을 특징으로 하는, 멀티캐스트 스크린 미러링 방법.
  6. 제5항에 있어서,
    상기 인코딩 패킷을 멀티캐스트로 전송하는 단계는 상기 인코딩 패킷과 함께 상기 원본 패킷을 멀티캐스트로 전송하는 단계를 포함하는 것을 특징으로 하는, 멀티캐스트 스크린 미러링 방법.
  7. 제5항에 있어서,
    상기 인코딩 패킷은 헤더 및 패이로드를 포함하고,
    상기 헤더는 상기 블록 내의 상기 원본 패킷들의 개수, 상기 블록 내에서의 원본 패킷 순서, 블록 ID, 비디오 프레임 ID, 상기 비디오 프레임의 전체 바이트 (byte) 크기, 상기 결합 계수 및 상기 비디오 프레임 내에서의 상기 원본 패킷의 순서를 포함하는 것을 특징으로 하는, 멀티캐스트 스크린 미러링 방법.
  8. 비디오 프레임을 압축하여 압축된 비디오 프레임을 생성하도록 구성된 비디오 인코더 모듈;
    상기 압축된 비디오 프레임을 네트워크 코딩 (Network Coding) 으로 인코딩하여 인코딩 패킷을 생성하도록 구성된 네트워크 코딩 인코더 모듈; 및
    상기 인코딩 패킷을 멀티캐스트로 전송하도록 구성된 트래픽 쉐이퍼 모듈을 포함하는 것을 특징으로 하는, 멀티캐스트 스크린 미러링 장치.
  9. 비디오 프레임을 압축하여 압축된 비디오 프레임을 생성하고,
    상기 압축된 비디오 프레임을 네트워크 코딩 (Network Coding) 으로 인코딩하여 인코딩 패킷을 생성하고,
    상기 인코딩 패킷을 멀티캐스트로 전송하게 하는 명령어들의 세트를 포함하는 것을 특징으로 하는, 컴퓨터 판독가능 기록매체.
  10. 수신 패킷의 헤더의 비디오 프레임 ID를 확인하는 단계;
    상기 비디오 프레임 ID가 현재 수신 중인 비디오 프레임의 ID와 일치하는 경우,
    상기 헤더의 블록 ID 별로 수신 패킷을 수집하는 단계;
    상기 수신 패킷이 원본 패킷인 경우, 상기 수신 패킷을 참조하여 상기 비디오 프레임 상의 정해진 위치에 데이터 값을 저장하는 단계; 및
    상기 블록 ID가 나타내는 블록에 포함되는 패킷이 소정의 개수 이상 수신된 경우, 상기 블록에 대한 네트워크 코딩 디코딩을 수행하는 단계를 포함하는 것을 특징으로 하는, 멀티캐스트 스크린 미러링 방법.
  11. 제10항에 있어서,
    상기 비디오 프레임 ID가 현재 수신 중인 비디오 프레임의 ID와 일치하지 않는 경우, 상기 헤더의 블록 ID 별로 수신 패킷을 수집하는 단계 이전에,
    이전 비디오 프레임에 대한 디코딩을 수행하는 단계; 및
    새로운 비디오 프레임을 저장할 버퍼 메모리를 할당하는 단계를 더 포함하는 것을 특징으로 하는, 멀티캐스트 스크린 미러링 방법.
  12. 제10항에 있어서,
    상기 디코딩에 성공하는 경우,
    디코딩 패킷의 데이터 값을 상기 비디오 프레임 상의 정해진 위치에 저장하는 단계; 및
    상기 디코딩에 성공한 블록을 나타내는 블록 ID를 갖는 수신 패킷을 삭제하는 단계를 더 포함하는 것을 특징으로 하는, 멀티캐스트 스크린 미러링 방법.
  13. 제10항에 있어서,
    상기 디코딩에 실패하는 경우,
    선형적으로 종속적인 (linearly dependent) 수신 패킷을 제거하는 단계; 및
    상기 디코딩에 실패한 블록을 나타내는 블록 ID를 갖는 수신 패킷을 대기하는 단계를 더 포함하는 것을 특징으로 하는, 멀티캐스트 스크린 미러링 방법.
  14. 수신 패킷의 헤더의 비디오 프레임 ID를 확인하도록 구성되고,
    상기 비디오 프레임 ID가 현재 수신 중인 비디오 프레임의 ID와 일치하는 경우,
    상기 헤더의 블록 ID 별로 수신 패킷을 수집하고,
    상기 수신 패킷이 원본 패킷인 경우, 상기 수신 패킷을 참조하여 상기 비디오 프레임 상의 정해진 위치에 데이터 값을 저장하고,
    상기 블록 ID가 나타내는 블록에 포함되는 패킷이 소정의 개수 이상 수신된 경우, 상기 블록에 대한 네트워크 코딩 디코딩을 수행하도록 구성된 네트워크 코딩 디코더를 포함하는 것을 특징으로 하는, 멀티캐스트 스크린 미러링 장치.
  15. 수신 패킷의 헤더의 비디오 프레임 ID를 확인하고,
    상기 비디오 프레임 ID가 현재 수신 중인 비디오 프레임의 ID와 일치하는 경우,
    상기 헤더의 블록 ID 별로 수신 패킷을 수집하고,
    상기 수신 패킷이 원본 패킷인 경우, 상기 수신 패킷을 참조하여 상기 비디오 프레임 상의 정해진 위치에 데이터 값을 저장하고,
    상기 블록 ID가 나타내는 블록에 포함되는 패킷이 소정의 개수 이상 수신된 경우, 상기 블록에 대한 네트워크 코딩 디코딩을 수행하게 하는 명령어들의 세트를 포함하는 것을 특징으로 하는, 컴퓨터 판독가능 기록매체.
KR1020150094739A 2015-07-02 2015-07-02 멀티캐스트 스크린 미러링 장치 및 방법 KR101706573B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150094739A KR101706573B1 (ko) 2015-07-02 2015-07-02 멀티캐스트 스크린 미러링 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150094739A KR101706573B1 (ko) 2015-07-02 2015-07-02 멀티캐스트 스크린 미러링 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20170004418A true KR20170004418A (ko) 2017-01-11
KR101706573B1 KR101706573B1 (ko) 2017-02-15

Family

ID=57833011

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150094739A KR101706573B1 (ko) 2015-07-02 2015-07-02 멀티캐스트 스크린 미러링 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101706573B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020089718A1 (en) * 2018-11-02 2020-05-07 Sony Corporation Virtual broadcast of unicast data stream in secured wireless local area network

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060011426A (ko) * 2004-07-30 2006-02-03 삼성전자주식회사 Av데이터 수신시 버퍼량을 컨텐츠 속성에 따라탄력적으로 조절하는 방법 및 장치
KR20090094941A (ko) * 2008-03-04 2009-09-09 삼성전자주식회사 이동통신 단말기에서 외장형 디스플레이 디바이스와 화면을공유하기 위한 장치 및 방법
KR20120085508A (ko) * 2011-01-24 2012-08-01 한국과학기술원 다중 소스 멀티캐스트 기반 콘텐츠 전송 방법 및 시스템
KR20140062400A (ko) * 2012-11-14 2014-05-23 삼성전자주식회사 네트워크 코딩 기반 멀티캐스트 트래픽을 송수신하는 기지국 및 복수의 멤버 노드들

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060011426A (ko) * 2004-07-30 2006-02-03 삼성전자주식회사 Av데이터 수신시 버퍼량을 컨텐츠 속성에 따라탄력적으로 조절하는 방법 및 장치
KR20090094941A (ko) * 2008-03-04 2009-09-09 삼성전자주식회사 이동통신 단말기에서 외장형 디스플레이 디바이스와 화면을공유하기 위한 장치 및 방법
KR20120085508A (ko) * 2011-01-24 2012-08-01 한국과학기술원 다중 소스 멀티캐스트 기반 콘텐츠 전송 방법 및 시스템
KR20140062400A (ko) * 2012-11-14 2014-05-23 삼성전자주식회사 네트워크 코딩 기반 멀티캐스트 트래픽을 송수신하는 기지국 및 복수의 멤버 노드들

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020089718A1 (en) * 2018-11-02 2020-05-07 Sony Corporation Virtual broadcast of unicast data stream in secured wireless local area network
US10880279B2 (en) 2018-11-02 2020-12-29 Sony Corporation Virtual broadcast of unicast data stream in secured wireless local area network

Also Published As

Publication number Publication date
KR101706573B1 (ko) 2017-02-15

Similar Documents

Publication Publication Date Title
JP5141197B2 (ja) 符号化装置
JP4321284B2 (ja) ストリーミングデータ送信装置、および情報配信システム
US10218821B2 (en) Apparatus and method of transmitting and receiving packet in a broadcasting and communication system
US8081635B2 (en) Reconstruction of errored media streams in a communication system
US20210328717A1 (en) Audio data recovery method, device and Bluetooth Apparatus Device
CN101783955A (zh) 一种数据异常时的恢复方法和设备
RU2673102C2 (ru) Устройство и способ обработки информации и программа
CN112565224B (zh) 一种视频处理方法及装置
CN105357229B (zh) 一种视频处理方法及装置
US9667384B2 (en) Apparatus and method for transmitting and receiving forward error correction packet
CN104754341A (zh) 一种视频数据编码、解码的方法和装置
RU2668064C2 (ru) Устройство обработки информации, способ обработки информации и программа
KR101706573B1 (ko) 멀티캐스트 스크린 미러링 장치 및 방법
JP2007324876A (ja) データ送信装置、データ受信装置、データ送信方法、データ受信方法、及びプログラム
KR101953580B1 (ko) 영상회의 시스템에서 데이터 송수신 장치 및 방법
CN114500672A (zh) 数据传输方法及系统
CN113612962A (zh) 视频会议处理方法、系统和装置
US10313708B1 (en) Distributed upload of television content
KR20160123562A (ko) 데이터 패킷 처리를 위한 수신기 장치 및 수신기 장치에서의 데이터 패킷 처리 방법
JP5746963B2 (ja) 通信システム
JP6614145B2 (ja) 受信装置、受信方法およびコンピュータプログラム
JP2018014641A (ja) Mmtコンテンツ作成装置および作成プログラム
KR20150079399A (ko) 데이터 전송 디바이스 및 그 전송 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant