KR101374452B1 - 데이터 블록을 인터리빙하기 위한 방법 및 장치 - Google Patents

데이터 블록을 인터리빙하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR101374452B1
KR101374452B1 KR1020117012048A KR20117012048A KR101374452B1 KR 101374452 B1 KR101374452 B1 KR 101374452B1 KR 1020117012048 A KR1020117012048 A KR 1020117012048A KR 20117012048 A KR20117012048 A KR 20117012048A KR 101374452 B1 KR101374452 B1 KR 101374452B1
Authority
KR
South Korea
Prior art keywords
data
data block
interleaved
parts
multimedia
Prior art date
Application number
KR1020117012048A
Other languages
English (en)
Other versions
KR20110089309A (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 노키아 코포레이션
Publication of KR20110089309A publication Critical patent/KR20110089309A/ko
Application granted granted Critical
Publication of KR101374452B1 publication Critical patent/KR101374452B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0071Use of interleaving
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • 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/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23608Remultiplexing multiplex streams, e.g. involving modifying time stamps or remapping the packet identifiers
    • 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/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2383Channel coding or modulation of digital bit-stream, e.g. QPSK modulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/24Systems for the transmission of television signals using pulse code modulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/24Systems for the transmission of television signals using pulse code modulation
    • H04N7/52Systems for transmission of a pulse code modulated video signal with one or more other pulse code modulated signals, e.g. an audio signal or a synchronizing signal

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

일 측면에서, 본 발명에 의한 방법은 멀티미디어 데이터 블록을 수신하는 단계를 포함한다. 멀티미디어 데이터 블록은 복수 개의 데이터 파트들을 포함한다. 이 방법은 복수 개의 데이터 파트들을 인터리빙하여 우선 순위에 기반한 인터리빙된 데이터 블록을 형성하는 단계를 더 포함한다. 우선 순위는 복수 개의 데이터 파트들과 관련된 타입 정보에 기반한다. 이 방법은 또한 인터리빙된 데이터 블록을 송신하는 단계를 더 포함한다. 다른 측면에서, 본 발명에 의한 방법은 인터리빙된 멀티미디어 데이터 블록의 하나 또는 그 이상의 데이터 파트를 수신하는 단계 및 정보에 기반하여 하나 또는 그 이상의 데이터 파트의 제1 데이터 파트를 결정하는 단계를 포함한다. 이 방법은 다른 정보에 기반하여 제1 데이터 파트에 대한 스케줄 엔트리를 스케줄에서 결정하는 단계를 더 포함한다.

Description

데이터 블록을 인터리빙하기 위한 방법 및 장치{Method and apparatus for interleaving a data block}
본 명세서는 일반적으로 멀티미디어 데이터 스트리밍에 관련된다. 특히, 본 명세서는 데이터 블록 내의 데이터 유닛 또는 데이터 파트들을 인터리빙하는데 관련된다.
이 섹션은 청구항에 기술된 본 발명의 배경 기술 또는 배경 정황을 제공하려는 의도를 가진다. 여기의 설명은 구현될 수 있지만, 반드시 과거에 구상되거나 구현되었을 필요는 없는 개념들을 포함할 수 있다. 그러므로, 여기서 다르게 표시되지 않는다면, 이 섹션에서 설명되는 사항들은 본 명세서 내의 청구항 및 상세한 설명에 대한 선행 기술이 아니며 이 섹션에 포함한 것으로 선행 기술로 인정되는 것은 아니다.
데이터 배달 방법은 사용되는 라우팅 스킴에 따라서, 수신자의 수 및 그들의 가입자 관계(subscriber relationship)에 의존하여 유니캐스팅, 멀티캐스팅, 및 브로드캐스팅으로 그루핑될 수 있다. 유니캐스팅은 미디어 콘텐츠를 1명의 가입자에게 송신하는 것을 의미한다. 유니캐스팅에서, 수신자는 일반적으로 전송자로부터 미디어 콘텐츠의 송신을 요청한다. 멀티캐스팅은 미디어 콘텐츠를 가입자의 알려진 그룹으로 송신하는 것으로 정의된다. 멀티캐스팅에서, 통신 장치와 같은 사용자 장비는 일반적으로 특정 통신 프로토콜을 통하여 멀티캐스트 세션에 가입한다. 브로드캐스팅 서비스는 미디어 콘텐츠 스트림을 미지의 그리고 구별되지 않을 수 있는 가입자의 그룹으로 송신한다. 브로드캐스팅에서, 사용자 장비, 예를 들면 통신 장치는 전형적으로 전송자에게 어떠한 통지도 하지 않은 채 브로드캐스트 송신의 수신을 개시한다.
스트리밍은 스트리밍 배달, 스트리밍 서비스와 스트리밍 어플리케이션에 대한 총체적인 용어이다. 스트리밍 배달은 화상 전화와 같이, 스트리밍 이외의 어플리케이션에서도 이용된다. 스트리밍 배달은 수신되는 데이터의 동시 수신 및 재생에 의해 특징지어진다. 일반적으로, 예를 들어 사용자 데이터그램 프로토콜(user datagram protocol, UDP)과 같은 비신뢰 통신 프로토콜들이, 적당하고 상대적으로 안정된 단-대-단 송신 지연을 가지기 위하여 스트리밍 배달에 이용된다. 점진적 다운로딩(progressive downloading)은 하이퍼텍스트 전송 프로토콜(Hypertext Transfer Protocol, HTTP)과 같은 신뢰성 통신 프로토콜을 통한 멀티미디어 파일의 송신, 및 이것이 수신되는 동안에 해당 파일을 디코딩 및 렌더링하는 것을 가리킨다.
스트리밍 서비스는 예를 들어 충분한 대역폭을 제공하는 것과 같은 네트워크 접근 기술의 현저한 발달 및 예를 들어 개선된 품질을 얻는 것과 같은 미디어 코딩 기술의 현저한 발달에 따라서 더욱더 많은 인기를 얻고 있다. 스트리밍에서, 콘텐츠는 원격 서버로부터의 수신이 개시된 직후에 재생된다. 재생 지연은 예를 들어 클라이언트-서버 아키텍처에서는 2초 정도에서 예를 들어 피어-대-피어 스트리밍 어플리케이션에서는 1 또는 2분 정도의 범위에 포함될 수 있다.
스트리밍 배달은 수 개의 상이한 어플리케이션에서 채택되는데, 예를 들어 주문형 비디오(VOD), 인터넷 프로토콜 텔레비전(IPTV), 이동 TV 브로드캐스트/멀티캐스트, 피어-대-피어 스트리밍 등에 채택된다. 목표 어플리케이션에 따라서 스트리밍 세션의 설정 및 제어를 위한 상이한 프로토콜이 이용된다. 3세대 파트너십 프로젝트(3rd Generation Partnership Project, 3GPP)는 유니캐스트 스트리밍 서비스인 패킷 교환 스트리밍 서비스(Packet-switched Streaming Service, PSS)를 정의하는데, 이것은 무선 유니캐스트 소지자를 통한 이동 사용자들로의 실시간 및 저장된 콘텐츠 스트리밍을 허용한다. 디지털 비디오 브로드캐스트(Digital Video Broadcast, DVB)는 예를 들어 DSL 회선과 같은 고정 소지자를 통하여 사용자의 가정으로 실시간 및 저장된 콘텐츠를 배달하는 IPTV 서비스를 정의한다. 배달은 유니캐스트 또는 멀티캐스트 모드에서 수행될 수 있다.
스트리밍 서비스는 3 GPP에 의하여 정의되는 멀티미디어의 브로드캐스팅/멀티캐스트 서비스(MBMS)를 이용할 수 있다. MBMS는 송신 오류 및 패킷 손실에 대하여 미디어 스트림을 보호하기 위한 순방향 오류 정정(FEC) 메커니즘을 이용한다. MBMS FEC 코드는 원본 소스 데이터로부터 일군의 정정 데이터(repair data)를 생성하는 체계적인 블록 코드이다. 소스 데이터는 소스 블록으로 나뉜다. 그리고, 소스 블록은 예를 들어 데이터 패킷 또는 데이터 유닛과 같은 소스 심벌의 집합을 포함한다. 그러면, 소스 블록이 FEC 인코더로 공급되어 정정 심벌(repair symbol)을 생성한다.
FEC 디코딩 동작은 통신 장치에서 개시되어 송신 도중에 발생한 패킷 손실을 복구한다. 이러한 목적을 위하여, 통신 장치는 현재 소스 블록의 수신 패킷들 및 관련된 정정 데이터를 버퍼링한다. FEC 디코딩은 소스 블록 및 관련 정정 데이터의 수신이 완료될 때마다 시작될 수 있다.
멀티캐스트 및 브로드캐스트 스트리밍 배달에서, 상이한 수신자에게 상이한 해상도 레벨을 제공하기 위하여 확장가능 미디어 코딩(scalable media coding)이 이용될 수 있다. 비디오 스트림의 경우에 대해서는, 공간적, 시간적, 및 품질 확장가능성(scalability)이 제공될 수 있다. 확장가능 비디오 코딩(Scalable Video Coding, SVC)은 개선된 비디오 코딩(H.264/AVC) 표준에 대한 확장으로서 정의되어 왔다. SVC는 공간적, 시간적, 저화질(coarse-grain) 및 중화질(medium-grain) 품질 확장가능성을 허용한다. 시간적 확장가능성(temporal scalability)은 계층적 B 픽쳐들을 이용하여 획득되는데, 이것은 H.264/AVC 코덱을 이용하여 이미 실현 가능하다. 공간적 확장가능성(spatial scalability)은 두 개 또는 그 이상의 비트-스트림의 하부 집합의 생성을 허용하는데, 여기서 각 하부 집합은 상이한 픽쳐 해상도를 나타낸다. 품질 확장가능성(quality scalability)은 비디오 신호의 신호-대-잡음 비(SNR)를 개선하는 비트-스트림 계층의 생성을 가능하게 한다. SVC는 단일 루프 디코더(single loop decoder)를 요청함으로써, 동작 보상(motion compensation)이 단일 계층에서 수행된다. 오디오 확장가능성(audio scalability)은 여러 개의 상이한 타입을 가질 수 있다. SNR 확장가능성은 확장 계층(extension layer)이 오디오 신호의 SNR을 개선하는 프로시저를 가리킨다. 대역폭 확장가능성은 확장 계층이 제공되는 오디오 대역폭을 증가시키는 확장가능성 한 타입이다. 채널 확장가능성은 확장 계층이 추가적 오디오 채널을 제공하는 모드를 가리킨다.
본 발명의 목적은 송신 오류 및/또는 패킷 손실이 감소함으로써 사용자가 개선된 품질로 미디어를 감상할 수 있도록 하는 것이다. 본 발명의 다른 목적은 인터리빙된 데이터의 배열(ordering)을 가능하게 하여 잔여 멀티미디어가 수신되는 동안에 멀티미디어를 시작할 수 있도록 함으로써, 그 결과 사용자들은 개선된 품질로 미디어를 감상할 수 있고, 고속 채널 전환도 가능하게 하는 것이다. 본 발명의 또다른 목적은 인터리빙된 데이터의 높은 시청 지속 시간(viewing duration)을 구현함으로써 사용자들이 개선된 품질로 미디어를 감상하도록 하고, 고속 채널 전환을 가능하게 하는 것이다.
일 측면에서, 본 발명에 의한 방법은 멀티미디어 데이터 블록을 수신하는 단계로서, 상기 멀티미디어 데이터 블록은 복수 개의 데이터 파트들을 포함하는 단계; 상기 복수 개의 데이터 파트들을 인터리빙하여 우선 순위에 기반한 인터리빙된 데이터 블록을 형성하는 단계로서, 상기 우선 순위는 상기 복수 개의 데이터 파트들과 관련된 타입 정보에 기반하는 단계; 및 상기 인터리빙된 데이터 블록을 송신하는 단계를 포함한다.
몇 가지 실시예에서, 본 발명에 의한 방법은 상기 인터리빙된 데이터 블록과 관련된 정보에 기반하여 인터리브 속성(interleave attribute)을 생성하는 단계를 더 포함한다.
다른 실시예에서, 본 발명에 의한 방법은 상기 인터리빙된 데이터 블록을 상기 인터리브 속성을 포함하도록 수정하는 단계를 더 포함한다.
몇 가지 실시예에서, 본 발명에 의한 방법은 상기 인터리브 속성을 송신하는 단계를 더 포함한다. 다른 실시예에서, 상기 인터리브 속성은, 상기 우선 순위와 관련된 정보, 디코딩을 위한 우선권(priority), 타임스탬프, 및 상기 데이터 파트와 관련된 정보들을 포함한다.
몇 가지 실시예에서, 본 발명에 의한 방법은 상기 멀티미디어 데이터 블록을 인코딩하는 단계를 더 포함한다.
다른 실시예에서, 본 발명에 의한 방법은 상기 인터리빙된 데이터 블록을 인코딩하는 단계를 더 포함한다.
몇 가지 실시예에서, 본 발명에 의한 방법은 상기 인코딩은 순방향 에러 정정 인코딩(forward error correction encoding)이다.
다른 실시예에서, 상기 우선 순위는 역방향 연대 순서(reverse chronologic order), 연대 순서, 데이터 파트 크기 순서, 및/또는 데이터 타입 순서이다.
몇 가지 실시예에서, 상기 우선 순위는 선결된 우선 순위이다.
다른 측면에서, 본 발명에 의한 장치는 송수신기 및 인터리버를 포함한다. 송수신기는 멀티미디어 데이터 블록을 수신하고 인터리빙된 데이터 블록을 송신하도록 구성되며, 상기 멀티미디어 데이터 블록은 복수 개의 데이터 파트들을 포함한다. 인터리버는 상기 복수 개의 데이터 파트들을 인터리빙하여 우선 순위에 기반한 인터리빙된 데이터 블록을 형성하도록 구성되며, 상기 우선 순위는 상기 복수 개의 데이터 파트들과 관련된 타입 정보에 기반한다.
몇 가지 실시예에서, 본 발명에 의한 장치는 상기 인터리빙된 데이터 블록과 관련된 정보에 기반하여 인터리브 속성을 생성하도록 더욱 구성되는 인터리버를 더 포함한다.
다른 실시예에서, 본 발명에 의한 장치는 상기 인터리빙된 데이터 블록을 상기 인터리브 속성을 포함하도록 수정하도록 더욱 구성되는 인터리버를 더 포함한다.
몇 가지 실시예에서, 본 발명에 의한 장치는 상기 인터리브 속성을 송신하도록 더욱 구성되는 송수신기를 더 포함한다.
다른 실시예에서, 본 발명에 의한 장치는 상기 멀티미디어 데이터 블록을 인코딩하도록 구성되는 인코더를 더 포함한다.
몇 가지 실시예에서, 본 발명에 의한 장치는 상기 인터리빙된 데이터 블록을 인코딩하도록 구성되는 인코더를 더 포함한다.
다른 실시예에서, 본 발명에 의한 장치는 상기 데이터 블록과 관련된 멀티미디어 타입에 기반하여 우선 순위를 생성하도록 더욱 구성되는 인터리버를 더 포함한다.
다른 측면에서, 본 발명에 의한 컴퓨터 판독가능 저장 매체는 명령어들을 이용하여 인코딩되고, 상기 명령어들은 컴퓨터 프로세서에 의하여 실행되면, 멀티미디어 데이터 블록을 수신하는 동작으로서, 상기 멀티미디어 데이터 블록은 복수 개의 데이터 파트들을 포함하는 동작; 상기 복수 개의 데이터 파트들을 인터리빙하여 우선 순위에 기반한 인터리빙된 데이터 블록을 형성하는 동작으로서, 상기 우선 순위는 상기 복수 개의 데이터 파트들과 관련된 타입 정보에 기반하는 동작; 및 상기 인터리빙된 데이터 블록을 송신하는 동작을 수행한다.
다른 측면에서, 본 발명에 의한 방법은 인터리빙된 멀티미디어 데이터 블록의 하나 또는 그 이상의 데이터 파트를 수신하는 단계; 상기 하나 또는 그 이상의 데이터 파트와 관련된 시간 정보 및/또는 상기 하나 또는 그 이상의 데이터 파트의 데이터 타입 정보에 기반하여 상기 하나 또는 그 이상의 데이터 파트 중 제1 데이터 파트를 결정하는 단계; 및 상기 하나 또는 그 이상의 데이터 파트와 관련된 시간 정보 및 후속 데이터 블록의 최선(最先) 데이터 파트의 플레이-아웃(play-out) 시간 정보에 기반하여 스케줄 내에서 상기 제1 데이터 파트에 대한 스케줄 엔트리(schedule entry)를 결정하는 단계를 포함한다.
몇 가지 실시예에서, 본 발명에 의한 방법은 상기 하나 또는 그 이상의 데이터 파트와 관련된 시간 정보 및/또는 상기 하나 또는 그 이상의 데이터 파트의 데이터 타입 정보 중 적어도 하나에 기반하여 상기 하나 또는 그 이상의 데이터 파트를 정렬하는(arranging) 단계를 더 포함한다.
다른 실시예에서, 본 발명에 의한 방법은 정렬된 하나 또는 그 이상의 데이터 파트를 재생하는 단계를 더 포함한다.
몇 가지 실시예에서, 본 발명에 의한 방법은 상기 스케줄 내의 결정된 스케줄 엔트리에 기반하여 상기 제1 데이터 파트를 재생하는 단계를 더 포함한다.
다른 실시예에서, 본 발명에 의한 방법에 포함되는 데이터 파트를 재생하는 단계는, 상기 데이터 파트를 디스플레이하는 단계 및/또는 상기 데이터 파트를 복제하는(reproducing) 단계를 포함하는 단계를 더 포함한다.
몇 가지 실시예에서, 상기 인터리빙된 멀티미디어 데이터 블록은 오디오 데이터 파트, 비디오 데이터 파트, 이미지 데이터 파트, 텍스트 데이터 파트, 및/또는 애니메이션 데이터 파트를 포함한다.
다른 실시예에서, 본 발명에 의한 방법은 상기 인터리빙된 멀티미디어 데이터 블록의 수신된 섹션에 기반하여 플레이-아웃 시간을 결정하는 단계를 더 포함한다.
다른 실시예에서, 본 발명에 의한 방법은 후속 데이터의 최선(最先) 데이터 파트의 플레이-아웃 시간 정보 및/또는 프리즈 시간 정보에 기반하여 제1 데이터 파트에 대한 스케줄 엔트리를 스케줄 내에서 결정하는 단계를 더 포함한다.
몇 가지 실시예에서, 본 발명에 의한 방법은 후속 멀티미디어 데이터 블록과 관련된 시간 정보 및 상기 하나 또는 그 이상의 데이터 파트와 관련된 시간 정보 간의 차이에 기반하여 프리즈 시간 정보를 결정하는 단계를 더 포함한다.
다른 실시예에서, 본 발명에 의한 방법은 수신된 인터리브 속성에 기반하여 상기 하나 또는 그 이상의 데이터 파트 중 제1 데이터 파트를 결정하는 단계를 더 포함한다.
몇 가지 실시예에서, 상기 인터리브 속성은, 상기 인터리빙된 멀티미디어 데이터 블록의 하나 또는 그 이상의 데이터 파트의 시퀀스에 관련된 정보를 포함한다.
몇 가지 실시예에서, 상기 하나 또는 그 이상의 데이터 파트의 데이터 타입 정보는 상기 하나 또는 그 이상의 데이터 파트의 멀티미디어 타입을 포함한다.
다른 측면에서, 본 발명에 의한 장치는 송수신기 및 미디어 프로세서를 포함한다. 송수신기는 인터리빙된 멀티미디어 데이터 블록의 하나 또는 그 이상의 데이터 파트를 수신하도록 구성된다. 미디어 프로세서는 상기 하나 또는 그 이상의 데이터 파트와 관련된 시간 정보 및/또는 상기 하나 또는 그 이상의 데이터 파트의 데이터 타입 정보에 기반하여 상기 하나 또는 그 이상의 데이터 파트 중 제1 데이터 파트를 결정하고, 후속 데이터 블록의 최선(最先) 데이터 파트의 플레이-아웃 시간 정보에 기반하여 스케줄 내에서 상기 제1 데이터 파트에 대한 스케줄 엔트리를 결정하도록 구성된다.
몇 가지 실시예에서, 본 발명에 의한 장치는 상기 하나 또는 그 이상의 데이터 파트와 관련된 시간 정보 및/또는 상기 하나 또는 그 이상의 데이터 파트의 데이터 타입 정보에 기반하여 상기 하나 또는 그 이상의 데이터 파트를 정렬하도록 더욱 구성되는 미디어 프로세서를 더 포함한다.
다른 실시예에서, 본 발명에 의한 장치는 정렬된 하나 또는 그 이상의 데이터 파트를 재생하도록 구성되는 디스플레이를 더 포함한다.
몇 가지 실시예에서, 본 발명에 의한 장치는 상기 스케줄 내의 결정된 스케줄 엔트리에 기반하여 상기 제1 데이터 파트를 재생하도록 구성되는 디스플레이를 더 포함한다.
다른 실시예에서, 본 발명에 의한 장치는 상기 인터리빙된 멀티미디어 데이터 블록의 수신된 섹션에 기반하여 플레이-아웃 시간 정보를 결정하도록 더욱 구성되는 미디어 프로세서를 더 포함한다.
몇 가지 실시예에서, 본 발명에 의한 장치는 후속 데이터 블록의 최선 데이터 파트의 플레이-아웃 시간 정보 및/또는 프리즈 시간 정보에 기반하여 상기 제1 데이터 파트에 대한 스케줄 엔트리를 스케줄 내에서 결정하도록 더욱 구성되는 미디어 프로세서를 더 포함한다.
몇 가지 실시예에서, 본 발명에 의한 장치는 후속 멀티미디어 데이터 블록과 관련된 시간 정보 및 상기 하나 또는 그 이상의 데이터 파트와 관련된 시간 정보 간의 차이에 기반하여 프리즈 시간 기간을 결정하도록 더욱 구성되는 미디어 프로세서를 더 포함한다.
다른 실시예에서, 본 발명에 의한 장치는 인터리브 속성에 기반하여 상기 하나 또는 그 이상의 데이터 파트 중 제1 데이터 파트를 결정하도록 더욱 구성되는 미디어 프로세서를 더 포함한다.
다른 측면에서, 본 발명에 의한 컴퓨터 판독가능 저장 매체는 명령어들을 이용하여 인코딩되며, 상기 명령어들은, 컴퓨터 프로세서에 의하여 실행되면, 인터리빙된 멀티미디어 데이터 블록의 하나 또는 그 이상의 데이터 파트를 수신하는 동작; 상기 하나 또는 그 이상의 데이터 파트와 관련된 시간 정보 및 상기 하나 또는 그 이상의 데이터 파트의 데이터 타입 정보에 기반하여 상기 하나 또는 그 이상의 데이터 파트 중 제1 데이터 파트를 결정하는 동작; 및 후속 데이터 블록의 최선(最先) 데이터 파트의 플레이-아웃 시간 정보에 기반하여 스케줄 내에서 상기 제1 데이터 파트에 대한 스케줄 엔트리를 결정하는 동작을 수행한다.
본 명세서에서 설명되는 멀티미디어 데이터 블록을 위한 인터리빙 기법은 다음과 같은 하나 또는 그 이상의 장점을 제공할 수 있다. 한 가지 장점은 송신 오류 및/또는 패킷 손실이 감소함으로써 사용자가 개선된 품질로 미디어를 감상할 수 있다는 점이다. 다른 장점은 인터리빙된 데이터의 배열(ordering)이 가능하기 때문에 잔여 멀티미디어가 수신되는 동안에 멀티미디어를 시작할 수 있다는 점이며, 그 결과 사용자들은 개선된 품질로 미디어를 감상할 수 있고, 고속 채널 전환도 가능해진다. 추가적 장점은 인터리빙된 데이터의 높은 시청 지속 시간(viewing duration)인데, 이를 통하여 사용자들은 개선된 품질로 미디어를 감상할 수 있고, 고속 채널 전환도 가능해진다.
다양한 실시예들의 언급되거나 되지 않은 장점 및 특징들은 그 동작의 구성 및 방식과 함께 첨부되는 도면을 함께 고려하여 후속되는 상세한 설명으로부터 명백해질 것이다.
본 명세서에서 설명되는 멀티미디어 데이터 블록을 위한 인터리빙 기법은 다음과 같은 하나 또는 그 이상의 장점을 제공할 수 있다. 한 가지 장점은 송신 오류 및/또는 패킷 손실이 감소함으로써 사용자가 개선된 품질로 미디어를 감상할 수 있다는 점이다. 다른 장점은 인터리빙된 데이터의 배열(ordering)이 가능하기 때문에 잔여 멀티미디어가 수신되는 동안에 멀티미디어를 시작할 수 있다는 점이며, 그 결과 사용자들은 개선된 품질로 미디어를 감상할 수 있고, 고속 채널 전환도 가능해진다. 추가적 장점은 인터리빙된 데이터의 높은 시청 지속 시간(viewing duration)인데, 이를 통하여 사용자들은 개선된 품질로 미디어를 감상할 수 있고, 고속 채널 전환도 가능해진다.
다양한 실시예들의 언급되거나 되지 않은 장점 및 특징들은 그 동작의 구성 및 방식과 함께 첨부되는 도면을 함께 고려하여 후속되는 상세한 설명으로부터 명백해질 것이다.
실시예들은 다음과 같은 첨부 도면들을 참조하여 설명된다:
도 1은 데이터 배달을 위한 예시적인 통신 시스템을 도시한다.
도 2a 및 2b는 각각 예시적 통신 장치의 블록도 및 예시적 서버의 블록도를 도시한다.
도 3은 본 발명의 예시적인 일 실시예에 따르는 서버의 상세한 블록도를 도시한다.
도 4는 본 발명의 예시적인 다른 실시예에 따르는 서버의 상세한 블록도를 도시한다.
도 5a 및 5b는 각각 예시적인 멀티미디어 소스 블록 및 동일한 멀티미디어 소스 블록이 본 발명의 예시적인 일 실시예에 따라서 인터리빙된 이후의 블록도를 도시한다.
도 6a 및 6b는 본 발명의 예시적인 일 실시예에 따르는 수신 통신 장치에 의한 예시적인 스케줄링 프로세스의 타임라인을 도시한다.
도 7a는 데이터 블록의 본 발명의 예시적인 일 실시예에 따라서 인터리빙된 데이터 파트의 프리젠테이션/디스플레이 타임스탬프들을 도시하는 그래프이다.
도 7b는 도 7a에 도시된 데이터 블록과 동일한 데이터 블록의 인터리빙되지 않은 데이터 파트의 프리젠테이션/디스플레이 타임스탬프들을 도시하는 그래프이다.
도 8은 예시적인 통신 장치를 도시한다.
도 9a 및 9b는 인터리브 기술자(interleave descriptor)를 포함하는 데이터 블록 기술자들을 예들이다.
도 10a는 본 발명의 예시적인 일 실시예에 따르는 서버에 의한 예시적인 인터리빙 프로세스를 설명하는 흐름도이다.
도 10b는 본 발명의 예시적인 일 실시예에 따르는 서버에 의한 예시적인 인터리빙 프로세스를 설명하는 흐름도이다.
도 11은 본 발명의 예시적인 일 실시예에 따르는 통신 장치에 의한 예시적인 스케줄링 및 디-인터리빙(de-interleaving) 프로세스를 설명하는 흐름도이다.
후속되는 상세한 설명에서, 본 발명의 실시예에 대한 완전한 이해를 위하여 세부 사항 및 상세한 기술이 제공되는데, 이는 예시적인 목적으로 제공되는 것이지 본 발명을 한정하기 위한 목적이 아니다. 그러나, 당업자들은 본 발명의 실시예들이 본 명세서의 이러한 세부 사항 및 상세한 기술과는 상이한 다른 실시예들에서도 실시될 수 있다는 것을 명백히 이해할 것이다.
부록 A가 포함된다. 부록 A는 본 출원의 예시적인 실시예들에 대한 설명을 포함하며, 본 명세서에 참조되어 통합된다.
도 1은 데이터 배달을 위한 예시적인 통신 시스템(100)을 예시한다. 통신 시스템(100)은 적어도 하나의 통신 장치(110), 통신 네트워크(120), 및 적어도 하나의 멀티미디어 서버를 포함하는데, 멀티미디어 서버는 예를 들어 서버 A(130a), 서버 B(130b) 내지 서버 Z(130z)들이며, 일반적으로 130으로 표시된다. 통신 장치(110)는 무선 전화(110a), 개인 휴대용 단말기(personal digital assistant, PDA)(110b), 컴퓨터(110c), 텔레비전(110z) 등을 포함한다. 통신 장치(110)가 모든 통신 장치를 포함할 수 있다는 점이 당업자에게 이해될 것이다.
멀티미디어 스트리밍 세션에서, 통신 장치(110)는 통신 네트워크(120)를 통하여 하나 또는 그 이상의 멀티미디어 서버(130)로부터 멀티미디어 소스 블록을 수신한다. 멀티미디어 소스 블록은 복수 개의 데이터 유닛 또는 데이터 패킷을 포함한다. 미디어 콘텐츠를 포함하는 데이터 패킷은 프리젠테이션 순서, 예를 들어 데이터 패킷 내의 콘텐츠들의 타임스탬프를 표시하는 정보를 운반할 수 있다. 통신 장치는 미디어를 디코딩하고 이것을 프리젠테이션 순서 정보에 의하여 정의된 연대 순서(chronologic order)로 디스플레이한다.
예시적인 일 실시예에 따르면, 멀티미디어 소스 블록의 예를 들어 데이터 유닛 또는 데이터 패킷과 같은 데이터 파트는 그들의 상응하는 프리젠테이션 순서와는 상이한 순서로 인터리빙, 배열(ordered), 또는 정렬된다. 예를 들어, 멀티미디어 소스 블록 내의 데이터 파트들은 수신자 측에서의 튠-인 시간(tune-in time)을 최소화하는 방식으로 인터리빙 또는 정렬될 수 있다. 예시적인 실시예에서, 예를 들어 멀티미디어 소스 블록 내의 상이한 데이터 파트들에는 데이터 파트들이 인터리빙되는 상이한 우선권이 할당될 수 있다. 다른 예시적인 실시예에서는, 예를 들어 동일한 데이터 소스 블록 내의 다른 데이터 파트를 디코딩하는데 필요한 데이터 파트들은 해당 멀티미디어 소스 블록의 끝에 배치된다. 이러한 인터리빙/정렬은 수신기 장치로 하여금 신속히 미디어 콘텐츠를 튠-인하고 디스플레이를 개시하도록 허용할 수 있다. 예를 들어, 오디오 데이터와 관련되는 데이터 파트 역시, 예를 들어 멀티미디어 스트리밍 세션에 참여하는 통신 장치로 하여금 원치 않은 지연 없이 오디오 콘텐츠의 재생을 개시하도록 허용하기 위하여, 멀티미디어 소스 블록의 끝에 배치될 수도 있다.
다른 실시예에서, 통신 장치(110)는 통신 네트워크(120)를 통하여 멀티미디어 서버(130)로부터 예를 들어 멀티미디어 소스 블록과 같은 인터리빙된 데이터 블록을 수신하고 시청(viewing) 및/또는 저장을 위하여 인터리빙된 데이터 블록을 처리한다. 멀티미디어 스트리밍 세션에 튠-인할 때, 통신 장치(110)는 데이터 소스 블록 내의 임의의 위치에서 데이터 파트의 수신을 개시할 수 있다. 수신 통신 장치(110)는 적어도 부분적으로 하나 또는 그 이상의 수신된 데이터 파트와 관련된 시간 정보(예를 들어 타임스탬프)에 기반하여 인터리빙된 데이터 파트를 디-인터리빙/재정렬한다. 이러한 디-인터리빙 또는 재정렬 작업은 데이터 파트를 그들의 프리젠테이션/플레이 아웃 순서로 배열한다. 예를 들어, 디-인터리빙은 인터리빙 프로세스의 역 프로세스이다. 예를 들어, 통신 장치(110)는 디-인터리빙된 데이터 파트를 디코딩할 수 있다. 예시적인 일 실시예에 따르면, 통신 장치(110)는 예를 들어 타임 인스턴트(time instant)와 같은 스케줄 엔트리를 결정하고, 플레이아웃을 디-인터리빙된 데이터 파트들 중에서 제1 데이터 파트에 대한 스케줄에서 개시한다. 예를 들어, 스케줄 엔트리는 적어도 부분적으로 최초 및 최후 데이터 파트의 플레이-아웃 시간 정보 및/또는 최소 버퍼 타임(minimum buffer time)에 기반하여 결정된다.
멀티미디어 데이터를 송신하기 위하여 유니캐스트 및 멀티캐스트 데이터 배달이 이용되면, 통신 장치(110)는 통신 네트워크(120)를 통하여 멀티미디어 서버(130)들과 통신하여 멀티미디어 데이터를 요청한다. 멀티미디어 서버(130)들은 통신 장치(110)로부터 멀티미디어 데이터에 대한 요청을 수신한다. 유니캐스트 데이터 배달이 이용되면, 이러한 요청은 송신될 멀티미디어 데이터를 식별할 수 있으며, 텔레비전 연속극의 몇 회분과 같은 콘텐츠 아이템 내의 시작 위치를 포함한다. 멀티캐스트 데이터 배달이 이용되면, 멀티미디어 서버(130)들은 하나 또는 그 이상의 멀티미디어 데이터 스트림들을 송신하고, 이러한 요청은 전형적으로 송신된 멀티미디어 데이터 스트림 중에서 어떤 것을 통신 장치(110)가 수신하려고 하는지를 식별한다. 멀티미디어 서버(130)는 멀티미디어 데이터에 대한 요청과 관련된 멀티미디어 데이터 블록을 수신한다. 유니캐스트 데이터 배달이 이용되면, 멀티미디어 데이터 블록은 요청된 멀티미디어 데이터와 상응하고, 콘텐츠 아이템 내의 시작 위치를 포함한다. 멀티캐스트 데이터 배달이 이용되면, 멀티미디어 데이터 블록은 개별 멀티미디어 데이터 스트림에 대해 송신될 후속 데이터 블록이다.
멀티미디어 데이터를 송신하기 위하여 브로드캐스트 데이터 배달이 이용되면, 통신 장치(130)는 그 송신의 어느 지점에서든지 멀티미디어 데이터의 수신을 개시할 수 있다. 멀티미디어 서버(130)들은 송신될 후속 데이터 블록인 멀티미디어 데이터 블록을 수신한다.
멀티미디어 데이터 블록은 복수 개의 데이터 파트들을 포함한다. 멀티미디어 서버(130)들은 복수 개의 데이터 파트들을 인터리빙하여 인터리빙된 데이터 블록을 형성한다. 일 실시예에 따르면, 복수 개의 데이터 파트들은 우선 순위에 기반하여 인터리빙되는데, 예를 들어 역방향 디코딩 순서, 디코딩 의존성, 확장가능성 계층(scalability layers)의 역 순서 및/또는 이러한 것들이다. 바람직하게는 통신 장치(110) 내에 가장 먼저 수신된 데이터 블록의 인터리빙하면, 사용자의 시청 경험이 개선되는데, 예를 들어 멀티미디어가 개시되는데 시간이 덜 걸리고, 빈 화면이 나오는 시간이 줄어들며, 오디오에 더 많은 시간이 할당되는 등과 같은 효과가 있다. 멀티미디어 서버(130)들은 인터리빙된 데이터 블록을 개별 통신 장치(110)로 송신한다.
몇 가지 실시예에서, 멀티미디어 서버(130)들은 멀티미디어 저장소 서버(미도시)로부터 멀티미디어 서버(130)들로부터의 요청에 기반하여 복수 개의 멀티미디어 데이터 블록들을 포함하는 멀티미디어 데이터 스트림을 수신한다. 다른 실시예에서는, 멀티미디어 서버(130)들은 로컬 저장소(예를 들어 하드 드라이브, 시디-롬 드라이브, 광학적 주크박스(juke box) 등)로부터 및/또는 원격 저장소(예를 들어 저장소 영역 네트워크(storage area network), 네트워크 부착 저장소 등)로부터 멀티미디어 데이터 스트림을 수신한다. 몇 가지 실시예에서, 멀티미디어 서버(130)들은 멀티미디어 데이터 스트림을 실시간 멀티미디어 프로그램(예를 들어 텔레비전 프로그램, 영화 등)을 방송하는 브로드캐스트 서버(미도시)로부터 수신한다.
예를 들어, 컴퓨터(110c)와 관련된 사용자는 예를 들어 "Dogs of Big Wars"와 같은 텔레비전 쇼의 브로드캐스트/멀티캐스트 세션에 튠인하거나 이 텔레비전 쇼를 시청하고자 요청한다. 컴퓨터(110c)는 로컬에서 브로드캐스트 세션에 가입하거나, 통신 네트워크(120)를 통하여 서버로 멀티캐스트 세션에 대한 가입 요청을 전송하거나, 또는 통신 네트워크(120)를 통하여 멀티미디어 서버 B(130b)로 유니캐스트 요청을 전송할 수 있다. 멀티캐스트 배달의 경우에, 서버는 컴퓨터(110c)로의 스트리밍 배달 경로를 설정한다; 그러면, 스트리밍 서버 B(130b)는 컴퓨터(110c)로의 해당 텔레비전 쇼의 스트리밍을 개시한다. 유니캐스트 배달의 경우에, 멀티미디어 서버 B(130b)는 요청들을 처리하고 컴퓨터(110c)로의 해당 텔레비전 쇼의 스트리밍을 개시한다. 멀티미디어 서버 B(130b)에 의한 텔레비전 쇼의 스트리밍은 서너 개의 단계들을 포함한다. 멀티미디어 서버 B(130b)는 해당 텔레비전 쇼에 대한 멀티미디어 데이터 블록을 예를 들어 로컬 저장소로부터 패치(fetch)하거나 수신한다. 멀티미디어 데이터 블록은 복수 개의 데이터 파트, 예를 들어 오디오, 비디오, 이미지, 제어 데이터 등을 포함한다. 멀티미디어 서버 B(130b)는 복수 개의 데이터 파트들을 인터리빙하여 인터리빙된 데이터 블록을 생성한다. 이러한 실시예에서, 오디오와 관련된 데이터 파트들은 해당 데이터 블록의 끝에 함께 그루핑되고, 비디오와 관련된 데이터 파트들은 해당 데이터 블록의 처음에 함께 그루핑된다. 데이터 파트들의 배열(ordering)은 멀티미디어 타입의 우선 순위, 즉, 비디오가 먼저고 오디오가 그 다음인 것과 같은 우선 순위에 기반하여 이루어진다. 멀티미디어 서버 B(130b)는 인터리빙된 데이터 블록을 멀티캐스트 또는 브로드캐스트 세션과 관련된 멀티미디어 그룹으로 송신하거나, 예를 들어 유니캐스트 세션을 위하여 컴퓨터(110c)로 송신한다.
다른 예에서, 컴퓨터(110c)와 관련된 사용자가 어떤 텔레비전 쇼를 시청하려고 요청한다(이 예에서는, "Dogs of Big Wars"임). 컴퓨터(110c)는 통신 네트워크(120)를 통하여 멀티미디어 서버 B(130b)로 요청을 통신한다. 멀티미디어 서버 B(130b)는 해당 요청을 처리하고 컴퓨터(110c)를 멀티캐스트 그룹, 즉, 해당 텔레비전 쇼를 보려고 요청한 바 있는 통신 장치들의 그룹 내에 포함시킨다. 멀티미디어 서버 B(130b)는 멀티캐스팅을 통하여 해당 텔레비전 쇼를 멀티캐스트 그룹으로 송신하는 것을 개시한다. 다시 말하면, 멀티미디어 서버 B(130b)는 멀티캐스트 그룹 내의 다른 통신 장치들과 동일한 데이터 블록에서 컴퓨터(110c)로의 송신을 개시한다. 멀티미디어 서버 B(130b)에 의한 텔레비전 쇼의 스트리밍은 수 개의 단계들을 포함한다. 멀티미디어 서버 B(130b)는 해당 텔레비전 쇼에 대한 멀티미디어 데이터 블록을 수신한다. 멀티미디어 데이터 블록은 복수 개의 데이터 파트(예를 들어 오디오, 비디오, 이미지, 제어 데이터 등)를 포함한다. 멀티미디어 서버 B(130b)는 복수 개의 데이터 파트들을 인터리빙하여 인터리빙된 데이터 블록을 형성한다. 이 예에서, 오디오와 관련된 데이터 파트들은 해당 데이터 블록의 끝에 함께 그루핑되고, 비디오와 관련된 데이터 파트들은 해당 데이터 블록의 처음에 함께 그루핑된다. 이와 같은 데이터 파트들의 배열(ordering)은 멀티미디어 타입의 우선 순위, 즉, 비디오가 먼저고 오디오가 그 다음인 것과 같은 우선 순위에 기반하여 이루어진다. 멀티미디어 서버 B(130b)는 인터리빙된 데이터 블록을 멀티캐스트 그룹 내의 통신 장치들로 송신하는데, 즉, 해당 텔레비전 쇼를 모든 통신 장치로 멀티캐스팅한다.
다른 실시예로서, 컴퓨터(110c)와 관련된 사용자는 예를 들어 채널을 변경함으로써, 어떤 텔레비전 쇼(이 예에서는, "Dogs of Big Wars"임)를 시청하기 위해 튠인한다. 멀티미디어 서버 B(130b)는 해당 텔레비전 쇼를 해당 채널로 송신하며, 즉, 해당 텔레비전 쇼를 브로드캐스팅하고, 컴퓨터는 해당 채널에 튠인된다. 멀티미디어 서버 B(130b)에 의한 텔레비전 쇼의 브로드캐스팅은 수 개의 단계들을 포함한다. 멀티미디어 서버 B(130b)는 해당 텔레비전 쇼에 대한 멀티미디어 데이터 블록을 수신한다. 멀티미디어 데이터 블록은 복수 개의 데이터 파트(예를 들어 오디오, 비디오, 이미지, 제어 데이터 등)를 포함한다. 멀티미디어 서버 B(130b)는 복수 개의 데이터 파트들을 인터리빙하여 인터리빙된 데이터 블록을 형성한다. 이 예에서, 오디오와 관련된 데이터 파트들은 해당 데이터 블록의 끝에 함께 그루핑되고, 비디오와 관련된 데이터 파트들은 해당 데이터 블록의 처음에 함께 그루핑된다. 이와 같은 데이터 파트들의 배열(ordering)은 멀티미디어 타입의 우선 순위, 즉, 비디오가 먼저고 오디오가 그 다음인 것과 같은 우선 순위에 기반하여 이루어진다. 멀티미디어 서버 B(130b)는 인터리빙된 데이터 블록을 예를 들어 텔레비전 브로드캐스트 채널, 인터넷 브로드캐스트 채널 등과 같은 채널로 송신한다.
또 다른 실시예로서, 컴퓨터(110c)는 멀티미디어 서버 B(130b)로부터 인터리빙된 데이터 블록의 하나 또는 그 이상의 데이터 파트들을 수신한다. 통신 장치(110)는 하나 또는 그 이상의 데이터 파트들 중 제1 데이터 파트를 결정한다. 제1 파트는 컴퓨터(110c)에 의하여 수신된 첫 번째 전체 멀티미디어 섹션(예를 들어, 오디오, 비디오, 이미지 등)에 기반하여 결정된다. 이 예에서, 컴퓨터(110c)는 첫 번째 파트가 오디오 데이터 파트들의 첫 부분이라고 결정한다. 첫 번째의 완전한 멀티미디어 섹션이 오디오 섹션이기 때문에, 컴퓨터(110c)는 첫번째 파트가 오디오 데이터 파트의 시작이라고 결정한다. 컴퓨터(110c)는 스케줄에서 해당 제1 데이터 파트(즉, 첫 번째 오디오 데이터 파트)에 대한 스케줄 엔트리를 결정한다. 스케줄 엔트리는 플레이-아웃 시간 정보 및/또는 프리즈 시간 정보(이 예에서, 프리즈 시간 정보는 오디오 데이터 파트 및 후속 데이터 블록 간의 1초 지연을 포함한다)에 기반하여 결정된다. 이 예에서, 스케줄 엔트리는 해당 오디오 데이터 파트의 재생을 1초 이후에 개시함으로써, 오디오 데이터 파트의 끝부분이 하숙 데이터 블록의 재생의 시작과 동일한 시간에 종결되도록 한다.
비록 도 1이 네 개의 통신 장치(110) 및 통신 네트워크(120)를 예시하고 있지만, 시스템(100)은 복수 개의 상호-접속 네트워크들(예를 들어, 인터넷, 인트라넷, 익스트라넷(extranet) 등)을 통하여 복수 개의 통신 장치와 통신할 수 있다.
도 2a는 통신 시스템(200a) 내의 예시적인 통신 장치(210)의 블록도를 도시한다. 통신 장치(210)는 트랜시버(211), 복수 개의 디코더(212), 미디어 프로세서(213), 디스플레이(214), 및 저장소 장치(215)를 포함한다. 트랜시버(211)는 데이터(에; 데이터 파트, 데이터 블록, 데이터 스트림, 패킷, 등)를 수신 및/또는 송신한다. 복수 개의 디코더(212)들은 수신된 데이터를 디코딩한다(예를 들어, 블록 코드를 디코딩하거나, 콘볼루션 코드(convolutional code)를 디코딩하거나, 미디어 데이터를 디코딩하거나, 스트림을 역암호화하는 등). 미디어 프로세서(213)는 하나 또는 그 이상의 데이터 파트들 중 첫 번째 파트를 결정하고 및/또는 제1 데이터 파트의 프리젠테이션을 위한 스케줄 엔트리를 결정한다. 디스플레이(214)는 해당 데이터(예를 들어 비디오, 이미지, 등)를 디스플레이한다. 저장소 장치(215)(예를 들어 메모리, 하드 드라이브 등)는 데이터를 저장한다.
비록 도 2a가 디코더(212) 및 미디어 프로세서(213)를 상이한 성분으로서 예시했지만, 통신 장치(210)는 디코더(212)를 수신된 데이터를 디코딩하고, 하나 또는 그 이상의 데이터 파트 들 중 첫 번째 파트를 결정하며, 스케줄 내에서 해당 첫 번째 데이터 파트에 대한 스케줄 엔트리를 결정하는데 이용할 수 있다.
도 2b는 통신 시스템(200b) 내의 예시적인 멀티미디어 서버(230)의 블록도를 도시한다. 멀티미디어 서버(230)는 트랜시버(231), 소스 인코더(232), 멀티플렉서(233), 순방향 에러 정정(forward error correction, FEC) 인코더(234), 인터리버(235), 및 저장소 장치(236)를 포함한다. 트랜시버(231)는 데이터(예를 들어 데이터 파트, 데이터 블록, 데이터 스트림, 패킷 등)를 수신 및/또는 송신한다. 소스 인코더(232)는 수신된 데이터를 인코딩한다. 멀티플렉서(233)는 데이터를 멀티플렉싱(예를 들어 수신된 데이터를 다른 수신 데이터와 결합시키고, 송신하기 위하여 다중 타입의 데이터를 결합시키는 등)한다. FEC 인코더(234)는 데이터를 인코딩한다. 인터리버(235)는 데이터를 인터리빙(예를 들어 데이터 파트를 비-연속(non-contiguous) 정렬로 정렬하고, 데이터 파트의 순서를 변경하고, 데이터 파트의 순서를 재정렬하는 등)한다. 저장소 장치(236)(예를 들어, 메모리, 하드 드라이브 등)는 데이터를 저장한다.
몇 가지 실시예에서, 미디어 프로세서(213)는 하나 또는 그 이상의 데이터 파트와 관련된 시간 정보 및/또는 하나 또는 그 이상의 데이터 파트들의 데이터 타입 정보에 기반하여 하나 또는 그 이상의 데이터 파트를 정렬한다. 예를 들어, 미디어 프로세서(213)는 데이터 파트를 정렬하여, 해당 데이터 파트가 더 이상 인터리빙되지 않고, 소정 우선 순위를 가지도록 한다(예를 들어, 사용자의 고속 시청을 가능하게 하는 디코딩을 위한 우선 순위를 가지도록 한다). 코딩된 여러 개의 미디어 스트림에 대하여, 우선 순위는 연대적 렌더링 순서와 동일하다. 다른 실시예에서는, 디스플레이(214)가 연대적 렌더링 순서에 따라서 정렬된 데이터 파트를 재생한다.
도 3은 멀티미디어 서버(330)를 포함하는 다른 예시적인 시스템(300)의 상세한 블록도를 도시한다. 시스템(300)은 멀티미디어 저장소 서버 A(325a), 멀티미디어 저장소 서버 B(325b) 내지 멀티미디어 저장소 서버 Z(325z)(일반적으로 325로 표시) 및 멀티미디어 서버(330)를 포함한다. 멀티미디어 서버(330)는 소스 인코더 A(331a), 소스 인코더 B(331b) 내지 소스 인코더 Z(331z)(일반적으로 331로 표시), 멀티플렉서(333), 방향 에러 정정(forward error correction, FEC) 인코더(335), 및 인터리버(336)를 포함한다.
각 소스 인코더(331)는 멀티미디어 저장소 서버(325)(예를 들어 SAN, NAS, 제3자 웹사이트, 제3자 저장소 서버 등)로부터 데이터를 수신한다. 소스 인코더(331)는 데이터를 인코딩(예를 들어 에러 정정 코드, 프로토콜 변환 등)하여 각각 데이터 스트림 A(332a), 데이터 스트림 B(332b) 내지 데이터 스트림 Z(332z)(일반적으로 332로 표시)를 형성한다. 멀티플렉서(333)는 스트림(332)을 멀티플렉싱하여 소스 블록(334)을 형성한다. 소스 블록(334)은 멀티플렉싱된 데이터 스트림의 일부를 포함한다(예를 들어, 소스 블록(334)은 멀티플렉싱된 데이터 스트림들의 1024개의 심벌을 포함하거나, 소스 블록(334)이 멀티플렉싱된 데이터 스트림들의 512개의 심벌을 포함하는 등). 소스 블록(334)은 멀티플렉싱된 데이터 스트림을 포함한다. FEC 인코더(335)는 소스 블록(334)을 인코딩하여 정정 데이터(337b)를 형성하고, 인터리버는 인코딩된 소스 블록을 인터리빙하여 인터리빙된 소스 데이터 블록(337a)을 형성한다.
비록 도 3이 FEC 인코더(335) 및 인터리버(336)를 상이한 성분으로 도시하지만, 인터리버(336)는 FEC 인코딩(335) 내에 통합될 수 있다. 다시 말하면, FEC 인코더(335)는 소스 블록을 인코딩 및 인터리빙한다.
도 4는 멀티미디어 서버(430)를 포함하는 다른 예시적인 시스템(400)의 상세한 블록도를 도시한다. 시스템(400)은 멀티미디어 저장소 서버 A(425a), 멀티미디어 저장소 서버 B(425b) 내지 멀티미디어 저장소 서버 Z(425z) 및 멀티미디어 서버(430)를 포함한다. 멀티미디어 서버(430)는 소스 인코더 A(431a), 소스 인코더 B(431b) 내지 소스 인코더 Z(431z), 멀티플렉서(433), 방향 에러 정정(forward error correction, FEC) 인코더(435), 및 인터리버(436)를 포함한다.
각 소스 인코더(431)는 멀티미디어 저장소 서버(425)(예를 들어 SAN, NAS, 제3자 웹사이트, 제3자 저장소 서버 등)로부터 데이터를 수신한다. 소스 인코더(431)는 데이터를 인코딩(예를 들어 에러 정정 코드, 프로토콜 변환 등)하여 각각 데이터 스트림 A(432a), 데이터 스트림 B(432b) 내지 데이터 스트림 Z(432z)(일반적으로 432로 표시)를 형성한다. 멀티플렉서(433)는 스트림(432)을 멀티플렉싱하고, 인터리버(436)는 멀티플렉싱된 스트림을 인터리빙하여 인터리빙된 소스 블록(434)을 형성한다. 인터리빙된 소스 블록(434)은 멀티플렉싱된 데이터 스트림의 일부를 포함한다(예를 들어, 소스 블록(434)은 멀티플렉싱된 데이터 스트림들의 1024개의 심벌을 포함하거나, 소스 블록(434)이 멀티플렉싱된 데이터 스트림들의 512개의 심벌을 포함하는 등). FEC 인코더(435)는 인터리빙된 소스 블록(434)을 인코딩하여 인코딩된 소스 블록(437b) 및 정정 데이터(437b)를 형성한다. 인코딩된 소스 블록(437a)은 인터리빙된 소스 블록(434)과 같이 콘텐츠 기반(content-wise)일 수 있다.
다른 실시예에서, 정정 데이터(337b)는 도 2a의 통신 장치(210)에 의하여 이용되어 인코딩된 소스 블록(437a) 내의 오류 및/또는 손실된 데이터를 정정할 수 있다. 통신 장치(210)는 순방향 오류 정정 디코딩을 이용하여 인코딩된 소스 블록(437a)을 디코딩할 수 있다.
다른 실시예에서, 인터리버(436)는 멀티플렉서(434) 이전에 배치된다.
도 5a는 예시적인 멀티미디어 소스 블록(534a)의 블록도(500a)를 도시한다. 블록도(500a)는 소스 블록(534a), 인터리버(536a) 및 인터리빙된 소스 블록(537a)을 포함한다. 소스 블록(534a)은 독립적 액세스 유닛("independent access unit, IDR"), 오디오 데이터("A"), 기준(reference) 액세스 유닛("P"), 및 비-기준 액세스 유닛("p")을 포함한다. 인터리버(536a)는 소스 블록(534a)을 인터리빙하여 인터리빙된 소스 블록(537a)을 형성한다. 인터리빙된 소스 블록(537a)에서 예시된 바와 같이, 인터리버(536a)는 IDR, A, P, 및 p 데이터 부품을 상호 그루핑하였다. 이 실시예에서, IDR이 전환 시간(transition time) 동안에 바람직하게는 재생(예를 들어 디스플레이되는 등)될 수 있는 멀티미디어 콘텐츠의 이미지 슬라이스(image slice)를 제공하기 때문에, IDR은 인터리빙된 데이터 블록 내에서는 최후에 위치한다. 이 실시예에서, 오디오 데이터가 채널 변경의 전환 시간동안에 바람직하게는 재생(예를 들어 스피커, 헤드폰 등을 통하여)될 수 있는 멀티미디어 콘텐츠의 오디오를 제공하기 때문에, A는 인터리빙된 데이터 블록의 맨 뒤에 후속한다.
몇 가지 실시예에서, 디-인터리빙 지연이 후술되는 최소-버퍼-시간(min-buffer-time)에 의하여 담당되기 때문에, 소스 블록(534a)의 인터리빙은 멀티미디어를 재생하기 위한 시간을 증가시키지 않는다. 이것의 장점은 각 데이터 블록 내의 다양한 멀티미디어 데이터 타입들에게 송신을 위한 우선 순위가 부여될 수 있기 때문에, 도 2a의 통신 장치(210)에 의한 고속 재생이 가능하고 사용자로 하여금 개선된 시청 경험을 받게 할 수 있다(즉, 채널 전환을 위한 대기 시간이 줄어든다).
다른 실시예에서, 인터리버(536a)는 소스 블록(534a)을 소스 블록(534a)의 미디어 타입에 기반하여 인터리빙한다(즉, 인터리버(536a)는 미디어를 식별한다). 예를 들면, 인터리버(536a)는 소스 블록(534a) 내에서 독립, 기준, 및 비-기준 미디어 유닛을 구별한다. 또 다른 실시예로서, 이동식 TV 서비스에서는 인터리버(536a)가 오디오 데이터 A를 소스 블록의 맨 뒤에 인터리빙한다. 미디어 타입에 기반한 인터리빙을 통하여, 바람직하게는 오디오 데이터 A의 성공적이고 신속한 재생이 가능해지는데, 이것은 사용자가 느끼는 품질을 현저히 개선한다. 또 다른 실시예로서, 인터리버(536a)는 비디오 데이터를 인터리빙된 소스 블록(537a)의 끝에 배치함으로써, 독립 픽쳐(IDR)의 디코딩 및 디스플레이를 가능하게 하는 방식으로 인터리빙한다. 독립 픽쳐 IDR을 인터리빙된 소스 블록(537a)의 끝에 배치시킴으로써, 바람직하게는 최초 픽쳐의 디스플레이를 허용하고 빈 화면을 디스플레이하는 것을 피할 수 있다. 일부 실시예에서, 인터리버(536a)는 역방향 디코딩 순서로 기준 미디어 유닛 P를 구조화(organize)하는데, 이것은 통신 장치(210)에게 가용한 디코딩 가능 데이터의 양을 증가시킨다.
비-인터리빙된 데이터 스트림과 비교한 장점은, 인터리빙 데이터 스트림은 통신 장치(210)에게 더 높은 미디어 지속 시간(media duration)을 제공한다는 점이다. 다른 장점은, 추가적인 미디어 지속 시간이 전체 채널 전환 지연을 감소시키고, 통신 장치로 하여금 멀티미디어의 기본 플레이-아웃(basic play-out)(예를 들어 정지 화면 디스플레이, 오디오의 재생 등)을 제공함으로써 사용자 체험을 향상시키도록 허용한다는 것이다.
도 5b는 예시적인 멀티미디어 소스 블록(534b)의 블록도(500b)를 예시한다. 블록도(500b)는 소스 블록(534b), 인터리버(536b) 및 인터리빙된 소스 블록(537b)을 포함한다. 소스 블록(534b)은 세 개의 계층을 가지는 확장 가능한 비디오 코딩(scalable video coding, SVC) 스트림의 미디어 유닛들을 포함하는데, 이 계층들은 베이스 계층(base layer, BL), 제1 확장 계층(first enhancement layer, EL1), 및 제2 확장 계층(EL2)이다. 소스 블록(534b)은 오디오 데이터(A")을 더욱 포함한다. 인터리버(536b)는 소스 블록(534b)을 인터리빙하여 인터리빙된 소스 블록(537b)을 형성한다. 인터리빙된 소스 블록(537b)에서 설명된 바와 같이, 인터리버(536b)는 EL2 데이터 유닛이 첫 번째로 송신되도록 정렬하고, 그 후에 EL1 데이터 유닛을 정렬하고, 최종적으로는 BL 및 A 데이터 유닛을 정렬한다. 이러한 우선 순위는, 인터리빙된 소스 블록(537b)을 부분적으로 수신한 바 있는 도 2a의 통신 장치(210)로 하여금 조기 플레이-아웃 프로시저(early play-out procedure)에서 A 및 BL 유닛들을 정확하게 재생하는 것을 개시하도록 허용한다.
도 6a 및 6b는 수신 통신 장치에 의한 예시적인 스케줄링 프로세스(600a 및 600b)의 타임라인(620)을 도시한다. 스케줄링 프로세스(600a와 600b)는 공통적으로, 소스 블록 i(610a), 소스 블록 i+1(610b), 및 소스 블록 i+2(610c), 튠-인 시간 (622), 및 최소-버퍼-시간(min-buffer-time, 624)을 포함한다. 스케줄링 프로세스(600a)는 조기 플레이-아웃 개시(626a) 및 프리즈 기간(628)을 포함한다. 스케줄링 프로세스(600b) 조기 플레이-아웃 개시(626b)를 포함한다.
도 6a와 6b에 예시된 바와 같이, 타임라인(620)은 동일하다. 그러나, 도 6b는 도 2a의 통신 장치(210)에 의한 프리즈 기간(freeze period, 628)의 결정 및 정정을 예시한다. 프리즈 기간(628)은 제1 소스 블록 i(610a)가 통신 장치(210)에 의하여 완전하게 수신되지 않기 때문에 발생된다. 통신 장치(210)가 제1 섹션(614a)의 송신 이후까지 튠인(622)하지 않기 때문에, 소스 블록 i(610a)의 첫 번째 섹션(614a)은 통신 장치(210)에 의하여 수신되지 않는다. 소스 블록 i(610a)의 두 번째 섹션(616a)은 통신 장치(210)에 의해 수신된다. 따라서, 통신 장치(210)는 단지 소스 블록 i(610a)의 두 번째 섹션(616a)만을 수신한다. 통신 장치(210)는 두 번째 섹션(616a)이 조기 플레이-아웃 개시 시간(626a)에서 재생될 수 있다고 결정한다. 그러나, 만일 두 번째 섹션(616a)이 조기 플레이-아웃 개시 시간(626a)에서 시작되면, 프리즈 기간(628)이 발생할 것이다(즉, 두 번째 섹션(616a)의 마지막 데이터 파트 및 소스 블록 i+1(610b)의 시작 사이의 시간 기간).
프리즈 기간(628) 및 어떻게 프리즈 기간(628)을 정정할 것인지(즉, 프리즈 기간이 없거나, 프리즈 기간을 줄이는 등)를 결정하기 위하여, 통신 장치(210)는 다음 후술되는 바와 같이 수 개의 결정 및/또는 연산을 수행할 수 있다. 통신 장치(210)는 자신이 현재의 소스 블록으로부터 수신한 데이터의 양을 결정할 수 있다(이 실시예에서는, 제2 섹션(616a)). 예를 들면, 통신 장치(210)는 데이터 파트들의 최고 및 최저의 수신된 타임스탬프들 간의 차이를 결정하고(예를 들어, 확장된 RTP 타임스탬프 표현을 이용하여), 이러한 차이를 초 단위로 변환한 후 미디어 클록 속도로 나누어서 수신된 데이터양을 결정한다.
일부 실시예에서, 통신 장치(210)는 재생될 데이터 파트를 결정한다. 예를 들어, 제1 파트는 최초의 오디오 미디어 파트(예를 들면, 프리젠테이션에 대한 참조로서 오디오를 이용하는 등)이거나, 최초 미디어 파트(예를 들면, 프리젠테이션 시간의 이용, 타임스탬프의 이용 등)이거나, 또는 최후의 미디어 유닛일 수 있다. 다른 실시예에서, 통신 장치(210)는 해당 소스 블록의 제1 미디어 파트의 수신 시간 및 후속 소스 블록 내의 제1 미디어 파트의 끝, 즉 소스 블록 i+1(610b)에 기반하여 측정되는 최소-버퍼-시간(min-buffer-time)에 기반하여 후속 소스 블록의 최선(最先) 미디어 파트의 플레이-아웃 시간을 결정한다.
일부 실시예에서, 통신 장치(210)는 플레이-아웃 시간 정보(예를 들면, 첫 번째 데이터 파트의 지속 시간, 첫 번째 데이터 파트와 후속 데이터 파트의 지속 시간 등) 및/또는 연산된 프리즈 기간에 기반하여 현재 소스 블록(610a)으로부터의 첫 번째 미디어 파트를 스케줄링한다. 예를 들면, 통신 장치(210)는 소스 블록 i+1(610b)의 최초 미디어 유닛의 플레이-아웃을 그 수신 시간으로부터 최소-버터-시간 유닛만큼 지난 후로 스케줄링하고, 소스 블록 i(610a)의 제2 섹션(616a)을 조기 플레이-아웃 개수(626b)로 스케줄링한다. 다른 실시예에서, 개시가 지연되면 후속 소스 블록 I+1(610b)의 플레이-아웃을 지연시키고 개시가 빨라지면 버퍼 언더플로우(buffer underflow)가 발생하여 사용자에게 아무것도 재생되지 않을 것이기 때문에, 통신 장치(210)는 조기 플레이-아웃 개시(626b)를 결정한다.
다른 실시예에서, 통신 장치(210)는 프리즈 시간 정보(예를 들면, 프리즈 포인트(freeze point)의 지속 시간, 프리즈 포인트의 개시 시간 등)를 결정한다. 프리즈 포인트 지속 시간은 후속 소스 블록의 최저 타임스탬프 및 가용한 미디어 파트들의 최고 타임스탬프들 간의 시간차로서 연산된다. 몇 가지 실시예에서, 현재 블록의 최후 타임스탬프가 인터리브 속성(예를 들면, 시그널링 채널을 통해 송신된 인터리빙된 데이터 블록 등)을 통해서 시그널링되고, 최후 타임스탬프는 후속 소스 블록의 최저 타임스탬프를 결정하기 위하여 이용된다. 이것의 장점은 데이터 블록이 소스 블록 i(610a)로부터의 두 번째 섹션(616a)의 조기 플레이-아웃을 위하여 최적으로 스케줄링된다는 것이다.
몇 가지 실시예에서, 최소-버퍼-시간(624)은 끊김없는 플레이-아웃을 보장하는데 필요한 시간이다. 통신 장치(210)는 최소-버퍼-시간(플레이-아웃 시간 정보의 일부)을 결정한다. 통신 장치(210)는 현재 소스 블록의 첫 번째 패킷(즉 첫 번째 데이터 파트)의 수신 및 미디어 디코딩의 개시 간의 시간에 기반하여 결정된다. 다른 실시예에서, 미디어 디코딩의 개시 포인트는 소스 패킷으로부터 수신된 우선 순위 중 가장 빠르다.
다른 실시예에서, 최소-버퍼-시간(624)은 서비스 제공자(즉, 멀티미디어 서버(230)에 의하여 제공되는 서비스를 호스팅하는 제공자)에 의하여 이용되어 FEC 디코딩이 트리거링되기 이전에 소스 블록의 제1 패킷의 수신 이후에 대기해야 하는 최소 시간을 시그널링한다. 예를 들어, 서비스 제공자는 시그널링된 "최소-버퍼-시간" 값보다 어떠한 소스 블록(예를 들어, 소스 블록 i+1(610b))) 및 그 정정 데이터도 커서는 안된다는 것을 보장할 수 있다.
몇 가지 실시예에서, FEC 인코딩/디코딩 서비스에 의하여 제공되는 오류 정정 보호 기능은, 완전한 소스 블록을 수신하고 정확하게 FEC 디코딩하는데 필요한 충분한 지연을 제공한다. 다른 실시예에서, 최소-버퍼-시간(624)은 사용될 최대 소스 블록(FEC 데이터 포함)의 추정된 송신 시간에 기반하여 결정된다. 어떤 실시예에서는, 통신 장치(210)는 FEC 디코딩이 개시되기 이전에 적어도 시그널링된 최소-버퍼-시간(624)만큼 대기하라는 명령어를 수신한다.
몇 가지 실시예에서, 통신 장치(210)는 동일한 서비스를 위하여 상이한 시간으로부터 미디어의 재생을 개시한다. 예를 들어, 통신 장치(210)가 텔레비전 프로그램을 수신하기 위하여 대기하는 동안에, 통신 장치(210)는 텔레비전 광고를 재생한다. 통신 장치(210)는 각 서비스를 위하여 가용한 미디어 데이터의 양 및/또는 플레이-아웃 곡선(도 7a에 도시됨) 상의 시작 및 끝점에 기반하여 어떤 다른 미디어를 재생할지 결정할 수 있다.
다른 실시예에서, 최소의 소스 블록 크기는 1024의 소스 심벌이다. 예를 들면, 크기 512 바이트의 소스 심벌은 4194304 비트의 총 소스 블록 크기에 상응한다. 다른 예로서, MBMS 서비스는 256 kbps의 비트율을 가지는데, 이것은 대략 16 초의 데이터를 포함하는 소스 블록을 생성할 것이다. 일부 예에서, 각 소스 블록은 80000 바이트의 목표 소스 블록 크기에 따라서 구성된다.
일부 실시예에서, 통신 장치(210)는 시간의 임의 지점에서 MBMS 서비스에 튠인하고(예를 들어 타임-인 시간 622에서) 평균 튠-인 시간은 소스 블록의 중간이다. 통신 장치(210)는 디코딩을 개시하기 위하여 최소-버퍼-시간(624)의 지속 시간에 대한 타이머를 개시한다. 다른 실시예에서, 수신된 부분 블록 데이터(예를 들면, 두 번째 섹션(616a))는 디코딩될 수 없으며(예를 들면, 불완전한 데이터, 손실된 데이터, 등), 그 결과 비디오 품질이 열화되거나 추가적 지연이 발생한다. 예를 들어, 통신 장치(210)는 열화된 비디오 품질을 어떻게 부드럽게 할지 및/또는 해당 지연 동안에 어떻게 오디오/비디오를 채워 넣을지를 결정할 수 있다.
다른 실시예에서, 통신 장치(210)는 순서가 맞지 않는 패킷들을 재정렬하고 인터리빙은 통신 장치(210)의 다른 계층들에게는 투명하다. 도 7a는 데이터 파트의 프리젠테이션/디스플레이 타임스탬프를 예시하는 그래프(700a)이다. 이 그래프(700a)는 x-축(710a)을 따라 초 단위의 소스 패킷의 프리젠테이션 타임스탬프 및 y-축(720a)을 따라 소스 패킷 송신 순서를 포함한다. 도시된 바와 같이, 저-우선권 데이터는 소스 블록(732a)의 시작시에 전송되고, 고-우선권 데이터는 소스 블록(734a)의 끝에서 역방향 프리젠테이션 순서로 전송되며, 매우 높은 우선권 데이터는 소스 블록(736a)의 맨 끝에서 전송된다. 일 예로서, 도 5a의 인터리빙된 소스 블록(537a)이 그래프(700a)에서 데이터의 순서를 설명하는데, 여기서 비-기준 픽쳐는 "p", 역방향 프리젠테이션 순서에서의 기준 픽쳐는 "Px"로, 오디오 데이터는 "A"로, 그리고 IDR 픽쳐는 "IDR"로 표시된다.
도 7b는 데이터 블록의 비 인터리빙된 송신의 프리젠테이션/디스플레이 타임스탬프를 설명하는 그래프(700b)이다. 그래프(700b)는 x-축(710b)을 따라 초 단위의 소스 패킷의 프리젠테이션 타임스탬프 및 y-축(720b)을 따라 소스 패킷의 송신 순서를 표시한다. 도시된 바와 같이, 데이터(예를 들어 도 5a의 소스 블록(534a) 내에 표시된 것과 같은 데이터)는 송신 스트림(730b) 내에 전송된다.
몇 가지 실시예에서, 도 7a 및 7b는 튠인 시점에서 가용하며 정확하게 디코딩 가능한 미디어 데이터를 증가시키는 관점에서 미디어 데이터 인터리빙의 장점을 설명한다. 몇 가지 실시예에서, 도 2b의 인터리버(235)는 H.264 미디어 스트림(300kbps로 인코딩됨)의 미디어 패킷을 IDR 픽쳐 슬라이스, 기준 P 픽쳐 슬라이스, 및 비-기준 p 픽쳐를 운반하는 패킷들로 분류한다.
예를 들면, 인터리버(235)는 소스의 끝에 "IDR" 픽쳐 슬라이스를, 인터리빙된 소스 블록(537)에 도시된 바와 같은 증가하는 시간 선순위(time precedence)로 정렬한다. 기준 "P" 데이터 파트들은 감소하는 프리젠테이션 시간 순서로 인터리빙된 소스 블록(537)의 끝에(IDR 픽쳐 패킷 이전에) 송신된다. 최종적으로, 비-참조 "p" 픽쳐 패킷들은 증가하는 프리젠테이션 시간으로 인터리빙된 소스 블록(537)의 처음에 송신된다.
도 8은 예시적 시스템(800)에서 이용되는 예시적 통신 장치(810)를 설명한다. 시스템(800)은 통신 장치(810), 네트워크(820), 및 멀티미디어의 서버(830)를 포함한다. 통신 장치(810) 및 멀티미디어의 서버(830)는 네트워크(820)를 경유하여 통신한다. 통신 장치(810)는 안테나(851), 하우징(852), 스피커(853), 디스플레이(854), 키패드(855), 마이크로폰(856), 저장소(857), 및 배터리(858)를 포함한다. 통신 장치(810)는 멀티미디어 콘텐츠를 선택하기 위하여 필요한 양방향 디스플레이(864)를 디스플레이한다.
안테나(851)는 데이터 신호를 수신 및/또는 송신하는데 이용되며, 모든 공지된 안테나 재료를 이용하여 구성될 수 있다. 하우징(852)은 통신 장치(810)의 구성 요소(예를 들어 도 2a의 통신 장치(210) 내에 도시된 구성 요소, 통신 장치(810) 내에 도시된 구성 요소 등)들을 저장하기 위한 케이스이다. 이러한 케이스는 모든 공지된 케이스 재료(예를 들면, 플라스틱, 금속, 등)를 이용하여 구성될 수 있다. 스피커(853)는 데이터 파트(예를 들면, 오디오 데이터 파트, 등)를 재생하는데 이용된다. 예를 들어, 통신 장치(810)는 데이터 파트를 재생하기 위하여 외부 스피커(예를 들면, 헤드셋, 제3자 스피커, 무선 연결 스피커 등)에 의하여 이용되는 스피커 출력(미도시)을 포함할 수 있다.
디스플레이(854)는 데이터 파트를 재생하는데 이용된다. 디스플레이(854)는 데이터 파트(예를 들면, 이미지, 등)를 디스플레이하고 및/또는 데이터 파트(예를 들면, 애니메이션의 촉각 터치 등)를 재생한다. 디스플레이(854)는 멀티미디어 콘텐츠의 선택을 위해 이용되는 양방향 디스플레이(864)를 표시한다. 통신 장치(810)와 관련된 사용자는 재생을 위해 멀티미디어 콘텐츠를 선택할 수 있다. 통신 장치(810)는 재생을 위해 선택된 멀티미디어 콘텐츠에 기반하여 해당 멀티미디어 콘텐츠에 대한 요청을 송신한다.
키패드(855)는 선택의 입력 및/또는 다른 입력 정보(예를 들면, 이름, 전화번호, 등)의 입력을 위해 이용된다. 마이크로폰(856)은 오디오 데이터(예를 들면, 음성 통화, 지시어, 오디오 녹음, 등)의 입력을 위해 이용된다. 예를 들면, 통신 장치(810)는 외부 마이크로폰(예를 들면, 해드셋, 제3자 마이크로폰, 무선 연결 마이크로폰, 등)에 의해 이용되어 오디오를 입력하는 마이크로폰 출력(미도시)을 포함할 수 있다. 저장소(857)는 데이터를 저장하기 위해(예를 들어 멀티미디어 데이터 파트를 저장하고, 멀티미디어 데이터 파트를 검색하고, 전화 번호를 저장하는 등) 이용된다. 저장소(857)는 탈착가능 메모리 저장소 및/또는 영구 메모리 저장소를 포함하는 모든 타입의 메모리 저장소일 수 있다. 배터리(858)는 통신 장치(810)의 전력을 공급하는데 이용된다. 배터리(858)는 모든 타입의 전력 장치(예를 들어, 충전지, 일회용 배터리 등)일 수 있다.
도 9a 및 9b는 인터리빙 기술자(interleave descriptor)(920a, 920b, 및 925b)를 포함하는 데이터 블록 기술자(900a 및 900b)의 예이다. 데이터 블록 기술자(900a)는 데이터 블록의 일반 기술자(910a 및 930a) 및 인터리브 기술자(920a)를 포함한다. 데이터 블록 기술자(900b)는 데이터 블록의 일반 기술자(910b, 930b 및 935b) 및 인터리브 기술자(920b 및 925b)를 포함한다.
일부 실시예에서, 도 9a 및 9b는 서비스 기술자 프로토콜(SDP) 속성을 이용한 인터리빙의 시그널링을 예시한다. SDP 속성은 FEC 스트림의 SDP 기술자에 포함될 수 있다. SDP 속성은 미디어 수준 속성일 수 있고, FEC 스트림(예를 들면, 스트림(332), 스트림(432))에 의하여 보호되는 모든 스트림에 적용될 수 있다.
도 9a는 인터리버 속성(920a), "X-3gpp-Interleaved"를 설명한다. 도시된 바와 같이, 속성의 ABNF(augmented backus-naur form) 구문은 다음과 같이 정의될 수 있다: Interleaving="a=X-3gpp-Interleaved:" SP ["true"/"false"] CRLF
다른 실시예에서, 시그널링은 각 데이터 스트림의 미디어 파트들의 위치 결정(positioning) 및 재배열에 대한 더 상세한 정보를 포함할 수 있다. 예를 들면, 시그널링은 SDP 파일의 상응하는 미디어 정의(definition) 내에 미디어 수준 속성(920b와 925b)을 포함한다. 도 9b는 비디오 스트림(920b)과 오디오 스트림(925b)에 대한 미디어 수준 속성을 설명한다. 이 예에서, 비디오 스트림에는 1의 우선권이 지정되고, 오디오 스트림에는 0의 우선권이 지정된다. 이러한 우선권에 기반하여, 인터리버(235)는 비디오 데이터 이전에 소스 블록의 마지막에 오디오 데이터를 인터리빙한다.
일부 실시예에서, 인터리브 속성은 스트림-내(intra-stream) 정렬 속성(arrangement attribute)을 포함한다. 예를 들면, 스트림-내 정렬 속성은 혼합(mixed), 원본(original), 및 역방향(reverse)을 포함한다. 혼합은 송신 순서가 원본 및 역방향으로 배열된 미디어 파트를 모두 포함한다는 것을 나타낼 수 있다. 원본은 송신 순서가 변경되지 않았음을 나타낼 수 있다. 역방향은 송신 순서가 역으로 되었음을 나타낼 수 있다.
다른 실시예에서, 스트림-내 배열 속성의 ABNF 구문은 다음과 같을 수 있다:
Interleaving-Info="a=X-3gpp-Interleaving: Priority SP ["original" / "reverse" / "mixed"] CRLF
Priority= 1*DIGIT
일부 실시예에서, 스트림-내 배열 속성은 FEC 스트림의 SDP 파일에 포함된다. 이 예에서, 스트림-내 정렬 속성은 참조된 스트림을 식별하기 위한 플로우 ID를 나타낸다.
다른 실시예에서, 데이터 파트와 관련된 시간 정보는 RTP 헤더 확장(header extension)의 형태로 스트림의 RTP 패킷의 하부 집합 내에서 송신된다. 예를 들면, 헤더 확장의 3gpp 인터리빙 헤더 확장을 나타내는 RTP 헤더 확장의 식별자(identifier) 뒤에는 현재 소스 블록의 가장 높은 타임스탬프의 32비트 표현이 따라온다. 다른 예로서, 소스 블록 번호가 소스 FEC 페이로드(Source FEC Payload)에 의하여 배달되는데, 이것은 각 패킷에 첨부된다(이것도 데이터 파트라고 불린다).
일부 실시예에서, 통신 장치(210)는 인터리브 속성 및/또는 데이터 블록의 분석에 기반하여 MBMS 서비스의 메인 오디오 스트림이 그 원본 순서대로(예를 들어, 데이터 블록의 시작에, 데이터 블록의 끝에, 등) 배달된다고 결정한다. 이 예에서, 수신된 최후의 오디오 미디어 파트는 해당 소스 블록에 대한 가장 높은 타임스탬프를 운반한다. 가장 높은 오디오 타임스탬프 값은 상응하는 비디오 타임스탬프를 결정하는데 이용될 수 있다.
다른 예에서, 데이터 블록의 인터리빙은 역방향 호환성을 가진다. 바꾸어 말하면, 예를 들어 레거시(legacy) 통신 장치는 실시간 전송 프로토콜(RTP) 시퀀스 번호값에 기반하여 미디어 패킷들의 원본 순서를 복원하도록 지시될 수 있다. 일부 실시예에서, 인터리빙은 인터리빙된 스트림의 RTP 시퀀스 번호를 변경하지 않는다. RTP 시퀀스 번호의 변경이 이루어지지 않는데 기반하여, 멀티미디어의 서버(230)는 예를 들어 재배열 메커니즘을 이용하지 않는다(예를 들면, 순서 번호를 디코딩하는 등).
일부 실시예에서, 튠-인 시간을 줄이기 위해 통신 장치(210)는 인터리버 속성을 이용한다. 통신 장치(210)는 인터리버 속성에 기반하여 최초로 부분적 수신된 소스 블록의 미디어 유닛에 대한 그 플레이-아웃 곡선을 조절할 수 있다. 후속 소스 블록들의 처리는 통신 장치(210)가 소스 블록의 시작 시점에 튠인하는 상황과 등가일 수 있다. 바꾸어 말하면, 소스 블록의 FEC 정정을 위한 최소 버퍼링 시간이 후속 FEC 블록의 최초 수신된 미디어 유닛으로부터 적용될 수 있다.
도 10a는 도 2b의 멀티미디어의 서버(230)에 의한 예시적 인터리빙 프로세스를 도시하는 흐름도(1000a)이다. 트랜시버(231)는 멀티미디어 데이터 블록을 수신(1010)한다. 멀티미디어 데이터 블록은 복수 개의 데이터 파트들을 포함한다(이것들은 미디어 유닛이라고 불린다). 인터리버(235)는 최후의 데이터 파트와 관련된 정보(예를 들어 SDP 스트림 정보, 타임스탬프 신호 등)에 기반하여 최후 데이터 파트의 타임스탬프를 결정(1030)한다. 인터리버(235)는 멀티미디어 데이터 블록의 데이터 파트들을 인터리빙(1020)하여 인터리빙된 데이터 블록을 형성한다. 인터리버(235)는 인터리빙된 데이터 블록을 수정(1040)하여 결정된 타임스탬프를 포함한다. 트랜시버(231)는 인터리빙된 데이터 블록을 송신(1050)한다.
다른 실시예에서, 도 2a의 통신장치(210)는 트랜시버(211)를 경유하여 결정된 타임스탬프를 가지는 인터리빙된 데이터 블록을 수신한다. 미디어 프로세서(213)는 인터리빙된 데이터 블록을 해당 데이터 블록 내에 재정렬하고 타임스탬프를 식별할 수 있다. 미디어 프로세서(213)는 타임스탬프를 이용하여 어떤 패킷이 본 명세서에 기재된 바와 같이 재생 개시되어야 하는지 결정할 수 있다.
도 10b는 도 2b의 멀티미디어의 서버(230)에 의한 예시적 인터리빙 프로세스를 도시하는 흐름도(1000b)이다. 트랜시버(231)는 멀티미디어 데이터 블록을 수신(1080)한다. 멀티미디어 데이터 블록은 복수 개의 데이터 파트들을 포함한다(이것들은 미디어 유닛이라고 불린다). 인터리버(235)는 멀티미디어 데이터 블록의 데이터 파트들을 인터리빙(1082)하여 인터리빙된 데이터 블록을 형성한다. 트랜시버(231)는 인터리빙된 데이터 블록을 송신(1084)한다.
다른 예에서, 도 2a의 통신장치(210)는 트랜시버(211)를 경유하여 인터리빙된 데이터 블록을 수신한다. 미디어 프로세서(213)는 데이터 블록으로 인터리빙된 데이터 블록을 재정렬할 수 있다. 미디어 프로세서(213)는 데이터 블록의 미디어 타입(예를 들면 오디오, 비디오 및 등등)을 결정할 수 있다. 미디어 프로세서(213)는 데이터 블록 내의 최초 및 최후 패킷을 결정하고 해당 최초 및 최후 패킷에 대한 타임스탬프들을 식별할 수 있다. 미디어 프로세서(213)는 최초 및 최후 패킷의 타임스탬프들 간의 차이를 이용하여 본 명세서에서 설명된 바와 같이 어떤 패킷을 재생 시작해야 하는지를 결정할 수 있다.
다른 실시예에서, 도 2a의 통신장치(210)는 트랜시버(211)를 경유하여 인터리빙된 데이터 블록을 수신한다. 미디어 프로세서(213)는 데이터 블록으로 인터리빙된 데이터 블록을 재정렬할 수 있다. 미디어 프로세서(213)는 데이터 블록의 미디어 타입(예를 들면 오디오, 비디오 및 등등)을 결정할 수 있다. 미디어 프로세서(213)는 하나 또는 그 이상의 오디오 패킷들에 대한 타임스탬프들을 식별한다. 미디어 프로세서(213)는 하나 또는 그 이상의 오디오 패킷들의 타임스탬프들을 이용하여 본 명세서에서 설명된 바와 같이 어떤 패킷을 재생 시작해야 하는지를 결정할 수 있다.
도 11은 도 2a의 통신 장치(210)에 의하여 수행되는 예시적 스케줄링 프로세스를 도시하고 있는 흐름도(1100)이다. 트랜시버(211)는 인터리빙된 멀티미디어 데이터 블록의 하나 또는 그 이상의 데이터 파트들을 수신(1110)한다. 미디어 프로세서(213)는 데이터 파트를 디-인터리빙한다(1120). 미디어 프로세서(213)는 해당 데이터 파트의 데이터 타입 정보를 결정한다(1130). 미디어 프로세서(213)는 해당 데이터 파트와 관련된 시간 정보를 결정(1140)한다.
미디어 프로세서(213)는 프리즈 시간 정보를 결정하고(1170) 해당 프리즈 시간 정보에 기반하여 데이터 파트에 대한 스케줄 몇 가지 엔트리를 결정한다(1180). 디스플레이 (214)는 해당 스케줄 엔트리에 기반하여 데이터 파트를 재생한다(1185).
일부 실시예에서, 이러한 인터리빙은 FEC 보안 확장가능 비디오 코딩(scalable video coding, SVC) 스트림에 적용될 때 더 나은 결과를 제공한다. 멀티미디어 환경에서, SVC는 멀티-스트림 모드에서 송신될 때 더욱 바람직하다. SCV는 베이스 계층이 확장 계층들과는 상이한 개별 RTP 세션에서 전송되고, 하나 또는 그 이상의 확장 계층들이 하나의 RTP 세션에서 전송될 수 있으며, 시간적 확장가능성이 각각의 공간적 계층과 함께 더욱 이용됨으로써 하나 또는 그 이상의 시간적 의존 하부 계층들을 생성할 수 있기 때문에 더욱 바람직하다.
다른 예에서, SVC 및 RTP 페이로드 포맷은 도 2b의 인터리버(235)에게 NAL 유닛 헤더 내의 구문 요소들(예를 들어 priority_id, dependency_id, quality_id, temporal_id 등)을 제공하여 미디어 유닛의 송신 순서의 재정렬을 허용한다. 예를 들어, 더 높은 우선권을 가지는 미디어 유닛들이 소스 블록의 끝을 향해서 송신될 수 있고, 및/또는 베이스 계층은 역방향 연대 순서로 송신될 수 있다. 몇 가지 예에서, 계층 우선권에 대한 정보가 SDP 파일로부터 추출될 수 있으므로, NAL 유닛 헤더 및 확장을 파싱(parsing)하는 것이 불필요하다.
몇 가지 실시예에서, 통신 장치(210)는 데이터 블록의 인터리빙을 결정하고, 미디어 패킷을 시그널링된 "최소-버퍼-시간" 보호 기간(protection period)이 완료되기 이전에 미디어 디코더(212)로 전달한다. 이러한 실시예에서, 채널 튠-인 시간은 정확하게 재구성된 미디어 데이터를 이용하여 가능한 한 빨리 재생 개시됨에 의하여 감소되는 것이 바람직하다.
다른 예에서, 데이터 블록의 인터리빙을 결정할 수 없는 통신 장치(210)는 소스 블록의 끝에 위치한 미디어 패킷들을 이용함으로써 튠-인 시간을 감소시킬 수 있으며, 이것은 가능한 미디어 데이터의 정확한 재구성을 이뤄낸다.
본 명세서에서 설명된 다양한 실시예들은 소프트웨어, 하드웨어, 어플리케이션 로직 또는 소프트웨어, 하드웨어와 어플리케이션 로직의 조합에서 실행될 수 있다. 예를 들면 소프트웨어, 어플리케이션 로직 또는 하드웨어는 칩셋, 이동식 장치, 데스크탑, 휴대용 개인 컴퓨터 또는 서버에 상주할 수 있다. 다양한 실시예들의 소프트웨어 및 웹 구현은 규칙-기반 로직 및 다른 로직을 이용한 표준 프로그래밍 기법을 통해 달성되어 다양한 데이터베이스 검색 단계 또는 프로세스, 상관 단계 또는 프로세스, 비교 단계 또는 프로세스 및 결정 단계 또는 프로세스를 구현할 수 있다. 또한, 다양한 실시예들은 네트워크 요소 또는 모듈을 이용하여 전체적 또는 부분적으로 구현될 수 있다. 본 명세서 및 후속되는 특허청구범위에서 이용되는 용어 "구성 요소" 및 "모듈"은 하나 또는 그 이상의 라인의 소프트웨어 코드, 및/또는 하드웨어 구현 및/또는 수동 입력을 수신하기 위한 장비를 이용한 장치들을 포함하는 것으로 의도된다.
전술된 시스템 및 방법은 디지털 전자 회로, 컴퓨터 하드웨어, 펌웨어 및/또는 소프트웨어로 구현될 수 있다. 이러한 구현은 컴퓨터 프로그램 제품의 형태를 가질 수 있다(즉, 정보 운반 수단에 물리적으로 구현된 컴퓨터 프로그램의 형식으로). 예를 들어 이러한 구현은 데이터 처리 장치에 의하여 실행되거나 이러한 장치의 동작을 제어하기 위한 기계에 의하여 판독가능한 저장소 장치의 형태를 가질 수 있다. 예를 들어, 이러한 구현은 프로그램가능한 프로세서, 컴퓨터, 및/또는 다중 컴퓨터들일 수 있다.
컴퓨터 프로그램은, 컴파일되거나 및/또는 해독된 언어를 포함하는 모든 형태의 프로그램 언어로 작성될 수 있고, 컴퓨터 프로그램은 독립형 프로그램 또는 하부 루틴, 요소, 및/또는 컴퓨팅 환경에서 이용되기에 적합한 모든 다른 유닛을 포함하는 모든 형태 내에 설치될 수 있다. 컴퓨터 프로그램은 단일 컴퓨터 또는 단일 사이트의 다중 컴퓨터 상에서 실행되기 위해 설치될 수 있다.
방법의 단계들은 데이터를 입력하고 출력을 생성함으로써 본 발명의 기능들을 구현하기 위한 컴퓨터 프로그램을 실행하는 하나 또는 그 이상의 프로그램 가능한 프로세서에 의하여 실행될 수 있다. 또한, 방법의 단계들은 특수 목적 로직 회로로서 구현될 수 있는 장치에 의해서 실행될 수 있다. 예를 들어, 이러한 회로는 FPGA(field programmable gate array) 및/또는 ASIC(application specific integrated circuit)일 수 있다. 모듈, 하부루틴 및 소프트웨어 에이전트는 해당 기능을 구현하는 컴퓨터 프로그램, 프로세서, 특수 회로, 소프트웨어 및/또는 하드웨어의 일부를 가리킬 수 있다.
컴퓨터 프로그램을 실행하기에 적합한 프로세서들은 범용 및 특수 목적 마이크로프로세서 및 모든 타입의 디지털 컴퓨터의 모든 하나 또는 그 이상의 프로세서들 모두를 포함할 수 있으며, 이는 예시적인 것이다. 일반적으로, 프로세서는 판독 전용 메모리 또는 임의 접근 메모리 또는 이들 모두로부터 명령어 및 데이터를 수신한다. 컴퓨터의 필수 구성 요소는 명령어를 실행하기 위한 프로세서 및 명령어 및 데이터를 저장하기 위한 하나 또는 그 이상의 메모리 장치이다. 일반적으로, 컴퓨터는 데이터를 저장하기 위한 하나 또는 그 이상의 대용량 저장소 장치를 포함할 수 있고, 이러한 대용량 저장소 장치(예를 들어, 자기 디스크, 자기광학 디스크, 또는 광학 디스크)로부터 데이터를 수신하거나 및/또는 데이터를 전달하기 위하여 동작가능하도록 연결될 수 있다.
데이터 송신 및 명령어들은 통신 네트워크 상에서도 발생할 수 있다. 컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적합한 정보 운반자에는 모든 타입의 비휘발성 메모리가 포함되는데, 여기에는 예시적으로 반도체 메모리 장치가 포함된다. 정보 운반자는 예를 들어 EPROM, EEPROM, 플래시 메모리 장치, 자기 디스크, 내장 하드 디스크, 탈착가능 디스크, 자기-광학 디스크, CD-ROM 및/또는 DVD-ROM 디스크가 포함될 수 있다. 프로세서 및 메모리는 특수 목적 로직 회로에 의하여 보조되거나 및/또는 회로 내에 통합될 수 있다.
사용자와의 상호작용을 제공하기 위하여, 전술된 기법은 디스플레이를 가지는 컴퓨터 상에 구현될 수 있다. 예를 들어, 디스플레이는 CRT(cathode ray tube) 및/또는 LCD(liquid crystal display) 모니터일 수 있다. 예를 들어, 사용자와의 상호작용은 정보를 사용자에게 디스플레이하는 것 및 사용자가 입력을(예를 들어 사용자 인터페이스 요소와의 상호작용 등) 컴퓨터에 제공하는데 이용되는 키보드 및 포인팅 장치(예를 들어, 마우스 또는 트랙볼)일 수 있다. 사용자와의 상호작용을 위하여 다른 종류의 장치들이 이용될 수 있다. 예를 들어, 다른 장치는 사용자에게 제공되는 모든 형태의 센서 피드백(예를 들어 시각적 피드백, 음향적 피드백, 또는 촉각적 피드백)일 수 있다. 예를 들어, 사용자로부터의 입력은 음향적, 음성적, 및/또는 촉각적 입력과 같은 모든 형태로 수신될 수 있다.
전술된 기술은 백-엔드 구성 요소(back-end component)를 포함하는 분산 연산 시스템(distributed computing system) 내에 구현될 수 있다. 예를 들어, 백-엔드 구성 요소는 데이터 서버, 미들웨어 구성 요소 및/또는 어플리케이션 서버일 수 있다. 전술된 기술은 프론트-엔드 구성 요소(front-end component)를 포함하는 분산 연산 시스템 내에 구현될 수 있다. 예를 들어, 프론트-엔드 구성 요소는 그래픽 사용자 인터페이스, 사용자에게 예시적 표현과 상호작용하도록 하는 웹 브라우저, 및/또는 송신 장치용 다른 그래픽 사용자 인터페이스일 수 있다. 시스템의 구성 요소들은 디지털 데이터 통신의 모든 형태 또는 매체(예를 들어 네트워크)에 의하여 상호 연결될 수 있다.
네트워크의 예에는 LAN(local area network), WAN(wide area network), 인터넷, 유선 네트워크, 무선 네트워크, 패킷-기반 네트워크, 및/또는 반송파-기반 네트워크(carrier-based networks)가 포함될 수 있다. 네트워크로의 연결에는 장거리 무선 연결, 단거리 무선 연결, 및 전화선, 케이블 선 등과 같은(이에 한정되는 것이 아님) 다양한 유선 연결이 포함될 수 있지만, 이들로 한정되는 것은 아니다.
패킷-기반 네트워크(Packet-based networks)는 예를 들어 인터넷, 반송파 IP(internet protocol) 네트워크(예를 들어, LAN(local area network), WAN(wide area network), MAY(campus area network), MAY(metropolitan area network), HAN(home area network), 사설 IP 네트워크, IPBX(IP private branch exchange), 무선 네트워크(예를 들어 RAN(radio access network), 802.11 네트워크, 802.16 네트워크, GPRS(general packet radio service) 네트워크, HiperLAN등과 같은), 및 다른 패킷-기반 네트워크일 수 있다. 회선-기반 네트워크(Circuit-based networks)는 예를 들어 PSTN(public switched telephone network), PBX(private branch exchange), 무선 네트워크(예를 들어, RAN, 블루투스, CDMA(code-division multiple access) 네트워크, TDMA(time division multiple access) 네트워크, GSM(global system for mobile communications) 네트워크와 같은), 및/또는 다른 회선-기반 네트워크를 포함할 수 있다.
몇 가지 실시예에서는, 서버는 통신 프로토콜 스택을 이용하여 코딩된 미디어 비트 스트림을 전송한다. 이러한 스택은 RTP(Real-Time Transport Protocol), UDP(User Datagram Protocol), 및 IP(Internet Protocol)을 포함할 수 있지만, 이에 한정되는 것은 아니다. 통신 프로토콜 스택이 패킷-지향적이라면, 서버는 코딩된 미디어 비트스트림을 패킷에 캡슐화(encapsulate)한다. 예를 들어, RTP가 이용되면, 서버는 코딩된 미디어 비트스트림을 RTP 페이로드 포맷에 따라서 RTP 패킷 내에 캡슐화한다. 전형적으로 각 미디어 타입은 전용 RTP 페이로드 포맷을 가진다.
다른 실시예에서, 서버는 통신 네트워크를 통하여 게이트웨이에 연결될 수 있다. 게이트웨이는 하나의 통신 프로토콜 스택으로부터 다른 통신 프로토콜 스택으로의 패킷 스트림의 번역(translation), 데이터 스트림의 통합(merging) 및 분할(forking), 및 주도하는 다운링크 네트워크 조건에 따라서 전달된 스트림의 비트율을 제어하는 등 다운링크 및/또는 수신기 성능에 따라서 데이터 스트림을 처리하는 것과 같은 상이한 타입의 기능들을 수행할 수 있다. 게이트웨이의 예에는 MCU, 회선-교환 및 패킷-교환 화상 전화 간의 게이트웨이, PoC(Push-to-talk over Cellular) 서버, DVB-H(digital video broadcasting-handheld) 시스템 내의 IP 캡슐화기, 또는 지역적으로 브로드캐스트 송신을 가정용 무선 네트워크로 전달하는 셋-탑 박스를 포함할 수 있다. RTP가 이용되면, 게이트웨이는 RTP 믹서(RTP mixer) 또는 RTP 번역기(RTP translator)라고 불리고 RTP 연결의 종말점(endpoint)으로서 동작한다.
시스템은 클라이언트 및 서버를 포함할 수 있다. 일반적으로 클라이언트 및 서버는 상호 원격으로 위치하며 전형적으로 통신 네트워크를 통하여 상호작용한다. 클라이언트 및 서버의 관련성은 상호간 클라이언트-서버 관련성을 가지는 개별 컴퓨터 상에서 실행되는 컴퓨터 프로그램을 이용하여 대두된다. 예를 들어, 통신 장치는 예시적인 의미로 컴퓨터, 브라우징 장치를 가지는 컴퓨터, 전화기, IP 전화기, 이동 장치(예를 들어 셀룰러 전화기, PDA(personal digital assistant) 장치, 랩톱 컴퓨터, 전자 메일 서비스 등), 및/또는 다른 통신 장치를 포함할 수 있다. 예를 들어, 브라우저 장치는 월드 와이드 웹 브라우저(예를 들어 마이크로소프트사에 의하여 제공되는 Microsoft(R) Internet Explorer(R), 모질라사에 의하여 제공되는 Mozilla(R) 파이어폭스(Firefox))를 가지는 컴퓨터(예를 들어 데스크탑 컴퓨터, 랩톱 컴퓨터)를 포함한다. 이동 연산 장치는 예를 들어 PDA(personal digital assistant)를 포함한다.
예를 들어, 통신 장치는 고정형이거나 이동 중인 개인에 의하여 소지되는 경우에는 이동형일 수 있다. 또한, 통신 장치는 예시적으로 자동차, 트럭, 택시, 버스, 기차, 보트, 비행기, 자전거, 오토바이 등과 같은 이동 수단 내에 위치할 수도 있다. 통신 장치들 중 일부 또는 전부는 기지국과의 무선 연결을 통하여 서비스 제공자와 통신하고 전화 및 메시지를 전송 및 수신할 수 있다. 기지국은 이동 전화망 및 네트워크 간의 통신을 허용하는 네트워크 서버에 연결될 수 있다. 시스템은 추가적 통신 장치 및 상이한 타입의 통신 장치들을 포함할 수 있다.
통신 장치들은 예시적으로, CDMA(Code Division Multiple Access), GSM(Global System for Mobile Communications), UMTS(Universal Mobile Telecommunications System), TDMA(Time Division Multiple Access), FDMA(Frequency Division Multiple Access), TCP/IP(Transmission Control Protocol/Internet Protocol), SMS(Short Messaging Service), MMS(Multimedia Messaging Service), 이메일, IMS(Instant Messaging Service), 블루투스, IEEE 802.11 등과 같은 것들을 포함하는 다양한 송신 기법을 이용하여 통신할 수 있다. 본 발명의 다양한 실시예들을 구현하는데 관련되는 통신 장치는 예시적으로 무선, 적외선, 레이저, 케이블 연결 등과 같은 다양한 매체를 이용하여 통신할 수 있으나, 이에 한정되는 것은 아니다.
포함한다는 표현 및/또는 복수형의 표현은 개방형 의미로 사용되며 열거된 구성 요소를 포함하며, 열거되지 않은 추가적인 구성 요소들을 포함할 수 있다. '및/또는' 이라는 표현은 개방형 의미로 사용되며 열거된 구성 요소들 중 하나 또는 그 이상 및 열거된 구성 요소들의 조합을 포함한다.
실시예들에 대한 전술된 설명은 예시적 목적 및 설명적 목적을 위하여 제공되었다. 전술된 설명은 본 발명의 실시예들은 개시된 특정 형태로 한정하거나 그것만 가능하다는 의미로 제공된 것이 아니며, 전술된 교시 내용에 기반하여 다양한 수정 및 변형예가 가능하고, 또는 다양한 수정 및 변형이 다양한 실시예들을 실시하는 동안에 얻어질 수도 있다. 본 명세서에서 논의된 실시예들은 다양한 실시예들 및 그 실용적 적용예의 원리 및 속성을 설명하기 위하여 선택 및 설명되었으며, 이를 통하여 당업자로 하여금 본 발명을 다양한 실시예에서 이용하고 고려대상인 특정 사용예에 적합하도록 하는 다양한 수정예를 통하여 이용할 수 있도록 한다. 본 명세서에 기술된 실시예들의 특징은 방법, 장치, 모듈, 시스템, 및 컴퓨터 프로그램 제품의 모든 가능한 조합에서 결합될 수 있다.
몇 가지 실시예에서, 후술되는 측면들 모두는 다음과 같은 실시예들 중 하나 또는 그 이상을 포함할 수 있다.
일 측면에서, 본 발명에 의한 방법은:
멀티미디어 데이터 블록을 수신하는 단계로서, 상기 멀티미디어 데이터 블록은 복수 개의 데이터 파트들을 포함하는 단계;
상기 복수 개의 데이터 파트들을 인터리빙하여 우선 순위에 기반한 인터리빙된 데이터 블록을 형성하는 단계로서, 상기 우선 순위는 상기 복수 개의 데이터 파트들과 관련된 타입 정보에 기반하는 단계; 및
상기 인터리빙된 데이터 블록을 송신하는 단계를 포함한다.
몇 가지 실시예에서, 본 발명에 의한 방법은 상기 인터리빙된 데이터 블록과 관련된 정보에 기반하여 인터리브 속성(interleave attribute)을 생성하는 단계를 더 포함한다.
다른 실시예에서, 본 발명에 의한 방법은 상기 인터리빙된 데이터 블록을 상기 인터리브 속성을 포함하도록 수정하는 단계를 더 포함한다.
몇 가지 실시예에서, 본 발명에 의한 방법은 상기 인터리브 속성을 송신하는 단계를 더 포함한다. 다른 실시예에서, 상기 인터리브 속성은, 상기 우선 순위와 관련된 정보, 디코딩을 위한 우선권(priority), 타임스탬프, 및 상기 데이터 파트와 관련된 정보들을 포함한다.
몇 가지 실시예에서, 본 발명에 의한 방법은 상기 멀티미디어 데이터 블록을 인코딩하는 단계를 더 포함한다.
다른 실시예에서, 본 발명에 의한 방법은 상기 인터리빙된 데이터 블록을 인코딩하는 단계를 더 포함한다.
몇 가지 실시예에서, 본 발명에 의한 방법은 상기 인코딩은 순방향 에러 정정 인코딩(forward error correction encoding)이다.
다른 실시예에서, 상기 우선 순위는 역방향 연대 순서(reverse chronologic order), 연대 순서, 데이터 파트 크기 순서, 및/또는 데이터 타입 순서이다.
몇 가지 실시예에서, 상기 우선 순위는 선결된 우선 순위이다.
다른 측면에서, 본 발명에 의한 장치는:
멀티미디어 데이터 블록을 수신하고 인터리빙된 데이터 블록을 송신하도록 구성되며, 상기 멀티미디어 데이터 블록은 복수 개의 데이터 파트들을 포함하는 송수신기; 및
상기 복수 개의 데이터 파트들을 인터리빙하여 우선 순위에 기반한 인터리빙된 데이터 블록을 형성하도록 구성되며, 상기 우선 순위는 상기 복수 개의 데이터 파트들과 관련된 타입 정보에 기반하는 인터리버를 포함한다.
몇 가지 실시예에서, 본 발명에 의한 장치는 상기 인터리빙된 데이터 블록과 관련된 정보에 기반하여 인터리브 속성을 생성하도록 더욱 구성되는 인터리버를 더 포함한다.
다른 실시예에서, 본 발명에 의한 장치는 상기 인터리빙된 데이터 블록을 상기 인터리브 속성을 포함하도록 수정하도록 더욱 구성되는 인터리버를 더 포함한다.
몇 가지 실시예에서, 본 발명에 의한 장치는 상기 인터리브 속성을 송신하도록 더욱 구성되는 송수신기를 더 포함한다.
다른 실시예에서, 본 발명에 의한 장치는 상기 멀티미디어 데이터 블록을 인코딩하도록 구성되는 인코더를 더 포함한다.
몇 가지 실시예에서, 본 발명에 의한 장치는 상기 인터리빙된 데이터 블록을 인코딩하도록 구성되는 인코더를 더 포함한다.
다른 실시예에서, 본 발명에 의한 장치는 상기 데이터 블록과 관련된 멀티미디어 타입에 기반하여 우선 순위를 생성하도록 더욱 구성되는 인터리버를 더 포함한다.
다른 측면에서, 본 발명에 의한 컴퓨터 판독가능 저장 매체는 명령어들을 이용하여 인코딩되고, 상기 명령어들은 컴퓨터 프로세서에 의하여 실행되면:
멀티미디어 데이터 블록을 수신하는 동작으로서, 상기 멀티미디어 데이터 블록은 복수 개의 데이터 파트들을 포함하는 동작;
상기 복수 개의 데이터 파트들을 인터리빙하여 우선 순위에 기반한 인터리빙된 데이터 블록을 형성하는 동작으로서, 상기 우선 순위는 상기 복수 개의 데이터 파트들과 관련된 타입 정보에 기반하는 동작; 및
상기 인터리빙된 데이터 블록을 송신하는 동작을 수행한다.
다른 측면에서, 본 발명에 의한 방법은:
인터리빙된 멀티미디어 데이터 블록의 하나 또는 그 이상의 데이터 파트를 수신하는 단계;
상기 하나 또는 그 이상의 데이터 파트와 관련된 시간 정보 및/또는 상기 하나 또는 그 이상의 데이터 파트의 데이터 타입 정보에 기반하여 상기 하나 또는 그 이상의 데이터 파트 중 제1 데이터 파트를 결정하는 단계; 및
상기 하나 또는 그 이상의 데이터 파트와 관련된 시간 정보 및 후속 데이터 블록의 최선(最先) 데이터 파트의 플레이-아웃(play-out) 시간 정보에 기반하여 스케줄 내에서 상기 제1 데이터 파트에 대한 스케줄 엔트리(schedule entry)를 결정하는 단계를 포함한다.
몇 가지 실시예에서, 본 발명에 의한 방법은 상기 하나 또는 그 이상의 데이터 파트와 관련된 시간 정보 및/또는 상기 하나 또는 그 이상의 데이터 파트의 데이터 타입 정보 중 적어도 하나에 기반하여 상기 하나 또는 그 이상의 데이터 파트를 정렬하는(arranging) 단계를 더 포함한다.
다른 실시예에서, 본 발명에 의한 방법은 정렬된 하나 또는 그 이상의 데이터 파트를 재생하는 단계를 더 포함한다.
몇 가지 실시예에서, 본 발명에 의한 방법은 상기 스케줄 내의 결정된 스케줄 엔트리에 기반하여 상기 제1 데이터 파트를 재생하는 단계를 더 포함한다.
다른 실시예에서, 본 발명에 의한 방법에 포함되는 데이터 파트를 재생하는 단계는, 상기 데이터 파트를 디스플레이하는 단계 및/또는 상기 데이터 파트를 복제하는(reproducing) 단계를 포함하는 단계를 더 포함한다.
몇 가지 실시예에서, 상기 인터리빙된 멀티미디어 데이터 블록은 오디오 데이터 파트, 비디오 데이터 파트, 이미지 데이터 파트, 텍스트 데이터 파트, 및/또는 애니메이션 데이터 파트를 포함한다.
다른 실시예에서, 본 발명에 의한 방법은 상기 인터리빙된 멀티미디어 데이터 블록의 수신된 섹션에 기반하여 플레이-아웃 시간을 결정하는 단계를 더 포함한다.
다른 실시예에서, 본 발명에 의한 방법은 후속 데이터의 최선(最先) 데이터 파트의 플레이-아웃 시간 정보 및/또는 프리즈 시간 정보에 기반하여 제1 데이터 파트에 대한 스케줄 엔트리를 스케줄 내에서 결정하는 단계를 더 포함한다.
몇 가지 실시예에서, 본 발명에 의한 방법은 후속 멀티미디어 데이터 블록과 관련된 시간 정보 및 상기 하나 또는 그 이상의 데이터 파트와 관련된 시간 정보 간의 차이에 기반하여 프리즈 시간 정보를 결정하는 단계를 더 포함한다.
다른 실시예에서, 본 발명에 의한 방법은 수신된 인터리브 속성에 기반하여 상기 하나 또는 그 이상의 데이터 파트 중 제1 데이터 파트를 결정하는 단계를 더 포함한다.
몇 가지 실시예에서, 상기 인터리브 속성은, 상기 인터리빙된 멀티미디어 데이터 블록의 하나 또는 그 이상의 데이터 파트의 시퀀스에 관련된 정보를 포함한다.
몇 가지 실시예에서, 상기 하나 또는 그 이상의 데이터 파트의 데이터 타입 정보는 상기 하나 또는 그 이상의 데이터 파트의 멀티미디어 타입을 포함한다.
다른 측면에서, 본 발명에 의한 장치는:
송수신기는 인터리빙된 멀티미디어 데이터 블록의 하나 또는 그 이상의 데이터 파트를 수신하도록 구성되는 송수신기; 및
미디어 프로세서를 포함하고, 미디어 프로세서는:
상기 하나 또는 그 이상의 데이터 파트와 관련된 시간 정보 및/또는 상기 하나 또는 그 이상의 데이터 파트의 데이터 타입 정보에 기반하여 상기 하나 또는 그 이상의 데이터 파트 중 제1 데이터 파트를 결정하고,
후속 데이터 블록의 최선(最先) 데이터 파트의 플레이-아웃 시간 정보에 기반하여 스케줄 내에서 상기 제1 데이터 파트에 대한 스케줄 엔트리를 결정하도록 구성된다.
몇 가지 실시예에서, 본 발명에 의한 장치는 상기 하나 또는 그 이상의 데이터 파트와 관련된 시간 정보 및/또는 상기 하나 또는 그 이상의 데이터 파트의 데이터 타입 정보에 기반하여 상기 하나 또는 그 이상의 데이터 파트를 정렬하도록 더욱 구성되는 미디어 프로세서를 더 포함한다.
다른 실시예에서, 본 발명에 의한 장치는 정렬된 하나 또는 그 이상의 데이터 파트를 재생하도록 구성되는 디스플레이를 더 포함한다.
몇 가지 실시예에서, 본 발명에 의한 장치는 상기 스케줄 내의 결정된 스케줄 엔트리에 기반하여 상기 제1 데이터 파트를 재생하도록 구성되는 디스플레이를 더 포함한다.
다른 실시예에서, 본 발명에 의한 장치는 상기 인터리빙된 멀티미디어 데이터 블록의 수신된 섹션에 기반하여 플레이-아웃 시간 정보를 결정하도록 더욱 구성되는 미디어 프로세서를 더 포함한다.
몇 가지 실시예에서, 본 발명에 의한 장치는 후속 데이터 블록의 최선 데이터 파트의 플레이-아웃 시간 정보 및/또는 프리즈 시간 정보에 기반하여 상기 제1 데이터 파트에 대한 스케줄 엔트리를 스케줄 내에서 결정하도록 더욱 구성되는 미디어 프로세서를 더 포함한다.
몇 가지 실시예에서, 본 발명에 의한 장치는 후속 멀티미디어 데이터 블록과 관련된 시간 정보 및 상기 하나 또는 그 이상의 데이터 파트와 관련된 시간 정보 간의 차이에 기반하여 프리즈 시간 기간을 결정하도록 더욱 구성되는 미디어 프로세서를 더 포함한다.
다른 실시예에서, 본 발명에 의한 장치는 인터리브 속성에 기반하여 상기 하나 또는 그 이상의 데이터 파트 중 제1 데이터 파트를 결정하도록 더욱 구성되는 미디어 프로세서를 더 포함한다.
다른 측면에서, 본 발명에 의한 컴퓨터 판독가능 저장 매체는 명령어들을 이용하여 인코딩되며, 상기 명령어들은, 컴퓨터 프로세서에 의하여 실행되면:
인터리빙된 멀티미디어 데이터 블록의 하나 또는 그 이상의 데이터 파트를 수신하는 동작;
상기 하나 또는 그 이상의 데이터 파트와 관련된 시간 정보 및 상기 하나 또는 그 이상의 데이터 파트의 데이터 타입 정보에 기반하여 상기 하나 또는 그 이상의 데이터 파트 중 제1 데이터 파트를 결정하는 동작; 및
후속 데이터 블록의 최선(最先) 데이터 파트의 플레이-아웃 시간 정보에 기반하여 스케줄 내에서 상기 제1 데이터 파트에 대한 스케줄 엔트리를 결정하는 동작을 수행한다.
본 발명은 데이터 블록 내의 데이터 유닛 또는 데이터 파트들을 인터리빙하는데 적용될 수 있다.

Claims (35)

  1. 데이터 블록을 인터리빙하기 위한 방법에 있어서,
    멀티미디어 데이터 블록을 수신하는 단계―상기 멀티미디어 데이터 블록은 복수 개의 데이터 파트들을 포함함―와,
    상기 복수 개의 데이터 파트들을 인터리빙하여 우선 순위에 기반한 인터리빙된 데이터 블록을 형성하는 단계―상기 우선 순위는 상기 복수 개의 데이터 파트들과 관련된 타입 정보에 기반함―와,
    상기 인터리빙된 데이터 블록을 송신하는 단계를 포함하는 것을 특징으로 하는
    데이터 블록 인터리빙 방법.
  2. 제1항에 있어서,
    상기 인터리빙된 데이터 블록과 관련된 정보에 기반하여 인터리브 속성(interleave attribute)을 생성하는 단계를 더 포함하는 것을 특징으로 하는
    데이터 블록 인터리빙 방법.
  3. 제2항에 있어서,
    상기 데이터 블록 인터리빙 방법은,
    상기 인터리빙된 데이터 블록을 상기 인터리브 속성을 포함하도록 수정하는 단계와,
    상기 인터리브 속성을 송신하는 단계 중 적어도 하나를 더 포함하는 것을 특징으로 하는
    데이터 블록 인터리빙 방법.
  4. 제2항 또는 제3항에 있어서,
    상기 인터리브 속성은,
    상기 우선 순위와 관련된 정보, 디코딩을 위한 우선권(priority), 타임스탬프, 및 상기 데이터 파트와 관련된 정보들 중 적어도 하나를 포함하는 것을 특징으로 하는
    데이터 블록 인터리빙 방법.
  5. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 데이터 블록 인터리빙 방법은,
    상기 멀티미디어 데이터 블록을 인코딩하는 단계 및 상기 인터리빙된 데이터 블록을 인코딩하는 단계 중 하나를 더 포함하는 것을 특징으로 하는
    데이터 블록 인터리빙 방법.
  6. 제5항에 있어서,
    상기 인코딩은 순방향 에러 정정 인코딩(forward error correction encoding)인 것을 특징으로 하는
    데이터 블록 인터리빙 방법.
  7. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 우선 순위는,
    역방향 연대 순서(reverse chronologic order)에 기반한 우선 순위, 연대 순서에 기반한 우선 순위, 데이터 파트 크기 순서에 기반한 우선 순위, 데이터 타입 순서에 기반한 우선 순위, 및 선결된 우선 순위 중 적어도 하나를 포함하는 것을 특징으로 하는
    데이터 블록 인터리빙 방법.
  8. 데이터 블록을 인터리빙하기 위한 장치에 있어서,
    멀티미디어 데이터 블록을 수신하고 인터리빙된 데이터 블록을 송신하기 위한 수단―상기 멀티미디어 데이터 블록은 복수 개의 데이터 파트들을 포함함―과,
    상기 복수 개의 데이터 파트들을 인터리빙하여 우선 순위에 기반한 인터리빙된 데이터 블록을 형성하기 위한 수단―상기 우선 순위는 상기 복수 개의 데이터 파트들과 관련된 타입 정보에 기반함―을 포함하는 것을 특징으로 하는
    데이터 블록 인터리빙 장치.
  9. 제8항에 있어서,
    상기 데이터 블록 인터리빙 장치는,
    상기 인터리빙된 데이터 블록과 관련된 정보에 기반하여 속성을 생성하기 위한 수단을 더 포함하는 것을 특징으로 하는
    데이터 블록 인터리빙 장치.
  10. 제9항에 있어서,
    상기 데이터 블록 인터리빙 장치는,
    상기 인터리빙된 데이터 블록을 인터리브 속성을 포함하도록 수정하기 위한 수단과,
    상기 인터리브 속성을 송신하기 위한 수단 중 적어도 하나를 더 포함하는 것을 특징으로 하는
    데이터 블록 인터리빙 장치.
  11. 제9항 또는 제10항에 있어서,
    상기 인터리브 속성은,
    상기 우선 순위와 관련된 정보, 디코딩을 위한 우선권(priority), 타임스탬프, 및 상기 데이터 파트와 관련된 정보들 중 적어도 하나를 포함하는 것을 특징으로 하는
    데이터 블록 인터리빙 장치.
  12. 제8항 내지 제10항 중 어느 한 항에 있어서,
    상기 데이터 블록 인터리빙 장치는,
    상기 멀티미디어 데이터 블록을 인코딩하기 위한 수단 및 상기 인터리빙된 데이터 블록을 인코딩하기 위한 수단 중 하나를 포함하는 것을 특징으로 하는
    데이터 블록 인터리빙 장치.
  13. 제12항에 있어서,
    상기 인코딩은 순방향 에러 정정 인코딩인 것을 특징으로 하는
    데이터 블록 인터리빙 장치.
  14. 제8항 내지 제10항 중 어느 한 항에 있어서,
    상기 우선 순위는,
    역방향 연대 순서에 기반한 우선 순위, 연대 순서에 기반한 우선 순위, 데이터 파트 크기 순서에 기반한 우선 순위, 데이터 타입 순서에 기반한 우선 순위, 및 선결된 우선 순위 중 적어도 하나를 포함하는 것을 특징으로 하는
    데이터 블록 인터리빙 장치.
  15. 명령어들을 이용하여 인코딩된 컴퓨터 판독가능 저장 매체에 있어서,
    상기 명령어들은,
    컴퓨터 프로세서에 의하여 실행될 때, 장치로 하여금 적어도,
    멀티미디어 데이터 블록을 수신하는 동작―상기 멀티미디어 데이터 블록은 복수 개의 데이터 파트들을 포함함―과,
    상기 복수 개의 데이터 파트들을 인터리빙하여 우선 순위에 기반한 인터리빙된 데이터 블록을 형성하는 동작―상기 우선 순위는 상기 복수 개의 데이터 파트들과 관련된 타입 정보에 기반함―과,
    상기 인터리빙된 데이터 블록을 송신하는 동작을 수행하도록 하는 것을 특징으로 하는
    컴퓨터 판독가능 저장 매체.
  16. 데이터 블록을 인터리빙하기 위한 방법에 있어서,
    인터리빙된 멀티미디어 데이터 블록의 하나 또는 그 이상의 데이터 파트를 수신하는 단계와,
    상기 하나 또는 그 이상의 데이터 파트와 관련된 시간 정보 및 상기 하나 또는 그 이상의 데이터 파트의 데이터 타입 정보에 기반하여 상기 하나 또는 그 이상의 데이터 파트 중 제1 데이터 파트를 결정하는 단계와,
    상기 하나 또는 그 이상의 데이터 파트와 관련된 시간 정보 및 후속 데이터 블록의 최선(最先) 데이터 파트의 플레이-아웃(play-out) 시간 정보에 기반하여 스케줄 내에서 상기 제1 데이터 파트에 대한 스케줄 엔트리(schedule entry)를 결정하는 단계를 포함하는 것을 특징으로 하는
    데이터 블록 인터리빙 방법.
  17. 제16항에 있어서,
    상기 데이터 블록 인터리빙 방법은,
    상기 하나 또는 그 이상의 데이터 파트와 관련된 시간 정보 및 상기 하나 또는 그 이상의 데이터 파트의 데이터 타입 정보 중 적어도 하나에 기반하여 상기 하나 또는 그 이상의 데이터 파트를 정렬하는(arranging) 단계와,
    정렬된 하나 또는 그 이상의 데이터 파트를 재생하는 단계와,
    상기 스케줄 내의 결정된 스케줄 엔트리에 기반하여 상기 제1 데이터 파트를 재생하는 단계―데이터 파트를 재생하는 단계는 상기 데이터 파트를 디스플레이하는 단계와 상기 데이터 파트를 복제하는(reproducing) 단계 중 적어도 하나를 포함함― 중 적어도 하나를 더 포함하는 것을 특징으로 하는
    데이터 블록 인터리빙 방법.
  18. 제16항 또는 제17항에 있어서,
    상기 인터리빙된 멀티미디어 데이터 블록은,
    오디오 데이터 파트, 비디오 데이터 파트, 이미지 데이터 파트, 텍스트 데이터 파트, 및 애니메이션 데이터 파트 중 하나 또는 그 이상을 포함하는 것을 특징으로 하는
    데이터 블록 인터리빙 방법.
  19. 제16항 또는 제17항에 있어서,
    스케줄 내에서 상기 스케줄 엔트리를 결정하는 상기 단계는,
    상기 인터리빙된 멀티미디어 데이터 블록의 수신된 하나 또는 그 이상의 데이터 파트의 플레이-아웃 시간 지속 시간(duration)을 결정하는 단계를 포함하는 것을 특징으로 하는
    데이터 블록 인터리빙 방법.
  20. 제16항 또는 제17항에 있어서,
    상기 데이터 블록 인터리빙 방법은,
    후속 멀티미디어 데이터 블록과 관련된 시간 정보 및 상기 하나 또는 그 이상의 데이터 파트와 관련된 시간 정보 간의 차이에 기반하여 프리즈 시간 기간(freeze time period)을 결정하는 단계를 더 포함하는 것을 특징으로 하는
    데이터 블록 인터리빙 방법.
  21. 제16항 또는 제17항에 있어서,
    상기 데이터 블록 인터리빙 방법은,
    인터리브 속성을 수신하는 단계와,
    상기 수신된 인터리브 속성에 기반하여 상기 하나 또는 그 이상의 데이터 파트 중 제1 데이터 파트를 결정하는 단계를 더 포함하는 것을 특징으로 하는
    데이터 블록 인터리빙 방법.
  22. 제21항에 있어서,
    상기 인터리브 속성은, 상기 인터리빙된 멀티미디어 데이터 블록의 하나 또는 그 이상의 데이터 파트의 시퀀스에 관련된 정보를 포함하는 것을 특징으로 하는
    데이터 블록 인터리빙 방법.
  23. 제16항 또는 제17항에 있어서,
    상기 하나 또는 그 이상의 데이터 파트의 데이터 타입 정보는 상기 하나 또는 그 이상의 데이터 파트의 멀티미디어 타입을 포함하는 것을 특징으로 하는
    데이터 블록 인터리빙 방법.
  24. 데이터 블록을 인터리빙하기 위한 장치에 있어서,
    인터리빙된 멀티미디어 데이터 블록의 하나 또는 그 이상의 데이터 파트를 수신하기 위한 수단과,
    상기 하나 또는 그 이상의 데이터 파트와 관련된 시간 정보 및 상기 하나 또는 그 이상의 데이터 파트의 데이터 타입 정보에 기반하여 상기 하나 또는 그 이상의 데이터 파트 중 제1 데이터 파트를 결정하기 위한 수단과,
    상기 하나 또는 그 이상의 데이터 파트와 관련된 시간 정보 및 후속 데이터 블록의 최선(最先) 데이터 파트의 플레이-아웃 시간 정보에 기반하여 스케줄 내에서 상기 제1 데이터 파트에 대한 스케줄 엔트리를 결정하기 위한 수단을 포함하는 것을 특징으로 하는
    데이터 블록 인터리빙 장치.
  25. 제24항에 있어서,
    상기 데이터 블록 인터리빙 장치는,
    상기 하나 또는 그 이상의 데이터 파트와 관련된 시간 정보 및 상기 하나 또는 그 이상의 데이터 파트의 데이터 타입 정보 중 적어도 하나에 기반하여 상기 하나 또는 그 이상의 데이터 파트를 정렬하기 위한 수단과,
    정렬된 하나 또는 그 이상의 데이터 파트를 재생하기 위한 수단과,
    상기 스케줄 내의 결정된 스케줄 엔트리에 기반하여 상기 제1 데이터 파트를 재생하기 위한 수단 중 적어도 하나를 더 포함하며,
    데이터 파트를 재생하는 동작은 상기 데이터 파트를 디스플레이하는 동작과 상기 데이터 파트를 복제하는 동작 중 적어도 하나를 포함하는 것을 특징으로 하는
    데이터 블록 인터리빙 장치.
  26. 제24항 또는 제25항에 있어서,
    상기 인터리빙된 멀티미디어 데이터 블록은,
    오디오 데이터 파트, 비디오 데이터 파트, 이미지 데이터 파트, 텍스트 데이터 파트, 및 애니메이션 데이터 파트 중 하나 또는 그 이상을 포함하는 것을 특징으로 하는
    데이터 블록 인터리빙 장치.
  27. 제24항 또는 제25항에 있어서,
    상기 데이터 블록 인터리빙 장치는,
    상기 인터리빙된 멀티미디어 데이터 블록의 수신된 하나 또는 그 이상의 데이터 파트의 플레이-아웃 시간 지속 시간을 결정하기 위한 수단을 더 포함하는 것을 특징으로 하는
    데이터 블록 인터리빙 장치.
  28. 제24항 또는 제25항에 있어서,
    상기 데이터 블록 인터리빙 장치는,
    후속 멀티미디어 데이터 블록과 관련된 시간 정보 및 상기 하나 또는 그 이상의 데이터 파트와 관련된 시간 정보 간의 차이에 기반하여 프리즈 시간 기간을 결정하기 위한 수단을 더 포함하는 것을 특징으로 하는
    데이터 블록 인터리빙 장치.
  29. 제24항 또는 제25항에 있어서,
    상기 데이터 블록 인터리빙 장치는,
    인터리브 속성을 수신하기 위한 수단과,
    상기 수신된 인터리브 속성에 기반하여 상기 하나 또는 그 이상의 데이터 파트 중 제1 데이터 파트를 결정하기 위한 수단을 적어도 더 포함하는 것을 특징으로 하는
    데이터 블록 인터리빙 장치.
  30. 제29항에 있어서,
    상기 인터리브 속성은, 상기 인터리빙된 멀티미디어 데이터 블록의 하나 또는 그 이상의 데이터 파트의 시퀀스에 관련된 정보를 포함하는 것을 특징으로 하는
    데이터 블록 인터리빙 장치.
  31. 제24항 또는 제25항에 있어서,
    상기 하나 또는 그 이상의 데이터 파트의 데이터 타입 정보는 상기 하나 또는 그 이상의 데이터 파트의 멀티미디어 타입을 포함하는 것을 특징으로 하는
    데이터 블록 인터리빙 장치.
  32. 명령어들을 이용하여 인코딩된 컴퓨터 판독가능 저장 매체에 있어서,
    상기 명령어들은,
    컴퓨터 프로세서에 의하여 실행될 때, 장치로 하여금 적어도,
    인터리빙된 멀티미디어 데이터 블록의 하나 또는 그 이상의 데이터 파트를 수신하는 동작과,
    상기 하나 또는 그 이상의 데이터 파트와 관련된 시간 정보 및 상기 하나 또는 그 이상의 데이터 파트의 데이터 타입 정보에 기반하여 상기 하나 또는 그 이상의 데이터 파트 중 제1 데이터 파트를 결정하는 동작과,
    상기 하나 또는 그 이상의 데이터 파트와 관련된 시간 정보 및 후속 데이터 블록의 최선(最先) 데이터 파트의 플레이-아웃 시간 정보에 기반하여 스케줄 내에서 상기 제1 데이터 파트에 대한 스케줄 엔트리를 결정하는 동작을 수행하도록 하는 것을 특징으로 하는
    컴퓨터 판독가능 저장 매체.
  33. 데이터 블록을 인터리빙하기 위한 시스템에 있어서,
    통신 네트워크와,
    적어도 하나의 멀티미디어 서버와,
    적어도 하나의 통신 장치를 포함하며, 상기 멀티미디어 서버는,
    멀티미디어 데이터 블록을 수신하고 인터리빙된 데이터 블록을 송신하기 위한 수단―상기 멀티미디어 데이터 블록은 복수 개의 데이터 파트들을 포함함―과,
    상기 복수 개의 데이터 파트들을 인터리빙하여 우선 순위에 적어도 일부 기반한 인터리빙된 데이터 블록을 형성하기 위한 수단―상기 우선 순위는 상기 복수 개의 데이터 파트들과 관련된 타입 정보에 기반함―과,
    상기 통신 네트워크를 통하여 상기 적어도 하나의 통신 장치로 상기 인터리빙된 데이터 블록을 송신하기 위한 수단을 포함하되,
    상기 통신 장치는,
    인터리빙된 멀티미디어 데이터 블록의 하나 또는 그 이상의 데이터 파트를 수신하기 위한 수단과,
    상기 하나 또는 그 이상의 데이터 파트와 관련된 시간 정보 및 상기 하나 또는 그 이상의 데이터 파트의 데이터 타입 정보에 기반하여 상기 하나 또는 그 이상의 데이터 파트 중 제1 데이터 파트를 결정하기 위한 수단과,
    상기 하나 또는 그 이상의 데이터 파트와 관련된 시간 정보 및 후속 데이터 블록의 최선(最先) 데이터 파트의 플레이-아웃 시간 정보에 기반하여 스케줄 내에서 상기 제1 데이터 파트에 대한 스케줄 엔트리를 결정하기 위한 수단을 포함하는 것을 특징으로 하는
    데이터 블록 인터리빙 시스템.
  34. 삭제
  35. 삭제
KR1020117012048A 2008-10-30 2009-10-26 데이터 블록을 인터리빙하기 위한 방법 및 장치 KR101374452B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10991708P 2008-10-30 2008-10-30
US61/109,917 2008-10-30
PCT/FI2009/050857 WO2010049585A1 (en) 2008-10-30 2009-10-26 Method and apparatus for interleaving a data block

Publications (2)

Publication Number Publication Date
KR20110089309A KR20110089309A (ko) 2011-08-05
KR101374452B1 true KR101374452B1 (ko) 2014-03-17

Family

ID=42128306

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117012048A KR101374452B1 (ko) 2008-10-30 2009-10-26 데이터 블록을 인터리빙하기 위한 방법 및 장치

Country Status (10)

Country Link
US (1) US8966104B2 (ko)
EP (1) EP2351325B1 (ko)
KR (1) KR101374452B1 (ko)
CN (1) CN102257785A (ko)
AU (1) AU2009309551A1 (ko)
BR (1) BRPI0921720A2 (ko)
CA (1) CA2742416A1 (ko)
RU (1) RU2011120258A (ko)
TW (1) TWI549436B (ko)
WO (1) WO2010049585A1 (ko)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2477109B1 (en) 2006-04-12 2016-07-13 Soft Machines, Inc. Apparatus and method for processing an instruction matrix specifying parallel and dependent operations
EP2523101B1 (en) 2006-11-14 2014-06-04 Soft Machines, Inc. Apparatus and method for processing complex instruction formats in a multi- threaded architecture supporting various context switch modes and virtualization schemes
EP2204965B1 (en) * 2008-12-31 2016-07-27 Google Technology Holdings LLC Device and method for receiving scalable content from multiple sources having different content quality
JP5058209B2 (ja) * 2009-05-22 2012-10-24 株式会社日立製作所 ストリームデータ処理において逆再生を行うデータ処理システム
US9015564B2 (en) * 2009-08-19 2015-04-21 Qualcomm Incorporated Content delivery system with allocation of source data and repair data among HTTP servers
JP6067378B2 (ja) 2010-01-28 2017-01-25 トムソン ライセンシングThomson Licensing 再送決定する方法及び装置
US20130003579A1 (en) * 2010-01-28 2013-01-03 Thomson Licensing Llc Method and apparatus for parsing a network abstraction-layer for reliable data communication
KR20120034550A (ko) * 2010-07-20 2012-04-12 한국전자통신연구원 스트리밍 컨텐츠 제공 장치 및 방법
US9467493B2 (en) 2010-09-06 2016-10-11 Electronics And Telecommunication Research Institute Apparatus and method for providing streaming content
KR101685247B1 (ko) 2010-09-17 2016-12-09 소프트 머신즈, 인크. 조기 원거리 분기 예측을 위한 섀도우 캐시를 포함하는 단일 사이클 다중 분기 예측
TWI533129B (zh) 2011-03-25 2016-05-11 軟體機器公司 使用可分割引擎實體化的虛擬核心執行指令序列程式碼區塊
US9274793B2 (en) 2011-03-25 2016-03-01 Soft Machines, Inc. Memory fragments for supporting code block execution by using virtual cores instantiated by partitionable engines
KR101620676B1 (ko) 2011-03-25 2016-05-23 소프트 머신즈, 인크. 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 코드 블록의 실행을 지원하는 레지스터 파일 세그먼트
EP2710481B1 (en) 2011-05-20 2021-02-17 Intel Corporation Decentralized allocation of resources and interconnect structures to support the execution of instruction sequences by a plurality of engines
KR101639854B1 (ko) 2011-05-20 2016-07-14 소프트 머신즈, 인크. 복수의 엔진에 의해 명령어 시퀀스들의 실행을 지원하기 위한 상호접속 구조
CN104067594A (zh) * 2011-11-01 2014-09-24 高通股份有限公司 在http服务器之间分配源数据和修复数据的内容传送系统
EP2783281B1 (en) 2011-11-22 2020-05-13 Intel Corporation A microprocessor accelerated code optimizer
KR101842550B1 (ko) 2011-11-22 2018-03-28 소프트 머신즈, 인크. 다중 엔진 마이크로프로세서용 가속 코드 최적화기
CN103200158A (zh) * 2012-01-06 2013-07-10 宏碁股份有限公司 播放多媒体串流的方法及系统
US9438883B2 (en) * 2012-04-09 2016-09-06 Intel Corporation Quality of experience reporting for combined unicast-multicast/broadcast streaming of media content
US20140126454A1 (en) * 2012-11-05 2014-05-08 Qualcomm Incorporated Embms support in heterogeneous network
GB2509323B (en) 2012-12-28 2015-01-07 Glide Talk Ltd Reduced latency server-mediated audio-video communication
JP6263843B2 (ja) 2013-02-28 2018-01-24 株式会社リコー 通信管理システム、通信管理方法、及びプログラム
US10275255B2 (en) 2013-03-15 2019-04-30 Intel Corporation Method for dependency broadcasting through a source organized source view data structure
US9632825B2 (en) 2013-03-15 2017-04-25 Intel Corporation Method and apparatus for efficient scheduling for asymmetrical execution units
US10140138B2 (en) 2013-03-15 2018-11-27 Intel Corporation Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation
KR102083390B1 (ko) 2013-03-15 2020-03-02 인텔 코포레이션 네이티브 분산된 플래그 아키텍처를 이용하여 게스트 중앙 플래그 아키텍처를 에뮬레이션하는 방법
WO2014150971A1 (en) * 2013-03-15 2014-09-25 Soft Machines, Inc. A method for dependency broadcasting through a block organized source view data structure
US9811342B2 (en) 2013-03-15 2017-11-07 Intel Corporation Method for performing dual dispatch of blocks and half blocks
US9569216B2 (en) 2013-03-15 2017-02-14 Soft Machines, Inc. Method for populating a source view data structure by using register template snapshots
WO2014150806A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for populating register view data structure by using register template snapshots
US9904625B2 (en) 2013-03-15 2018-02-27 Intel Corporation Methods, systems and apparatus for predicting the way of a set associative cache
US9886279B2 (en) 2013-03-15 2018-02-06 Intel Corporation Method for populating and instruction view data structure by using register template snapshots
EP2972845B1 (en) 2013-03-15 2021-07-07 Intel Corporation A method for executing multithreaded instructions grouped onto blocks
US9891924B2 (en) 2013-03-15 2018-02-13 Intel Corporation Method for implementing a reduced size register view data structure in a microprocessor
WO2014150991A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for implementing a reduced size register view data structure in a microprocessor
JP2014187510A (ja) * 2013-03-22 2014-10-02 Fujitsu Ltd ストリーミング配信システム、ストリーミング配信方法、ストリーミング配信プログラムおよびストリーミング配信サーバ
US9436842B2 (en) * 2013-08-16 2016-09-06 Vinay Purohit Distributed fragments file system
US9369724B2 (en) * 2014-03-31 2016-06-14 Microsoft Technology Licensing, Llc Decoding and synthesizing frames for incomplete video data
CN106330713B (zh) * 2015-06-29 2020-04-14 华为技术有限公司 一种报文传输方法及装置
CN106780349B (zh) * 2016-11-21 2020-02-14 深圳开立生物医疗科技股份有限公司 基于fpga的空间复合成像方法以及装置
EP3794880A1 (en) * 2018-06-20 2021-03-24 Sony Corporation Infrastructure equipment, communications device and methods
CN112822514B (zh) * 2020-12-30 2022-06-28 北京大学 基于依赖关系的视频流分组传输方法、系统、终端及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6445679B1 (en) 1998-05-29 2002-09-03 Digital Vision Laboratories Corporation Stream communication system and stream transfer control method
US20030021298A1 (en) 2001-07-30 2003-01-30 Tomokazu Murakami Data multiplexing method, data recorded medium, data recording apparatus and data recording program
WO2003047261A1 (en) 2001-11-30 2003-06-05 Matsushita Electric Industrial Co., Ltd. A method and an apparatus for stream conversion, a method and an apparatus for data recording, and data recording medium
US20030182610A1 (en) 2002-03-19 2003-09-25 Dennis Bushmitch Error resilient coding, storage, and transmission of digital multimedia data

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001160066A (ja) * 1998-12-25 2001-06-12 Matsushita Electric Ind Co Ltd データ処理装置、データ処理方法および記録媒体、並びに該データ処理方法をコンピュータに実行させるためのプログラム
US7031306B2 (en) * 2000-04-07 2006-04-18 Artel Video Systems, Inc. Transmitting MPEG data packets received from a non-constant delay network
US7340527B2 (en) * 2002-05-09 2008-03-04 Matsushita Electric Industrial Co., Ltd. Content distribution system that distributes line of stream data generated by splicing plurality of pieces of stream data
WO2006031925A2 (en) * 2004-09-15 2006-03-23 Nokia Corporation Providing zapping streams to broadcast receivers
US7751324B2 (en) * 2004-11-19 2010-07-06 Nokia Corporation Packet stream arrangement in multimedia transmission
JP2008546238A (ja) * 2005-05-19 2008-12-18 ノキア コーポレイション Dvb−h送信システムにおいてプライオリティ表示されたデータグラムに不等のエラー保護を与えるシステム及び方法
US20090077609A1 (en) * 2006-01-17 2009-03-19 Guillaume Bichot Gateway For Receiving Digital Television Broadcast Services, Terminal and Corresponding Methods

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6445679B1 (en) 1998-05-29 2002-09-03 Digital Vision Laboratories Corporation Stream communication system and stream transfer control method
US20030021298A1 (en) 2001-07-30 2003-01-30 Tomokazu Murakami Data multiplexing method, data recorded medium, data recording apparatus and data recording program
WO2003047261A1 (en) 2001-11-30 2003-06-05 Matsushita Electric Industrial Co., Ltd. A method and an apparatus for stream conversion, a method and an apparatus for data recording, and data recording medium
US20030182610A1 (en) 2002-03-19 2003-09-25 Dennis Bushmitch Error resilient coding, storage, and transmission of digital multimedia data

Also Published As

Publication number Publication date
KR20110089309A (ko) 2011-08-05
EP2351325A4 (en) 2013-01-02
CA2742416A1 (en) 2010-05-06
EP2351325A1 (en) 2011-08-03
US8966104B2 (en) 2015-02-24
WO2010049585A1 (en) 2010-05-06
BRPI0921720A2 (pt) 2016-01-05
EP2351325B1 (en) 2018-09-26
RU2011120258A (ru) 2012-12-10
TWI549436B (zh) 2016-09-11
TW201023531A (en) 2010-06-16
AU2009309551A1 (en) 2010-05-06
US20100217887A1 (en) 2010-08-26
CN102257785A (zh) 2011-11-23

Similar Documents

Publication Publication Date Title
KR101374452B1 (ko) 데이터 블록을 인터리빙하기 위한 방법 및 장치
RU2718170C2 (ru) Определение местоположений событий доставки мультимедиа для транспортировки мультимедиа
CN107810624B (zh) 用于检索媒体数据的方法、设备和计算机可读存储介质
CN107743703B (zh) 用于媒体数据传输的方法、设备及计算机可读存储介质
JP5930429B2 (ja) ファイル配信方式を使用したipブロードキャストストリーミングサービスの配信
JP5788101B2 (ja) メディアデータのネットワークストリーミング
CN111837403B (zh) 处理用于以流传送媒体数据的交互性事件
KR101029854B1 (ko) 스케일러블 비디오 코딩에서 픽쳐들의 역방향-호환 집합
CN108141455B (zh) 用于媒体数据的流式发射的期限信令
JP5937275B2 (ja) ネットワークストリーミングのための失われたメディアデータの置換
US20160337424A1 (en) Transferring media data using a websocket subprotocol
US9661378B2 (en) Using scalable codecs for providing channel zapping information to broadcast receivers
EP3861760A1 (en) Service description for streaming media data
CN1893364A (zh) 广播多媒体流中的关键信息同步
WO2011075876A1 (en) Picture in picture for mobile tv
US20060005101A1 (en) System and method for providing error recovery for streaming fgs encoded video over an ip network
WO2017196980A1 (en) Real-time control interface for broadcast object streaming
WO2010017836A1 (en) Subdivision of media streams for channel switching
KR101656193B1 (ko) 이기종 망에서의 uhd 비디오 전송을 위한 mmt 기반 방송 시스템 및 방법
US20100166082A1 (en) Method for packing bitstream of scalable video coding

Legal Events

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

Payment date: 20170220

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180219

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20200218

Year of fee payment: 7