KR102316873B1 - 비디오 전송 방법, 장치, 및 시스템과 컴퓨터 판독가능 저장 매체 - Google Patents

비디오 전송 방법, 장치, 및 시스템과 컴퓨터 판독가능 저장 매체 Download PDF

Info

Publication number
KR102316873B1
KR102316873B1 KR1020207018508A KR20207018508A KR102316873B1 KR 102316873 B1 KR102316873 B1 KR 102316873B1 KR 1020207018508 A KR1020207018508 A KR 1020207018508A KR 20207018508 A KR20207018508 A KR 20207018508A KR 102316873 B1 KR102316873 B1 KR 102316873B1
Authority
KR
South Korea
Prior art keywords
video
data
reference data
segment
decoding
Prior art date
Application number
KR1020207018508A
Other languages
English (en)
Other versions
KR20200093614A (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 KR20200093614A publication Critical patent/KR20200093614A/ko
Application granted granted Critical
Publication of KR102316873B1 publication Critical patent/KR102316873B1/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/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/2365Multiplexing of several video streams
    • H04N21/23655Statistical multiplexing, e.g. by controlling the encoder to alter its bitrate to optimize the bandwidth utilization
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • 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
    • H04L29/08
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • 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/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • 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/21Server components or server architectures
    • H04N21/222Secondary servers, e.g. proxy server, cable television Head-end
    • 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/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
    • 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/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/437Interfacing the upstream path of the transmission network, e.g. for transmitting client requests to a VOD server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • 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/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • 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/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64746Control signals issued by the network directed to the server or the client
    • H04N21/64761Control signals issued by the network directed to the server or the client directed to the server
    • H04N21/64776Control signals issued by the network directed to the server or the client directed to the server for requesting retransmission, e.g. of data packets lost or corrupted during transmission from server

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

본 출원은 비디오 전송 방법, 장치, 및 시스템과 컴퓨터 판독가능 저장 매체를 개시하며, 비디오 전송 분야에 속한다. 비디오 전송 방법은, 타깃 비디오 데이터 세그먼트를 획득하는 단계; t개의 참조 데이터 세트를 획득하는 단계; t개의 참조 데이터 세트와 일대일 대응관계에 있는 인코딩된 t개의 데이터 블록을 얻기 위해, 각각의 참조 데이터 세트를 이용하여 타깃 비디오 데이터 세그먼트를 인코딩하는 단계 - 인코딩된 t개의 데이터 블록 중 임의의 k개의 인코딩된 데이터 블록 및 t개의 참조 데이터 세트에 있는 k개의 참조 데이터 세트로서 임의의 k개의 인코딩된 데이터 블록과 일대일 대응관계에 있는 k개의 참조 데이터 세트가 방정식 세트 행렬을 구성할 수 있고, 방정식 세트 행렬의 해 행렬의 데이터가 타깃 비디오 데이터 세그먼트의 데이터임 -; 및 n개의 프론트 엔드 서버를 이용하여 t개의 제1 참조 데이터 그룹을 비디오 디코딩 장치에 송신하는 단계 - 각각의 제1 참조 데이터 그룹은 인코딩된 하나의 데이터 블록 및 대응하는 참조 데이터 세트를 포함하고 있음 -을 포함한다. 본 출원에서, 라이브 비디오에서 정지 및 지연이 발생할 가능성이 줄어들 수 있다.

Description

비디오 전송 방법, 장치, 및 시스템과 컴퓨터 판독가능 저장 매체
본 출원은 중국 특허청에 2017년 11월 30일에 출원된 중국 특허출원 번호 CN201711244047.2("VIDEO TRANSMISSION METHOD, APPARATUS, AND SYSTEM, AND COMPUTER READABLE STORAGE MEDIUM")에 대해 우선권을 주장하는 바이며, 그 전체 내용이 원용에 의해 본 명세서에 포함된다.
본 출원은 비디오 전송 분야에 관한 것으로, 상세하게는 비디오 전송 방법, 장치, 및 시스템과 컴퓨터 판독가능 저장 매체에 관한 것이다.
현재, 네트워크 라이브 방송이 사람들의 일상 생활에서 점점 일반화되고 있다. 네트워크 라이브 방송은 라이브 방송 네트워크를 이용하여 수행되는 라이브 비디오 방송을 의미한다. 네트워크 라이브 방송 과정에서, 앵커 단말기가 라이브 비디오를 촬영하고, 라이브 비디오를 대응하는 서버에 송신하며, 시청자 단말기가 속하는 사용자가 라이브 비디오를 시청할 수 있도록, 서버는 라이브 비디오를 시청자 단말기에 송신한다. 네트워크 라이브 방송 중에, 라이브 비디오의 상향링크와 하향링크가 모두 실시간이고, 라이브 방송 네트워크는 라이브 비디오를 미리 캐싱할 수 없다. 또한, 사용자는 라이브 비디오의 지연 정도와 정지 정도(freezing degree)에 대한 요구사항이 상재적으로 높다. 그러므로, 라이브 비디오의 낮은 지연 및 낮은 정지를 보장하기 위해 라이브 비디오의 상향링크 레이트와 하향링크 레이트를 보장하는 방법이 네트워크 라이브 방송의 중요한 부분이 되고 있다.
관련 기술에서, 라이브 방송 네트워크는 콘텐츠 전송 네트워크(Content Delivery Network, CDN)를 포함할 수 있다. 라이브 비디오의 상향링크 과정에서, 앵커 단말기가 라이브 비디오를 CDN 네트워크 내의 프론트 엔드 서버에 송신할 수 있고, 프론트 엔드 서버는 라이브 비디오를 CDN 네트워크 내의 백그라운드 스토리지 서버(background storage server)에 포워딩할 수 있다. 하향링크 라이브 방송 과정에서, 시청자 단말기가 CDN 네트워크 내의 다른 프론트 엔드 서버로부터 라이브 비디오를 요청할 수 있고, 이 요청을 수신하는 프론트 엔드 서버는 백그라운드 스토리지 서버로부터 라이브 비디오를 획득하고 시청자 단말기에 라이브 비디오를 송신할 수 있다. 데이터가 더 빠르고 더 안정적으로 전송될 수 있도록, CDN 네트워크는 데이터 전송 속도와 안정성에 영향을 줄 수 있는 인터넷 상의 병목 현상과 프로세스를 최대한 방지할 수 있다. 따라서, 관련 기술은 라이브 비디오의 상향링크 레이트와 하향링크 레이트를 어느 정도까지 보장할 수 있다.
본 출원을 구현하는 과정에서, 본 발명자는 종래 기술에 적어도 다음과 같은 문제점이 있음을 발견하였다.
라이브 비디오의 상향링크 과정에서, 패킷 손실이 발생하면, 앵커 단말기가 비디오 데이터를 재전송할 필요가 있고, 이로 인해 라이브 비디오의 정지 및 지연이 발생하기 쉽다.
본 출원은 비디오 전송 방법, 장치, 및 시스템과 컴퓨터 판독 가능 저장 매체를 제공한다. 본 출원에서 제공하는 기술적 해결책은 라이브 비디오에서 정지 및 지연이 발생할 가능성을 감소시킬 수 있다. 본 출원에서 제공되는 기술적 해결책은 다음과 같다.
제1 양태에 따르면, 비디오 전송 방법이 제공되며, 라이브 방송 네트워크에서 비디오 코딩 장치에 사용된다. 여기서, 상기 라이브 방송 네트워크는 상기 비디오 코딩 장치, 비디오 디코딩 장치, 및 복수의 프론트 엔드 서버를 포함하고, 상기 비디오 전송 방법은,
타깃 비디오 데이터 세그먼트를 획득하는 단계 - 상기 타깃 비디오 데이터 세그먼트는 전송될 라이브 비디오의 비디오 데이터 스트림 내의 데이터의 세그먼트이고, 상기 타깃 비디오 데이터 세그먼트는 k개의 데이터 블록을 포함하며, k는 1보다 크거나 같은 양의 정수임 -;
t개의 참조 데이터 세트를 획득하는 단계 - 각각의 참조 데이터 세트는 적어도 하나의 참조 데이터를 포함하고, t는 k보다 큰 양의 정수임 -;
상기 t개의 참조 데이터 세트와 일대일 대응관계에 있는 인코딩된 t개의 데이터 블록을 얻기 위해, 각각의 참조 데이터 세트를 이용하여 상기 타깃 비디오 데이터 세그먼트를 인코딩하는 단계 - 상기 t개의 참조 데이터 세트 중 임의의 k개의 참조 데이터 세트 및 상기 임의의 k개의 참조 데이터 세트와 일대일 대응관계에 있는 k개의 인코딩된 데이터 블록은 방정식 세트 행렬을 구성할 수 있고, 상기 방정식 세트 행렬의 해 행렬의 데이터가 상기 타깃 비디오 데이터 세그먼트의 데이터임 -; 및
n개의 프론트 엔드 서버를 이용하여 t개의 제1 참조 데이터 그룹을 상기 비디오 디코딩 장치에 송신하는 단계 - N은 1보다 크거나 같은 양의 정수임 -를 포함하고,
각각의 제1 참조 데이터 그룹은 인코딩된 하나의 데이터 블록 및 대응하는 참조 데이터 세트를 포함한다.
본 출원에서, 상기 비디오 코딩 장치는, 상기 t개의 참조 데이터 세트와 일대일 대응관계에 있는 상기 인코딩된 t개의 데이터 블록을 얻기 위해, 상기 t개의 참조 데이터 세트를 이용하여, 상기 k개의 데이터 블록을 포함하는 상기 타깃 비디오 데이터 세그먼트를 개별적으로 인코딩한다. 여기서, 상기 t개의 참조 데이터 세트 중 임의의 k개의 참조 데이터 세트 및 상기 임의의 k개의 참조 데이터 세트와 일대일 대응관계에 있는 k개의 인코딩된 데이터 블록은 방정식 세트 행렬을 구성할 수 있고, 상기 방정식 세트 행렬의 해 행렬의 데이터가 상기 타깃 비디오 데이터 세그먼트의 데이터이다. 그런 다음, 상기 비디오 코딩 장치는 상기 n개의 프론트 엔드 서버를 이용하여 상기 t개의 제1 참조 데이터 그룹을 상기 비디오 디코딩 장치에 송신할 수 있다. 여기서, 각각의 제1 참조 데이터 그룹은 인코딩된 하나의 데이터 블록 및 상기 인코딩된 데이터 블록에 대응하는 인코딩된 데이터 세트를 포함하고, 다르게 말하면, 각각의 제1 참조 데이터 그룹은 상기 방정식 세트 행렬에 대응하는 방정식 세트 내의 하나의 방정식이다. 이와 같이, 상기 t개의 제1 참조 데이터 그룹 중 임의의 k개의 제1 참조 데이터 그룹을 수신한 후에, 다르게 말하면, 임의의 k개의 방정식을 수신한 후에, 상기 비디오 디코딩 장치는 방정식 세트 행렬을 구성하고, 디코딩을 통해 상기 타깃 비디오 데이터 세그먼트를 얻기 위해 상기 방정식 세트 행렬의 해 행렬을 풀 수 있다. 이와 같이, 패킷 손실이 발생하더라도, 비디오 코딩 장치는 여전히 t개의 제1 참조 데이터 그룹 중 k개의 참조 데이터 그룹을 수신할 가능성이 상대적으로 크다. 따라서, 패킷 손실이 발생할 때 비디오 코딩 장치가 데이터를 재전송할 필요가 있는 확률이 줄어들 수 있고, 따라서 라이브 비디오의 정지 및 라이브 비디오의 지연을 어느 정도까지 방지할 수 있다. 또한, N이 1보다 크면, 상기 비디오 코딩 장치는 복수의 경로를 이용하여, 다르게 말하면, 복수의 프론트 엔드 서버를 이용하여 상기 라이브 비디오의 상향링크 과정에서 비디오 데이터를 송신할 수 있다. 이렇게 하면, 라이브 방송 네트워크의 상향링크 대역폭의 활용이 개선되고 또한 라이브 비디오의 정지 및 지연을 어느 정도까지 방지할 수 있다.
본 출원의 일 실시예에서, 각각의 참조 데이터 세트는 상기 k개의 데이터 블록과 일대일 대응관계에 있는 k개의 참조 데이터를 포함하고, 상기 t개의 참조 데이터 세트와 일대일 대응관계에 있는 인코딩된 t개의 데이터 블록을 얻기 위해, 각각의 참조 데이터 세트를 이용하여 상기 타깃 비디오 데이터 세그먼트를 인코딩하는 단계는,
각각의 참조 데이터 세트에 대해, 대응하는 데이터 블록을 상기 참조 데이터 세트에 포함된 각각의 참조 데이터에 곱하여 k개의 곱을 획득하는 단계; 및
상기 참조 데이터 세트에 대응하는 인코딩된 데이터 블록을 얻기 위해 상기 k개의 곱을 더하는 단계를 포함한다.
본 출원의 일 실시예에서, 상기 타깃 비디오 데이터 세그먼트를 획득하는 단계는,
상기 전송될 라이브 비디오의 비디오 데이터 스트림을 획득하는 단계;
상기 비디오 데이터 스트림으로부터 데이터 블록을 획득하는 단계; 및
사전 설정된 제1 지속시간 내에, 획득된 데이터 블록의 개수가 k보다 작지 않으면, 상기 획득된 k개의 데이터 블록을 이용하여 상기 타깃 비디오 데이터 세그먼트를 형성하는 단계; 또는
상기 획득된 데이터 블록의 개수가 상기 사전 설정된 제1 지속시간의 끝에서 k보다 작으면, 사전 설정된 데이터를 이용하여 상기 획득된 데이터 블록을 패딩하여 k개의 데이터 블록을 획득하고, 패딩을 통해 획득된 상기 k개의 데이터 블록을 이용하여 상기 타깃 비디오 데이터 세그먼트를 형성하는 단계를 포함한다.
경우에 따라, 네트워크 통신 품질 문제로 인해, 상기 비디오 코딩 장치는 비교적 낮은 속도로 상기 비디오 데이터 스트림을 획득할 수 있다. 이 경우, 상기 비디오 코딩 장치는 상기 비디오 데이터 스트림으로부터 상기 k개의 데이터 블록을 빠르게 획득할 수 없으며, 상기 비디오 코딩 장치의 인코딩 속도가 상대적으로 느려질 수 있다. 상기 비디오 코딩 장치의 인코딩 속도를 보장하기 위해, 본 출원에서, 상기 비디오 코딩 장치가 사전 설정된 제1 지속 시간 내에 상기 k개의 데이터 블록을 획득하지 못하면, 상기 비디오 코딩 장치는 획득된 데이터 블록을 사전 설정된 데이터를 이용하여 패딩하여 k개의 데이터 블록을 획득하고, 그런 다음 패딩을 통해 획득된 상기 k개의 데이터 블록을 인코딩하여 인코딩 속도를 향상시킨다.
본 출원의 일 실시예에서, 상기 타깃 비디오 데이터 세그먼트는 상기 비디오 코딩 장치가 상기 비디오 데이터 스트림으로부터 획득하는 (p+1)번째 비디오 데이터 세그먼트이고, p는 1보다 크거나 같은 양의 정수이며, 상기 t개의 참조 데이터 세트를 획득하는 단계 이전에, 상기 비디오 전송 방법이,
상기 비디오 디코딩 장치에 의해 송신된 p개의 이력 디코딩 차이값(p historical decoding difference)을 수신하는 단계 - 상기 p개의 이력 디코딩 차이값은 상기 비디오 데이터 스트림 내의 상기 타깃 비디오 데이터 세그먼트에 선행하는 p개의 비디오 데이터 세그먼트와 일대일 대응관계에 있고, 각각의 이력 디코딩 차이값은, 디코딩을 통해 대응하는 비디오 데이터 세그먼트를 성공적으로 획득하기 전에, 상기 사전 설정된 제2 지속시간의 끝에서 상기 비디오 디코딩 장치에 필요한 참조 데이터 그룹의 개수를 반영하는 데 사용됨 -; 및
상기 p개의 이력 디코딩 차이값에 기초하여, 획득될 필요가 있는 참조 데이터 세트의 개수(t)의 값을 결정하는 단계를 더 포함한다.
선택적으로, 상기 p개의 이력 디코딩 차이값 중 i번째 이력 디코딩 차이값(
Figure 112020065897225-pct00001
)은,
상기 비디오 디코딩 장치가, 디코딩을 통해 상기 사전 설정된 제2 지속시간 내에, 상기 비디오 데이터 스트림 내의 i번째 비디오 데이터 세그먼트로서 상기 i번째 이력 디코딩 차이값에 대응하는 i번째 비디오 데이터 세그먼트를 성공적으로 획득하면,
Figure 112020065897225-pct00002
=0이라는 것; 및
상기 비디오 디코딩 장치가 상기 사전 설정된 제2 지속시간의 끝에서 디코딩을 통해 상기 i번째 비디오 데이터 세그먼트를 획득하지 못하면,
Figure 112020065897225-pct00003
=y-x이라는 것을 만족하고,
y는 상기 비디오 디코딩 장치가 디코딩을 통해 상기 i번째 비디오 데이터 세그먼트를 성공적으로 획득하는 데 필요한 참조 데이터 그룹의 개수이고, x는 상기 사전 설정된 제2 지속시간의 끝에서 상기 비디오 디코딩 장치에 의해 획득되는 상기 i번째 비디오 데이터 세그먼트에 대응하는 참조 데이터 그룹의 개수이며,
Figure 112020065897225-pct00004
이다.
선택적으로, 상기 p개의 이력 디코딩 차이값에 기초하여, 획득될 필요가 있는 참조 데이터 세트의 개수(t)의 값을 결정하는 단계는,
상기 p개의 이력 디코딩 차이값과 제1 공식에 기초하여, 상기 획득될 필요가 있는 참조 데이터 세트의 개수(t)의 값을 계산하는 단계를 포함하고, 상기 제1 공식은,
Figure 112020065897225-pct00005
이며;
여기서,
Figure 112020065897225-pct00006
이고,
Figure 112020065897225-pct00007
이며, g는 가중치 파라미터이고,
Figure 112020065897225-pct00008
는 상기 p개의 이력 디코딩 차이값 중 상기 i번째 이력 디코딩 차이값이며,
Figure 112020065897225-pct00009
는 상기 비디오 데이터 스트림 내의 p번째 비디오 데이터 세그먼트를 인코딩하기 전에 상기 비디오 코딩 장치에 의해 획득되는 참조 데이터 세트의 개수이다.
본 출원의 일 실시예에서, 상기 타깃 비디오 데이터 세그먼트는 상기 비디오 코딩 장치가 상기 비디오 데이터 스트림으로부터 획득하는 상기 제1 비디오 데이터 세그먼트이고, 상기 t개의 참조 데이터 세트를 획득하는 단계 이전에, 상기 비디오 전송 방법이,
상기 라이브 방송 네트워크의 평균 패킷 손실율에 기초하여, 획득될 필요가 있는 참조 데이터 세트의 개수(t)의 값을 결정하는 단계를 더 포함한다.
선택적으로, 상기 라이브 방송 네트워크의 평균 패킷 손실율에 기초하여, 획득될 필요가 있는 참조 데이터 세트의 개수(t)의 값을 결정하는 단계는,
상기 라이브 방송 네트워크의 평균 패킷 손실율과 제2 공식에 기초하여, 상기 획득될 필요가 있는 참조 데이터 세트의 개수(t)의 값을 계산하는 단계를 포함하고, 상기 제2 공식은,
Figure 112020065897225-pct00010
이고;
여기서,
Figure 112020065897225-pct00011
는 상기 라이브 방송 네트워크의 평균 패킷 손실율이고,
Figure 112020065897225-pct00012
는 잘라버림 연산자(rounding down operator)이다.
상기 t개의 참조 데이터 세트를 획득하기 전에, 상기 비디오 코딩 장치가 t에 대한 적절한 값을 설정하는 것이 보장될 수 있도록, 상기 비디오 코딩 장치는 상기 제1 공식 또는 상기 제2 공식에 기초하여 t의 값을 결정함으로써, 상기 라이브 방송 네트워크의 네트워크 자원의 낭비를 피하고 또한 상기 비디오 디코딩 장치가 디코딩을 통해 상기 타깃 비디오 데이터 세그먼트를 성공적으로 획득할 수 없는 경우를 방지한다.
본 출원의 일 실시예에서, 상기 n개의 프론트 엔드 서버를 이용하여 t개의 제1 참조 데이터 그룹을 상기 비디오 디코딩 장치에 송신하는 단계 이후에, 상기 비디오 전송 방법이,
상기 비디오 디코딩 장치에 의해 송신된 현재의 디코딩 차이값을 수신하는 단계 - 상기 현재의 디코딩 차이값은 상기 타깃 비디오 데이터 세그먼트에 대응하고, 상기 현재의 디코딩 차이값은, 디코딩을 통해 상기 타깃 비디오 데이터 세그먼트를 성공적으로 획득하기 전에, 상기 사전 설정된 제2 지속시간의 끝에서 상기 비디오 디코딩 장치에 필요한 제1 참조 데이터 그룹의 개수를 반영하는 데 사용됨 -;
상기 현재의 디코딩 차이값이 사전 설정된 차이 임계값보다 크면, m개의 참조 데이터 세트를 획득하고, 상기 m개의 참조 데이터 세트 각각을 이용하여 상기 타깃 비디오 데이터 세그먼트를 인코딩하여, 상기 m개의 참조 데이터 세트와 일대일 대응관계에 있는 인코딩된 m개의 데이터 블록을 획득하는 단계 - m은 k보다 크거나 같은 양의 정수임 -; 및
q개의 프론트 엔드 서버를 이용하여 m개의 제1 참조 데이터 그룹을 상기 비디오 디코딩 장치에 송신하는 단계 - q는 1보다 크거나 같은 양의 정수임 -를 더 포함한다.
상기 비디오 디코딩 장치가 디코딩을 통해 상기 타깃 비디오 데이터 세그먼트를 획득하지 못하면, 상기 비디오 코딩 장치는 상기 제1 참조 데이터 그룹을 추가로 재전송함으로써, 상기 비디오 디코딩 장치가 디코딩을 통해 상기 타깃 비디오 데이터 세그먼트를 성공적으로 획득할 수 있도록 보장할 수 있다.
본 출원의 일 실시예에서, 상기 n개의 프론트 엔드 서버를 이용하여 t개의 제1 참조 데이터 그룹을 상기 비디오 디코딩 장치에 송신하는 단계 이전에, 상기 비디오 전송 방법이,
상기 비디오 코딩 장치로의 통신 연결을 구축한 r개의 프론트 엔드 서버를 결정하는 단계 - r은 n보다 크거나 같은 양의 정수임 -; 및
비디오 코딩 장치와 상기 r개의 프론트 엔드 서버 각각 사이의 데이터 전송 레이트에 기초하여 상기 r개의 프론트 엔드 서버로부터 상기 n개의 프론트 엔드 서버를 결정하는 단계 - 상기 n개의 프론트 엔드 서버와 상기 비디오 코딩 장치 사이의 통신 품질은 다른 프론트 엔드 서버와 상기 비디오 코딩 장치 사이의 통신 품질보다 우수함 -를 더 포함한다.
선택적으로, 상기 비디오 코딩 장치와 상기 r개의 프론트 엔드 서버 각각 사이의 데이터 전송 레이트에 기초하여 상기 r개의 프론트 엔드 서버로부터 상기 n개의 프론트 엔드 서버를 결정하는 단계는,
상기 비디오 코딩 장치와 상기 r개의 프론트 엔드 서버 각각 사이의 상기 데이터 전송 레이트와 제3 공식에 기초하여, 각각의 프론트 엔드 서버의 유틸리티 값을 계산하는 단계 - 상기 제3 공식은,
Figure 112020065897225-pct00013
이고,
여기서,
Figure 112020065897225-pct00014
는 상기 r개의 프론트 엔드 서버 중 j번째 프론트 엔드 서버의 유틸리티 값이고,
Figure 112020065897225-pct00015
이며,
Figure 112020065897225-pct00016
는 상기 비디오 코딩 장치와 상기 j번째 프론트 엔드 서버 사이의 데이터 전송 레이트이고,
Figure 112020065897225-pct00017
는 상기 비디오 코딩 장치와 상기 j번째 프론트 엔드 서버 사이의 패킷 손실율이며,
Figure 112020065897225-pct00018
는 상기 라이브 방송 네트워크의 평균 패킷 손실율이고, β는 상수임 -;
유틸리티 값의 내림차순으로 상기 r개의 프론트 엔드 서버로부터 상기 n개의 프론트 엔드 서버를 결정하는 단계를 포함한다.
선택적으로, 상기 n개의 프론트 엔드 서버를 이용하여 t개의 제1 참조 데이터 그룹을 상기 비디오 디코딩 장치에 송신하는 단계는,
각각의 프론트 엔드 서버의 유틸리티 값에 기초하여, 상기 프론트 엔드 서버에 대응하는 제1 참조 데이터 그룹의 개수를 결정하는 단계 - 상기 프론트 엔드 서버에 대응하는 상기 제1 참조 데이터 그룹의 개수는 상기 프론트 엔드 서버의 유틸리티 값과 양의 상관관계가 있고, 상기 n개의 프론트 엔드 서버에 대응하는 제1 참조 데이터 그룹의 개수의 합이 t임 -; 및
제1 참조 데이터 그룹의 대응하는 개수를 각각의 프론트 엔드 서버에 송신하는 단계를 포함한다.
선택적으로, 상기 n개의 프론트 엔드 서버를 이용하여 t개의 제1 참조 데이터 그룹을 상기 비디오 디코딩 장치에 송신하는 단계는,
제4 공식에 기초하여, 상기 n개의 프론트 엔드 서버 각각에 대응하는 제1 참조 데이터 그룹의 개수를 결정하는 단계 - 상기 제4 공식은,
Figure 112020065897225-pct00019
이고,
Figure 112020065897225-pct00020
은 상기 n개의 프론트 엔드 서버 중 상기 제1 프론트 엔드 서버에 대응하는 제1 참조 데이터 그룹의 개수이며,
Figure 112020065897225-pct00021
은 상기 제1 프론트 엔드 서버의 유틸리티 값이고,
Figure 112020065897225-pct00022
는 상기 n개의 프론트 엔드 서버의 유틸리티 값의 합이며,
Figure 112020065897225-pct00023
임 -; 및
상기 프론트 엔드 서버가 수신된 제1 참조 데이터 그룹을 상기 비디오 디코딩 장치에 송신할 수 있도록, 상기 제1 참조 데이터 그룹의 대응하는 개수를 각각의 프론트 엔드 서버에 송신하는 단계를 포함한다.
상기 비디오 코딩 장치는 상기 비디오 코딩 장치로의 통신 연결을 구축한 상기 r개의 프론트 엔드 서버로부터 네트워크 통신 품질이 우수한 상기 n 프론트 엔드 서버를 결정하고, 상기 n개의 프론트 엔드 서버를 이용하여 상기 t개의 제1 참조 데이터 그룹을 상기 비디오 디코딩 장치에 송신할 수 있다. 상기 결정된 n개의 프론트 엔드 서버와 상기 비디오 코딩 장치 사이의 상기 네트워크 통신 품질이 상대적으로 양호하기 때문에, 상기 비디오 데이터 스트림의 상향링크 레이트가 보장될 수 있도록, 상기 비디오 코딩 장치는 상기 n개의 프론트 엔드 서버를 이용하여 상대적으로 빠른 레이트로 데이터를 송신한다.
또한, 유틸리티 값이 비교적 큰 프론트 엔드 서버와 상기 비디오 코딩 장치 사이의 네트워크 통신 품질이 비교적 양호하고, 상기 비디오 코딩 장치는 상대적으로 많은 수의 제1 기준 데이터 그룹을 상기 프론트 엔드 서버에 송신할 수 있다. 유틸리티 값이 비교적 작은 프론트 엔드 서버와 상기 비디오 코딩 장치 사이의 네트워크 통신 품질이 비교적 열악하고, 데이터 전송 지연을 줄이기 위해, 상기 비디오 코딩 장치는 상대적으로 적은 수의 제1 참조 데이터 그룹을 프론트 엔드 서버에 송신할 수 있다.
본 출원의 일 실시예에서, 상기 타깃 비디오 데이터 세그먼트를 획득하는 단계 이전에, 상기 비디오 전송 방법이,
상기 데이터 블록의 개수(k)에 대응하는 전송 지연이 사전 설정된 전송 지연 범위에 포함될 수 있도록, 전송 지연과 데이터 블록의 개수 사이의 사전 설정된 대응관계에 기초하여 상기 타깃 비디오 세그먼트 내의 데이터 블록의 개수(k)를 결정하는 단계를 더 포함하고;
상기 전송 지연은 앵커 단말기가 상기 비디오 데이터 세그먼트를 상기 비디오 디코딩 장치에 송신할 때 존재하는 전송 지연이다.
선택적으로, 상기 대응관계는,
Figure 112020065897225-pct00024
이고,
Figure 112020065897225-pct00025
는 상기 전송 지연이고, B는 상기 데이터 블록의 데이터 볼륨 크기이며,
Figure 112020065897225-pct00026
는 상기 전송될 라이브 비디오의 비디오 재생 비트 레이트이고,
Figure 112020065897225-pct00027
은 데이터 볼륨 크기가
Figure 112020065897225-pct00028
Figure 112020065897225-pct00029
개의 데이터 블록을 포함하는 비디오 데이터 세그먼트를 인코딩하거나 또는 디코딩하는 데 필요한 지속시간이며,
Figure 112020065897225-pct00030
는 상수이고,
Figure 112020065897225-pct00031
은 상기 비디오 코딩 장치와 상기 n개의 프론트 엔드 서버 각각 사이의 패킷 손실율의 최소 값이며,
Figure 112020065897225-pct00032
는 상기 라이브 방송 네트워크의 평균 패킷 손실율이고,
Figure 112020065897225-pct00033
은 상기 비디오 코딩 장치와 상기 n개의 프론트 엔드 서버 중 w번째 프론트 엔드 서버 사이의 데이터 전송 레이트이며,
Figure 112020065897225-pct00034
는 상기 비디오 코딩 장치와 상기 n개의 프론트 엔드 서버 중 상기 w번째 프론트 엔드 서버 사이의 패킷 손실율이고,
Figure 112020065897225-pct00035
는 상기 n개의 프론트 엔드 서버 중 v번째 프론트 엔드 서버와 상기 비디오 디코딩 장치 사이의 데이터 패킷의 왕복 지속시간이며,
Figure 112020065897225-pct00036
는 상기 n개의 프론트 엔드 서버 중 상기 v번째 프론트 엔드 서버와 상기 비디오 디코딩 장치 사이의 패킷 손실율이고, RTO는 재전송 타임아웃이며, max는 최대화 연산이고,
Figure 112020065897225-pct00037
는 에러 지연이고,
Figure 112020065897225-pct00038
이다.
상기 비디오 데이터 세그먼트의 상향링크 지연이 사전 설정된 전송 지연 범위에 포함될 수 있도록 k에 대해 적절한 값이 설정됨으로써, 상기 비디오 데이터 세그먼트의 상향링크 속도를 보장하고 또한 중지가 매우 자주 발생하거나 또는 시청자 단말기가 전송될 라이브 비디오를 재생할 때 지연이 매우 긴 현상을 방지한다.
본 출원의 일 실시예에서, 상기 n개의 프론트 엔드 서버를 이용하여 t개의 제1 참조 데이터 그룹을 상기 비디오 디코딩 장치에 송신하는 단계는,
참조 데이터 패킷을 생성하는 단계 - 각각의 참조 데이터 패킷은 적어도 하나의 제1 참조 데이터 그룹을 포함하고, 상기 참조 데이터 패킷의 포맷은 사용자 데이터그램 프로토콜(user datagram protocol, UDP) 기반의 데이터 전송 프로토콜(UDT) 포맷이며, a는 1보다 크거나 같은 양의 정수임 -; 및
상기 n개의 프론트 엔드 서버를 이용하여 상기 a개의 참조 데이터 패킷을 상기 비디오 디코딩 장치에 송신하는 단계를 포함한다.
종래 기술에서, 라이브 방송 네트워크에 사용되는 데이터 전송 프로토콜은 일반적으로 전송 제어 프로토콜(Transmission Control Protocol, TCP)이고, TCP 프로토콜의 혼잡 제어 메커니즘이 AIMD(Additive Increase Multiplicative Decrease)이다. AIMD 메커니즘에서, 링크 상에서 패킷 손실이 발생할 때, 링크의 전송 윈도우가 절반으로 줄어든다. 예를 들어, 송신 장치 A와 수신 장치 B 간에 패킷 손실이 발생할 때, AIMD 메커니즘은 송신 장치 A의 윈도우를 반으로 줄인다. 전송 윈도가 반으로 줄면, 데이터 전송 레이트에 상대적으로 심각하게 영향을 준다. 따라서, 비디오 데이터 스트림이 상기 TCP 프로토콜에 기초하여 라이브 방송 네트워크에서 전송될 때, 패킷 손실이 비디오 데이터 스트림의 전송 레이트에 상대적으로 심각하게 영향을 주어 시청자 단말기가 라이브 비디오를 재생할 때 지연이 매우 길고 또한 정지가 매우 빈번하게 일어나는 현상을 초래한다.
라이브 방송 네트워크에서 패킷 손실이 비디오 데이터 스트림의 전송 레이트에 미치는 영향을 감소시키기 위해, 본 출원의 본 실시예에서, 라이브 방송 네트워크는 UDT 프로토콜에 기초하여 상기 비디오 데이터 스트림을 전송할 수 있다. 구체적으로, 상기 비디오 코딩 장치는 UDT 프로토콜에 기초하여 상기 참조 데이터 패킷을 상기 비디오 디코딩 장치에 송신한다. 상기 UDT 프로토콜의 혼잡 제어 메커니즘이 DAIMD(Decreasing Additive Increase Multiplicative Decrease) 메커니즘이다. DAIMD 메커니즘에서, 링크 상에서 패킷 손실이 발생할 때, 링크의 이용 가능한 대역폭에 기초하여 전송 윈도가 줄어들 수 있고, 전송 윈도우의 감소 진폭이 1/8과 1/2 사이의 임의의 수이다. 따라서, 패킷 손실이 라이브 방송 네트워크에서 상기 비디오 데이터 스트림의 전송 레이트에 미치는 영향이 TCP 프로토콜의 영향에 비해 줄어들 수 있다.
본 출원의 일 실시예에서, 각각의 참조 데이터 패킷은 타깃 비디오 데이터 세그먼트의 식별자 및/또는 상기 전송될 라이브 비디오가 속한 라이브 방송 채널의 식별자를 더 포함한다.
제2 양태에 따르면, 비디오 전송 방법이 제공되며, 라이브 방송 네트워크에서 비디오 디코딩 장치에 사용된다. 여기서, 상기 라이브 방송 네트워크는 비디오 코딩 장치, 상기 비디오 디코딩 장치, 및 복수의 프론트 엔드 서버를 포함하고, 상기 비디오 전송 방법은,
u개의 프론트 엔드 서버에 의해 송신된 제1 참조 데이터 그룹을 수신하는 단계 - 각각의 제1 참조 데이터 그룹은 인코딩된 데이터 블록 및 대응하는 참조 데이터 세트를 포함하고, 각각의 인코딩된 데이터 블록은, 상기 비디오 코딩 장치가 대응하는 참조 데이터 세트를 이용하여 타깃 비디오 데이터 세그먼트를 인코딩하여 획득하는 것이며, 상기 타깃 비디오 데이터 세그먼트는 라이브 비디오의 비디오 데이터 스트림 내의 데이터의 세그먼트이고, 상기 타깃 비디오 데이터 세그먼트는 k개의 데이터 블록을 포함하며, 상기 참조 데이터 세트는 적어도 하나의 참조 데이터를 포함하고, k는 1보다 크거나 같은 양의 정수이며, u는 1보다 크거나 같은 양의 정수임 -;
사전 설정된 제2 지속시간 내에, 수신된 제1 참조 데이터 그룹의 개수가 k에 도달하면, 인코딩된 데이터 블록과 상기 수신된 k개의 제1 참조 데이터 그룹 내의 참조 데이터 세트에 기초하여 방정식 세트 행렬을 구성하는 단계; 및
상기 방정식 세트 행렬의 계산된 해 행렬의 데이터를 상기 타깃 비디오 데이터 세그먼트의 데이터로 결정하는 단계를 포함한다.
본 출원의 일 실시예에서, 상기 u개의 프론트 엔드 서버에 의해 송신된 제1 참조 데이터 그룹을 수신하는 단계는,
상기 u개의 프론트 엔드 서버에 의해 송신된 적어도 하나의 참조 데이터 패킷을 수신하는 단계 - 각각의 참조 데이터 패킷은 적어도 하나의 제1 참조 데이터 그룹을 포함하고, 상기 참조 데이터 패킷의 포맷이 사용자 데이터그램 프로토콜(UDP) 기반의 데이터 전송 프로토콜(UDT) 포맷임 -를 포함한다.
본 출원의 일 실시예에서, 상기 방법은,
상기 사전 설정된 저장 위치에 저장된 제1 참조 데이터 그룹의 개수가 상기 사전 설정된 제2 지속시간의 끝에서 k보다 작으면, 상기 사전 설정된 저장 위치에 저장된 제1 참조 데이터 그룹을 삭제하는 단계를 더 포함한다.
본 출원의 일 실시예에서, 상기 비디오 전송 방법이,
상기 수신된 제1 참조 데이터 그룹의 개수가 상기 사전 설정된 제2 지속시간의 끝에서 k보다 작으면, 상기 수신된 제1 참조 데이터 그룹의 개수와 k 사이의 차이의 절대값을 획득하는 단계; 및
상기 절대값을 현재의 디코딩 차이값으로서 상기 비디오 코딩 장치에 송신하는 단계를 더 포함한다.
상기 비디오 디코딩 장치가 상기 제1 참조 데이터 그룹을 삭제하면, 상기 제1 참조 데이터 그룹이 상기 사전 설정된 저장 위치를 지나치게 긴 시간 동안 점유하기 때문에 다른 비디오 데이터 세그먼트를 인코딩하여 획득되는 참조 데이터 그룹이 사전 설정된 저장 위치로부터 오버플로우되는 경우를 방지할 수 있다. 상기 비디오 디코딩 장치가 상기 제1 참조 데이터 그룹을 삭제하지 않고 상기 현재의 디코딩 차이값을 상기 비디오 코딩 장치에 송신하면, 상기 비디오 코딩 장치가 이후에 상기 비디오 디코딩 장치에 재송신하는 제1 참조 데이터 그룹의 개수가 감소됨으로써, 네트워크 자원이 절감된다.
본 출원의 일 실시예에서, 상기 비디오 전송 방법이,
상기 사전 설정된 제2 지속시간 내에, 상기 수신된 제1 참조 데이터 그룹의 개수가 k에 도달한 후에, 현재의 디코딩 차이값을 상기 비디오 코딩 장치에 송신하는 단계 - 상기 현재의 디코딩 차이값은 0임 -를 더 포함한다.
본 출원의 일 실시예에서, 상기 인코딩된 데이터 블록 및 상기 수신된 k개의 제1 참조 데이터 그룹 내의 참조 데이터 세트에 기초하여 방정식 세트 행렬을 구성하는 단계는,
k개의 인코딩된 데이터 블록 및 상기 k개의 인코딩된 데이터 블록과 일대일 대응관계에 있는 k개의 참조 데이터 세트를 얻기 위해, 상기 수신된 k개의 제1 참조 데이터 그룹을 파싱하는 단계;
상기 k개의 인코딩된 데이터 블록을 이용하여 상기 방정식 세트 행렬의 상수항 행렬을 구성하는 단계 - 각각의 인코딩된 데이터 블록은 상기 상수항 행렬의 하나의 행으로 사용됨 -; 및
상기 k개의 참조 데이터 세트를 이용하여 상기 방정식 세트 행렬의 계수 행렬을 구성하는 단계 - 각각의 참조 데이터 세트는 상기 계수 행렬의 하나의 행으로 사용되고, 상기 계수 행렬에서 각각의 참조 데이터 세트가 위치하는 상기 행의 랭크가, 상기 상수항 행렬에서 대응하는 인코딩된 데이터 블록이 위치하는 행의 랭크와 동일함 -를 포함한다.
본 출원의 일 실시예에서, 상기 u개의 프론트 엔드 서버에 의해 송신된 제1 참조 데이터 그룹을 수신하는 단계 이후에, 상기 비디오 전송 방법이,
상기 적어도 2개의 제1 참조 데이터 그룹을 사전 설정된 저장 위치에 저장하는 단계를 더 포함한다.
본 출원의 일 실시예에서, 상기 사전 설정된 저장 위치의 저장 공간 크기가 상기 비디오 데이터 스트림 내의 비디오 데이터 세그먼트의 최대 지연 지속시간, 최소 지연 지속시간, 및 생성 지속시간에 기초하여 결정되고,
상기 최대 지연 지속시간은 상기 비디오 코딩 장치가 상기 프론트 엔드 서버를 통해 상기 참조 데이터 그룹을 상기 비디오 디코딩 장치에 송신하는 데 필요한 최대 지속시간이고, 상기 최소 지연 지속시간은 상기 비디오 코딩 장치가 상기 프론트 엔드 서버를 통해 상기 참조 데이터 그룹을 상기 비디오 디코딩 장치에 송신하는 데 필요한 최소 지속시간이다.
선택적으로, 상기 사전 설정된 저장 위치의 저장 공간 크기는 제6 공식을 만족하고, 상기 제6 공식은,
Figure 112020065897225-pct00039
이며;
Q는 상기 사전 설정된 저장 위치의 저장 공간 크기이고,
Figure 112020065897225-pct00040
는 상기 최대 지연 지속시간이며,
Figure 112020065897225-pct00041
는 상기 최소 지연 지속시간이고,
Figure 112020065897225-pct00042
은 상기 비디오 데이터 스트림 내의 상기 비디오 데이터 세그먼트의 생성 지속시간이며, s는 상기 비디오 데이터 세그먼트의 데이터 볼륨 크기이다.
상기 사전 설정된 저장 위치는 복수의 비디오 데이터 세그먼트를 인코딩하여 획득된 참조 데이터 그룹을 동시에 저장할 필요가 있을 수 있다. 미리 설정된 저장 위치의 너무 작은 저장 공간으로 인해 사전 설정된 저장 위치로부터 참조 데이터 그룹이 오버플로우되는 것을 방지하기 위해, 사전 설정된 저장 공간에 대한 적절한 저장 공간 크기가 본 출원의 본 실시예에서 설정될 수 있다.
제3 양태에 따르면, 비디오 전송 장치가 제공된다. 상기 비디오 전송 장치는 적어도 하나의 모듈을 포함하고, 상기 적어도 하나의 모듈은 제1 양태 또는 제1 양태의 임의의 선택적 방식에서 제공되는 비디오 전송 방법을 구현하도록 구성된다.
제4 양태에 따르면, 비디오 전송 장치가 제공된다. 상기 비디오 전송 장치는 적어도 하나의 모듈을 포함하고, 상기 적어도 하나의 모듈은 상기 제2 양태 또는 제2 양태의 임의의 선택적 방식에서 제공되는 비디오 전송 방법을 구현하도록 구성된다.
제5 양태에 따르면, 비디오 전송 장치가 제공된다. 상기 비디오 전송 장치는 프로세서와 메모리를 포함하고,
상기 프로세서는 상기 메모리에 저장된 명령을 실행하도록 구성되고, 상기 프로세서는 제1 양태 또는 제1 양태의 임의의 선택적 방식에서 제공되는 비디오 전송 방법을 구현하기 위해 상기 명령을 실행한다.
제6 양태에 따르면, 비디오 전송 장치가 제공된다. 상기 비디오 전송 장치는 프로세서와 메모리를 포함하고;
상기 프로세서는 상기 메모리에 저장된 명령을 실행하도록 구성되고, 상기 프로세서는 제2 양태 또는 제2 양태의 임의의 선택적 방식에서 제공되는 비디오 전송 방법을 구현하기 위해 상기 명령을 실행한다.
제7 양태에 따르면, 컴퓨터 판독가능 저장 매체가 제공된다. 상기 컴퓨터 판독가능 저장 매체는 명령을 저장하고, 상기 명령은 컴퓨터의 처리 컴포넌트 상에서 실행될 때 상기 처리 컴포넌트로 하여금 제1 양태 또는 제1 양태의 임의의 선택적 방식에서 제공되는 비디오 전송 방법을 수행할 수 있게 하거나, 또는 상기 처리 컴포넌트로 하여금 제2 양태 또는 제2 양태의 임의의 선택적 방식에서 제공되는 비디오 전송 방법을 수행할 수 있게 한다.
본 발명의 실시예에서 제공되는 기술적 해결책에 의해 초래되는 유익한 효과는 다음과 같다.
상기 비디오 코딩 장치는 상기 k개의 데이터 블록을 포함하는 상기 타깃 비디오 데이터 세그먼트를 상기 t개의 참조 데이터 세트를 이용하여 개별적으로 인코딩하여, 상기 t개의 참조 데이터 세트와 일대일 대응관계에 있는 상기 인코딩된 t개의 데이터 블록을 얻는다. 여기서, 상기 t개의 참조 데이터 세트 중 임의의 k개의 참조 데이터 세트 및 상기 임의의 k개의 참조 데이터 세트와 일대일 대응관계에 있는 k개의 인코딩된 데이터 블록은 방정식 세트 행렬을 구성할 수 있고, 상기 방정식 세트 행렬의 해 행렬의 데이터가 상기 타깃 비디오 데이터 세그먼트의 데이터이다. 그런 다음, 상기 비디오 코딩 장치는 상기 n개의 프론트 엔드 서버를 이용하여 상기 t개의 제1 참조 데이터 그룹을 상기 비디오 디코딩 장치에 송신할 수 있다. 여기서, 각각의 제1 참조 데이터 그룹은 인코딩된 하나의 데이터 블록 및 상기 인코딩된 데이터 블록에 대응하는 인코딩된 데이터 세트를 포함한다. 다르게 말하면, 각각의 제1 참조 데이터 그룹은 상기 방정식 세트 행렬에 대응하는 방정식 세트 내의 하나의 방정식이다. 이와 같이, 상기 t개의 제1 참조 데이터 그룹 중 임의의 k개의 제1 참조 데이터 그룹을 수신한 후에, 다르게 말하면, 임의의 k개의 방정식을 수신한 후에, 상기 비디오 디코딩 장치는 방정식 세트 행렬을 구성하고, 디코딩을 통해 상기 타깃 비디오 데이터 세그먼트를 얻기 위해 상기 방정식 세트 행렬의 해 행렬을 풀 수 있다. 이와 같이, 패킷 손실이 발생하더라도, 상기 비디오 코딩 장치는 여전히 t 개의 제1 참조 데이터 그룹 중 k개의 참조 데이터 그룹을 수신할 가능성이 비교적 높다. 따라서, 패킷 손실이 발생할 때 상기 비디오 코딩 장치가 데이터를 재전송해야 하는 확률이 낮아짐으로써, 라이브 비디오의 정지 및 라이브 비디오의 지연을 방지할 수 있다. 또한, N이 1보다 크면, 상기 비디오 코딩 장치는 복수의 경로를 이용하여, 다르게 말하면, 복수의 프론트 엔드 서버를 이용하여 상기 라이브 비디오의 상향링크 과정에서 비디오 데이터를 송신할 수 있다. 이렇게 하면, 라이브 방송 네트워크의 상향링크 대역폭의 활용이 개선되고 또한 라이브 비디오의 정지 및 지연을 어느 정도까지 방지할 수 있다.
도 1은 관련 기술에서 제공되는 라이브 방송 네트워크의 개략도이다.
도 2a는 본 출원의 일 실시예에 따른 라이브 방송 네트워크의 개략도이다.
도 2b는 본 출원의 일 실시예에 따른 다른 라이브 방송 네트워크의 개략도이다.
도 3a는 본 출원의 일 실시예에 따른 비디오 전송 방법의 흐름도이다.
도 3b는 본 출원의 일 실시예에 따라
Figure 112020065897225-pct00043
이고
Figure 112020065897225-pct00044
가 상이한 값을 가질 때
Figure 112020065897225-pct00045
Figure 112020065897225-pct00046
사이의 관계 곡선을 나타낸 도면이다.
도 4는 본 출원의 일 실시예에 따른 비디오 전송 방법의 일부 단계의 흐름도이다.
도 5a는 본 출원의 일 실시예에 따른 비디오 전송 방법의 일부 단계의 흐름도이다.
도 5b는 본 출원의 일 실시예에 따른 전송 지연과 데이터 블록의 개수(k) 사이의 대응관계를 나타낸 개략도이다.
도 6은 본 출원의 일 실시예에 따른 비디오 전송 장치의 블록도이다.
도 7은 본 출원의 일 실시예에 따른 비디오 전송 장치의 블록도이다.
도 8은 본 출원의 일 실시예에 따른 비디오 전송 장치의 블록도이다.
도 9는 본 출원의 일 실시예에 따른 비디오 전송 장치의 블록도이다.
도 10은 본 출원의 일 실시예에 따른 비디오 전송 장치의 블록도이다.
도 11은 본 출원의 일 실시예에 따른 비디오 전송 장치의 블록도이다.
이하, 본 출원의 목적, 기술적 해결책, 및 이점이 더 명확해지도록, 첨부 도면을 참조하여 본 출원의 구현에 대해 더 상세하게 설명한다.
네트워크 라이브 방송은 라이브 방송 네트워크를 이용하여 수행되는 라이브 비디오 방송을 의미한다. 도 1에 도시된 바와 같이, 관련 기술에서, 라이브 방송 네트워크는 앵커 단말기(101), 시청자 단말기(102), 및 앵커 단말기(101)과 시청자 단말기(102) 사이에 위치하는 콘텐츠 전송 네트워크(Content Delivery Network, CDN)(103)를 포함할 수 있다. CDN 네트워크(103)는 복수의 프론트 엔드 서버(도 1에서, 2개의 프론트 엔드 서버, 즉 프론트 엔드 서버 B와 프론트 엔드 서버 D만이 예로서 사용됨), 중앙 컨트롤러 A, 및 백그라운드 스토리지 서버 C를 포함할 수 있다.
실제 적용에서, 네트워크 라이브 방송은 라이브 비디오의 상향링크와 라이브 비디오의 하향링크의 2개의 과정을 포함할 수 있다. 라이브 비디오의 상향링크 과정에서, 앵커 단말기(101)는 라이브 비디오를 촬영하고, CDN 네트워크(103) 내의 중앙 컨트롤러 A에 업로드 요청을 송신할 수 있다. 업로드 요청을 수신한 후에, 중앙 컨트롤러 A는 특정 스케줄링 정책에 기초하여 CDN 네트워크(103) 내의 프론트 엔드 서버(B)의 인터넷 프로토콜(Internet Protocol, IP) 주소를 앵커 단말기(101)에 반환할 수 있다. 프론트 엔드 서버 B는 CDN 네트워크(103)의 복수의 프론트 엔드 서버에 있는 프론트 엔드 서버로서 지리적 위치가 앵커 단말기(101)에 가장 가까운 프론트 엔드 서버이다. 앵커 단말기(101)은 수신된 IP 주소에 기초하여 라이브 비디오의 비디오 데이터 스트림을 프론트 엔드 서버 B에 송신할 수 있다. 비디오 데이터 스트림을 수신하는 프론트 엔드 서버 B는 CDN 네트워크(103)에서 비디오 데이터 스트림을 백그라운드 스토리지 서버 C로 포워딩할 수 있다.
라이브 비디오의 하향링크 과정에서, 시청자 단말기(102)는 시청 요청을 중앙 컨트롤러 A에 송신할 수 있다. 시청 요청을 수신한 후에, 중앙 컨트롤러 A는 특정 스케줄링 정책에 기초하여 CDN 네트워크(103) 내의 프론트 엔드 서버(D)의 IP 주소를 시청자 단말기(102)에 반환할 수 있다. 프론트 엔드 서버 D는 CDN 네트워크(103)의 복수의 프론트 엔드 서버에 있는 프론트 엔드 서버로서 지리적 위치가 시청자 단말기(102)에 가장 가까운 프론트 엔드 서버이다. 시청자 단말기(102)는 수신된 IP 주소에 기초하여 프론트 엔드 서버 D에 데이터 스트림 획득 요청을 송신할 수 있다. 시청자 단말기(102)가 수신된 비디오 데이터 스트림에 기초하여 라이브 비디오를 재생할 수 있도록, 데이터 스트림 획득 요청을 수신하는 프론트 엔드 서버 D는 백그라운드 스토리지 서버 C로부터 비디오 데이터 스트림을 획득하고, 시청자 단말기(102)에 비디오 데이터 스트림을 송신할 수 있다.
라이브 비디오의 상향링크 과정에서, 패킷 손실이 발생하면, 앵커 단말기는 비디오 데이터를 재전송할 필요가 있고, 이로 인해 라이브 비디오의 정지 및 지연이 일어나기 쉽다. 또한, 종래 기술에서, 앵커 단말기는 라이브 비디오를 CDN 네트워크 내의 하나의 프론트 엔드 서버에 송신한다. 이 단일 경로 비디오 데이터 송신 방식은 앵커 단말기의 상대적으로 낮은 상향링크 대역폭 이용을 초래한다. 실제 적용에서, 라이브 방송 네트워크의 상향링크 대역폭은 일반적으로 비교적 작다. 이를 기초로, 앵커 단말기의 상향링크 대역폭 이용이 상대적으로 낮으면 라이브 비디오의 상향링크 레이트가 상대적으로 낮아지기 때문에, 라이브 비디오의 정지 및 지연이 일어나기 쉽다.
라이브 비디오에서 정지 및 지연이 발생할 가능성을 줄이기 위해, 본 출원은 비디오 전송 방법을 제공한다. 도 2a는 비디오 전송 방법에서 라이브 방송 네트워크를 개략적으로 나타낸 도면이다. 도 2a에 도시된 바와 같이, 라이브 방송 네트워크는 앵커 단말기(201), CDN 네트워크(202), 및 시청자 단말기(203)을 포함할 수 있다. 앵커 단말기(201)와 시청자 단말기(203)는 휴대폰 또는 태블릿 컴퓨터와 같은 비디오 재생 기능이 있는 전자 장치일 수 있고, CDN 네트워크(202)는 복수의 프론트 엔드 서버(2021), 비디오 디코딩 서버(2022), 및 백그라운드 스토리지 서버 (2023)를 포함할 수 있다. 도 2a에 도시된 라이브 방송 네트워크에서, 앵커 단말기(201)는 CDN 네트워크(202) 내의 복수의 프론트 엔드 서버(2021) 중 적어도 2개와 통신할 수 있고(도 2a는 앵커 단말기(201)과 통신하는 2개의 프론트 엔드 서버(2021)만을 도시하고 있음), 적어도 2개의 프론트 엔드 서버(2021) 각각은 비디오 디코딩 서버(2022)와 통신할 수 있으며, 비디오 디코딩 서버(2022)는 백그라운드 스토리지 서버(2023)와 통신할 수 있다. 시청자 단말기(203)는 CDN 네트워크(202) 내의 복수의 프론트 엔드 서버(2021) 중 적어도 하나와 통신할 수 있고(도 2a는 시청자 단말기(203)와 통신하는 하나의 프론트 엔드 서버(2021)만을 도시하고 있음), 적어도 하나의 프론트 엔드 서버(2021) 각각은 백그라운드 스토리지 서버(2023)와 통신할 수 있다.
도 2b는 본 출원에 따른 비디오 전송 방법에서 다른 라이브 방송 네트워크를 개략적으로 나타낸 도면이다. 도 2b에 도시된 라이브 방송 네트워크의 구조가 도 2a에 도시된 라이브 방송 네트워크의 구조와 기본적으로 동일하다. 또한, 라이브 방송 네트워크는 앵커 단말기(201), CDN 네트워크(202), 및 시청자 단말기(203)를 포함하고, CDN 네트워크(202)는 또한 복수의 프론트 엔드 서버(2021), 비디오 디코딩 서버(2022), 및 백그라운드 스토리지 서버(2023)를 포함할 수 있다. 도 2b에 도시된 라이브 방송 네트워크의 구조는, 도 2a에 도시된 라이브 방송 네트워크가 비디오 코딩 서버(204)를 더 포함한다는 점에서 도 2a에 도시된 라이브 방송 네트워크의 구조와 다르다. 도 2b의 라이브 방송 네트워크에서, 앵커 단말기(201)는 비디오 코딩 서버(204)와 통신할 수 있고, 비디오 코딩 서버(204)는 CDN 네트워크(202) 내의 복수의 프론트 엔드 서버(2021) 중 적어도 2개와 통신할 수 있으며(도 2b는 비디오 코딩 서버(204)와 통신하는 2개의 프론트 엔드 서버(2021)만을 도시하고 있음), 및 적어도 2개의 프론트 엔드 서버(2021) 각각은 비디오 디코딩 서버(2022)와 통신할 수 있다.
본 출원의 실시예에서, 도 2a와 도 2b에 도시된 라이브 방송 네트워크에서, CDN 네트워크(202)가 중앙 컨트롤러를 더 포함할 수 있는 것을 유의해야 한다. 도 2a에 도시된 라이브 방송 네트워크에서, 중앙 컨트롤러는 앵커 단말기(201) 및 시청자 단말기(203)와 개별적으로 통신할 수 있다. 도 2b에 도시된 라이브 방송 네트워크에서, 중앙 컨트롤러는 비디오 코딩 서버(204) 및 시청자 단말기(203)와 개별적으로 통신할 수 있다.
도 3a는 본 출원의 일 실시예에 따른 비디오 전송 방법의 흐름도이다. 비디오 전송 방법은 도 2a와 도 2b에 도시된 라이브 방송 네트워크에 적용될 수 있다. 도 3a에 도시된 바와 같이, 비디오 전송 방법은 다음의 단계를 포함할 수 있다.
단계 301: 비디오 코딩 장치가 전송될 라이브 비디오의 비디오 데이터 스트림으로부터 타깃 비디오 데이터 세그먼트를 획득한다.
비디오 코딩 장치가 도 2a의 앵커 단말기(201)일 수 있거나 또는 도 2b의 비디오 코딩 서버(204)일 수 있다는 것을 유의해야 한다. 다시 말해, 본 출원의 본 실시예에서, 앵커 단말기가 타깃 비디오 데이터 세그먼트를 획득하고 후속 단계에서 타깃 비디오 데이터 세그먼트를 인코딩하는 기술적인 과정을 수행할 수 있거나, 또는 비디오 코딩 서버가 타깃 비디오 데이터 세그먼트를 획득하고 후속 단계에서 타깃 비디오 데이터 세그먼트를 인코딩하는 기술적인 과정을 수행할 수 있다
비디오 코딩 장치가 앵커 단말기인 경우, 하드웨어 오버헤드가 줄어들 수 있고 또한 라이브 방송 네트워크의 배치 비용이 낮아질 수 있도록, 비디오 코딩 서버는 라이브 방송 네트워크에 배치될 필요가 없다. 비디오 코딩 장치가 비디오 코딩 서버인 경우, 앵커 단말기는 타깃 비디오 데이터 세그먼트를 인코딩하는 기술적인 과정을 수행할 필요가 없다. 따라서, 앵커 단말기에 설치된 네트워크 라이브 방송 애플리케이션에 비디오 코딩 기능이 추가될 필요가 없다. 다시 말해, 기존의 네트워크 라이브 방송 애플리케이션이 변경될 필요가 없다. 따라서, 소프트웨어 오버헤드가 비교적 낮으며 본 출원의 본 실시예에서 제공되는 비디오 전송 방법이 기존의 네트워크 라이브 방송 애플리케이션과 호환될 수 있다는 것이 보장될 수 있다.
비디오 코딩 장치가 앵커 단말기인 경우, 단계 301에서, 비디오 코딩 장치는 비디오 코딩 장치에 의해 촬영되는 송신될 라이브 비디오의 비디오 데이터 스트림을 획득하고, 비디오 데이터 스트림으로부터 복수의 비디오 데이터 세그먼트를 연속적으로 획득할 수 있다. 타깃 비디오 데이터 세그먼트는 복수의 비디오 데이터 세그먼트 중 하나이다. 본 출원의 본 실시예에서, 타깃 비디오 데이터 세그먼트를 인코딩하고, 디코딩하며, 전송하는 과정만이 본 출원에서 제공되는 기술적 해결책을 설명하기 위한 예로서 사용된다. 본 출원에서 다른 비디오 데이터 세그먼트를 처리하는 방식이 타깃 비디오 데이터 세그먼트를 처리하는 방식과 동일하다.
비디오 코딩 장치가 비디오 코딩 서버인 경우, 단계 301에서, 비디오 코딩 장치는 앵커 단말기에 의해 송신된 전송될 라이브 비디오의 비디오 데이터 스트림을 획득하고, 수신된 비디오 데이터 스트림으로부터 복수의 비디오 데이터 세그먼트를 연속적으로 획득할 수 있다. 타깃 비디오 데이터 세그먼트는 복수의 비디오 데이터 세그먼트 중 하나이다. 비디오 코딩 장치가 비디오 코딩 서버인 경우, 비디오 코딩 장치와 앵커 단말기 사이의 네트워크 통신 품질이 보장될 수 있도록, 비디오 코딩 장치가 기지국과 같은 위치에, 즉 지리적으로 앵커 단말기에 비교적 가까운 위치에 배치됨으로써, 앵커 단말기가 비디오 데이터 스트림을 비디오 코딩 장치에 송신하는 레이트를 향상시킨다는 것을 유의해야 한다.
실제 적용에서, 타깃 비디오 데이터 세그먼트는 동일한 크기의 k개의 데이터 블록을 포함할 수 있고, k는 1보다 크거나 같은 양의 정수이다. 본 출원의 본 실시예에서, 데이터 블록의 크기는 전송될 라이브 비디오의 비디오 데이터 스트림 캡슐화 포맷에 기초하여 설정될 수 있다. 전송 스트림(Transport Stream, ts) 캡슐화 포맷이 예로서 사용된다. ts 캡슐화 포맷에서, 하나의 ts 패킷의 크기가 188 바이트이다. 이더넷에서의 최대 전송 단위(Maximum Transmission Unit, MTU)의 크기가 1500 바이트이므로, 이더넷에서의 하나의 데이터 프레임이 최대 7개의 ts 패킷, 즉 1316 바이트를 캡슐화할 수 있다. 이 경우, 데이터 블록의 크기가 1316 바이트로 설정될 수 있다.
전술한 바와 같이, 비디오 코딩 장치가 비디오 코딩 서버인 경우, 비디오 코딩 장치는 앵커 단말기에 의해 송신된 전송될 라이브 비디오의 비디오 데이터 스트림을 수신하고, 비디오 데이터 스트림으로부터 타깃 비디오 세그먼트를 획득할 필요가 있으며, 다르게 말하면, 비디오 데이터 스트림으로부터 k개의 데이터 블록을 획득하여 타깃 비디오 데이터 세그먼트를 형성한다. 하지만, 경우에 따라, 앵커 단말기와 비디오 코딩 장치 사이의 네트워크 통신 품질이 비교적 열악하기 때문에, 앵커 단말기와 비디오 코딩 장치 간에 비디오 데이터 스트림을 전송하는 레이트가 비교적 낮다. 이 경우, 비디오 코딩 장치는 수신된 비디오 데이터 스트림으로부터 k개의 데이터 블록을 획득할 수 없으며, 즉 타깃 비디오 데이터 세그먼트를 획득할 수 없다. 왜냐하면, 비디오 코딩 장치가 충분한 비디오 데이터 스트림을 수신할 수 없기 때문이다.
비디오 코딩 장치가 타깃 비디오 데이터 세그먼트를 획득하는 지연이 너무 길고 또는 전송될 라이브 비디오의 상향링크 레이트에 영향을 주는 경우를 피하기 위해, 본 출원의 일 실시예에서, 사전 설정된 제1 지속 시간이 비디오 코딩 장치에 대해 설정된다. 비디오 코딩 장치는 비디오 데이터 스트림으로부터 타깃 비디오 데이터 세그먼트의 제1 데이터 블록을 획득한 후 타이밍을 시작하고, 타이밍 과정에서, 비디오 코딩 장치에 의해 획득된 데이터 블록의 개수를 모니터링할 수 있다. 비디오 코딩 장치가 사전 설정된 제1 지속시간 중 어느 순간에, 비디오 코딩 장치에 의해 획득된 데이터 블록의 개수가 k에 도달하는 것을 검출할 때, 비디오 코딩 장치는 획득된 k개의 데이터 블록을 이용하여 목표 비디오 데이터 세그먼트를 형성할 수 있다. 비디오 코딩 장치에 의해 획득된 데이터 블록의 개수가 사전 설정된 제1 지속시간의 끝에서 여전히 k보다 작으면, 비디오 코딩 장치는 획득된 데이터 블록을 사전 설정된 데이터(예를 들어, 사전 설정된 데이터가 0일 수 있음)를 이용하여 패딩할 수 있고, 비디오 코딩 장치는 패딩을 통해 획득된 k개의 데이터 블록을 이용하여 타깃 비디오 데이터 세그먼트를 형성할 수 있다. 이와 같이, 비디오 코딩 장치가 타깃 비디오 데이터 세그먼트를 획득하는 지속시간이 사전 설정된 제1 지속 기간을 초과하지 않음으로써, 비디오 코딩 장치가 타깃 비디오 데이터 세그먼트를 획득하는 지연이 너무 길어서 전송될 라이브 비디오의 상향링크 속도에 영향을 주는 경우를 방지할 수 있다.
비디오 코딩 장치가 타깃 비디오 데이터 세그먼트를 획득한 후애, 비디오 코딩 장치는 타깃 비디오 데이터 세그먼트를 인코딩할 수 있다. 타깃 비디오 데이터 세그먼트를 인코딩하는 기술적인 과정이 다음의 단계 302와 단계 303을 포함할 수 있다.
단계 302: 비디오 코딩 장치가 t개의 참조 데이터 세트를 획득한다. 여기서, t는 k보다 크거나 같은 양의 정수이다.
타깃 비디오 데이터 세그먼트를 인코딩할 때, 비디오 코딩 장치는 t개의 참조 데이터 세트를 획득할 수 있다. 여기서, 각각의 참조 데이터 세트는 k개의 참조 데이터를 포함할 수 있고, k개의 참조 데이터는 타깃 비디오 데이터 세그먼트에 포함된 k개의 데이터 블록과 일대일 대응관계에 있다. 또한, t개의 참조 데이터 세트 각각에 포함된 모든 k개의 참조 데이터는 하나의 참조 벡터를 구성할 수 있고, 구성된 t개의 참조 벡터 중 어느 2개도 서로 선형적으로 관련되어 있지 않다.
예를 들어, t개의 참조 데이터 세트 중 i번째 참조 데이터 세트가 k개의 참조 데이터를 포함할 수 있고, k개의 참조 데이터는
Figure 112020065897225-pct00047
이다. 여기서,
Figure 112020065897225-pct00048
는 타깃 비디오 데이터 세그먼트에 포함된 k개의 데이터 블록 중 u번째 데이터 블록에 대응한다. 예를 들어, t개의 참조 데이터 세트 중 j번째 참조 데이터 세트는 k개의 참조 데이터를 포함할 수도 있고, k개의 참조 데이터는
Figure 112020065897225-pct00049
이다. 여기서,
Figure 112020065897225-pct00050
는 타깃 비디오 데이터 세그먼트에 포함된 k개의 데이터 블록 중 u번째 데이터 블록에 대응한다. i번째 참조 데이터 세트는 벡터
Figure 112020065897225-pct00051
를 구성할 수 있고, j번째 참조 데이터 세트는 벡터
Figure 112020065897225-pct00052
를 구성할 수 있으며, 2개의 벡터는 서로 선형적으로 관련되어 있다.
단계 303: 비디오 코딩 장치가, t개의 참조 데이터 세트와 일대일 대응관계에 있는 인코딩된 t개의 데이터 블록을 얻기 위해, 각각의 참조 데이터 세트를 이용하여 타깃 비디오 데이터 세그먼트를 인코딩한다.
본 출원의 본 실시예에서, 비디오 코딩 장치가 인코딩된 t개의 데이터 블록 중 i번째 인코딩된 데이터 블록을 얻기 위해 t개의 참조 데이터 세트 중 i번째 참조 데이터 세트를 이용하여 타깃 비디오 데이터 세그먼트를 인코딩하는 기술적인 과정을 예로 들어, 이하에서는 단계 303을 설명한다.
비디오 코딩 장치는 타깃 비디오 데이터 세그먼트에 있는 데이터 블록으로서 i번째 참조 데이터 세트에 대응하는 데이터 블록을 i번째 참조 데이터 세트에 포함된 각각의 참조 데이터에 곱하여 k개의 곱을 획득할 수 있고, 그런 다음 비디오 코딩 장치는 k개의 곱을 더하여 i번째 인코딩된 데이터 블록을 획득할 수 있다.
예를 들어, i번째 참조 데이터 세트는 k개의 참조 데이터, 즉
Figure 112020065897225-pct00053
를 포함할 수 있고, 타깃 비디오 데이터 세그먼트는 k개의 데이터 블록, 즉
Figure 112020065897225-pct00054
를 포함할 수 있다. 여기서,
Figure 112020065897225-pct00055
Figure 112020065897225-pct00056
에 대응한다. 비디오 코딩 장치는, 인코딩된 i번째 데이터 블록
Figure 112020065897225-pct00057
을 얻기 위해 i번째 참조 데이터 세트에 기초하여 타깃 비디오 데이터 세그먼트를 인코딩한다.
전술한 설명으로부터 알 수 있는 것은, 비디오 코딩 장치가 t개의 참조 데이터 세트를 이용하여 타깃 비디오 데이터 세그먼트를 인코딩하여 인코딩된 t개의 데이터 블록을 얻는 기술적인 과정이 방정식 세트 행렬 내의 계수 행렬에 해 행렬을 곱하여 상수행 행렬을 얻는 것으로 실제로 표현될 수 있다는 것이다. 계수 행렬은 t개의 참조 데이터 세트를 포함하고, 해 행렬은 타깃 비디오 데이터 세그먼트 내의 k개의 데이터 블록을 포함하며, 상수항 행렬은 인코딩된 t개의 데이터 블록을 포함한다. 구체적으로, 인코딩 과정은,
Figure 112020065897225-pct00058
으로 표현될 수 있다.
단계 304: 비디오 코딩 장치가 t개의 제1 참조 데이터 그룹을 획득한다.
타깃 비디오 데이터 세그먼트를 인코딩한 후 인코딩된 t개의 데이터 블록을 획득한 후에, 비디오 코딩 장치는 t개의 제1 참조 데이터 그룹을 획득할 수 있다. 여기서, 각각의 제1 참조 데이터 그룹은 인코딩된 하나의 데이터 블록 및 인코딩된 데이터 블록에 대응하는 참조 데이터 세트를 포함할 수 있다. 예를 들어, t개의 제1 참조 데이터 그룹 중 i번째 제1 참조 데이터 그룹은 인코딩된 t개의 데이터 블록 중 인코딩된 i번째 데이터 블록
Figure 112020065897225-pct00059
, 및 t개의 참조 데이터 세트 중 i번째 참조 데이터 세트를 포함할 수 있고, i번째 참조 데이터 세트는
Figure 112020065897225-pct00060
를 포함한다.
단계 305: 비디오 코딩 장치가 n개의 프론트 엔드 서버를 이용하여 t개의 제1 참조 데이터 그룹을 비디오 디코딩 장치에 송신한다. 여기서, N은 1보다 크거나 같은 양의 정수이다.
본 출원의 본 실시예에서, 비디오 코딩 장치는 적어도 하나의 제1 참조 데이터 그룹을 n개의 프론트 엔드 서버 각각에 송신할 수 있고, 비디오 코딩 장치가 n개의 프론트 엔드 송신기에 송신한 제1 참조 데이터 그룹의 개수의 합이 1과 같다.
선택적으로, 비디오 코딩 장치는 참조 데이터 패킷을 생성할 수 있다. 각각의 참조 데이터 패킷은 적어도 하나의 제1 참조 데이터 그룹을 포함할 수 있다, 참조 데이터 패킷은 t개의 제1 참조 데이터 그룹을 포함할 수 있으며, a는 1보다 크거나 같은 양의 정수이다. 그런 다음, 비디오 코딩 장치는, t개의 제1 참조 데이터 그룹을 비디오 디코딩 장치에 송신하기 위해, n개의 프론트 엔드 서버를 이용하여 a개의 참조 데이터 패킷을 비디오 디코딩 장치에 송신할 수 있다. 본 출원의 일 실시예에서, 참조 데이터 패킷이 타깃 비디오 데이터 세그먼트의 식별자 및/또는 전송될 라이브 비디오가 속한 라이브 방송 채널의 식별자를 더 포함할 수 있다는 것을 유의해야 한다. 추가적으로, 비디오 디코딩 장치가 도 2a 또는 도 2b의 비디오 디코딩 서버(2022)일 수 있다는 것을 유의해야 한다.
본 출원의 일 실시예에서, 참조 데이터 패킷의 포맷은 사용자 데이터 그램 프로토콜(User Datagram Protocol, UDP) 기반의 데이터 전송 프로토콜(UDP-based Data Transfer Protocol, UDT) 포맷일 수 있다. 다시 말해, 비디오 코딩 장치는 UDT 프로토콜에 기초하여 참조 데이터 패킷을 비디오 디코딩 장치에 송신할 수 있다.
종래 기술에서, 라이브 방송 네트워크에서 사용되는 데이터 전송 프로토콜은 일반적으로 전송 제어 프로토콜(Transmission Control Protocol, TCP)이고, TCP 프로토콜의 혼잡 제어 메커니즘이 AIMD(Additive Increase Multiplicative Decrease) 메커니즘이다. AIMD 메커니즘에서, 링크 상에서 패킷 손실이 발생하면, 링크의 전송 윈도우가 반으로 줄어든다. 예를 들어, 송신 장치 A와 수신 장치 B 사이에서 패킷 손실이 발생하면, AIMD 메커니즘은 송신 장치 A의 전송 윈도우를 반으로 줄인다. 전송 윈도우가 반으로 줄어들면, 데이터 전송 속도에 상대적으로 심각하게 영향을 준다. 따라서, 비디오 데이터 스트림이 TCP 프로토콜에 기초하여 라이브 방송 네트워크에서 전송될 때, 패킷 손실이 비디오 데이터 스트림의 전송 레이트에 상대적으로 심각하게 영향을 미치고, 시청자 단말기가 라이브 비디오를 재생할 때 지연이 매우 길고 또한 매우 자주 정지되는 현상이 초래된다.
라이브 방송 네트워크에서 패킷 손실이 비디오 데이터 스트림의 전송 레이트에 미치는 영향을 줄이기 위해, 본 출원의 본 실시예에서, 라이브 방송 네트워크는 UDT 프로토콜에 기초하여 비디오 데이터 스트림을 전송할 수 있다. 구체적으로, 비디오 코딩 장치는 UDT 프로토콜에 기초하여 참조 데이터 패킷을 비디오 디코딩 장치에 송신한다. UDT 프로토콜의 혼잡 제어 메커니즘이 DAIMD(Decreasing Additive Increase Multiplicative Decrease) 메커니즘이다. DAIMD 메커니즘에서, 링크 상에서 패킷 손실이 발생할 때, 링크의 이용 가능한 대역폭에 기초하여 전송 윈도우가 줄어들 수 있고, 전송 윈도우의 감소 진폭이 1/8과 1/2 사이의 임의의 수이다. 따라서, 라이브 방송 네트워크에서 패킷 손실이 비디오 데이터 스트림의 전송 레이트에 미치는 영향이 TCP 프로토콜에서의 영향에 비해 줄어들 수 있다.
실제 적용에서, t개의 제1 참조 데이터 그룹을 전송하기 전에, 비디오 코딩 장치는 CDN 네트워크 내의 r개의 프론트 엔드 서버로의 통신 연결을 구축할 수 있다. 여기서, r은 n보다 크거나 같은 양의 정수이다. 경우에 따라, 비디오 코딩 장치는 r개의 프론트 엔드 서버를 이용하여 제1 참조 데이터 그룹을 비디오 디코딩 장치에 직접 송신할 수 있다. 다른 일부 경우에, 비디오 코딩 장치는 비디오 코딩 장치와 r개의 프론트 엔드 서버 각각 사이의 데이터 전송 레이트에 기초하여 r개의 프론트 엔드 서버로부터 네트워크 통신 품질이 우수한 n개의 프론트 엔드 서버를 추가로 결정하고, n개의 프론트 엔드 서버를 이용하여 t개의 제1 참조 데이터 그룹을 비디오 디코딩 장치에 송신할 수 있다. 결정된 n개의 프론트 엔드 서버와 비디오 코딩 장치 사이의 네트워크 통신 품질이 상대적으로 양호하기 때문에, 비디오 데이터 스트림의 상향링크 레이트가 보장될 수 있도록, 비디오 코딩 장치는 n개의 프론트 엔드 서버를 이용하여 상대적으로 빠른 레이트로 데이터를 송신한다.
본 출원의 일 실시예에서, 비디오 코딩 장치와 프론트 엔드 서버 사이의 네트워크 통신 품질은 프론트 엔드 서버의 유틸리티 값을 이용하여 나타낼 수 있다. 유틸리티 값이 크다는 것은, 프론트 엔드 서버와 비디오 코딩 장치 사이의 네트워크 통신 품질이 우수하다는 것을 나타낸다. r개의 프론트 엔드 서버로부터 n개의 프론트 엔드 서버를 결정하는 과정에서, 비디오 코딩 장치는 r개의 프론트 엔드 서버 각각의 유틸리티 값을 계산하고, 유틸리티 값의 내림차순으로 r개의 프론트 엔드 서버로부터 n개의 프론트 엔드 서버를 결정할 수 있으며, n개의 프론트 엔드 서버의 유틸리티 값이 r개의 프론트 엔드 서버 중 다른 프론트 엔드 서버의 유틸리티 값보다 크다.
본 출원의 일 실시예에서, 프론트 엔드 서버의 유틸리티 값은 다음의 제3 공식을 이용하여 계산될 수 있다.
Figure 112020065897225-pct00061
제3 공식에서,
Figure 112020065897225-pct00062
는 r개의 프론트 엔드 서버 중 j번째 프론트 엔드 서버의 유틸리티 값이고,
Figure 112020065897225-pct00063
는 비디오 코딩 장치와 j번째 프론트 엔드 서버 사이의 데이터 전송 레이트이며,
Figure 112020065897225-pct00064
는 비디오 코딩 장치와 j번째 프론트 엔드 서버 사이의 패킷 손실율이고,
Figure 112020065897225-pct00065
는 라이브 방송 네트워크의 평균 패킷 손실율로 경험적인 값에 기초하여 설정될 수 있으며, 예를 들어
Figure 112020065897225-pct00066
는 0.03으로 설정될 수 있으며,
Figure 112020065897225-pct00067
는 상수이고, e는 자연 로그의 베이스이다.
실제 적용에서, 비디오 코딩 장치와 프론트 엔드 서버 사이의 네트워크 통신 품질은 일반적으로, 비디오 코딩 장치와 프론트 엔드 서버 사이의 데이터 전송 레이트와 패킷 손실율에 의해 결정된다. 데이터 전송 레이트는 비디오 코딩 장치와 프론트 엔드 서버 사이의 이용 가능한 대역폭을 반영할 수 있고, 패킷 손실율은 비디오 코딩 장치와 프론트 엔드 서버 사이의 경로 혼잡 정도를 반영할 수 있다. 따라서, 제3 공식에서, 프론트 엔드 서버의 유틸리티 값은 비디오 코딩 장치와 프론트 엔드 서버 사이의 데이터 전송 레이트와 패킷 손실율을 이용하여 계산될 수 있다.
일반적으로, 패킷 손실율은 비디오 코딩 장치와 프론트 엔드 서버 사이의 네트워크 통신 품질에 크게 영향을 미치고, 이는 패킷 손실이 발생할 때, 비디오 코딩 장치의 전송 윈도우가 줄어들고, 비디오 코딩 장치가 데이터 패킷을 추가로 재전송할 필요가 있기 때문이다. 제3 공식에서, 상수
Figure 112020065897225-pct00068
의 값이 조정되어 패킷 손실율의 중요도를 유틸리티 값으로 조정한다. 구체적으로,
Figure 112020065897225-pct00069
인 경우,
Figure 112020065897225-pct00070
의 값이 크다는 것은,
Figure 112020065897225-pct00071
가 증가함에 따라 j번째 프론트 엔드 서버의 유틸리티 값이 감소하는 레이트가 높다는 것이다. 도 3b는
Figure 112020065897225-pct00072
이고
Figure 112020065897225-pct00073
가 다른 값을 가질 때
Figure 112020065897225-pct00074
와 시그모이드 함수
Figure 112020065897225-pct00075
사이의 관계 곡선을 도시하고 있다. 도 3b로부터 알 수 있는 것은,
Figure 112020065897225-pct00076
의 값이 크다는 것은,
Figure 112020065897225-pct00077
가 증가함에 따라 시그모이드 함수
Figure 112020065897225-pct00078
가 감소하는 레이트가 높다는 것이다. 경우에 따라, 패킷 손실율이 획득될 수 없으면,
Figure 112020065897225-pct00079
의 값이 0으로 설정될 수 있다. 이와 같이, 패킷 손실율은 유틸리티 값에 영향을 미치지 않는다.
본 출원의 일 실시예에서, n개의 프론트 엔드 서버를 이용하여 t개의 제1 참조 데이터 그룹을 비디오 디코딩 장치에 송신하는 과정에서, 비디오 코딩 장치는 n개의 프론트 엔드 서버 각각을 이용하여 서로 다른 제1 참조 데이터 그룹의 개수를 비디오 디코딩 장치에 송신할 수 있다. 예를 들어, 비디오 코딩 장치는 n개의 프론트 엔드 서버 중 제1 프론트 엔드 서버를 이용하여
Figure 112020065897225-pct00080
개의 제1 참조 데이터 그룹을 비디오 디코딩 장치에 송신할 수 있고, 제2 프론트 엔드 서버를 이용하여
Figure 112020065897225-pct00081
개의 제1 참조 데이터 그룹을 비디오 디코딩 장치에 송신하며,l번째 프론트 엔드 서버를 이용하여
Figure 112020065897225-pct00082
개의 제1 참조 데이터 그룹을 비디오 디코딩 장치에 송신하고, n번째 프론트 엔드 서버를 이용하여
Figure 112020065897225-pct00083
개의 제1 참조 데이터 그룹을 비디오 디코딩 장치에 송신하며,
Figure 112020065897225-pct00084
이다.
일반적으로, 유틸리티 값이 상대적으로 큰 프론트 엔드 서버와 비디오 코딩 장치 사이의 네트워크 통신 품질이 상대적으로 양호하고, 비디오 코딩 장치는 상대적으로 많은 수의 제1 참조 데이터 그룹을 프론트 엔드 서버에 송신할 수 있다. 유틸리티 값이 상대적으로 작은 프론트 엔드 서버와 비디오 코딩 장치 사이의 네트워크 통신 품질이 상대적으로 열악하고, 데이터 전송 지연을 줄이기 위해, 비디오 코딩 장치는 상대적으로 작은 수의 제1 참조 데이터 그룹을 프론트 엔드 서버에 송신할 수 있다.
전술한 기술적인 과정을 구현하기 위해, t개의 제1 참조 데이터 그룹을 송신하기 전에, 비디오 코딩 장치는 다음의 제4 공식에 기초하여, n개의 프론트 엔드 서버 각각에 대응하는 제1 참조 데이터 그룹의 개수를 계산할 수 있고, 프론트 엔드 서버가 수신된 제1 참조 데이터 그룹을 비디오 디코딩 장치에 송신할 수 있도록, 비디오 코딩 장치는 제1 참조 데이터 그룹의 대응하는 개수를 각각의 프론트 엔드 서버에 송신할 수 있다. 제4 공식은,
Figure 112020065897225-pct00085
이다.
제4 공식에서,
Figure 112020065897225-pct00086
은 n개의 프론트 엔드 서버 중 제1 프론트 엔드 서버에 대응하는 제1 참조 데이터 그룹의 개수이고,
Figure 112020065897225-pct00087
은 제1 프론트 엔드 서버의 유틸리티 값이며,
Figure 112020065897225-pct00088
는 n개의 프론트 엔드 서버의 유틸리티 값의 합이다.
비디오 코딩 장치가 앵커 단말기이고, 앵커 단말기가 멀티-홈드 단말기(multi-homed terminal)인 경우(멀티-홈드 단말기는 상이한 네트워크 연결 방식으로 네트워크와 데이터를 동시에 교환할 수 있음), 비디오 코딩 장치가 상이한 네트워크 연결 방식으로 t개의 제1 참조 데이터 그룹을 비디오 디코딩 장치에 송신할 수 있다는 것을 유의해야 한다. 상이한 네트워크 연결 방식은 와이파이(Wireless Fidelity, WiFi) 방식의 네트워크 연결, 이동 통신 네트워크 연결, 및 고정형 전화망 연결 등을 포함할 수 있다. 이와 같이, 비디오 코딩 장치가 t개의 제1 참조 데이터 그룹을 송신하는 레이트가 증가되고, 그런 다음 전송될 라이브 비디오의 비디오 데이터 스트림의 상향링크 레이트가 증가될 수 있도록, 비디오 코딩 장치의 상향링크 대역폭이 증가될 수 있다.
비디오 코딩 장치가 n개의 프론트 엔드 서버를 이용하여 t개의 제1 참조 데이터 그룹을 비디오 디코딩 장치에 송신한 후에, 비디오 코딩 장치는 실시간으로 비디오 코딩 장치와 n개의 프론트 엔드 서버 각각 사이의 패킷 손실율을 추가로 검출할 수 있다. 비디오 코딩 장치가 비디오 코딩 장치과 하나 이상의 프론트 엔드 서버 사이의 패킷 손실율이 사전 설정된 패킷 손실율 임계값보다 크다는 것을 검출하면, 비디오 코딩 장치는 제1 참조 데이터 그룹을 재전송할 수 있다. 사전 설정된 패킷 손실율 임계값이 당업자에 의해 설정될 수 있다.
선택적으로, 제1 참조 데이터 그룹을 재전송하는 과정에서, 비디오 코딩 장치는 d개의 참조 데이터 세트를 획득할 수 있다(d는 1보다 크거나 같은 양의 정수). 여기서, d개의 참조 데이터 세트 각각에 포함된 k개의 참조 데이터는 하나의 참조 벡터를 구성할 수 있고, 구성된 d개의 참조 벡터의 어느 2개도 선형으로 서로 관련되어 있지 않으며, 구성된 d개의 참조 벡터 각각은 t개의 참조 데이터 세트를 이용하여 구성된 t개의 참조 벡터와 선형으로 관련되어 있지 않다. 그런 다음, 비디오 코딩 장치는 d개의 참조 데이터 세트를 이용하여 단계 303 및 단계 304와 유사한 기술적인 과정에 기초하여 타깃 비디오 데이터 세그먼트를 인코딩하여 d개의 제1 참조 데이터 그룹을 획득할 수 있다. 그런 다음, 비디오 코딩 장치는 n개의 프론트 엔드 서버 중 유틸리티 값이 가장 높은 하나 이상의 프론트 엔드 서버를 이용하여 d개의 제1 참조 데이터 그룹을 비디오 디코딩 장치에 송신할 수 있다(비디오 코딩 장치와 하나 이상의 프론트 엔드 서버 사이의 패킷 손실율이 사전 설정된 패킷 손실율 임계값보다 작을 필요가 있다).
단계 306: 비디오 디코딩 장치가 u개의 프론트 엔드 서버에 의해 송신된 제1 참조 데이터 그룹을 수신한다. 여기서,
Figure 112020065897225-pct00089
이다.
비디오 디코딩 장치는 프론트 엔드 서버에 의해 송신된 참조 데이터 패킷을 수신하고, 참조 데이터 패킷으로부터 제1 참조 데이터 그룹을 추출할 수 있다. 실제 적용에서, 비디오 코딩 장치와 n개의 프론트 엔드 서버 사이에 패킷 손실이 발생하지 않고, 비디오 디코딩 장치와 n개의 프론트 엔드 서버 사이에 패킷 손실이 발생하지 않으면, 비디오 디코딩 장치는 n개의 프론트 엔드 서버에 의해 송신된 a개의 참조 데이터 패킷을 수신하고, a개의 참조 데이터 패킷으로부터 t개의 제1 참조 데이터 그룹을 추출할 수 있다. 하지만, 비디오 코딩 장치와 n개의 프론트 엔드 서버 사이에 패킷 손실이 발생하거나, 또는 비디오 디코딩 장치와 n개의 프론트 엔드 서버 사이에 패킷 손실이 발생하면(일부 극단적인 경우에, 프론트 엔드 서버를 이용하여 비디오 코딩 장치에 의해 송신된 모든 참조 데이터 패킷이 유실될 수 있다), 비디오 디코딩 장치에 의해 수신된 참조 데이터 패킷의 개수가 a보다 작고, 비디오 디코딩 장치에 의해 추출된 제1 참조 데이터 그룹의 개수도 t보다 작다.
단계 307: 비디오 디코딩 장치가 수신된 제1 참조 데이터 그룹을 사전 설정된 저장 위치에 저장한다.
실제 적용에서, 인코딩을 통해 비디오 코딩 장치에 의해 획득된 참조 데이터 그룹을 서로 다른 프론트 엔드 서버에서 비디오 디코딩 장치로 송신하는 데 필요한 지속시간이 다르기 때문에, 이전의 비디오 데이터 세그먼트를 인코딩하여 획득된 모든 참조 데이터 그룹이 수신되기 전에, 비디오 디코딩 장치가 비디오 데이터 세그먼트를 인코딩하여 획득된 참조 데이터 그룹을 수신할 가능성이 높다. 예를 들어, 비디오 디코딩 장치가 비디오 데이터 스트림 내의 q번째 비디오 데이터 세그먼트를 인코딩하여 획득된 t개의 참조 데이터 그룹 중 b(
Figure 112020065897225-pct00090
)개의 참조 데이터 그룹을 수신할 때, 비디오 디코딩 장치는 비디오 데이터 스트림 내의 (q+1)번째 비디오 데이터 세그먼트를 인코딩하여 획득된 t개의 참조 데이터 그룹 중 o(
Figure 112020065897225-pct00091
)개의 참조 데이터 그룹을 추가로 수신한다.
이 경우, 사전 설정된 저장 위치는 복수의 비디오 데이터 세그먼트를 인코딩하여 획득된 참조 데이터 그룹을 동시에 저장할 필요가 있을 수 있다. 사전 설정된 저장 위치의 과도하게 작은 저장 공간으로 인해 사전 설정된 저장 위치로부터 참조 데이터 그룹이 오버플로우되는 것을 방지하기 위해, 본 출원의 본 실시예에서, 사전 설정된 저장 위치의 저장 공간 크기가 비디오 데이터 스트림 내의 비디오 데이터 세그먼트의 최대 지연 지속시간, 최소 지연 지속시간, 및 생성 지속시간에 기초하여 설정될 수 있다. 사전 설정된 저장 위치의 저장 공간 크기는 제6 공식을 만족하고, 제6 공식은,
Figure 112020065897225-pct00092
이다.
제6 공식에서, Q는 사전 설정된 저장 위치의 저장 공간 크기이고,
Figure 112020065897225-pct00093
는 최대 지연 지속시간이며, 최대 지연 지속시간은 프론트 엔드 서버를 통해 비디오 코딩 장치에서 비디오 디코딩 장치로 참조 데이터 그룹을 송신하는 데 필요한 최대 지속시간이고,
Figure 112020065897225-pct00094
는 최소 지연 지속시간이며, 최소 지연 지속시간은 프론트 엔드 서버를 통해 비디오 코딩 장치에서 비디오 디코딩 장치로 참조 데이터 그룹을 송신하는 데 필요한 최소 지속시간이고,
Figure 112020065897225-pct00095
은 비디오 데이터 세그먼트의 생성 지속시간이며, 비디오 데이터 세그먼트의 생성 지속시간은 앵커 단말기가 k개의 데이터 블록을 생성하는 데 필요한 지속시간이고, s는 비디오 데이터 세그먼트의 데이터 볼륨 크기이다.
실제 적용에서, 대안적으로, 비디오 데이터 세그먼트의 생성 지속시간은 비디오 데이터 세그먼트의 재생 지속시간과 일반적으로 동일할 수 있다. 비디오 데이터 세그먼트의 재생 지속시간은, 시청자 단말기가 k개의 데이터 블록에 기초하여 전송될 라이브 비디오를 재생할 수 있는 지속시간이다. 비디오 데이터 세그먼트의 재생 지속시간은 다음의 제7 공식을 이용하여 계산될 수 있다.
Figure 112020065897225-pct00096
제7 공식에서,
Figure 112020065897225-pct00097
은 비디오 데이터 세그먼트의 재생 지속시간이고, B는 데이터 블록의 데이터 볼륨 크기이며,
Figure 112020065897225-pct00098
는 전송될 라이브 비디오의 비디오 재생 비트 레이트이다.
B는 데이터 블록의 크기이고,
Figure 112020065897225-pct00099
는 전송될 라이브 비디오의 재생 비트 레이트이다.
비디오 데이터 세그먼트의 생성 지속시간이 비디오 데이터 세그먼트의 재생 지속시간과 같으면, 제6 공식은 제7 공식에 기초하여 다음과 같이 변형될 수 있다.
Figure 112020065897225-pct00100
단계 308: 사전 설정된 저장 위치에 저장된 제1 참조 데이터 그룹의 개수가 사전 설정된 제2 지속시간 내에 사전 설정된 개수 임계값에 도달하면, 비디오 디코딩 장치가 인코딩된 데이터 블록 및 사전 설정된 저장 위치에 저장된 제1 참조 데이터 그룹 내의 참조 데이터 세트에 기초하여 방정식 세트 행렬을 구성하고, 방정식 세트 행렬의 계산된 해 행렬의 데이터를 타깃 비디오 데이터 세그먼트의 데이터로 결정한다.
사전 설정된 개수 임계값이 비디오 디코딩 장치가 디코딩을 통해 타깃 비디오 데이터 세그먼트를 성공적으로 획득하는 데 필요한 제1 참조 데이터 그룹의 개수일 수 있다는 것을 유의해야 한다. 다시 말해, 비디오 디코딩 장치는, 수신된 제1 참조 데이터 그룹의 개수가 사전 설정된 개수 임계값에 도달한 때에만 디코딩을 통해 성공적으로 타깃 비디오 데이터 세그먼트를 획득할 수 있다.
이상적인 경우에, 구체적으로, 비디오 코딩 장치와 n개의 프론트 엔드 서버 간에 패킷 손실이 발생하지 않고, 비디오 디코딩 장치와 n개의 프론트 엔드 서버 사이에 패킷 손실이 발생하지 않으면, 비디오 디코딩 장치가 개수가 사전 설정된 개수 임계값인 제1 참조 데이터 그룹으로서 비디오 코딩 장치에 의해 송신된 제1 참조 데이터 그룹에 기초하여 디코딩을 통해 타깃 비디오 데이터 세그먼트를 획득할 수 있도록, 비디오 코딩 장치는 개수가 사전 설정된 개수 임계값인 제1 참조 데이터 그룹만을 비디오 디코딩 장치에 송신할 수 있다. 다시 말해, 이상적인 경우에, T의 값이 사전 설정된 개수 임계값과 같을 수 있다.
하지만, 실제 적용에서, 비이상적인 경우가 발생할 수 있다. 구체적으로, 비디오 코딩 장치와 n개의 프론트 엔드 서버 사이에 패킷 손실이 발생할 수 있거나, 또는 비디오 디코딩 장치와 n개의 프론트 엔드 서버 사이에 패킷 손실 발생할 수 있다. 이 경우, 비디오 디코딩 장치에 의해 수신될 수 있는 제1 참조 데이터 그룹의 개수가 t보다 작다. 따라서, 이 경우, T의 값이 사전 설정된 개수 임계값과 같으면, 비디오 디코딩 장치는 명확하게 디코딩을 통해 타깃 비디오 데이터 세그먼트를 성공적으로 획득할 수 없다. 이 경우를 피하기 위해, t의 값이 사전 설정된 개수 임계값보다 클 수 있다. 구체적으로, 비디오 코딩 장치는 사전 설정된 개수 임계값보다 큰 제1 참조 데이터 그룹을 비디오 디코딩 장치에 송신할 수 있다. 이와 같이, 비디오 디코딩 장치가 패킷 손실로 인해 t개의 제1 참조 데이터 그룹 중 일부 제1 참조 데이터 그룹을 수신할 수 없더라도, 비디오 디코딩 장치는 t의 값이 사전 설정된 개수 임계값보다 크기 때문에, 개수가 사전 설정된 개수 임계값인 제1 참조 데이터 그룹을 여전히 수신할 수 있고, 이 경우, 비디오 디코딩 장치는 디코딩을 통해 타깃 비디오 데이터 세그먼트를 여전히 성공적으로 획득할 수 있다.
하지만, t의 값이 사전 설정된 개수 임계값보다 크게 설정된다고 하더라도, 비이상적인 경우에 패킷 손실이 발생할 때, 비디오 디코딩 장치에 의해 수신될 수 있는 제1 참조 데이터 그룹의 개수가 사전 설정된 개수 임계값보다 여전히 작을 수 있다. 이 경우, 비디오 디코딩 장치는 디코딩을 통해 타깃 비디오 데이터 세그먼트를 성공적으로 획득할 수 없다. 이 경우, 비디오 디코딩 장치가 제1 참조 데이터 그룹을 수신하기 위해 계속 대기하는 것은 의미가 없으며, 그렇지 않으면 사전 설정된 저장 위치의 저장 공간이 낭비된다.
전술한 경우를 방지하기 위해, 본 출원의 일 실시예에서, 사전 설정된 제2 지속 시간이 비디오 디코딩 장치에 대해 설정될 수 있다. 비디오 디코딩 장치는 수신된 첫 번째 제1 참조 데이터 그룹을 사전 설정된 저장 위치에 저장한 후 타이밍을 시작할 수 있고, 타이밍 과정에서 실시간으로, 사전 설정된 저장 위치에 저장된 제1 참조 데이터 그룹의 개수를 모니터링할 수 있다. 비디오 디코딩 장치가 타이밍의 시작부터 사전 설정된 제2 지속시간까지의 시구간 동안, 사전 설정된 저장 위치에 저장된 제1 참조 데이터 그룹의 개수가 사전 설정된 개수 임계값에 도달하는 것을 검출하면, 비디오 디코딩 장치는 개수가 사전 설정된 개수 임계값인 제1 참조 데이터 그룹에 기초하여 디코딩을 수행하여 타깃 비디오 데이터 세그먼트를 획득할 수 있다.
하지만, 사전 설정된 저장 위치에 저장된 제1 참조 데이터 그룹의 개수가 사전 설정된 제2 지속시간의 끝에서 사전 설정된 개수 임계값보다 여전히 작으면, 패킷 손실이 발생했을 수도 있고, 비디오 디코딩 장치가 패킷 손실로 인해 개수가 사전 설정된 개수 임계값인 제1 참조 데이터 그룹을 수신할 수 없다는 것을 나타낸다. 이 경우, 비디오 디코딩 장치는 사전 설정된 저장 위치에 저장된 제1 참조 데이터 그룹을 삭제하고 현재의 디코딩 차이값을 비디오 코딩 장치에 송신할 수 있거나, 또는 비디오 디코딩 장치는 사전 설정된 저장 위치에 저장된 제1 참조 데이터 그룹을 삭제하지 않고, 현재의 디코딩 차이값을 비디오 코딩 장치에 직접 송신할 수 있다. 현재의 디코딩 차이값은, 디코딩을 통해 타깃 비디오 데이터 세그먼트를 성공적으로 획득하기 전에 비디오 디코딩 장치에 필요한 제1 참조 데이터 그룹의 개수를 반영하는 데 사용된다. 다르게 말하면, 현재의 디코딩 차이값은 사전 설정된 제2 지속시간의 끝에서 사전 설정된 저장 위치에 저장된 제1 참조 데이터 그룹의 개수(다르게 말하면, 비디오 디코딩 장치에 의해 수신된 제1 참조 데이터 그룹의 개수)와 사전 설정된 개수 임계값 사이의 차이의 절대값일 수 있다.
현재의 디코딩 차이값을 수신한 후에, 비디오 코딩 장치는 현재의 디코딩 차이값이 사전 설정된 차이 임계값보다 큰지 여부를 판정할 수 있다(사전 설정된 차이 임계값은 0일 수 있다). 비디오 코딩 장치가 현재의 디코딩 차이값이 사전 설정된 차이 임계값보다 크다고 결정하면, 비디오 디코딩 장치가 디코딩을 통해 타깃 비디오 데이터 세그먼트를 성공적으로 획득할 수 없고, 이 경우, 비디오 코딩 장치가 제1 참조 데이터 그룹을 비디오 디코딩 장치에 재전송할 필요가 있다는 것을 나타낸다. 선택적으로, 제1 참조 데이터 그룹을 재전송하는 과정에서, 비디오 코딩 장치는 m개의 참조 데이터 세트를 획득할 수 있다(m은 k보다 크거나 같은 양의 정수). 여기서, m개의 참조 데이터 세트 각각에 포함된 k개의 참조 데이터는 하나의 참조 벡터를 구성할 수 있고, 구성된 m개의 참조 벡터 중 어느 2개도 선형으로 서로 관련되어 있지 않다. 그런 다음, 비디오 코딩 장치는 단계 303 내지 단계 305와 유사한 기술적인 과정에 기초하여 m개의 참조 데이터 세트 각각을 이용하여 타깃 비디오 데이터 세그먼트를 인코딩하여, m개의 참조 데이터 세트와 일대일 대응관계에 있는 인코딩된 m개의 데이터 블록을 얻고, 그런 다음 q개의 프론트 엔드 서버를 이용하여 m개의 제1 참조 데이터 그룹을 비디오 디코딩 장치에 송신한다(q는 1보다 크거나 같은 양의 정수). 여기서, m개의 제1 참조 데이터 그룹 각각은 인코딩된 m개의 데이터 블록 및 인코딩된 데이터 블록에 대응하는 참조 데이터 세트 중 하나를 포함한다.
실제 적용에서, 비디오 디코딩 장치가 사전 설정된 저장 위치에 저장된 제1 참조 데이터 그룹을 삭제하는 경우, m은 t와 같을 수 있다. 비디오 디코딩 장치가 사전 설정된 저장 위치에 저장된 제1 참조 데이터 그룹을 삭제하지 않는 경우, m은 현재의 디코딩 차이값보다 크거나 같을 수 있고, 이 경우, m개의 참조 데이터 세트에 의해 구성된 m개의 참조 벡터는 t개의 참조 데이터 세트에 의해 구성된 t개의 참조 벡터 중 어느 하나와 선형적으로 관련되어 있지 않을 필요가 있고, 구성된 m개의 참조 벡터는 추가적으로, d개의 참조 데이터 세트에 의해 구성된 d개의 참조 벡터 중 어느 하나와 선형으로 관련되어 있지 않을 필요가 있다. 비디오 디코딩 장치가 제1 참조 데이터 그룹을 삭제하면, 제1 참조 데이터 그룹이 과도하게 긴 시간 동안 사전 설정된 저장 위치를 점유하기 때문에 다른 비디오 데이터 세그먼트를 인코딩하여 획득된 참조 데이터 그룹이 사전 설정된 저장 위치로부터 오버플로우되는 경우를 방지할 수 있다. 비디오 디코딩 장치가 제1 참조 데이터 그룹을 삭제하지 않으면, 비디오 코딩 장치가 그 후에 비디오 디코딩 장치에 재전송하는 제1 참조 데이터 그룹의 개수가 줄어듬으로써, 네트워크 자원을 절약할 수 있다.
비디오 디코딩 장치가 사전 설정된 제2 지속시간 내에, 개수가 사전 설정된 개수 임계값인 제1 참조 데이터 그룹을 수신하는 경우, 비디오 디코딩 장치가 또한 현재의 디코딩 차이값을 비디오 코딩 장치에 송신할 수 있다는 것을 유의해야 한다. 이 경우, 현재의 디코딩 차이값이 0일 수 있다. 이 경우, 비디오 코딩 장치는 현재의 디코딩 차이값에 응답하지 않을 수 있다.
비디오 디코딩 장치가 제1 참조 데이터 그룹을 수신하기를 대기하는 지속시간이 사전 설정된 제2 지속시간을 초과하지 않는 것이 보장될 수 있도록, 사전 설정된 제2 지속시간이 비디오 디코딩 장치에 대해 설정된다. 비디오 디코딩 장치가 사전 설정된 제2 지속시간의 끝에서 개수가 사전 설정된 개수 임계값인 제1 참조 데이터 그룹을 수신하지 못하면, 비디오 디코딩 장치는 현재의 디코딩 차이값을 비디오 코딩 장치에 송신함으로써, 제1 참조 데이터 그룹을 재전송하도록 비디오 코딩 장치에 지시할 수 있다.
전술한 바와 같이, 사전 설정된 제2 지속시간 내에, 사전 설정된 저장 위치에 저장된 제1 참조 데이터 그룹의 개수가 사전 설정된 개수 임계값에 도달한 것을 검출하면, 비디오 디코딩 장치는 개수가 사전 설정된 개수 임계값인 제1 참조 데이터 그룹에 기초하여 디코딩을 수행하여 타깃 비디오 데이터 세그먼트를 획득할 수 있다. 디코딩 과정에서, 비디오 디코딩 장치는 개수가 사전 설정된 개수 임계값인 제1 참조 데이터 그룹을 파싱하여, 개수가 사전 설정된 개수 임계값인 인코딩된 데이터 블록 및 개수가 사전 설정된 개수 임계값인 참조 데이터 세트를 획득할 수 있고, 그런 다음 비디오 디코딩 장치는 개수가 사전 설정된 개수 임계값인 인코딩된 데이터 블록 및 개수가 사전 설정된 개수 임계값인 참조 데이터 세트에 기초하여 방정식 세트 행렬을 구성할 수 있다. 방정식 세트 행렬은 계수 행렬, 해 행렬, 및 상수항 행렬을 포함할 수 있고, 상수항 행렬은 계수 행렬과 해 행렬을 곱하여 얻어질 수 있다.
선택적으로, 방정식 세트 행렬을 구성하는 과정에서, 비디오 디코딩 장치는 개수가 사전 설정된 개수 임계값인 인코딩된 데이터 블록을 이용하여 방정식 세트 행렬의 상수항 행렬을 구성할 수 있고, 각각의 인코딩된 데이터 블록은 상수항 행렬의 하나의 행으로 사용될 수 있다. 예를 들어, 비디오 디코딩 장치에 의해 구성된 방정식 세트 행렬의 상수항 행렬이
Figure 112020065897225-pct00101
일 수 있다. 여기서, v는 사전 설정된 개수 임계값이다.
또한, 비디오 디코딩 장치는 개수가 사전 설정된 개수 임계값인 참조 데이터 세트를 이용하여 방정식 세트 행렬의 계수 행렬을 구성할 수 있다. 여기서, 각각의 참조 데이터 세트는 계수 행렬의 하나의 행으로 사용될 수 있고, 각각의 참조 데이터 세트가 계수 행렬에 위치하는 행의 랭크가, 참조 데이터 세트에 대응하는 인코딩된 데이터 블록이 상수항 행렬에 위치하는 행의 랭크와 동일하다. 예를 들어, 비디오 디코딩 장치에 의해 구성된 방정식 세트 행렬의 계수 행렬이,
Figure 112020065897225-pct00102
일 수 있다.
참조 데이터 세트
Figure 112020065897225-pct00103
가 계수 행렬에 위치하는 행의 랭크가 i이고, 참조 데이터 세트
Figure 112020065897225-pct00104
에 대응하는 인코딩된 데이터 블록
Figure 112020065897225-pct00105
가 상수항 행렬에 위치하는 행의 랭크도 i이다.
그런 다음, 비디오 디코딩 장치는 가우스 조던 소거법(Gates-Jordan Elimination) 알고리즘에 기초하여 방정식 세트 행렬의 해 행렬
Figure 112020065897225-pct00106
을 풀 수 있다.
전술한 바와 같이, 방정식 세트 행렬의 해 행렬
Figure 112020065897225-pct00107
이 계수 행렬에 곱해져 상수항 행렬을 얻을 수 있다. 구체적으로,
Figure 112020065897225-pct00108
이다.
따라서, 전술한 인코딩 과정으로부터 알 수 잇는 것은, 방정식 세트 행렬의 해 행렬
Figure 112020065897225-pct00109
이 타깃 비디오 데이터 세그먼트에 포함된 k개의 데이터 블록을 포함하는 행렬이라는 것, 다르게 말하면,
Figure 112020065897225-pct00110
이라는 것이다.
실제 적용에서, 선형 방정식 세트의 해결책이 선형의 방정식 세트 내의 방정식의 순서와 관련되어 있지 않기 때문에, 비디오 디코딩 장치가 방정식 세트 행렬을 구성할 때, 참조 데이터 세트가, 계수 행렬 내의 v개의 참조 데이터 세트의 정렬 방식 및 상수항 행렬 내의 v개의 인코딩된 데이터 블록의 정렬 방식과 무관하게, 계수 행렬에 위치하는 행의 랭크가 참조 데이터 세트에 대응하는 인코딩된 데이터 블록이 상수항 행렬에 위치하는 행의 랭크와 동일하다는 것이면, 방정식 세트 행렬의 해 행렬이 변경되지 않고 유지된다.
Figure 112020065897225-pct00111
가 여전히 만족된다. 예를 들어, 계수 행렬 내의 v개의 참조 데이터 세트의 정렬 방식 및 상수항 행렬 내의 v개의 인코딩된 데이터 블록의 정렬 방식이 다음과 같이 변경될 때, 방정식 세트 행렬의 해 행렬이 변경되지 않고 유지되며 여전히
Figure 112020065897225-pct00112
와 동일하다.
Figure 112020065897225-pct00113
전술한 분석으로부터 알 수 있는 것은, 비디오 디코딩 장치가 v개의 제1 참조 데이터 그룹을 수신하는 순서가 디코딩을 통해 최종적으로 획득된 타깃 비디오 데이터 세그먼트 내의 k개의 데이터 블록의 순서와 무관하다는 것이다. 이와 같이, 시청자 단말기가 전송될 라이브 비디오를 정상적으로 재생하는 것이 보장될 수 있도록, 전송될 라이브 비디오 내의 비디오 데이터 스트림의 순서가 뒤바뀌는 것이 방지될 수 있다.
또한, 선형 방정식 세트의 방정식의 개수가 미지수의 개수와 같기 때문에, 방정식 세트는 고유한 해를 가지고 있다. 따라서, 방정식 세트 행렬에서, 계수 행렬의 행 랭크 v와 상수 행렬의 행 랭크 v가 모두 k와 동일한 경우에만, 방정식 세트 행렬은 고유하게 결정되는 해 행렬을 가지고 있다. 다시 말해, 비디오 디코딩 장치가 디코딩을 통해 타깃 비디오 데이터 세그먼트를 성공적으로 획득할 수 있도록, 사전 설정된 개수 임계값(v)의 값이 k와 동일할 수 있다.
단계 309: 비디오 디코딩 장치가 디코딩을 통해 획득된 타깃 비디오 데이터 세그먼트를 백그라운드 스토리지 서버에 송신한다.
이후의 기술적 과정에서, 백그라운드 스토리지 서버는 CDN 네트워크 내의 프론트 엔드 서버에 의해 송신된 시청 요청을 수신할 수 있다. 시청 요청을 수신한 후에, 프론트 엔드 서버가 타깃 비디오 데이터 세그먼트를 시청자 단말기에 송신할 수 있도록, 백그라운드 스토리지 서버는 타깃 비디오 데이터 세그먼트를 프론트 엔드 서버에 송신할 수 있다.
비디오 디코딩 장치는 타깃 비디오 데이터 세그먼트를 백그라운드 스토리지 서버에 송신하고, 그런 다음, CDN 네트워크가 라이브 비디오를 재생하는 것과 같은 기능을 지원할 수 있도록, 백그라운드 스토리지 서버는 프론트 엔드 서버를 이용하여 타깃 비디오 데이터 세그먼트를 시청자 단말기에 포워딩함으로써, 라이브 비디오 재생의 유연성이 향상된다.
결론적으로, 본 출원의 본 실시예에서 제공되는 비디오 전송 방법에서, 비디오 코딩 장치는 t개의 참조 데이터 세트를 이용하여, k개의 데이터 블록을 포함하는 타깃 비디오 데이터 세그먼트를 개별적으로 인코딩하여, t개의 참조 데이터 세트와 일대일 대응관계에 있는 인코딩된 t개의 데이터 블록을 획득한다. 여기서, t개의 참조 데이터 세트 중 임의의 k개의 참조 데이터 세트 및 임의의 k개의 참조 데이터 세트와 일대일 대응관계에 있는 k개의 인코딩된 데이터 블록은 방정식 세트 행렬을 구성할 수 있고, 방정식 세트 행렬의 해 행렬의 데이터가 타깃 비디오 데이터 세그먼트의 데이터이다. 그런 다음, 비디오 코딩 장치는 n개의 프론트 엔드 서버를 이용하여 t개의 제1 참조 데이터 그룹을 비디오 디코딩 장치에 송신할 수 있다. 여기서, 각각의 제1 참조 데이터 그룹은 인코딩된 하나의 데이터 블록 및 인코딩된 데이터 블록에 대응하는 인코딩된 데이터 세트를 포함한다. 다르게 말하면, 각각의 제1 참조 데이터 그룹은 방정식 세트 행렬에 대응하는 방정식 세트 내의 하나의 방정식이다. 이와 같이, t개의 제1 참조 데이터 그룹 중 임의의 k개의 제1 참조 데이터 그룹을 수신한 후에, 다르게 말하면, 임의의 k개의 방정식을 수신한 후에, 비디오 디코딩 장치는 방정식 세트 행렬을 구성하고, 디코딩을 통해 타깃 비디오 데이터 세그먼트를 얻기 위해 방정식 세트 행렬의 해 행렬을 풀 수 있다. 이와 같이, 패킷 손실이 발생하더라도, 비디오 코딩 장치는 t개의 제1 참조 데이터 그룹 중 k개의 참조 데이터 그룹을 수신할 가능성이 여전히 상대적으로 높다. 따라서, 패킷 손실이 발생할 때 비디오 코딩 장치가 데이터를 재전송할 필요가 있을 확률이 줄어듬으로써, 라이브 비디오의 정지 및 라이브 비디오의 지연을 방지할 수 있다. 또한, N이 1보다 크면, 비디오 코딩 장치는 복수의 경로를 이용하여, 다르게 말하면, 복수의 프론트 엔드 서버를 이용하여 라이브 비디오의 상향링크 과정에서 비디오 데이터를 송신할 수 있다. 이렇게 하면, 라이브 방송 네트워크의 상향링크 대역폭의 이용을 개선하고 또한 라이브 비디오의 정지 및 지연을 어느 정도까지 방지할 수 있다.
패킷 손실이 발생할 때 비디오 디코딩 장치가 디코딩을 통해 타깃 비디오 데이터 세그먼트를 여전히 성공적으로 획득하도록 보장하기 위해, 비디오 코딩 장치는 t의 값을 사전 설정된 개수 임계값보다 큰 값(즉, k)으로 설정할 필요가 있다. 실제 적용에서, t의 값이 과도하게 큰 값으로 설정되면, 비디오 코딩 장치는 디코딩을 위해 작동하지 않는 과도한 제1 참조 데이터 그룹을 비디오 디코딩 장치에 송신함으로써, 라이브 방송 네트워크의 네트워크 자원을 낭비하고; t의 값이 과도하게 작은 값으로 설정되면, 비디오 디코딩 장치는 패킷 손실이 발생할 때 개수가 사전 설정된 개수 임계값인 제1 참조 데이터 그룹을 수신할 수 없으므로, 비디오 디코딩 장치는 디코딩을 통해 타깃 비디오 데이터 세그먼트를 성공적으로 획득할 수 없다. 따라서, 본 출원에서 제공되는 비디오 전송 방법에서 t를 적절한 값으로 설정하는 방법이 중요하다. 이 문제를 해결하기 위해, 본 출원의 일 실시예에서는 다른 비디오 전송 방법이 제공된다. 비디오 전송 방법은 도 2a 또는 도 2b에 도시된 라이브 방송 네트워크에 적용될 수 있다. 도 3a에 도시된 실시예의 단계 301 내지 단계 309의 기술적 과정 외에, 비디오 전송 방법은 도 4에 도시된 단계 401와 단계 402를 더 포함할 수 있다. 단계 401과 단계 402는 단계 302보다 먼저 수행될 수 있다.
단계 401: 타깃 비디오 데이터 세그먼트가 전송될 라이브 비디오의 비디오 데이터 스트림으로부터 비디오 코딩 장치에 의해 획득되는 제1 비디오 데이터 세그먼트이면, 비디오 코딩 장치가 라이브 방송 네트워크의 평균 패킷 손실율에 기초하여 t의 값을 결정한다.
전술한 바와 같이, 비디오 코딩 장치는 전송될 라이브 비디오의 비디오 데이터 스트림으로부터 복수의 비디오 데이터 세그먼트를 연속적으로 획득할 수 있고, 타깃 비디오 데이터 세그먼트는 복수의 비디오 데이터 세그먼트 중 하나이다. 타깃 비디오 데이터 세그먼트가 비디오 데이터 스트림으로부터 비디오 코딩 장치에 의해 획득되는 제1 비디오 데이터 세그먼트이면, 비디오 코딩 장치는 t개의 참조 데이터 세트를 획득하기 전에 라이브 방송 네트워크의 평균 패킷 손실율에 기초하여 t의 값을 먼저 결정할 수 있다. 선택적으로, 이 경우, 비디오 코딩 장치는 제2 공식에 기초하여 t의 값을 계산할 수 있고, 제2 공식은,
Figure 112020065897225-pct00114
이다.
제2 공식에서,
Figure 112020065897225-pct00115
는 라이브 방송 네트워크의 평균 패킷 손실율로 경험적인 값에 기초하여 설정될 수 있고, 예를 들어,
Figure 112020065897225-pct00116
는 0.03으로 설정될 수 있고;
Figure 112020065897225-pct00117
는 잘라버림 연산자 rounding down operator)이며; min()은 최소화 연산이다.
단계 402: 타깃 비디오 데이터 세그먼트가 비디오 데이터 스트림으로부터 비디오 코딩 장치에 의해 획득되는 (p+1)번째 비디오 데이터 세그먼트인 경우(p는 1보다 크거나 같은 양의 정수), 비디오 코딩 장치가 수신된 p개의 이력 디코딩 차이값(historical decoding difference)에 기초하여 t의 값을 결정한다.
본 출원의 본 실시예에서, 비디오 데이터 스트림으로부터 비디오 코딩 장치에 의해 획득되는 각각의 비디오 데이터 세그먼트에 대해, 비디오 디코딩 장치는 디코딩 차이값을 비디오 코딩 장치에 반환할 수 있다. 비디오 코딩 장치가 타깃 비디오 데이터 세그먼트를 인코딩하기 전에, 비디오 디코딩 장치가 비디오 코딩 장치에 반환하는 디코딩 차이값을 이력 디코딩 차이값이라고도 할 수 있고, 비디오 디코딩 장치가 비디오 코딩 장치에 반환하는 타깃 비디오 데이터 세그먼트에 대한 디코딩 차이값을 현재의 디코딩 차이값이라고도 할 수 있다.
전술한 설명으로부터 알 수 있는 것은, 타깃 비디오 데이터 세그먼트를 인코딩하기 전에, 비디오 코딩 장치가 비디오 디코딩 장치에 의해 송신된 p개의 이력 디코딩 차이값을 수신할 수 있다는 것이다. 여기서, p개의 이력 디코딩 차이값 중 i번째 이력 디코딩 차이값은 사전 설정된 제2 지속시간의 끝에서 디코딩을 통해 i번째 비디오 데이터 세그먼트를 성공적으로 획득하기 전에 비디오 디코딩 장치에 필요한 참조 데이터 그룹의 개수를 반영하는 데 사용되고, i번째 비디오 데이터 세그먼트는, 타깃 비디오 데이터 세그먼트을 획득하기 전에 비디오 데이터 스트림으로부터 비디오 코딩 장치에 의해 획득되는 p개의 비디오 데이터 세그먼트 중 i번째 비디오 데이터 세그먼트이다.
선택적으로, 비디오 디코딩 장치가 디코딩을 통해 i번째 비디오 데이터 세그먼트를 성공적으로 획득하는 경우, i번째 이력 디코딩 차이값
Figure 112020065897225-pct00118
=0이고; 비디오 디코딩 장치가 디코딩을 통해 i번째 비디오 데이터 세그먼트를 획득하지 못하는 경우, i번째 이력 디코딩 차이값
Figure 112020065897225-pct00119
=y-x이다. 여기서, y는 비디오 디코딩 장치가 디코딩을 통해 i번째 비디오 데이터 세그먼트를 성공적으로 획득하는 데 필요한 참조 데이터 그룹의 개수이다. 본 출원의 본 실시예에서, y는 사전 설정된 개수 임계값과 같을 수 있다. 다르게 말하면, y는 k와 같을 수 있고, x는 i번째 비디오 데이터 세그먼트를 인코딩하여 비디오 디코딩 장치에 의해 획득되는 참조 데이터 그룹의 개수이다.
타깃 비디오 데이터 세그먼트가 비디오 코딩 장치가 비디오 데이터 스트림으로부터 획득하는 (p+1)번째 비디오 데이터 세그먼트인 경우, 비디오 코딩 장치는 t개의 참조 데이터 세트를 획득하기 전에, 수신된 p개의 이력 디코딩 차이값에 기초하여 t의 값을 먼저 결정할 수 있다. 선택적으로, 이 경우, 비디오 코딩 장치는 제1 공식에 기초하여 t의 값을 계산할 수 있고, 제1 공식은,
Figure 112020065897225-pct00120
이다.
제1 공식에서,
Figure 112020065897225-pct00121
이고
Figure 112020065897225-pct00122
이다. 여기서,
Figure 112020065897225-pct00123
는 p개의 이력 디코딩 차이값 중 i번째 이력 디코딩 차이값이고,
Figure 112020065897225-pct00124
이며, g는 가중치 파라미터이고,
Figure 112020065897225-pct00125
이며, g는 일반적으로 0.1 또는 0.2일 수 있고,
Figure 112020065897225-pct00126
는 상기 비디오 데이터 스트림 내의 p번째 비디오 데이터 세그먼트를 인코딩하기 전에 상기 비디오 코딩 장치에 의해 획득되는 참조 데이터 세트의 개수이다.
결론적으로, 본 출원의 본 실시예에서 제공된 비디오 전송 방법에서, 비디오 코딩 장치는 k개의 데이터 블록을 포함하는 타깃 비디오 데이터 세그먼트를 t개의 참조 데이터 세트를 이용하여 개별적으로 인코딩함으로써, t개의 참조 데이터 세트와 일대일 대응관계에 있는 인코딩된 t개의 데이터 블록을 획득한다. 여기서, t개의 참조 데이터 세트 중 임의의 k개의 참조 데이터 세트 및 임의의 k개의 참조 데이터 세트와 일대일 대응관계에 있는 k개의 인코딩된 데이터 블록은 방정식 세트 행렬을 구성할 수 있고, 방정식 세트 행렬의 해 행렬의 데이터가 타깃 비디오 데이터 세그먼트의 데이터이다. 그런 다음, 비디오 코딩 장치는 n개의 프론트 엔드 서버를 이용하여 t개의 제1 참조 데이터 그룹을 비디오 디코딩 장치에 송신할 수 있다. 여기서, 각각의 제1 참조 데이터 그룹은 인코딩된 하나의 데이터 블록 및 인코딩된 데이터 블록에 대응하는 인코딩된 데이터 세트를 포함한다. 다르게 말하면, 각각의 제1 참조 데이터 그룹은 방정식 세트 행렬에 대응하는 방정식 세트 내의 하나의 방정식이다. 이와 같이, t개의 제1 참조 데이터 그룹 중 임의의 k개의 제1 참조 데이터 그룹을 수신한 후에, 다르게 말하면, 임의의 k개의 방정식을 수신한 후에, 비디오 디코딩 장치는 방정식 세트 행렬을 구성하고, 디코딩을 통해 타깃 비디오 데이터 세그먼트를 얻기 위해 방정식 세트 행렬의 해 행렬을 풀 수 있다. 이와 같이, 패킷 손실이 발생하더라도, 비디오 코딩 장치는 t개의 제1 참조 데이터 그룹 중 k개의 참조 데이터 그룹을 수신할 확률이 여전히 상대적으로 크다. 따라서, 패킷 손실이 발생할 때 비디오 코딩 장치가 데이터를 재전송할 필요가 있을 확률이 줄어듬으로써, 라이브 비디오의 정지 및 지연을 어느 정도까지 방지할 수 있다. 또한, N이 1보다 크면, 비디오 코딩 장치는 복수의 경로를 이용하여, 다르게 말하면, 복수의 프론트 엔드 서버를 이용하여 라이브 비디오의 상향링크 과정에서 비디오 데이터를 송신할 수 있다. 이렇게 하면, 라이브 방송 네트워크의 상향링크 대역폭의 이용을 개선하고 또한 라이브 비디오의 정지 및 지연을 어느 정도까지 방지할 수 있다.
또한, t개의 참조 데이터 세트를 획득하기 전에, 비디오 코딩 장치가 t에 대한 적절한 값을 설정하는 것이 보장될 수 있도록, 비디오 코딩 장치는 제1 공식 또는 제2 공식에 기초하여 t의 값을 결정함으로서, 라이브 방송 네트워크의 네트워크 자원의 낭비를 방지하고 또한 비디오 디코딩 장치가 디코딩을 통해 타깃 비디오 데이터 세그먼트를 성공적으로 획득할 수 없는 경우를 방지한다.
실제 적용에서, 비디오 데이터 세그먼트에 포함된 데이터 블록의 개수(k)는 비디오 데이터 세그먼트의 상향링크 지연과 관련되어 있다. 여기서, 상향링크 지연은 비디오 데이터 세그먼트가 앵커 단말기에서 비디오 디코딩 장치로 송신될 때 획득되는 전송 지연이다. 따라서, 본 출원의 본 실시예에서, 상향링크 지연이 사전 설정된 전송 지연 범위에 포함될 수 있도록, k에 대해 적절한 값이 설정될 수 있다. 전술한 기술적인 과정을 구현하기 위해, 본 출원의 실시예는 다른 비디오 전송 방법을 제공한다. 비디오 전송 방법은 도 2a 또는 도 2b에 도시된 라이브 방송 네트워크에 적용될 수 있다. 도 3a에 도시된 단계 301 내지 단계 309의 기술적인 과정 외에도, 비디오 전송 방법은 단계 501은 도 5a에 도시된 단계 501을 더 포함할 수 있다. 단계 501이 단계 301보다 먼저 수행될 수 있다.
단계 501: 비디오 코딩 장치가 k의 값을 결정한다.
본 출원의 본 실시예에서, 비디오 코딩 장치는 다른 장치에 의해 송신된 구성 명령을 수신할 수 있다. 여기서, 구성 명령은 k의 값을 나타낼 수 있고, 구성 명령이 나타내는 k의 값은 전송 지연이 사전 설정된 전송 지연 범위에 포함되게 할 수 있거나; 또는 k에 대응하는 전송 지연이 사전 설정된 전송 지연 범위에 포함될 수 있도록, 비디오 코딩 장치는 전송 지연과 데이터 블록의 개수(k) 사이의 사전 설정된 대응관계에 기초하여 k의 값을 결정할 수 있다. "전송 지연"이 비디오 데이터 세그먼트의 상향링크 지연이라는 것을 유의해야 한다. 다시 말해, "전송 지연"은 비디오 데이터 세그먼트가 앵커 단말기에서 비디오 디코딩 장치로 송신될 때 획득되는 전송 지연이다.
이하, 비디오 코딩 장치가 본 출원의 본 실시예에서의 전송 지연와 데이터 블록의 개수(k) 사이의 사전 설정된 대응관계에 기초하여 k의 값을 결정하는 기술적인 과정에 대해 설명한다.
실제 적용에서, 전송 지연은 일반적으로, 앵커 단말기가 하나의 비디오 데이터 세그먼트를 생성하는 데 필요한 지속시간, 비디오 코딩 장치가 비디오 데이터 세그먼트를 인코딩하는 데 필요한 지속시간, 비디오 코딩 장치가 인코딩된 비디오 데이터 세그먼트를 n개의 프론트 엔드 서버에 송신하는 데 필요한 지속시간, n개의 프론트 엔드 서버가 인코딩된 비디오 데이터 세그먼트를 비디오 디코딩 장치에 송신하는 데 필요한 지속시간, 및 비디오 디코딩 장치가 비디오 데이터 세그먼트를 디코딩하는 데 필요한 지속시간을 포함할 수 있다.
비디오 코딩 장치가 비디오 코딩 서버인 경우, 전송 지연이 앵커 단말기가 비디오 데이터 세그먼트를 비디오 코딩 서버에 송신하는 데 필요한 지속시간을 더 포함할 수 있다는 것을 유의해야 한다. 하지만, 비디오 코딩 서버가 일반적으로 지리적으로 앵커 단말기에 상대적으로 가까운 위치, 예컨대 기지국에 배치되기 때문에, 앵커 단말기가 비디오 데이터 세그먼트를 비디오 코딩 서버에 송신하는 데 필요한 지속시간이 무시될 수 있다.
앵커 단말기가 하나의 비디오 데이터 세그먼트를 생성하는 데 필요한 지속시간(
Figure 112020065897225-pct00127
)은 일반적으로 비디오 데이터 세그먼트의 재생 지속시간(
Figure 112020065897225-pct00128
)과 동일하고, 비디오 데이터 세그먼트의 재생 지속시간은 시청자 단말기가 하나의 비디오 데이터 세그먼트에 기초하여 전송될 라이브 비디오를 재생할 수 있는 지속시간이다. 비디오 데이터 세그먼트의 재생 지속시간은 제7 공식을 이용하여 계산될 수 있고, 제7 공식은,
Figure 112020065897225-pct00129
이다.
B는 데이터 블록의 데이터 볼륨 크기이고,
Figure 112020065897225-pct00130
는 전송될 라이브 비디오의 비디오 재생 비트 레이트이다.
비디오 코딩 장치가 비디오 데이터 세그먼트를 인코딩하는 데 필요한 지속시간은 비디오 디코딩 장치가 비디오 데이터 세그먼트를 디코딩하는 데 필요한 지속시간과 동일하고, 이러한 지속시간은 모두
Figure 112020065897225-pct00131
이다.
Figure 112020065897225-pct00132
Figure 112020065897225-pct00133
은 비디오 코딩 장치가 데이터 볼륨 크기가
Figure 112020065897225-pct00134
Figure 112020065897225-pct00135
개의 데이터 블록을 포함하는 비디오 데이터 세그먼트 인코딩하거나 또는 디코딩하는 데 필요한 지속시간이다. 측정을 통해 발견되는 것은,
Figure 112020065897225-pct00136
이고
Figure 112020065897225-pct00137
일 때,
Figure 112020065897225-pct00138
이고, 따라서
Figure 112020065897225-pct00139
은 대안적으로,
Figure 112020065897225-pct00140
일 수 있다는 것이다.
비디오 코딩 장치가 인코딩된 비디오 데이터 세그먼트를 n개의 프론트 엔드 서버에 송신하는 데 필요한 지속시간(
Figure 112020065897225-pct00141
)은,
Figure 112020065897225-pct00142
이다.
여기서, e는 자연 로그의 기본 수이고, t는 비디오 코딩 장치에 의해 획득된 참조 데이터 세트의 개수이며,
Figure 112020065897225-pct00143
는 상수이고,
Figure 112020065897225-pct00144
은 비디오 코딩 장치와 n개의 프론트 엔드 서버 각각 사이의 패킷 손실율의 최소값이며,
Figure 112020065897225-pct00145
는 라이브 방송 네트워크의 평균 패킷 손실율로 경험적인 값에 기초하여 설정될 수 있고, 예를 들어,
Figure 112020065897225-pct00146
는 0.03으로 설정될 수 있고,
Figure 112020065897225-pct00147
은 비디오 코딩 장치와 n개의 프론트 엔드 서버 중 w번째 프론트 엔드 서버 사이의 데이터 전송 레이트이고,
Figure 112020065897225-pct00148
는 비디오 코딩 장치와 n개의 프론트 엔드 서버 중 w번째 프론트 엔드 서버 사이의 패킷 손실율이다.
n개의 프론트 엔드 서버가 인코딩된 비디오 데이터 세그먼트를 비디오 디코딩 장치에 송신하는 데 필요한 지속시간(
Figure 112020065897225-pct00149
)은,
Figure 112020065897225-pct00150
이다.
여기서,
Figure 112020065897225-pct00151
는 n개의 프론트 엔드 서버 중 v번째 프론트 엔드 서버와 비디오 디코딩 장치 사이의 데이터 패킷의 왕복 지속시간이고,
Figure 112020065897225-pct00152
는 n개의 프론트 엔드 서버 중 v번째 프론트 엔드 서버와 비디오 디코딩 장치 사이의 패킷 손실율이며, RTO는 재전송 타임아웃(Retransmission Timeout)이고, max()는 최대화 연산을 나타낸다.
전술한 분석으로부터 알 수 있는 것은, 전송 지연과 데이터 블록의 개수(k) 사이의 대응관계가,
Figure 112020065897225-pct00153
일 수 있다는 것이다.
여기서,
Figure 112020065897225-pct00154
는 전송 지연이고,
Figure 112020065897225-pct00155
는 에러 지연으로 링크 정지와 같은 이유로 인해 야기되는 에러 지연이며, 일반적으로,
Figure 112020065897225-pct00156
의 값이 경험적인 값에 기초하여 획득될 수 있다.
도 5b는 전송 지연과 데이터 블록의 개수(k) 사이의 대응관계의 예시적인 개략도이다. 도 5b에 도시된 바와 같이, 전송 지연이 100 ms보다 작다는 것이 보장될 필요가 있는 경우, k가 30으로 설정될 수 있다.
결론적으로, 본 출원의 본 실시예에서 제공된 비디오 전송 방법에서, 비디오 코딩 장치는 k개의 데이터 블록을 포함하는 타깃 비디오 데이터 세그먼트를 t개의 참조 데이터 세트를 이용하여 개별적으로 인코딩함으로써, t개의 참조 데이터 세트와 일대일 대응관계에 있는 인코딩된 t개의 데이터 블록을 획득한다. 여기서, t개의 참조 데이터 세트 중 임의의 k개의 참조 데이터 세트 및 임의의 k개의 참조 데이터 세트와 일대일 대응관계에 있는 k개의 인코딩된 데이터 블록은 방정식 세트 행렬을 구성할 수 있고, 방정식 세트 행렬의 해 행렬의 데이터가 타깃 비디오 데이터 세그먼트의 데이터이다. 그런 다음, 비디오 코딩 장치는 n개의 프론트 엔드 서버를 이용하여 t개의 제1 참조 데이터 그룹을 비디오 디코딩 장치에 송신할 수 있다. 여기서, 각각의 제1 참조 데이터 그룹은 인코딩된 하나의 데이터 블록 및 인코딩된 데이터 블록에 대응하는 인코딩된 데이터 세트를 포함한다. 다르게 말하면, 각각의 제1 참조 데이터 그룹은 방정식 세트 행렬에 대응하는 방정식 세트 내의 하나의 방정식이다. 이와 같이, t개의 제1 참조 데이터 그룹 중 임의의 k개의 제1 참조 데이터 그룹을 수신한 후에, 다르게 말하면, 임의의 k개의 방정식을 수신한 후에, 비디오 디코딩 장치는 방정식 세트 행렬을 구성하고, 디코딩을 통해 타깃 비디오 데이터 세그먼트를 얻기 위해 방정식 세트 행렬의 해 행렬을 풀 수 있다. 이와 같이, 패킷 손실이 발생하더라도, 비디오 코딩 장치는 t개의 제1 참조 데이터 그룹 중 k개의 참조 데이터 그룹을 수신할 확률이 여전히 상대적으로 크다. 따라서, 패킷 손실이 발생할 때 비디오 코딩 장치가 데이터를 재전송할 필요가 있을 확률이 줄어듬으로써, 라이브 비디오의 정지 및 지연을 어느 정도까지 방지할 수 있다. 또한, N이 1보다 크면, 비디오 코딩 장치는 복수의 경로를 이용하여, 다르게 말하면, 복수의 프론트 엔드 서버를 이용하여 라이브 비디오의 상향링크 과정에서 비디오 데이터를 송신할 수 있다. 이렇게 하면, 라이브 방송 네트워크의 상향링크 대역폭의 이용을 개선하고 또한 라이브 비디오의 정지 및 지연을 어느 정도까지 방지할 수 있다.
또한, 비디오 데이터 세그먼트의 상향링크 지연이 사전 설정된 전송 지연 범위에 포함될 수 있도록, 적절한 값이 k에 대해 설정됨으로써, 비디오 데이터 세그먼트의 상향링크 레이트를 보장하고 또한 정지가 매우 빈번하게 일어나거나 또는 시청자 단말기가 전송될 라이브 비디오를 재생할 때 지연이 매우 긴 현상을 방지한다.
다음은 본 출원의 장치 실시예이며, 장치 실시예가 본 출원의 방법 실시예를 실행하는 데 사용될 수 있다. 본 출원의 장치 실시예에서 개시되지 않은 세부 사항에 대해서는 본 출원의 방법 실시예를 참조하라.
도 6은 본 출원의 일 실시예에 따른 비디오 전송 장치(600)의 블록도이다. 비디오 전송 장치(600)는 비디오 코딩 장치일 수 있다. 도 6을 참조하면, 비디오 전송 장치(600)는 제1 획득 모듈(601), 제2 획득 모듈(602), 인코딩 모듈(603), 및 송신 모듈(604)을 포함할 수 있다.
제1 획득 모듈(601)은 타깃 비디오 데이터 세그먼트를 획득하도록 구성된다. 여기서, 타깃 비디오 데이터 세그먼트는 전송될 라이브 비디오의 비디오 데이터 스트림 내의 데이터의 세그먼트이고, 타깃 비디오 데이터 세그먼트는 k개의 데이터 블록을 포함하며, k는 1보다 크거나 같은 양의 정수이다.
제2 획득 모듈(602)은 t개의 참조 데이터 세트를 획득하도록 구성된다. 여기서, 각각의 참조 데이터 세트는 적어도 하나의 참조 데이터를 포함하고, t는 k보다 큰 양의 정수이다.
인코딩 모듈(603)은 각각의 참조 데이터 세트를 이용하여 타깃 비디오 데이터 세그먼트를 인코딩하도록 구성되어, t개의 참조 데이터 세트와 일대일 대응관계에 있는 인코딩된 t개의 데이터 블록을 획득한다. 여기서, t개의 참조 데이터 세트 중 임의의 k개의 참조 데이터 세트 및 임의의 k개의 참조 데이터 세트와 일대일 대응관계에 있는 k개의 인코딩된 데이터 블록은 방정식 세트 행렬을 구성할 수 있고, 방정식 세트 행렬의 해 행렬의 데이터가 타깃 비디오 데이터 세그먼트의 데이터이다.
송신 모듈(604)은 n개의 프론트 엔드 서버를 이용하여 t개의 제1 참조 데이터 그룹을 비디오 디코딩 장치에 송신하도록 구성된다. 여기서, N은 1보다 크거나 같은 양의 정수이다.
각각의 제1 참조 데이터 그룹은 인코딩된 하나의 데이터 블록 및 대응하는 참조 데이터 세트를 포함한다.
선택적으로, 각각의 참조 데이터 세트는 k개의 데이터 블록과 일대일 대응관계에 있는 k개의 참조 데이터를 포함하고, 인코딩 모듈(603)은, 각각의 참조 데이터 세트에 대해, 대응하는 데이터 블록을 참조 데이터 세트에 포함된 각각의 참조 데이터에 곱하여 k개의 곱을 획득하고; 참조 데이터 세트에 대응하는 인코딩된 데이터 블록을 획득하기 위해 k개의 곱을 더하도록 구성된다.
선택적으로, 제1 획득 모듈(601)은, 전송될 라이브 비디오의 비디오 데이터 스트림을 획득하고; 비디오 데이터 스트림으로부터 데이터 블록을 획득하며; 사전 설정된 제1 지속시간 내에, 획득된 데이터 블록의 개수가 k보다 작지 않으면, 획득된 k개의 데이터 블록을 이용하여 타깃 비디오 데이터 세그먼트를 형성하거나; 또는 획득된 데이터 블록의 개수가 사전 설정된 제1 지속시간의 끝에서 k보다 작으면, 획득된 데이터 블록을 사전 설정된 데이터를 이용하여 패딩하여 k개의 데이터 블록을 획득하고, 패딩을 통해 획득된 k개의 데이터 블록을 이용하여 타깃 비디오 데이터 세그먼트를 형성하도록 구성된다.
본 출원의 실시예는 다른 비디오 전송 장치(700)를 추가로 제공한다. 비디오 전송 장치(600)에 포함된 모듈 외에, 비디오 전송 장치(700) 제1 결정 모듈(605), 제2 결정 모듈(606), 제3 결정 모듈(607), 및 제4 결정 모듈(608)을 더 포함한다.
제1 결정 모듈(605)은, 비디오 디코딩 장치에 의해 송신된 p개의 이력 디코딩 차이값을 수신하고 - 여기서, p개의 이력 디코딩 차이값은 비디오 데이터 스트림 내의 타깃 비디오 데이터 세그먼트에 선행하는 p개의 비디오 데이터 세그먼트와 일대일 대응관계에 있고, 각각의 이력 디코딩 차이값은, 디코딩을 통해 대응하는 비디오 데이터 세그먼트를 성공적으로 획득하는 단계 이전에 사전 설정된 제2 지속시간의 끝에서 비디오 디코딩 장치에 필요한 참조 데이터 그룹의 개수를 반영하는 데 사용됨 -; p개의 이력 디코딩 차이값에 기초하여, 획득될 필요가 있는 참조 데이터 세트의 개수(t)의 값을 결정하도록 구성된다.
p개의 이력 디코딩 차이값 중 i번째 이력 디코딩 차이값
Figure 112020065897225-pct00157
는,
비디오 디코딩 장치가 디코딩을 통해 사전 설정된 제2 지속시간 내에, 비디오 데이터 스트림 내의 i번째 비디오 데이터 세그먼트로서 과거의 i번째 디코딩 차이값에 대응하는 i번째 비디오 데이터 세그먼트를 성공적으로 획득하는 경우,
Figure 112020065897225-pct00158
=0이라는 것; 및
비디오 디코딩 장치가 사전 설정된 제2 지속시간의 끝에서 디코딩을 통해 i번째 비디오 데이터 세그먼트를 획득하지 못한 경우,
Figure 112020065897225-pct00159
=y-x이라는 것을 만족한다.
여기서, y는 비디오 디코딩 장치가 디코딩을 통해 i번째 비디오 데이터 세그먼트를 성공적으로 획득하는 데 필요한 참조 데이터 그룹의 개수이고, x는 사전 설정된 제2 지속시간의 끝에서 비디오 디코딩 장치에 의해 획득되는 i번째 비디오 데이터 세그먼트에 대응하는 참조 데이터 그룹의 개수이며,
Figure 112020065897225-pct00160
이다.
제1 결정 모듈(605)은,
p개의 이력 디코딩 차이값과 제1 공식에 기초하여, 획득될 필요가 있는 참조 데이터 세트의 개수(t)의 값을 계산하도록 구성된다. 여기서, 제1 공식은,
Figure 112020065897225-pct00161
이다.
여기서,
Figure 112020065897225-pct00162
이고,
Figure 112020065897225-pct00163
이며, g는 가중치 파라미터이고,
Figure 112020065897225-pct00164
는 p개의 이력 디코딩 차이값 중 i번째 이력 디코딩 차이값이며,
Figure 112020065897225-pct00165
는 비디오 데이터 스트림 내의 p번째 비디오 데이터 세그먼트를 인코딩하기 전에 비디오 코딩 장치에 의해 획득되는 참조 데이터 세트의 개수이다.
타깃 비디오 데이터 세그먼트는 비디오 데이터 스트림으로부터 비디오 코딩 장치에 의해 획득된 제1 비디오 데이터 세그먼트이고, 제2 결정 모듈(606)은 라이브 방송 네트워크의 평균 패킷 손실율에 기초하여, 획득될 필요가 있는 참조 데이터 세트의 개수(t)의 값을 결정하도록 구성된다.
제2 결정 모듈(606)은,:
라이브 방송 네트워크의 평균 패킷 손실율과 제2 공식에 기초하여, 획득될 필요가 있는 참조 데이터 세트의 개수(t)의 값을 계산하도록 구성된다. 여기서, 제2 공식은,
Figure 112020065897225-pct00166
이다.
여기서,
Figure 112020065897225-pct00167
는 라이브 방송 네트워크의 평균 패킷 손실율이고,
Figure 112020065897225-pct00168
는 잘라버림 연산자이다.
제3 결정 모듈(607)은,
비디오 코딩 장치로의 통신 연결을 구축한 r개의 프론트 엔드 서버를 결정하고 - 여기서, r은 n보다 크거나 같은 양의 정수임 -;
비디오 코딩 장치와 r개의 프론트 엔드 서버 각각 사이의 데이터 전송 레이트에 기초하여 r개의 프론트 엔드 서버로부터 n개의 프론트 엔드 서버를 결정하도록 구성된다. 여기서, n 프론트 엔드 서버와 비디오 코딩 장치 사이의 통신 품질은 다른 프론트 엔드 서버와 비디오 코딩 장치 사이의 통신 품질보다 우수하다.
제3 결정 모듈(607)은,
비디오 코딩 장치와 r개의 프론트 엔드 서버 각각 사이의 데이터 전송 레이트와 제3 공식에 기초하여 각각의 프론트 엔드 서버의 유틸리티 값을 계산하고 - 여기서, 제3 공식은,
Figure 112020065897225-pct00169
이고,
Figure 112020065897225-pct00170
는 상기 r개의 프론트 엔드 서버 중 j번째 프론트 엔드 서버의 유틸리티 값이고,
Figure 112020065897225-pct00171
이며,
Figure 112020065897225-pct00172
는 상기 비디오 코딩 장치와 상기 j번째 프론트 엔드 서버 사이의 데이터 전송 레이트이고,
Figure 112020065897225-pct00173
는 상기 비디오 코딩 장치와 상기 j번째 프론트 엔드 서버 사이의 패킷 손실율이며,
Figure 112020065897225-pct00174
는 상기 라이브 방송 네트워크의 평균 패킷 손실율이고,
Figure 112020065897225-pct00175
는 상수임 -;
유틸리티 값의 내림차순으로 r개의 프론트 엔드 서버로부터 n개의 프론트 엔드 서버를 결정하도록 구성된다.
송신 모듈(604)은,
제4 공식에 기초하여, n개의 프론트 엔드 서버 각각에 대응하는 제1 참조 데이터 그룹의 개수를 결정하고 - 여기서, 제4 공식은,
Figure 112020065897225-pct00176
이고,
Figure 112020065897225-pct00177
은 n개의 프론트 엔드 서버 중 제1 프론트 엔드 서버에 대응하는 제1 참조 데이터 그룹의 개수이고,
Figure 112020065897225-pct00178
은 제1 프론트 엔드 서버의 유틸리티 값이며,
Figure 112020065897225-pct00179
는 n개의 프론트 엔드 서버의 유틸리티 값의 합이며,
Figure 112020065897225-pct00180
임 -;
프론트 엔드 서버가 수신된 제1 참조 데이터 그룹을 비디오 디코딩 장치에 송신할 수 있도록, 제1 참조 데이터 그룹의 대응하는 개수를 각각의 프론트 엔드 서버에 송신하도록 구성된다.
제4 결정 모듈(608)은,
데이터 블록의 개수(k)에 대응하는 전송 지연이 사전 설정된 전송 지연 범위에 포함될 수 있도록, 전송 지연과 데이터 블록의 개수 사이의 사전 설정된 대응관계에 기초하여 타깃 비디오 세그먼트 내의 데이터 블록의 개수(k)를 결정하도록 구성되고;
전송 지연은 앵커 단말기가 비디오 데이터 세그먼트를 비디오 디코딩 장치에 송신할 때 존재하는 전송 지연이다.
결론적으로, 본 출원의 본 실시예에서 제공되는 비디오 전송 장치는 k개의 데이터 블록을 포함하는 타깃 비디오 데이터 세그먼트를 t개의 참조 데이터 세트를 이용하여 개별적으로 인코딩하여, t개의 참조 데이터 세트와 일대일 대응관계에 있는 인코딩된 t개의 데이터 블록을 획득한다. 여기서, t개의 참조 데이터 세트 중 임의의 k개의 참조 데이터 세트 및 임의의 k개의 참조 데이터 세트와 일대일 대응관계에 있는 k개의 인코딩된 데이터 블록은 방정식 세트 행렬을 구성할 수 있고, 방정식 세트 행렬의 해 행렬의 데이터가 타깃 비디오 데이터 세그먼트의 데이터이다. 그런 다음, 비디오 코딩 장치는 n개의 프론트 엔드 서버를 이용하여 t개의 제1 참조 데이터 그룹을 비디오 디코딩 장치에 송신할 수 있다. 여기서, 각각의 제1 참조 데이터 그룹은 인코딩된 하나의 데이터 블록 및 인코딩된 데이터 블록에 대응하는 인코딩된 데이터 세트를 포함한다. 다르게 말하면, 각각의 제1 참조 데이터 그룹은 방정식 세트 행렬에 대응하는 방정식 세트 내의 하나의 방정식이다. 이와 같이, t개의 제1 참조 데이터 그룹 중 임의의 k개의 제1 참조 데이터 그룹을 수신한 후에, 다르게 말하면, 임의의 k개의 방정식을 수신한 후에, 비디오 디코딩 장치는 방정식 세트 행렬을 구성하고, 디코딩을 통해 타깃 비디오 데이터 세그먼트를 얻기 위해 방정식 세트 행렬의 해 행렬을 풀 수 있다. 이와 같이, 패킷 손실이 발생하더라도, 비디오 코딩 장치는 t개의 제1 참조 데이터 그룹 중 k개의 참조 데이터 그룹을 수신할 확률이 여전히 상대적으로 크다. 따라서, 패킷 손실이 발생할 때 비디오 코딩 장치가 데이터를 재전송할 필요가 있을 확률이 줄어듬으로써, 라이브 비디오의 정지 및 지연을 어느 정도까지 방지할 수 있다. 또한, N이 1보다 크면, 비디오 코딩 장치는 복수의 경로를 이용하여, 다르게 말하면, 복수의 프론트 엔드 서버를 이용하여 라이브 비디오의 상향링크 과정에서 비디오 데이터를 송신할 수 있다. 이렇게 하면, 라이브 방송 네트워크의 상향링크 대역폭의 이용을 개선하고 또한 라이브 비디오의 정지 및 지연을 어느 정도까지 방지할 수 있다.
도 8은 본 출원의 일 실시예에 따른 비디오 전송 장치(800)의 블록도이다. 비디오 전송 장치(800)는 비디오 디코딩 장치일 수 있다. 도 8을 참조하면, 비디오 전송 장치(800)는 수신 모듈(801), 구성 모듈(802), 및 결정 모듈(803)을 포함할 수 있다.
수신 모듈(801)은 u개의 프론트 엔드 서버에 의해 송신된 제1 참조 데이터 그룹을 수신하도록 구성된다. 여기서, 각각의 제1 참조 데이터 그룹은 인코딩된 데이터 블록 및 대응하는 참조 데이터 세트를 포함하고, 각각의 인코딩된 데이터 블록은 대응하는 참조 데이터 세트를 이용하여 타깃 비디오 데이터 세그먼트를 인코딩하여 비디오 코딩 장치에 의해 획득되는 것이며, 타깃 비디오 데이터 세그먼트는 라이브 비디오의 비디오 데이터 스트림 내의 데이터의 세그먼트이고, 타깃 비디오 데이터 세그먼트는 k개의 데이터 블록을 포함하고, 참조 데이터 세트는 적어도 하나의 참조 데이터를 포함하며, k는 1보다 크거나 같은 양의 정수이고, u는 1보다 크거나 같은 양의 정수이다.
구성 모듈(802)은, 사전 설정된 제2 지속시간 내에, 수신된 제1 참조 데이터 그룹의 개수가 k에 도달하면, 인코딩된 데이터 블록 및 수신된 k개의 제1 참조 데이터 그룹 내의 참조 데이터 세트에 기초하여 방정식 세트 행렬을 구성하도록 구성된다.
결정 모듈(803)은 방정식 세트 행렬의 계산된 해 행렬의 데이터를 타깃 비디오 데이터 세그먼트의 데이터로 결정하도록 구성된다.
선택적으로, 구성 모듈(802)는,
수신된 k개의 제1 참조 데이터 그룹을 파싱하여, k개의 인코딩된 데이터 블록과 일대일 대응관계에 있는 k개의 인코딩된 데이터 블록과 k개의 참조 데이터 세트를 획득하고;
k개의 인코딩된 데이터 블록을 이용하여 방정식 세트 행렬의 상수항 행렬을 구성하며 - 여기서, 각각의 인코딩된 데이터 블록은 상수항 행렬의 하나의 행으로 사용됨 -;
k개의 참조 데이터 세트를 이용하여 방정식 세트 행렬의 계수 행렬을 구성하도록 구성된다. 여기서, 각각의 참조 데이터 세트는 계수 행렬의 하나의 행으로 사용되고, 각각의 참조 데이터 세트가 계수 행렬에 위치하는 행의 랭크가, 대응하는 인코딩된 데이터 블록이 상수항 행렬에 위치하는 행의 랭크와 동일하다.
본 출원의 실시예는 또 다른 비디오 전송 장치(900)를 추가로 제공한다. 비디오 전송 장치(800)에 포함된 모듈 외에도, 비디오 전송 장치(900)는 제1 송신 모듈(804), 제2 송신 모듈(805), 및 저장 모듈(806)을 더 포함한다.
제1 송신 모듈(804)은,
수신된 제1 참조 데이터 그룹의 개수가 사전 설정된 제2 지속시간의 끝에서 k보다 작으면, 수신된 제1 참조 데이터 그룹의 개수와 k 사이의 차이의 절대값을 획득하고;
이 절대값을 현재의 디코딩 차이값으로서 비디오 코딩 장치에 송신하도록 구성된다.
제2 송신 모듈(805)은,
사전 설정된 제2 지속시간 내에, 수신된 제1 참조 데이터 그룹의 개수가 k에 도달한 후에, 현재의 디코딩 차이값을 비디오 코딩 장치에 송신하도록 구성된다. 여기서, 현재의 디코딩 차이값은 0이다.
저장 모듈(806)는,
제1 참조 데이터 그룹을 사전 설정된 저장 위치에 저장하도록 구성되고,
사전 설정된 저장 위치의 저장 공간 크기가 비디오 데이터 스트림 내의 비디오 데이터 세그먼트의 최대 지연 지속시간, 최소 지연 지속시간, 및 생성 지속시간에 기초하여 결정되며,
최대 지연 지속시간은 비디오 코딩 장치가 프론트 엔드 서버를 통해 참조 데이터 그룹을 비디오 디코딩 장치에 송신하는 데 필요한 최대 지속시간이고, 최소 지연 지속시간은 비디오 코딩 장치가 프론트 엔드 서버를 통해 참조 데이터 그룹을 비디오 디코딩 장치에 송신하는 데 필요한 최소 지속시간이다
사전 설정된 저장 위치의 저장 공간 크기가 제6 공식을 만족하고, 제6 공식은,
Figure 112020065897225-pct00181
이다.
여기서, Q는 상기 사전 설정된 저장 위치의 저장 공간 크기이고,
Figure 112020065897225-pct00182
는 최대 지연 지속시간이며,
Figure 112020065897225-pct00183
는 최소 지연 지속시간이고,
Figure 112020065897225-pct00184
은 비디오 데이터 스트림 내의 상기 비디오 데이터 세그먼트의 생성 지속시간이며, s는 비디오 데이터 세그먼트의 데이터 볼륨 크기이다.
결론적으로, 본 출원의 본 실시예에서 제공된 비디오 전송 장치는 k개의 데이터 블록을 포함하는 타깃 비디오 데이터 세그먼트를 t개의 참조 데이터 세트를 이용하여 개별적으로 인코딩하여, t개의 참조 데이터 세트와 일대일 대응관계에 있는 인코딩된 t개의 데이터 블록을 획득한다. 여기서, t개의 참조 데이터 세트 중 임의의 k개의 참조 데이터 세트 및 임의의 k개의 참조 데이터 세트와 일대일 대응관계에 있는 k개의 인코딩된 데이터 블록은 방정식 세트 행렬을 구성할 수 있고, 방정식 세트 행렬의 해 행렬의 데이터가 타깃 비디오 데이터 세그먼트의 데이터이다. 그런 다음, 비디오 코딩 장치는 n개의 프론트 엔드 서버를 이용하여 t개의 제1 참조 데이터 그룹을 비디오 디코딩 장치에 송신할 수 있다. 여기서, 각각의 제1 참조 데이터 그룹은 인코딩된 하나의 데이터 블록 및 인코딩된 데이터 블록에 대응하는 인코딩된 데이터 세트를 포함한다. 다르게 말하면, 각각의 제1 참조 데이터 그룹은 방정식 세트 행렬에 대응하는 방정식 세트 내의 하나의 방정식이다. 이와 같이, t개의 제1 참조 데이터 그룹 중 임의의 k개의 제1 참조 데이터 그룹을 수신한 후에, 다르게 말하면, 임의의 k개의 방정식을 수신한 후에, 비디오 디코딩 장치는 방정식 세트 행렬을 구성하고, 디코딩을 통해 타깃 비디오 데이터 세그먼트를 얻기 위해 방정식 세트 행렬의 해 행렬을 풀 수 있다. 이와 같이, 패킷 손실이 발생하더라도, 비디오 코딩 장치는 t개의 제1 참조 데이터 그룹 중 k개의 참조 데이터 그룹을 수신할 확률이 여전히 상대적으로 크다. 따라서, 패킷 손실이 발생할 때 비디오 코딩 장치가 데이터를 재전송할 필요가 있을 확률이 줄어듬으로써, 라이브 비디오의 정지 및 지연을 어느 정도까지 방지할 수 있다. 또한, N이 1보다 크면, 비디오 코딩 장치는 복수의 경로를 이용하여, 다르게 말하면, 복수의 프론트 엔드 서버를 이용하여 라이브 비디오의 상향링크 과정에서 비디오 데이터를 송신할 수 있다. 이렇게 하면, 라이브 방송 네트워크의 상향링크 대역폭의 이용을 개선하고 또한 라이브 비디오의 정지 및 지연이 어느 정도까지 방지될 수 있다.
일 실시예는 단말기를 제공하며, 단말기는 전술한 실시예에서 제공된 비디오 코딩 방법을 수행하도록 구성될 수 있다. 도 10에 도시된 바와 같이, 단말기(1000)는 이하를 포함한다.
단말기(1000)는 무선 주파수(Radio Frequency, RF) 회로(1010), 하나 이상의 컴퓨터 판독가능 저장 매체를 포함하는 메모리(1020), 입력 유닛(1030), 디스플레이 유닛(1040), 센서(1050), 오디오 회로(1060), 와이파이(Wireless Fidelity, WiFi) 모듈(1070), 하나 이상의 프로세싱 코어를 포함하는 프로세서(1080), 및 전원(190)과 같은 부분을 포함할 수 있다. 당업자는 도 10에 도시된 단말기 구조가 단말기에 대한 제한을 구성하지 않으며, 도면에 도시된 것보다 많은 부분 또는 적은 부분을 포함하거나, 또는 일부 부분을 결합하거나, 또는 다른 부분 배열을 가질 수 있다고 이해할 수 있을 것이다.
RF 회로(1010)는 정보 수신이나 송신 과정 또는 호출 과정에서 신호를 송수신하고, 특히 기지국의 하향링크 정보를 수신한 후에, 처리를 위해 하향링크 정보를 하나 이상의 프로세서(1080)에 송신하고, 또한 관련된 상향링크 데이터를 기지국에 송신하도록 구성될 수 있다. 일반적으로, RF 회로(1010)는 안테나, 적어도 하나의 증폭기, 튜너, 하나 이상의 발진기, 가입자 식별 모듈(subscriber identity module, SIM) 카드, 송수신기, 결합기, 저잡음 증폭기(Low Noise Amplifier, LNA), 및 듀플렉서 등을 포함하지만 이에 제한되지 않는다. 또한, RF 회로(1010)는 무선 통신을 통해 네트워크 및 다른 장치와 통신할 수 있다. 이동통신 글로벌 시스템(Global System of Mobile communication), 일반 패킷 무선 서비스(General Packet Radio Service), 코드분할 다중접속(Code Division Multiple Access, CDMA), 광대역 코드분할 다중접속(Wideband Code Division Multiple Access), 롱 텀 에볼루션(Long Term Evolution, LTE), 이메일, 단문 메시지 서비스(Short Messaging Service, SMS) 등을 포함하지만 이에 제한되지 않는 임의의 통신 표준 또는 프로토콜이 무선 통신에 사용될 수 있다.
메모리(1020)는 소프트웨어 프로그램 및 모듈을 저장하도록 구성될 수 있고, 프로세서(1080)는 메모리(1020)에 저장된 소프트웨어 프로그램 및 모듈을 실행함으로써 다양한 기능적 애플리케이션을 실행하고 데이터를 처리할 수 있다. 메모리(1020)는 주로 프로그램 저장 영역 및 데이터 저장 영역을 포함할 수 있고, 프로그램 저장 영역은 운영체제, 적어도 하나의 기능(예를 들어, 사운드 재생 기능 또는 이미지 재생 기능)에 필요한 애플리케이션 프로그램을 저장할 수 있으며, 데이터 저장 영역은 단말기(1000)의 사용에 기초하여 생성된 데이터(예컨대, 오디오 데이터 또는 주소록)를 저장할 수 있다. 또한, 메모리(1020)는 고속 랜덤 액세스 메모리를 포함할 수 있고, 적어도 하나의 자기 디스크 스토리지 컴포넌트, 플래시 메모리 컴포넌트, 또는 다른 휘발성 솔리드 스테이트 스토리지 컴포넌트와 같은 비휘발성 메모리를 더 포함할 수 있다. 따라서, 메모리(1020)는 메모리(1020)로의 접근을 프로세서(1080)와 입력 유닛(1030)에 제공하기 위해 메모리 컨트롤러를 더 포함할 수 있다.
입력 유닛(1030)은 입력된 디지털 정보 또는 문자 정보를 수신하고, 키보드, 마우스, 조이스틱, 광학, 또는 트랙볼의 신호 입력으로서 사용자 설정 및 기능 제어와 관련된 신호 입력을 생성하도록 구성될 수 있다. 구체적으로, 입력 유닛(1030)은 터치 감지면(1031) 및 다른 입력 장치(1032)를 포함할 수 있다. 터치 스크린 또는 터치패드라고도 하는 터치 감지면(1031)은, 터치 감지면 상의 또는 그 부근의 사용자의 터치 조작(예컨대, 사용자가 손가락, 또는 스타일러스, 또는 임의의 다른 적합한 물체나 액세서리를 이용하여 터치 감지면(1031) 상에서 또는 그 부근에서 수행하는 조작)을 수집할 수 있고, 사전 설정된 공식에 기초하여 대응하는 연결 장치를 구동한다. 선택적으로, 터치 감지면(1031)은 터치 검출 장치와 터치 컨트롤러의 2개의 부분을 포함할 수 있다. 터치 검출 장치는 사용자의 터치 위치를 검출하고, 터치 조작에 의한 신호를 검출하며, 이 신호를 터치 컨트롤러에 송신한다. 터치 컨트롤러는 터치 검출 장치로부터 터치 정보를 수신하고, 터치 정보를 터치 포인트 좌표로 변환하며, 터치 포인트 좌표를 프로세서(1080)에 송신하고, 프로세서(1080)에 의해 송신된 명령을 수신하여 실행할 수 있다. 또한, 터치 감지면(1031)은 저항성, 용량성, 적외선, 또는 표면 음향 터치 감지면에 의해 구현될 수 있다. 터치 감지면(1031) 외에도, 입력 유닛(103)0은 다른 입력 장치(1032)를 더 포함할 수 있다. 구체적으로, 다른 입력 장치(103)2는 물리적 키보드, 기능 키(볼륨 제어 키 또는 온/오프 키 등), 트랙볼, 마우스, 및 조이스틱 중 하나 이상을 포함할 수 있지만 이에 제한되지 않는다.
디스플레이 유닛(1040)은 사용자에 의해 입력된 정보 또는 사용자에게 제공된 정보, 및 단말기(1000)의 다양한 그래픽 유저 인터페이스를 표시하도록 구성될 수 있으며, 그래픽 유저 인터페이스는 그래픽, 텍스트, 아이콘, 비디오, 및 이들의 임의의 조합을 포함할 수 있다. 디스플레이 유닛(1040)은 디스플레이 패널(1041)을 포함할 수 있다. 선택적으로, 디스플레이 패널(1041)은 액정 디스플레이(Liquid Crystal Display, LCD), 또는 유기 발광 다이오드(Organic Light-Emitting Diode, OLED) 등을 이용하여 구성될 수 있다. 또한, 터치 감지면(1031)은 디스플레이 패널(1041)을 덮고 있을 수 있다. 터치 감지면(1031) 상에서 또는 그 부근에서 터치 동작을 검출할 때, 터치 감지면(1041)은 터치 조작을 프로세서(1080)에 전송하여 터치 이벤트의 유형을 결정하고, 그런 다음 프로세서(1080)는 터치 이벤트의 유형에 기초하여 디스플레이 패널(1041) 상에 대응하는 시각적 출력을 제공한다. 터치 감지면(1031)과 디스플레이 패널(1041)은 도 10의 입력 및 입력 기능을 구현하기 위해 2개의 독립적인 구성 요소로서 사용되지만, 일부 실시예에서, 터치 감지면(1031)은 입력 및 출력 기능을 구현하기 위해 디스플레이 패널(1041)과 통합될 수 있다.
단말기(1000)는 광 센서, 움직임 센서, 및 다른 센서와 같은 적어도 하나의 유형의 센서(1050)를 더 포함할 수 있다. 구체적으로, 광 센서는 주변광 센서와 근접 센서를 포함할 수 있다. 주변 광 센서는 주변 광의 밝기에 기초하여 디스플레이 패널(1041)의 밝기를 조정할 수 있다. 근접 센서는 단말기(1000)가 귀로 이동할 때 디스플레이 패널(1041) 및/또는 백라이트를 끌 수 있다. 운동 센서의 한 유형으로서, 중력 가속도 센서는 각각의 방향(일반적으로 3개의 축)의 가속도 값을 검출할 수 있고, 정적 모드에서 중력의 값 및 방향을 검출할 수 있으며, 휴대 전화 제스처(가로/세로 방향 전환, 관련된 게임, 및 자력계 제스처 보정 등), 진동 식별과 관련된 기능(예컨대, 만보계와 스트로크(stroke)) 등을 식별하기 위한 애플리케이션에 사용될 수 있다. 단말기(1000) 상에 추가로 구성될 수 있는 자이로스코프, 기압계, 습도계, 온도계, 및 적외선 센서와 같은 다른 센서에 대해서는, 여기서 세부사항에 대해 설명하지 않는다.
오디오 회로(1060), 확성기(1061), 및 마이크(1062)는 사용자와 단말기(1000) 사이에 오디오 인터페이스를 제공할 수 있다. 오디오 회로(1060)는 수신된 오디오 데이터로부터 변환된 전기 신호를 확성기(1061)에 송신할 수 있고, 확성기(1061)는 전기 신호를 출력을 위한 사운드 신호로 변환한다. 또한, 마이크(1062)는 수집된 사운드 신호를 전기 신호로 변환하고, 오디오 회로(1060)는 전기 신호를 수신한 후에 전기 신호를 오디오 데이터로 변환하고, 처리를 위해 오디오 데이터를 프로세서(1080)에 출력하고, 그런 다음 오디오 데이터는 예를 들어, RF 회로(1010)를 이용하여 다른 단말기에 송신되거나, 또는 오디오 데이터는 추가 처리를 위해 메모리(1020)에 출력된다. 오디오 회로(1060)는 아마도 단말기(1000)과 통신하기 위한 외부 이어폰을 제공하기 위해 이어플러그 잭을 포함할 수 있다.
WiFi는 근거리 무선 전송 기술이다. 단말기(1000)는 WiFi 모듈(1070)을 이용하여 사용자가 이메일을 송수신하고, 웹 페이지를 탐색하며, 스트리밍 매체에 액세스하도록 돕는다. WiFi 모듈은 사용자에게 무선 광대역 인터넷 접속을 제공한다. WiFi 모듈(1070)이 도 10에 도시되어 있지만, WiFi 모듈(1070)이 단말기(1000)의 필수 구성 요소가 아니며, 본 발명의 본질이 변경되지 않으면 요구사항에 따라 생략될 수 있다고 이해할 수 있을 것이다.
프로세서(1080)는 단말기(1000)의 제어 센터일 수 있다. 다양한 인터페이스와 케이블이 전체 휴대폰의 다양한 부분에 연결하는 데 사용된다. 프로세서(1080)는, 메모리(1020)에 저장된 소프트웨어 프로그램 및/또는 모듈을 실행하거나 수행함으로써 또는 메모리(1020)에 저장된 데이터를 호출함으로써 단말기(1000)의 다양한 기능을 수행하여 휴대폰에 대한 전반적인 모니터링을 수행한다. 선택적으로, 프로세서(1080)는 하나 이상의 프로세싱 코어를 포함할 수 있다. 바람직하게는, 프로세서(1080)는 애플리케이션 프로세서와 모뎀 프로세서를 통합할 수 있다. 애플리케이션 프로세서는 주로 운영체제, 사용자 인터페이스, 및 애플리케이션 프로그램 등을 처리하고, 모뎀 프로세서는 주로 무선 통신을 처리한다. 모뎀 프로세서가 프로세서(1080)에 통합되지 않을 수 있다고 이해할 수 있을 것이다.
단말기(1000)는 부품에 전력을 공급하는 전원(190)(배터리 등)을 더 포함한다. 바람직하게는, 충전 및 방전 관리와 전력 소비 관리와 같은 기능들이 전원 관리 시스템을 이용하여 구현될 수 있도록, 전원이 전력 관리 시스템을 이용하여 프로세서(1080)에 논리적으로 연결될 수 있다. 전원(190)은 하나 이상의 직류 또는 교류 전원, 재충전 시스템, 정전 검출 회로, 전력 컨버터 또는 인버터, 및 전력 상태 표시기와 같은 임의의 구성 요소를 더 포함할 수 있다.
도시되어 있지 않지만, 단말기(1000)는 카메라와 블루투스 모듈 등을 더 포함할 수 있으며, 여기서는 세부사항에 대해 설명하지 않는다. 구체적으로, 본 실시예에서, 단말기의 디스플레이 유닛은 터치 스크린 디스플레이일 수 있고, 단말기는 메모리와 하나 이상의 프로그램을 더 포함한다. 여기서, 하나 이상의 프로그램은 메모리에 저장되고, 구성된 후 하나 이상의 프로세서에 의해 실행된다. 하나 이상의 프로그램은, 타깃 비디오 데이터 세그먼트를 획득하는 조작 - 타깃 비디오 데이터 세그먼트는 전송될 라이브 비디오의 비디오 데이터 스트림 내의 데이터의 세그먼트이고, 타깃 비디오 데이터 세그먼트는 k개의 데이터 블록을 포함하며, k는 1보다 크거나 같은 양의 정수임 -; t개의 참조 데이터 세트를 획득하는 조작 - 각각의 참조 데이터 세트는 적어도 하나의 참조 데이터를 포함하고, t는 k보다 큰 양의 정수임 -; t개의 참조 데이터 세트와 일대일 대응관계에 있는 인코딩된 t개의 데이터 블록을 얻기 위해, 각각의 참조 데이터 세트를 이용하여 타깃 비디오 데이터 세그먼트를 인코딩하는 조작 - t개의 참조 데이터 세트 중 임의의 k개의 참조 데이터 세트 및 임의의 k개의 참조 데이터 세트와 일대일 대응관계에 있는 k개의 인코딩된 데이터 블록은 방정식 세트 행렬을 구성할 수 있고, 방정식 세트 행렬의 해 행렬의 데이터는 타깃 비디오 데이터 세그먼트의 데이터임 -; 및 n개의 프론트 엔드 서버를 이용하여 t개의 제1 참조 데이터 그룹을 비디오 디코딩 장치에 송신하는 조작 - N은 1보다 크거나 같은 양의 정수이고, 각각의 제1 참조 데이터 그룹은 인코딩된 하나의 데이터 블록 및 대응하는 참조 데이터 세트를 포함하고 있음 -을 수행하는 데 사용되는 명령을 포함한다.
도 11은 본 발명의 일 실시예에 따른 비디오 전송 장치(1100)의 블록도이다. 예를 들어, 비디오 전송 장치(1100)는 서버로서 제공될 수 있다. 도 11에 도시된 바와 같이, 비디오 전송 장치(1100)는 프로세싱 컴포넌트(1122)를 포함하고, 프로세싱 컴포넌트(1122)는 하나 이상의 프로세서 및 메모리(1132)에 의해 표현되는 메모리 자원을 더 포함하며, 프로세싱 컴포넌트(1122)에 의해 실행될 수 있는 명령, 예컨대 애플리케이션 프로그램을 저장하도록 구성된다.. 메모리(1132)에 저장된 애플리케이션 프로그램은 하나 이상의 모듈을 포함할 수 있고, 각각의 모듈은 명령의 그룹에 대응한다. 또한, 프로세싱 컴포넌트(1122)는,
타깃 비디오 데이터 세그먼트를 획득하고 - 여기서, 타깃 비디오 데이터 세그먼트는 전송될 라이브 비디오의 비디오 데이터 스트림 내의 데이터의 세그먼트이고, 타깃 비디오 데이터 세그먼트는 k개의 데이터 블록을 포함하며, k는 1보다 크거나 같은 양의 정수임 -; t개의 참조 데이터 세트를 획득하며 - 여기서, 각각의 참조 데이터 세트는 적어도 하나의 참조 데이터를 포함하고, t는 k보다 큰 양의 정수임 -; 각각의 참조 데이터 세트를 이용하여 타깃 비디오 데이터 세그먼트를 인코딩하여, t개의 참조 데이터 세트와 일대일 대응관계에 있는 인코딩된 t개의 데이터 블록을 획득하고 - 여기서, t개의 참조 데이터 세트 중 임의의 k개의 참조 데이터 세트 및 임의의 k개의 참조 데이터 세트와 일대일 대응관계에 있는 k개의 인코딩된 데이터 블록은 방정식 세트 행렬을 구성할 수 있고, 방정식 세트 행렬의 해 행렬의 데이터는 타깃 비디오 데이터 세그먼트의 데이터임 -; n개의 프론트 엔드 서버를 이용하여 t개의 제1 참조 데이터 그룹을 비디오 디코딩 장치에 송신하는 방법 - N은 1보다 크거나 같은 양의 정수이고, 각각의 제1 참조 데이터 그룹은 인코딩된 하나의 데이터 블록 및 대응하는 참조 데이터 세트를 포함하고 있음 -을 실행하도록 구성된다.
대안적으로, 다음의 방법, 즉,
u개의 프론트 엔드 서버에 의해 송신된 제1 참조 데이터 그룹을 수신하고 - 여기서, 각각의 제1 참조 데이터 그룹은 인코딩된 데이터 블록 및 대응하는 참조 데이터 세트를 포함하고, 각각의 인코딩된 데이터 블록은 대응하는 참조 데이터 세트를 이용하여 타깃 비디오 데이터 세그먼트를 인코딩하여 비디오 코딩 장치에 의해 획득되는 것이며, 타깃 비디오 데이터 세그먼트는 라이브 비디오의 비디오 데이터 스트림 내의 데이터의 세그먼트이고, 타깃 비디오 데이터 세그먼트는 k개의 데이터 블록을 포함하며, 참조 데이터 세트는 적어도 하나의 참조 데이터를 포함하고, k는 1보다 크거나 같은 양의 정수이며, u는 1보다 크거나 같은 양의 정수임 -;
사전 설정된 제2 지속시간 내에, 수신된 제1 참조 데이터 그룹의 개수가 k에 도달하면, 인코딩된 데이터 블록과 수신된 k개의 제1 참조 데이터 그룹 내의 참조 데이터 세트에 기초하여 방정식 세트 행렬을 구성하며;
방정식 세트 행렬의 계산된 해 행렬의 데이터를 타깃 비디오 데이터 세그먼트의 데이터로 결정하는 방법이 수행된다.
비디오 전송 장치(1100)는 비디오 전송 장치(1100)의 전력 관리를 실행하도록 구성된 전원 컴포넌트(1126), 비디오 전송 장치(1100)를 네트워크에 연결하도록 구성된 유선 또는 무선 네트워크 인터페이스(1150), 및 입력/출력(I/O) 인터페이스(1158)를 더 포함할 수 있다. 비디오 전송 장치(1100)는 Windows ServerTM, Mac OS XTM, UnixTM, LinuxTM, 또는 FreeBSDTM 등과 같은 메모리(1132)에 저장된 운영체제를 운영할 수 있다.
본 출원의 실시예는 컴퓨터 판독가능 저장 매체를 추가로 제공한다. 컴퓨터 판독가능 저장 매체는 비휘발성 컴퓨터 판독가능 저장 매체일 수 있다. 컴퓨터 판독가능 저장 매체는 명령을 저장한다. 이 명령은 컴퓨터의 프로세싱 컴포넌트 상에서 실행될 때 프로세싱 컴포넌트로 하여금 도 3a에 도시된 실시예에서 제공되는 비디오 전송 방법을 수행할 수 있게 한다.
당업자는 실시예의 모든 단계 또는 일부 단계가 하드웨어 또는 관련 하드웨어에 지시하는 프로그램에 의해 구현될 수 있다고 이해할 수 있을 것이다. 프로그램은 컴퓨터 판독가능 저장 매체에 저장될 수 있다. 저장 매체는 읽기 전용 메모리, 또는 자기 디스크, 또는 광 디스크를 포함할 수 있다.
전술한 설명은 본 출원의 선택적 실시예일 뿐이며, 본 출원을 제한하려는 것은 아니다. 본 출원의 사상과 원리에서 벗어나지 않고 이루어지는 어떠한 수정, 또는 등가의 대체, 또는 개선도 본 출원의 보호 범위에 속해야 한다.

Claims (39)

  1. 라이브 방송 네트워크에서 비디오 코딩 장치에 사용되는 비디오 전송 방법으로서,
    상기 라이브 방송 네트워크는 상기 비디오 코딩 장치, 비디오 디코딩 장치, 및 복수의 프론트 엔드 서버를 포함하고, 상기 비디오 전송 방법이,
    타깃 비디오 데이터 세그먼트를 획득하는 단계 - 상기 타깃 비디오 데이터 세그먼트는 전송될 라이브 비디오의 비디오 데이터 스트림 내의 데이터의 세그먼트이고, 상기 타깃 비디오 데이터 세그먼트는 k개의 데이터 블록을 포함하며, k는 1보다 크거나 같은 양의 정수임 -;
    t개의 참조 데이터 세트를 획득하는 단계 - 각각의 참조 데이터 세트는 적어도 하나의 참조 데이터를 포함하고, t는 k보다 큰 양의 정수임 -;
    상기 t개의 참조 데이터 세트와 일대일 대응관계에 있는 t개의 인코딩된 데이터 블록을 얻기 위해, 각각의 참조 데이터 세트를 이용하여 상기 타깃 비디오 데이터 세그먼트를 인코딩하는 단계 - 상기 t개의 참조 데이터 세트 중 임의의 k개의 참조 데이터 세트 및 상기 임의의 k개의 참조 데이터 세트와 일대일 대응관계에 있는 k개의 인코딩된 데이터 블록은 방정식 세트 행렬을 구성할 수 있고, 상기 방정식 세트 행렬의 해 행렬의 데이터가 상기 타깃 비디오 데이터 세그먼트의 데이터임 -; 및
    n개의 프론트 엔드 서버를 이용하여 t개의 제1 참조 데이터 그룹을 상기 비디오 디코딩 장치에 송신하는 단계 - N은 1보다 크거나 같은 양의 정수임 -
    를 포함하고,
    각각의 제1 참조 데이터 그룹은, 인코딩된 하나의 데이터 블록 및 대응하는 참조 데이터 세트를 포함하는, 비디오 전송 방법.
  2. 제1항에 있어서,
    각각의 참조 데이터 세트는 상기 k개의 데이터 블록과 일대일 대응관계에 있는 k개의 참조 데이터를 포함하고, 상기 t개의 참조 데이터 세트와 일대일 대응관계에 있는 t개의 인코딩된 데이터 블록을 얻기 위해, 각각의 참조 데이터 세트를 이용하여 상기 타깃 비디오 데이터 세그먼트를 인코딩하는 단계는,
    각각의 참조 데이터 세트에 대해, 대응하는 데이터 블록을 상기 참조 데이터 세트에 포함된 각각의 참조 데이터에 곱하여 k개의 곱을 획득하는 단계; 및
    상기 참조 데이터 세트에 대응하는 인코딩된 데이터 블록을 얻기 위해 상기 k개의 곱을 더하는 단계
    를 포함하는, 비디오 전송 방법.
  3. 제1항에 있어서,
    상기 타깃 비디오 데이터 세그먼트를 획득하는 단계는,
    상기 전송될 라이브 비디오의 비디오 데이터 스트림을 획득하는 단계;
    상기 비디오 데이터 스트림으로부터 데이터 블록을 획득하는 단계; 및
    사전 설정된 제1 지속시간 내에, 획득된 데이터 블록의 개수가 k보다 작지 않으면, 상기 획득된 k개의 데이터 블록을 이용하여 상기 타깃 비디오 데이터 세그먼트를 형성하는 단계; 또는
    상기 사전 설정된 제1 지속시간의 끝에서 상기 획득된 데이터 블록의 개수가 k보다 작으면, 사전 설정된 데이터를 이용하여 상기 획득된 데이터 블록을 패딩하여 k개의 데이터 블록을 획득하고, 패딩을 통해 획득된 상기 k개의 데이터 블록을 이용하여 상기 타깃 비디오 데이터 세그먼트를 형성하는 단계
    를 포함하는, 비디오 전송 방법.
  4. 제1항에 있어서,
    상기 타깃 비디오 데이터 세그먼트는 상기 비디오 코딩 장치가 상기 비디오 데이터 스트림으로부터 획득하는 (p+1)번째 비디오 데이터 세그먼트이고, p는 1보다 크거나 같은 양의 정수이며, 상기 t개의 참조 데이터 세트를 획득하는 단계 이전에, 상기 비디오 전송 방법이,
    상기 비디오 디코딩 장치에 의해 송신된 p개의 이력 디코딩 차이값(historical decoding difference)을 수신하는 단계 - 상기 p개의 이력 디코딩 차이값은 상기 비디오 데이터 스트림 내의 상기 타깃 비디오 데이터 세그먼트에 선행하는 p개의 비디오 데이터 세그먼트와 일대일 대응관계에 있고, 각각의 이력 디코딩 차이값은, 디코딩을 통해 대응하는 비디오 데이터 세그먼트를 성공적으로 획득하기 전에, 사전 설정된 제2 지속시간의 끝에서 상기 비디오 디코딩 장치에 필요한 참조 데이터 그룹의 개수를 반영하는 데 사용됨 -; 및
    상기 p개의 이력 디코딩 차이값 및 제1 공식에 기초하여, 획득될 필요가 있는 참조 데이터 세트의 개수(t)의 값을 결정하는 단계
    를 더 포함하는 비디오 전송 방법.
  5. 제4항에 있어서,
    상기 p개의 이력 디코딩 차이값 중 i번째 이력 디코딩 차이값(
    Figure 112021032535825-pct00185
    )은,
    상기 비디오 디코딩 장치가, 디코딩을 통해 상기 사전 설정된 제2 지속시간 내에, 상기 비디오 데이터 스트림 내의 i번째 비디오 데이터 세그먼트로서 상기 i번째 이력 디코딩 차이값에 대응하는 i번째 비디오 데이터 세그먼트를 성공적으로 획득하면,
    Figure 112021032535825-pct00186
    =0이라는 것; 및
    상기 비디오 디코딩 장치가 상기 사전 설정된 제2 지속시간의 끝에서 디코딩을 통해 상기 i번째 비디오 데이터 세그먼트를 획득하지 못하면,
    Figure 112021032535825-pct00187
    =y-x이라는 것
    을 만족하고,
    y는 상기 비디오 디코딩 장치가 디코딩을 통해 상기 i번째 비디오 데이터 세그먼트를 성공적으로 획득하는 데 필요한 참조 데이터 그룹의 사전 설정된 개수 임계값이고, x는 상기 사전 설정된 제2 지속시간의 끝에서 상기 비디오 디코딩 장치에 의해 획득되는 상기 i번째 비디오 데이터 세그먼트에 대응하는 참조 데이터 그룹의 개수이며,
    Figure 112021032535825-pct00188
    인, 비디오 전송 방법.
  6. 제4항에 있어서,
    상기 p개의 이력 디코딩 차이값 및 제1 공식에 기초하여, 획득될 필요가 있는 참조 데이터 세트의 개수(t)의 값을 결정하는 단계는,
    상기 p개의 이력 디코딩 차이값과 제1 공식에 기초하여, 상기 획득될 필요가 있는 참조 데이터 세트의 개수(t)의 값을 계산하는 단계
    를 포함하고,
    상기 제1 공식은,
    Figure 112021032535825-pct00189
    이며;
    여기서,
    Figure 112021032535825-pct00190
    이고,
    Figure 112021032535825-pct00191
    이며, g는 가중치 파라미터이고,
    Figure 112021032535825-pct00192
    는 상기 p개의 이력 디코딩 차이값 중 i번째 이력 디코딩 차이값이며,
    Figure 112021032535825-pct00193
    는 상기 비디오 데이터 스트림 내의 p번째 비디오 데이터 세그먼트를 인코딩하기 전에 상기 비디오 코딩 장치에 의해 획득되는 참조 데이터 세트의 개수인, 비디오 전송 방법.
  7. 제1항에 있어서,
    상기 타깃 비디오 데이터 세그먼트는 상기 비디오 코딩 장치가 상기 비디오 데이터 스트림으로부터 획득하는 제1 비디오 데이터 세그먼트이고, 상기 t개의 참조 데이터 세트를 획득하는 단계 이전에, 상기 비디오 전송 방법이,
    상기 라이브 방송 네트워크의 평균 패킷 손실율에 기초하여, 획득될 필요가 있는 참조 데이터 세트의 개수(t)의 값을 결정하는 단계
    를 더 포함하는 비디오 전송 방법.
  8. 제7항에 있어서,
    상기 라이브 방송 네트워크의 평균 패킷 손실율에 기초하여, 획득될 필요가 있는 참조 데이터 세트의 개수(t)의 값을 결정하는 단계는,
    상기 라이브 방송 네트워크의 평균 패킷 손실율과 제2 공식에 기초하여, 상기 획득될 필요가 있는 참조 데이터 세트의 개수(t)의 값을 계산하는 단계
    를 포함하고,
    상기 제2 공식은,
    Figure 112020065897225-pct00194
    이고;
    여기서,
    Figure 112020065897225-pct00195
    는 상기 라이브 방송 네트워크의 평균 패킷 손실율이고,
    Figure 112020065897225-pct00196
    는 잘라버림 연산자(rounding down operator)인, 비디오 전송 방법.
  9. 제1항에 있어서,
    상기 n개의 프론트 엔드 서버를 이용하여 t개의 제1 참조 데이터 그룹을 상기 비디오 디코딩 장치에 송신하는 단계 이전에, 상기 비디오 전송 방법이,
    상기 비디오 코딩 장치로의 통신 연결을 구축한 r개의 프론트 엔드 서버를 결정하는 단계 - r은 n보다 크거나 같은 양의 정수임 -; 및
    상기 비디오 코딩 장치와 상기 r개의 프론트 엔드 서버 각각 사이의 데이터 전송 레이트에 기초하여 상기 r개의 프론트 엔드 서버로부터 상기 n개의 프론트 엔드 서버를 결정하는 단계 - 상기 n개의 프론트 엔드 서버와 상기 비디오 코딩 장치 사이의 통신 품질은 다른 프론트 엔드 서버와 상기 비디오 코딩 장치 사이의 통신 품질보다 우수함 -
    를 더 포함하는 비디오 전송 방법.
  10. 제9항에 있어서,
    상기 비디오 코딩 장치와 상기 r개의 프론트 엔드 서버 각각 사이의 데이터 전송 레이트에 기초하여 상기 r개의 프론트 엔드 서버로부터 상기 n개의 프론트 엔드 서버를 결정하는 단계는,
    상기 비디오 코딩 장치와 상기 r개의 프론트 엔드 서버 각각 사이의 상기 데이터 전송 레이트와 제3 공식에 기초하여, 각각의 프론트 엔드 서버의 유틸리티 값을 계산하는 단계
    를 포함하고,
    상기 제3 공식은,
    Figure 112020065897225-pct00197
    이고,
    여기서,
    Figure 112020065897225-pct00198
    는 상기 r개의 프론트 엔드 서버 중 j번째 프론트 엔드 서버의 유틸리티 값이고,
    Figure 112020065897225-pct00199
    이며,
    Figure 112020065897225-pct00200
    는 상기 비디오 코딩 장치와 상기 j번째 프론트 엔드 서버 사이의 데이터 전송 레이트이고,
    Figure 112020065897225-pct00201
    는 상기 비디오 코딩 장치와 상기 j번째 프론트 엔드 서버 사이의 패킷 손실율이며,
    Figure 112020065897225-pct00202
    는 상기 라이브 방송 네트워크의 평균 패킷 손실율이고,
    Figure 112020065897225-pct00203
    는 상수이며;
    유틸리티 값의 내림차순으로, 상기 r개의 프론트 엔드 서버로부터 상기 n개의 프론트 엔드 서버를 결정하는 단계
    를 포함하는, 비디오 전송 방법.
  11. 제10항에 있어서,
    상기 n개의 프론트 엔드 서버를 이용하여 t개의 제1 참조 데이터 그룹을 상기 비디오 디코딩 장치에 송신하는 단계는,
    제4 공식에 기초하여, 상기 n개의 프론트 엔드 서버 각각에 대응하는 제1 참조 데이터 그룹의 개수를 결정하는 단계 - 상기 제4 공식은
    Figure 112021032535825-pct00204
    이고,
    Figure 112021032535825-pct00205
    은 상기 n개의 프론트 엔드 서버 중 제1 프론트 엔드 서버에 대응하는 제1 참조 데이터 그룹의 개수이며,
    Figure 112021032535825-pct00206
    은 상기 제1 프론트 엔드 서버의 유틸리티 값이고,
    Figure 112021032535825-pct00207
    는 상기 n개의 프론트 엔드 서버의 유틸리티 값의 합이며,
    Figure 112021032535825-pct00208
    임 -; 및
    상기 프론트 엔드 서버가 수신된 제1 참조 데이터 그룹을 상기 비디오 디코딩 장치에 송신할 수 있도록, 상기 제1 참조 데이터 그룹의 대응하는 개수를 각각의 프론트 엔드 서버에 송신하는 단계
    를 포함하는, 비디오 전송 방법.
  12. 제1항에 있어서,
    상기 타깃 비디오 데이터 세그먼트를 획득하는 단계 이전에, 상기 비디오 전송 방법이,
    상기 데이터 블록의 개수(k)에 대응하는 전송 지연이 사전 설정된 전송 지연 범위에 포함될 수 있도록, 전송 지연과 데이터 블록의 개수 사이의 사전 설정된 대응관계에 기초하여 상기 타깃 비디오 세그먼트 내의 데이터 블록의 개수(k)를 결정하는 단계
    를 더 포함하고;
    상기 전송 지연은, 앵커 단말기가 상기 비디오 데이터 세그먼트를 상기 비디오 디코딩 장치에 송신할 때 존재하는 전송 지연인, 비디오 전송 방법.
  13. 라이브 방송 네트워크에서 비디오 디코딩 장치에 사용되는 비디오 전송 방법으로서,
    상기 라이브 방송 네트워크는 비디오 코딩 장치, 상기 비디오 디코딩 장치, 및 복수의 프론트 엔드 서버를 포함하고, 상기 비디오 전송 방법이,
    u개의 프론트 엔드 서버에 의해 송신된 제1 참조 데이터 그룹을 수신하는 단계 - 각각의 제1 참조 데이터 그룹은 인코딩된 데이터 블록 및 대응하는 참조 데이터 세트를 포함하고, 각각의 인코딩된 데이터 블록은, 상기 비디오 코딩 장치가 대응하는 참조 데이터 세트를 이용하여 타깃 비디오 데이터 세그먼트를 인코딩하여 획득하는 것이며, 상기 타깃 비디오 데이터 세그먼트는 라이브 비디오의 비디오 데이터 스트림 내의 데이터의 세그먼트이고, 상기 타깃 비디오 데이터 세그먼트는 k개의 데이터 블록을 포함하며, 상기 참조 데이터 세트는 적어도 하나의 참조 데이터를 포함하고, k는 1보다 크거나 같은 양의 정수이며, u는 1보다 크거나 같은 양의 정수임 -;
    사전 설정된 제2 지속시간 내에, 수신된 제1 참조 데이터 그룹의 개수가 k에 도달하면, 인코딩된 데이터 블록과 상기 수신된 k개의 제1 참조 데이터 그룹 내의 참조 데이터 세트에 기초하여 방정식 세트 행렬을 구성하는 단계; 및
    상기 방정식 세트 행렬의 계산된 해 행렬의 데이터를 상기 타깃 비디오 데이터 세그먼트의 데이터로 결정하는 단계
    를 포함하는, 비디오 전송 방법.
  14. 제13항에 있어서,
    상기 비디오 전송 방법이,
    상기 사전 설정된 제2 지속시간의 끝에서 상기 수신된 제1 참조 데이터 그룹의 개수가 k보다 작으면, 상기 수신된 제1 참조 데이터 그룹의 개수와 k 사이의 차이의 절대값을 획득하는 단계; 및
    상기 절대값을 현재의 디코딩 차이값으로서 상기 비디오 코딩 장치에 송신하는 단계
    를 더 포함하는 비디오 전송 방법.
  15. 제13항에 있어서,
    상기 비디오 전송 방법이,
    상기 사전 설정된 제2 지속시간 내에, 상기 수신된 제1 참조 데이터 그룹의 개수가 k에 도달한 후, 현재의 디코딩 차이값을 상기 비디오 코딩 장치에 송신하는 단계 - 상기 현재의 디코딩 차이값은 0임 -
    를 더 포함하는 비디오 전송 방법.
  16. 제13항에 있어서,
    상기 인코딩된 데이터 블록 및 상기 수신된 k개의 제1 참조 데이터 그룹 내의 참조 데이터 세트에 기초하여 방정식 세트 행렬을 구성하는 단계는,
    k개의 인코딩된 데이터 블록 및 상기 k개의 인코딩된 데이터 블록과 일대일 대응관계에 있는 k개의 참조 데이터 세트를 얻기 위해, 상기 수신된 k개의 제1 참조 데이터 그룹을 파싱하는 단계;
    상기 k개의 인코딩된 데이터 블록을 이용하여 상기 방정식 세트 행렬의 상수항 행렬(constant-term matrix)을 구성하는 단계 - 각각의 인코딩된 데이터 블록은 상기 상수항 행렬의 하나의 행으로 사용됨 -; 및
    상기 k개의 참조 데이터 세트를 이용하여 상기 방정식 세트 행렬의 계수 행렬을 구성하는 단계 - 각각의 참조 데이터 세트는 상기 계수 행렬의 하나의 행으로 사용되고, 상기 계수 행렬에서 각각의 참조 데이터 세트가 위치하는 상기 행의 랭크가, 상기 상수항 행렬에서 대응하는 인코딩된 데이터 블록이 위치하는 행의 랭크와 동일함 -
    를 포함하는, 비디오 전송 방법.
  17. 제13항에 있어서,
    상기 u개의 프론트 엔드 서버에 의해 송신된 제1 참조 데이터 그룹을 수신하는 단계 이후에, 상기 비디오 전송 방법이,
    상기 제1 참조 데이터 그룹을 사전 설정된 저장 위치에 저장하는 단계
    를 더 포함하고;
    상기 사전 설정된 저장 위치의 저장 공간 크기가 상기 비디오 데이터 스트림 내의 비디오 데이터 세그먼트의 최대 지연 지속시간, 최소 지연 지속시간, 및 생성 지속시간에 기초하여 결정되고,
    상기 최대 지연 지속시간은 상기 비디오 코딩 장치가 상기 프론트 엔드 서버를 통해 상기 참조 데이터 그룹을 상기 비디오 디코딩 장치에 송신하는 데 필요한 최대 지속시간이고, 상기 최소 지연 지속시간은 상기 비디오 코딩 장치가 상기 프론트 엔드 서버를 통해 상기 참조 데이터 그룹을 상기 비디오 디코딩 장치에 송신하는 데 필요한 최소 지속시간인, 비디오 전송 방법.
  18. 제17항에 있어서,
    상기 사전 설정된 저장 위치의 저장 공간 크기가 제6 공식을 만족하고, 상기 제6 공식은,
    Figure 112020065897225-pct00209
    이며;
    Q는 상기 사전 설정된 저장 위치의 저장 공간 크기이고,
    Figure 112020065897225-pct00210
    는 상기 최대 지연 지속시간이며,
    Figure 112020065897225-pct00211
    는 상기 최소 지연 지속시간이고,
    Figure 112020065897225-pct00212
    은 상기 비디오 데이터 스트림 내의 상기 비디오 데이터 세그먼트의 생성 지속시간이며, s는 상기 비디오 데이터 세그먼트의 데이터 볼륨 크기인, 비디오 전송 방법.
  19. 라이브 방송 네트워크에서 비디오 코딩 장치에 사용되는 비디오 전송 장치로서,
    상기 라이브 방송 네트워크는 상기 비디오 코딩 장치, 비디오 디코딩 장치, 및 복수의 프론트 엔드 서버를 포함하고, 상기 비디오 전송 장치는,
    타깃 비디오 데이터 세그먼트를 획득하도록 구성된 제1 획득 모듈 - 상기 타깃 비디오 데이터 세그먼트는 전송될 라이브 비디오의 비디오 데이터 스트림 내의 데이터의 세그먼트이고, 상기 타깃 비디오 데이터 세그먼트는 k개의 데이터 블록을 포함하며, k는 1보다 크거나 같은 양의 정수임 -;
    t개의 참조 데이터 세트를 획득하도록 구성된 제2 획득 모듈 - 각각의 참조 데이터 세트는 적어도 하나의 참조 데이터를 포함하고, t는 k보다 큰 양의 정수임 -;
    상기 t개의 참조 데이터 세트와 일대일 대응관계에 있는 t개의 인코딩된 데이터 블록을 얻기 위해, 각각의 참조 데이터 세트를 이용하여 상기 타깃 비디오 데이터 세그먼트를 인코딩하도록 구성된 인코딩 모듈 - 상기 t개의 참조 데이터 세트 중 임의의 k개의 참조 데이터 세트 및 상기 임의의 k개의 참조 데이터 세트와 일대일 대응관계에 있는 k개의 인코딩된 데이터 블록이 방정식 세트 행렬을 구성할 수 있고, 상기 방정식 세트 행렬의 해 행렬의 데이터가 상기 타깃 비디오 데이터 세그먼트의 데이터임 -; 및
    n개의 프론트 엔드 서버를 이용하여 t개의 제1 참조 데이터 그룹을 상기 비디오 디코딩 장치에 송신하도록 구성된 송신 모듈 - n은 1보다 크거나 같은 양의 정수임 -
    를 포함하고,
    각각의 제1 참조 데이터 그룹은 인코딩된 하나의 데이터 블록 및 대응하는 참조 데이터 세트를 포함하는, 비디오 전송 장치.
  20. 제19항에 있어서,
    각각의 참조 데이터 세트는 상기 k개의 데이터 블록과 일대일 대응관계에 있는 k개의 참조 데이터를 포함하고, 상기 인코딩 모듈은,
    각각의 참조 데이터 세트에 대해, 대응하는 데이터 블록을 상기 참조 데이터 세트에 포함된 각각의 참조 데이터에 곱하여 k개의 곱을 획득하고;
    상기 참조 데이터 세트에 대응하는 인코딩된 데이터 블록을 얻기 위해 상기 k개의 곱을 더하도록 구성된, 비디오 전송 장치.
  21. 제19항에 있어서,
    상기 제1 획득 모듈은,
    상기 전송될 라이브 비디오의 비디오 데이터 스트림을 획득하고;
    상기 비디오 데이터 스트림으로부터 데이터 블록을 획득하며;
    사전 설정된 제1 지속시간 내에, 획득된 데이터 블록의 개수가 k보다 작지 않으면, 상기 획득된 k개의 데이터 블록을 이용하여 상기 타깃 비디오 데이터 세그먼트를 형성하거나; 또는
    상기 사전 설정된 제1 지속시간의 끝에서 상기 획득된 데이터 블록의 개수가 k보다 작으면, 사전 설정된 데이터를 이용하여 상기 획득된 데이터 블록을 패딩하여 k개의 데이터 블록을 얻고, 패딩을 통해 얻어진 상기 k개의 데이터 블록을 이용하여 상기 타깃 비디오 데이터 세그먼트를 형성하도록 구성된, 비디오 전송 장치.
  22. 제19항에 있어서,
    상기 타깃 비디오 데이터 세그먼트는 상기 비디오 코딩 장치가 상기 비디오 데이터 스트림으로부터 획득하는 (p+1)번째 비디오 데이터 세그먼트이고, p는 1보다 크거나 같은 양의 정수이며, 상기 비디오 전송 장치는 제1 결정 모듈을 더 포함하고, 상기 제1 결정 모듈은,
    상기 비디오 디코딩 장치에 의해 송신된 p개의 이력 디코딩 차이값(historical decoding difference)을 수신하고 - 여기서, 상기 p개의 이력 디코딩 차이값은 상기 비디오 데이터 스트림 내의 상기 타깃 비디오 데이터 세그먼트에 선행하는 p개의 비디오 데이터 세그먼트와 일대일 대응관계에 있고, 각각의 이력 디코딩 차이값은, 디코딩을 통해 대응하는 비디오 데이터 세그먼트를 성공적으로 획득하기 전에, 사전 설정된 제2 지속시간의 끝에서 상기 비디오 디코딩 장치에 필요한 참조 데이터 그룹의 개수를 반영하는 데 사용됨 -;
    상기 p개의 이력 디코딩 차이값에 기초하여, 획득될 필요가 있는 참조 데이터 세트의 개수(t)의 값을 결정하도록 구성된, 비디오 전송 장치.
  23. 제22항에 있어서,
    상기 p개의 이력 디코딩 차이값 중 i번째 이력 디코딩 차이값(
    Figure 112020065897225-pct00213
    )은,
    상기 비디오 디코딩 장치가, 디코딩을 통해 상기 사전 설정된 제2 지속시간 내에, 상기 비디오 데이터 스트림 내의 i번째 비디오 데이터 세그먼트로서 상기 i번째 이력 디코딩 차이값에 대응하는 i번째 비디오 데이터 세그먼트를 성공적으로 획득하면,
    Figure 112020065897225-pct00214
    =0이라는 것; 및
    상기 사전 설정된 제2 지속시간의 끝에서 상기 비디오 디코딩 장치가 디코딩을 통해 상기 i번째 비디오 데이터 세그먼트를 획득하지 못하면,
    Figure 112020065897225-pct00215
    =y-x이라는 것
    을 만족하고,
    y는 상기 비디오 디코딩 장치가 디코딩을 통해 상기 i번째 비디오 데이터 세그먼트를 성공적으로 획득하는 데 필요한 참조 데이터 그룹의 개수이고, x는 상기 사전 설정된 제2 지속시간의 끝에서 상기 비디오 디코딩 장치에 의해 획득되는 상기 i번째 비디오 데이터 세그먼트에 대응하는 참조 데이터 그룹의 개수이며,
    Figure 112020065897225-pct00216
    인, 비디오 전송 장치.
  24. 제19항에 있어서,
    상기 타깃 비디오 데이터 세그먼트는 상기 비디오 코딩 장치가 상기 비디오 데이터 스트림으로부터 획득하는 제1 비디오 데이터 세그먼트이고, 상기 비디오 전송 장치는 제2 결정 모듈을 더 포함하며, 상기 제2 결정 모듈은,
    상기 라이브 방송 네트워크의 평균 패킷 손실율에 기초하여, 획득될 필요가 있는 참조 데이터 세트의 개수(t)의 값을 결정하도록 구성된, 비디오 전송 장치.
  25. 제19항에 있어서,
    상기 비디오 전송 장치는 제3 결정 모듈을 더 포함하고, 상기 제3 결정 모듈은,
    상기 비디오 코딩 장치로의 통신 연결을 구축한 r개의 프론트 엔드 서버를 결정하고 - 여기서, r은 n보다 크거나 같은 양의 정수임 -;
    상기 비디오 코딩 장치와 상기 r개의 프론트 엔드 서버 각각 사이의 데이터 전송 레이트에 기초하여 상기 r개의 프론트 엔드 서버로부터 상기 n개의 프론트 엔드 서버를 결정하도록 구성되고, 상기 n 프론트 엔드 서버와 상기 비디오 코딩 장치 사이의 통신 품질은 다른 프론트 엔드 서버와 상기 비디오 코딩 장치 사이의 통신 품질보다 우수한, 비디오 전송 장치.
  26. 제19항에 있어서,
    상기 비디오 전송 장치는 제4 결정 모듈을 더 포함하고, 상기 제4 결정 모듈은,
    상기 데이터 블록의 개수(k)에 대응하는 전송 지연이 사전 설정된 전송 지연 범위에 포함될 수 있도록, 전송 지연과 데이터 블록의 개수 사이의 사전 설정된 대응관계에 기초하여 상기 타깃 비디오 세그먼트 내의 상기 데이터 블록의 개수(k)를 결정하도록 구성되고;
    상기 전송 지연은, 앵커 단말기가 상기 비디오 데이터 세그먼트를 상기 비디오 디코딩 장치에 송신할 때 존재하는 전송 지연인, 비디오 전송 장치.
  27. 라이브 방송 네트워크에서 비디오 디코딩 장치에 사용되는 비디오 전송 장치로서,
    상기 라이브 방송 네트워크는 비디오 코딩 장치, 상기 비디오 디코딩 장치, 및 복수의 프론트 엔드 서버를 포함하고, 상기 비디오 전송 장치는,
    u개의 프론트 엔드 서버에 의해 송신된 제1 참조 데이터 그룹을 수신하도록 구성된 수신 모듈 - 각각의 제1 참조 데이터 그룹은 인코딩된 데이터 블록 및 대응하는 참조 데이터 세트를 포함하고, 각각의 인코딩된 데이터 블록은, 상기 비디오 코딩 장치가 대응하는 참조 데이터 세트를 이용하여 타깃 비디오 데이터 세그먼트를 인코딩하여 획득하는 것이며, 상기 타깃 비디오 데이터 세그먼트는 라이브 비디오의 비디오 데이터 스트림 내의 데이터의 세그먼트이고, 상기 타깃 비디오 데이터 세그먼트는 k개의 데이터 블록을 포함하며, 상기 참조 데이터 세트는 적어도 하나의 참조 데이터를 포함하고, k는 1보다 크거나 같은 양의 정수이며, u는 1보다 크거나 같은 양의 정수임 -;
    사전 설정된 제2 지속시간 내에, 수신된 제1 참조 데이터 그룹의 개수가 k에 도달하면, 인코딩된 데이터 블록과 상기 수신된 k개의 제1 참조 데이터 그룹 내의 참조 데이터 세트에 기초하여 방정식 세트 행렬을 구성하도록 구성된 구성 모듈; 및
    상기 방정식 세트 행렬의 계산된 해 행렬의 데이터를 상기 타깃 비디오 데이터 세그먼트의 데이터로 결정하도록 구성된 결정 모듈
    을 포함하는 비디오 전송 장치.
  28. 제27항에 있어서,
    상기 비디오 전송 장치는 제1 송신 모듈을 더 포함하고, 상기 제1 송신 모듈은,
    상기 사전 설정된 제2 지속시간의 끝에서 상기 수신된 제1 참조 데이터 그룹의 개수가 k보다 작으면, 상기 수신된 제1 참조 데이터 그룹의 개수와 k 사이의 차이의 절대값을 획득하고;
    상기 절대값을 현재의 디코딩 차이값으로서 상기 비디오 코딩 장치에 송신하도록 구성된, 비디오 전송 장치.
  29. 제27항에 있어서,
    상기 비디오 전송 장치는 제2 송신 모듈을 더 포함하고, 상기 제2 송신 모듈은,
    상기 사전 설정된 제2 지속시간 내에, 상기 수신된 제1 참조 데이터 그룹의 개수가 k에 도달한 후, 현재의 디코딩 차이값을 상기 비디오 코딩 장치에 송신하도록 구성되고, 상기 현재의 디코딩 차이값은 0인, 비디오 전송 장치.
  30. 제27항에 있어서,
    상기 구성 모듈은,
    k개의 인코딩된 데이터 블록 및 상기 k개의 인코딩된 데이터 블록과 일대일 대응관계에 있는 k개의 참조 데이터 세트를 얻기 위해, 상기 수신된 k개의 제1 참조 데이터 그룹을 파싱하고;
    상기 k개의 인코딩된 데이터 블록을 이용하여 상기 방정식 세트 행렬의 상수항 행렬(constant-term matrix)을 구성하며 - 여기서, 각각의 인코딩된 데이터 블록은 상기 상수항 행렬의 하나의 행으로 사용됨 -;
    상기 k개의 참조 데이터 세트를 이용하여 상기 방정식 세트 행렬의 계수 행렬을 구성하도록 구성되고, 각각의 참조 데이터 세트는 상기 계수 행렬의 하나의 행으로 사용되며, 상기 계수 행렬에서 각각의 참조 데이터 세트가 위치하는 상기 행의 랭크가, 상기 상수항 행렬에서 대응하는 인코딩된 데이터 블록이 위치하는 행의 랭크와 동일한, 비디오 전송 장치.
  31. 제27항에 있어서,
    상기 비디오 전송 장치는 저장 모듈을 더 포함하고, 상기 저장 모듈은,
    상기 제1 참조 데이터 그룹을 사전 설정된 저장 위치에 저장하도록 구성되고;
    상기 사전 설정된 저장 위치의 저장 공간 크기가 상기 비디오 데이터 스트림 내의 비디오 데이터 세그먼트의 최대 지연 지속시간, 최소 지연 지속시간, 및 생성 지속시간에 기초하여 결정되고,
    상기 최대 지연 지속시간은 상기 비디오 코딩 장치가 상기 프론트 엔드 서버를 통해 상기 참조 데이터 그룹을 상기 비디오 디코딩 장치에 송신하는 데 필요한 최대 지속시간이고, 상기 최소 지연 지속시간은 상기 비디오 코딩 장치가 상기 프론트 엔드 서버를 통해 상기 참조 데이터 그룹을 상기 비디오 디코딩 장치에 송신하는 데 필요한 최소 지속시간인, 비디오 전송 장치.
  32. 컴퓨터 판독가능 저장 매체로서,
    상기 컴퓨터 판독가능 저장 매체는 명령을 저장하고, 상기 명령은 컴퓨터의 처리 컴포넌트 상에서 실행될 때 상기 처리 컴포넌트로 하여금 제1항 내지 제12항 중 어느 한 항의 비디오 전송 방법을 수행할 수 있게 하거나, 또는 상기 처리 컴포넌트로 하여금 제13항 내지 제18항 중 어느 한 항의 비디오 전송 방법을 수행할 수 있게 하는, 컴퓨터 판독가능 저장 매체.
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
KR1020207018508A 2017-11-30 2018-11-27 비디오 전송 방법, 장치, 및 시스템과 컴퓨터 판독가능 저장 매체 KR102316873B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201711244047.2 2017-11-30
CN201711244047.2A CN109862377B (zh) 2017-11-30 2017-11-30 视频传输方法、装置、系统及计算机可读存储介质
PCT/CN2018/117678 WO2019105340A1 (zh) 2017-11-30 2018-11-27 视频传输方法、装置、系统及计算机可读存储介质

Publications (2)

Publication Number Publication Date
KR20200093614A KR20200093614A (ko) 2020-08-05
KR102316873B1 true KR102316873B1 (ko) 2021-10-22

Family

ID=66665418

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207018508A KR102316873B1 (ko) 2017-11-30 2018-11-27 비디오 전송 방법, 장치, 및 시스템과 컴퓨터 판독가능 저장 매체

Country Status (6)

Country Link
US (1) US11012724B2 (ko)
EP (1) EP3709663A4 (ko)
JP (1) JP7030984B2 (ko)
KR (1) KR102316873B1 (ko)
CN (1) CN109862377B (ko)
WO (1) WO2019105340A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109862387A (zh) * 2019-03-28 2019-06-07 北京达佳互联信息技术有限公司 直播的回看视频生成方法、装置及设备
CN111629234B (zh) * 2020-06-24 2022-09-02 上海大因多媒体技术有限公司 不同类型视频共存的传输方法、装置、设备和存储介质
CN111934823B (zh) * 2020-08-12 2022-08-02 中国联合网络通信集团有限公司 数据传输方法、无线接入网络设备、用户平面功能实体
US20230079859A1 (en) * 2021-09-13 2023-03-16 Apple Inc. Systems and methods for streaming extensions for video encoding
KR102643682B1 (ko) * 2021-12-21 2024-03-05 울산과학기술원 미디어 스트리밍 처리 장치 및 방법
CN116170379B (zh) * 2023-04-25 2023-07-14 腾讯科技(深圳)有限公司 一种传输控制方法、装置、设备及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040109613A1 (en) 2002-08-28 2004-06-10 Guleryuz Onur G Image recovery using thresholding and direct linear solvers
CN102378001A (zh) 2010-08-11 2012-03-14 中国电信股份有限公司 支持图片直播模式的移动终端、视频直播方法及系统
US20130047191A1 (en) 2011-08-15 2013-02-21 Gradiant, Centro Tecnoloxico De Telecomunicacions De Galicia Method and system for digital content transmission
CN105812840A (zh) 2014-12-29 2016-07-27 乐视网信息技术(北京)股份有限公司 一种直播视频传输方法、装置,以及视频直播系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102045554A (zh) * 2009-10-22 2011-05-04 浙江大学 视频和图像的空域预测方法及装置
US8885701B2 (en) * 2010-09-08 2014-11-11 Samsung Electronics Co., Ltd. Low complexity transform coding using adaptive DCT/DST for intra-prediction
JP2012147197A (ja) 2011-01-11 2012-08-02 Panasonic Corp 通信装置、通信方法、及び通信プログラム
JP2014099708A (ja) 2012-11-13 2014-05-29 Panasonic Corp 送信装置、受信装置、送信方法、及び受信方法
JP5997226B2 (ja) 2014-09-17 2016-09-28 京セラコミュニケーションシステム株式会社 アップロードシステム
JP6415302B2 (ja) 2014-12-19 2018-10-31 株式会社エヌ・ティ・ティ・データ 通信装置、通信方法及びプログラム
CN105847854A (zh) * 2016-04-12 2016-08-10 乐视控股(北京)有限公司 直播方法和系统
CN106162209B (zh) * 2016-06-30 2019-10-18 中国科学院计算技术研究所 一种基于sdn技术的内容分发网络直播系统与方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040109613A1 (en) 2002-08-28 2004-06-10 Guleryuz Onur G Image recovery using thresholding and direct linear solvers
CN102378001A (zh) 2010-08-11 2012-03-14 中国电信股份有限公司 支持图片直播模式的移动终端、视频直播方法及系统
US20130047191A1 (en) 2011-08-15 2013-02-21 Gradiant, Centro Tecnoloxico De Telecomunicacions De Galicia Method and system for digital content transmission
CN105812840A (zh) 2014-12-29 2016-07-27 乐视网信息技术(北京)股份有限公司 一种直播视频传输方法、装置,以及视频直播系统

Also Published As

Publication number Publication date
EP3709663A1 (en) 2020-09-16
KR20200093614A (ko) 2020-08-05
JP7030984B2 (ja) 2022-03-07
CN109862377B (zh) 2020-12-01
CN109862377A (zh) 2019-06-07
US20200296438A1 (en) 2020-09-17
WO2019105340A1 (zh) 2019-06-06
EP3709663A4 (en) 2020-09-16
JP2021505081A (ja) 2021-02-15
US11012724B2 (en) 2021-05-18

Similar Documents

Publication Publication Date Title
KR102316873B1 (ko) 비디오 전송 방법, 장치, 및 시스템과 컴퓨터 판독가능 저장 매체
US11355130B2 (en) Audio coding and decoding methods and devices, and audio coding and decoding system
JP7242701B2 (ja) サイドリンクの動作方法及び端末
JP7258041B2 (ja) サイドリンクの伝送方法及び端末
CN108737908B (zh) 一种媒体播放方法、装置及存储介质
WO2015058656A1 (zh) 直播控制方法,及主播设备
CN107454416B (zh) 视频流发送方法和装置
WO2015058590A1 (zh) 一种视频直播控制方法、设备及系统和存储介质
JP2018512814A (ja) ビデオストリームのデータを処理するための方法、装置、およびシステム
CN104780401B (zh) 视频数据的发送方法及装置
CN103125108B (zh) 建立发射控制协议连接的系统和方法
KR102225235B1 (ko) 비디오 인코딩 방법, 장치, 및 디바이스, 및 저장 매체
CN113572836B (zh) 一种数据传输方法、装置、服务器及存储介质
CN108337533B (zh) 视频压缩方法和装置
US20240040430A1 (en) Transmission Processing Method and Communications Device
US20180376362A1 (en) Video Optimization Method, User Equipment, And Network Device
KR20150116220A (ko) 미디어 스트리밍 방법 및 그 전자 장치
WO2021121119A1 (zh) 数据处理方法及电子设备
CN113225162B (zh) 信道状态信息csi上报方法、终端及计算机可读存储介质
CN116264619A (zh) 资源处理方法、装置、服务器、终端、系统及存储介质
WO2019154358A1 (zh) Harq-ack码本的确定方法和终端
CN116827924B (zh) 一种数据调度方法、装置、设备以及存储介质
KR102283903B1 (ko) 모바일 엣지 클라우드 기반 미디어 서비스 방법 및 이를 지원하는 장치
WO2023098800A1 (zh) 信息传输方法、装置、终端及网络侧设备
WO2023098799A1 (zh) 信息传输方法、装置、终端及网络侧设备

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