이 애플리케이션의 일부 콘텐츠는 현재 사용할 수 없습니다.
이 상황이 계속되면 다음 주소로 문의하십시오피드백 및 연락
1. (WO2019050067) 비디오 품질 제어
Document

명세서

발명의 명칭

기술분야

1  

배경기술

2   3  

발명의 상세한 설명

기술적 과제

4  

과제 해결 수단

5   6   7   8  

발명의 효과

9  

도면의 간단한 설명

10   11   12   13   14   15   16   17  

발명의 실시를 위한 최선의 형태

18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65  

발명의 실시를 위한 형태

66   67  

청구범위

1   2   3   4   5   6   7   8   9   10   11   12   13   14  

도면

1   2   3   4   5   6   7   8   9  

명세서

발명의 명칭 : 비디오 품질 제어

기술분야

[1]
아래의 설명은 비디오 품질 제어를 위한 기술에 관한 것으로, 보다 자세하게는 제공되는 비디오에 대한 트랜스코딩 없이 비디오의 품질을 제어하여 다수의 품질을 갖는 비디오들을 제공할 수 있는 품질 제어 방법, 상기 품질 제어 방법을 수행하는 컴퓨터 장치, 그리고 컴퓨터와 결합되어 품질 제어 방법을 컴퓨터에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램과 그 기록매체에 관한 것이다.

배경기술

[2]
방송 송출자로부터 제공되는 비디오를 서버가 수신하고, 수신된 비디오를 서버가 다시 다수의 방송 수신자들에게 송출하는 기술이 존재한다. 이때, 방송 송출자로부터 단일 품질로 제공되는 비디오를 방송 수신자들의 니즈에 따라 여러 품질로 제공하기 위해서는 서버측에서 트랜스코딩 과정을 거쳐야만 한다. 예를 들어, 방송 송출자가 720p의 해상도로 비디오를 송출하는 경우를 고려할 수 있다. 여기서 720p의 숫자 "720"은 세로 해상도의 720줄을 의미하며, 문자 "p"는 순차 주사(progressive)를 의미한다. 이는 1280×720의 해상도를 갖는 HD 영상을 의미할 수 있다. 이때, 방송 시청자들을 위해, 720p, 480p 그리고 360p의 총 세 가지 품질의 해상도로 비디오를 송출하는 것을 서버에서 지원하고자 하는 경우, 서버는 방송 송출자로부터 720p의 해상도로 송출된 비디오를 720p, 480p 그리고 360p의 세 가지 비디오로 트랜스코딩을 해야 한다. 예를 들어, 한국공개특허 제10-2007-0048095호는 디지털 멀티미디어 방송 스트림의 재전송을 위한 트랜스코딩 방법에 관한 것으로, 외부로부터 수신한 디지털 방송 스트림을 재전송하기 위해 트랜스코딩하는 기술에 대해 개시하고 있다.
[3]
그러나, 이러한 트랜스코딩 자체가 매우 많은 서버 리소스를 요구한다는 문제점이 있다. 예를 들어, 방송 송출자의 비디오에 대해, 프레임들을 단순히 멀티플렉싱(multiplexing, 또는 먹싱(muxing))하는 것과 비교하여 비디오를 트랜스코딩하는 것은 상대적으로 수백 배 이상의 서버 리소스를 더 요구한다. 따라서, 방송 수신자들에게 다양한 품질의 비디오를 제공하기 위해 트랜스코딩을 수행하는 것은 서버측에 매우 큰 리소스를 요구하게 된다는 문제점이 있다.

발명의 상세한 설명

기술적 과제

[4]
비디오에 대한 트랜스코딩 없이, 비디오의 프레임들에 대한 멀티플렉싱(multiplexing, 또는 먹싱(muxing)) 기법을 통해 비디오의 품질을 제어하여 다수의 품질을 갖는 비디오들을 제공할 수 있는 품질 제어 방법, 상기 품질 제어 방법을 수행하는 컴퓨터 장치, 그리고 컴퓨터와 결합되어 품질 제어 방법을 컴퓨터에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램과 그 기록매체를 제공한다.

과제 해결 수단

[5]
디코딩을 위한 참조 관계에 따라 복수의 타입으로 분류된 프레임들을 포함하는 비디오 스트림을 입력받는 단계; 및 상기 비디오 스트림이 포함하는 프레임들을 멀티플렉싱하여 상기 복수의 타입 중 기설정된 타입의 프레임들을 출력함으로써, 상기 비디오 스트림의 품질을 제어하는 단계를 포함하는 것을 특징으로 하는 품질 제어 방법을 제공한다.
[6]
컴퓨터와 결합되어 품질 제어 방법을 컴퓨터에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램을 제공한다.
[7]
품질 제어 방법을 컴퓨터에 실행시키기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록매체를 제공한다.
[8]
컴퓨터 장치에 있어서, 컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 디코딩을 위한 참조 관계에 따라 복수의 타입으로 분류된 프레임들을 포함하는 비디오 스트림을 입력받고, 상기 비디오 스트림이 포함하는 프레임들을 멀티플렉싱하여 상기 복수의 타입 중 기설정된 타입의 프레임들을 출력함으로써, 상기 비디오 스트림의 품질을 제어하는 것을 특징으로 하는 컴퓨터 장치를 제공한다.

발명의 효과

[9]
비디오에 대한 트랜스코딩 없이, 비디오의 프레임들에 대한 멀티플렉싱(multiplexing, 또는 먹싱(muxing)) 기법을 통해 비디오의 품질을 제어하여 다수의 품질을 갖는 비디오들을 제공할 수 있다.

도면의 간단한 설명

[10]
도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다.
[11]
도 2는 본 발명의 일실시예에 있어서, 전자 기기 및 서버의 내부 구성을 설명하기 위한 블록도이다.
[12]
도 3은 퍼블리싱되는 비디오 스트림의 프레임들의 예를 도시한 도면이다.
[13]
도 4 및 도 5는 종래기술에 따른 트랜스코딩과 본 발명의 일실시예에 따른 멀티플렉싱을 비교하여 설명하기 위한 도면들이다.
[14]
도 6은 본 발명의 일실시예에 있어서, 비디오 스트림의 품질을 조절하여 제공하는 환경의 예를 도시한 도면이다.
[15]
도 7은 본 발명의 일실시예에 따른 품질 제어 방법의 예를 도시한 흐름도이다.
[16]
도 8은 본 발명의 일실시예에 있어서, 라이브 비디오 스트림의 품질을 제어하여 중계하는 예를 도시한 도면이다.
[17]
도 9는 본 발명의 일실시예에 있어서, 비디오 스트림의 품질을 조절하여 제공하는 환경의 다른 예를 도시한 도면이다.

발명의 실시를 위한 최선의 형태

[18]
이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.
[19]
본 발명의 실시예들에 따른 품질 제어 방법은 이후 설명될 전자 기기나 서버와 같은 컴퓨터 장치를 통해 수행될 수 있다. 이때, 컴퓨터 장치에는 본 발명의 일실시예에 따른 컴퓨터 프로그램이 설치 및 구동될 수 있고, 컴퓨터 장치는 구동된 컴퓨터 프로그램의 제어에 따라 본 발명의 일실시예에 따른 품질 제어 방법을 수행할 수 있다. 상술한 컴퓨터 프로그램은 컴퓨터 장치와 결합되어 품질 제어 방법을 컴퓨터에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장될 수 있다. 예를 들어, 서버는 방송 송출자를 통해 제공되는 단일 품질의 비디오를, 트랜스코딩 없이 먹싱(muxing) 기법을 통해 품질을 제어하여 다수의 품질을 갖는 비디오들을 제공할 수 있다. 실시예에 따라 전자 기기가 특정한 비디오에 대해 먹싱 기법을 통해 품질을 제어하는 것 역시 고려될 수 있다.
[20]
도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다. 도 1의 네트워크 환경은 복수의 전자 기기들(110, 120, 130, 140), 복수의 서버들(150, 160) 및 네트워크(170)를 포함하는 예를 나타내고 있다. 이러한 도 1은 발명의 설명을 위한 일례로 전자 기기의 수나 서버의 수가 도 1과 같이 한정되는 것은 아니다.
[21]
복수의 전자 기기들(110, 120, 130, 140)은 컴퓨터 장치로 구현되는 고정형 단말이거나 이동형 단말일 수 있다. 복수의 전자 기기들(110, 120, 130, 140)의 예를 들면, 스마트폰(smart phone), 휴대폰, 네비게이션, 컴퓨터, 노트북, 디지털방송용 단말, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 태블릿 PC 등이 있다. 일례로 도 1에서는 전자 기기 1(110)의 예로 스마트폰의 형상을 나타내고 있으나, 본 발명의 실시예들에서 전자 기기 1(110)은 실질적으로 무선 또는 유선 통신 방식을 이용하여 네트워크(170)를 통해 다른 전자 기기들(120, 130, 140) 및/또는 서버(150, 160)와 통신할 수 있는 다양한 물리적인 컴퓨터 장치들 중 하나를 의미할 수 있다.
[22]
통신 방식은 제한되지 않으며, 네트워크(170)가 포함할 수 있는 통신망(일례로, 이동통신망, 유선 인터넷, 무선 인터넷, 방송망)을 활용하는 통신 방식뿐만 아니라 기기들간의 근거리 무선 통신 역시 포함될 수 있다. 예를 들어, 네트워크(170)는, PAN(personal area network), LAN(local area network), CAN(campus area network), MAN(metropolitan area network), WAN(wide area network), BBN(broadband network), 인터넷 등의 네트워크 중 하나 이상의 임의의 네트워크를 포함할 수 있다. 또한, 네트워크(170)는 버스 네트워크, 스타 네트워크, 링 네트워크, 메쉬 네트워크, 스타-버스 네트워크, 트리 또는 계층적(hierarchical) 네트워크 등을 포함하는 네트워크 토폴로지 중 임의의 하나 이상을 포함할 수 있으나, 이에 제한되지 않는다.
[23]
서버(150, 160) 각각은 복수의 전자 기기들(110, 120, 130, 140)과 네트워크(170)를 통해 통신하여 명령, 코드, 파일, 컨텐츠, 서비스 등을 제공하는 컴퓨터 장치 또는 복수의 컴퓨터 장치들로 구현될 수 있다. 예를 들어, 서버(150)는 네트워크(170)를 통해 접속한 복수의 전자 기기들(110, 120, 130, 140)로 제1 서비스를 제공하는 시스템일 수 있으며, 서버(160) 역시 네트워크(170)를 통해 접속한 복수의 전자 기기들(110, 120, 130, 140)로 제2 서비스를 제공하는 시스템일 수 있다. 보다 구체적인 예로, 서버(150)는 복수의 전자 기기들(110, 120, 130, 140)에 설치되어 구동되는 컴퓨터 프로그램으로서의 어플리케이션을 통해, 해당 어플리케이션이 목적하는 서비스(일례로, 방송 송출 서비스, 컨텐츠 전송 서비스, 정보 제공 서비스, 메시징 서비스, 메일 서비스 등)를 제1 서비스로서 복수의 전자 기기들(110, 120, 130, 140)로 제공할 수 있다. 다른 예로, 서버(160)는 상술한 어플리케이션의 설치 및 구동을 위한 파일을 복수의 전자 기기들(110, 120, 130, 140)로 배포하는 서비스를 제2 서비스로서 제공할 수 있다.
[24]
도 2는 본 발명의 일실시예에 있어서, 전자 기기 및 서버의 내부 구성을 설명하기 위한 블록도이다. 도 2에서는 전자 기기에 대한 예로서 전자 기기 1(110), 그리고 서버(150)의 내부 구성을 설명한다. 또한, 다른 전자 기기들(120, 130, 140)이나 서버(160) 역시 상술한 전자 기기 1(110) 또는 서버(150)와 동일한 또는 유사한 내부 구성을 가질 수 있다.
[25]
전자 기기 1(110)과 서버(150)는 메모리(211, 221), 프로세서(212, 222), 통신 모듈(213, 223) 그리고 입출력 인터페이스(214, 224)를 포함할 수 있다. 메모리(211, 221)는 컴퓨터에서 판독 가능한 기록매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 저장 장치(permanent mass storage device)를 포함할 수 있다. 여기서 ROM과 디스크 드라이브와 같은 비소멸성 대용량 저장 장치는 메모리(211, 221)와는 구분되는 별도의 영구 저장 장치로서 전자 기기 1(110)이나 서버(150)에 포함될 수도 있다. 또한, 메모리(211, 221)에는 운영체제와 적어도 하나의 프로그램 코드(일례로 전자 기기 1(110)에 설치되어 구동되는 브라우저나 특정 서비스의 제공을 위해 전자 기기 1(110)에 설치된 어플리케이션 등을 위한 코드)가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 메모리(211, 221)와는 별도의 컴퓨터에서 판독 가능한 기록매체로부터 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록매체가 아닌 통신 모듈(213, 223)을 통해 메모리(211, 221)에 로딩될 수도 있다. 예를 들어, 적어도 하나의 프로그램은 개발자들 또는 어플리케이션의 설치 파일을 배포하는 파일 배포 시스템(일례로, 상술한 서버(160))이 네트워크(170)를 통해 제공하는 파일들에 의해 설치되는 컴퓨터 프로그램(일례로 상술한 어플리케이션)에 기반하여 메모리(211, 221)에 로딩될 수 있다.
[26]
프로세서(212, 222)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(211, 221) 또는 통신 모듈(213, 223)에 의해 프로세서(212, 222)로 제공될 수 있다. 예를 들어 프로세서(212, 222)는 메모리(211, 221)와 같은 기록 장치에 저장된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다.
[27]
통신 모듈(213, 223)은 네트워크(170)를 통해 전자 기기 1(110)과 서버(150)가 서로 통신하기 위한 기능을 제공할 수 있으며, 전자 기기 1(110) 및/또는 서버(150)가 다른 전자 기기(일례로 전자 기기 2(120)) 또는 다른 서버(일례로 서버(160))와 통신하기 위한 기능을 제공할 수 있다. 일례로, 전자 기기 1(110)의 프로세서(212)가 메모리(211)와 같은 기록 장치에 저장된 프로그램 코드에 따라 생성한 요청이 통신 모듈(213)의 제어에 따라 네트워크(170)를 통해 서버(150)로 전달될 수 있다. 역으로, 서버(150)의 프로세서(222)의 제어에 따라 제공되는 제어 신호나 명령, 컨텐츠, 파일 등이 통신 모듈(223)과 네트워크(170)를 거쳐 전자 기기 1(110)의 통신 모듈(213)을 통해 전자 기기 1(110)로 수신될 수 있다. 예를 들어 통신 모듈(213)을 통해 수신된 서버(150)의 제어 신호나 명령, 컨텐츠, 파일 등은 프로세서(212)나 메모리(211)로 전달될 수 있고, 컨텐츠나 파일 등은 전자 기기 1(110)가 더 포함할 수 있는 저장 매체(상술한 영구 저장 장치)로 저장될 수 있다.
[28]
입출력 인터페이스(214)는 입출력 장치(215)와의 인터페이스를 위한 수단일 수 있다. 예를 들어, 입력 장치는 키보드 또는 마우스 등의 장치를, 그리고 출력 장치는 디스플레이, 스피커와 같은 장치를 포함할 수 있다. 다른 예로 입출력 인터페이스(214)는 터치스크린과 같이 입력과 출력을 위한 기능이 하나로 통합된 장치와의 인터페이스를 위한 수단일 수도 있다. 입출력 장치(215)는 전자 기기 1(110)과 하나의 장치로 구성될 수도 있다. 또한, 서버(150)의 입출력 인터페이스(224)는 서버(150)와 연결되거나 서버(150)가 포함할 수 있는 입력 또는 출력을 위한 장치(미도시)와의 인터페이스를 위한 수단일 수 있다. 보다 구체적인 예로, 전자 기기 1(110)의 프로세서(212)가 메모리(211)에 로딩된 컴퓨터 프로그램의 명령을 처리함에 있어서 서버(150)나 전자 기기 2(120)가 제공하는 데이터를 이용하여 구성되는 서비스 화면이나 컨텐츠가 입출력 인터페이스(214)를 통해 디스플레이에 표시될 수 있다.
[29]
또한, 다른 실시예들에서 전자 기기 1(110) 및 서버(150)는 도 2의 구성요소들보다 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 전자 기기 1(110)은 상술한 입출력 장치(215) 중 적어도 일부를 포함하도록 구현되거나 또는 트랜시버(transceiver), GPS(Global Positioning System) 모듈, 카메라, 각종 센서, 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수도 있다. 보다 구체적인 예로, 전자 기기 1(110)이 스마트폰인 경우, 일반적으로 스마트폰이 포함하고 있는 가속도 센서나 자이로 센서, 카메라 모듈, 각종 물리적인 버튼, 터치패널을 이용한 버튼, 입출력 포트, 진동을 위한 진동기 등의 다양한 구성요소들이 전자 기기 1(110)에 더 포함되도록 구현될 수 있다.
[30]
도 3은 퍼블리싱되는 비디오 스트림의 프레임들의 예를 도시한 도면이고, 도 4 및 도 5는 종래기술에 따른 트랜스코딩과 본 발명의 일실시예에 따른 멀티플렉싱을 비교하여 설명하기 위한 도면들이다.
[31]
도 3에서 제1 점선박스(310)는 퍼블리싱되는 비디오 스트림의 프레임들의 예를 나타내고 있다. 일반적으로 사용되는 비디오의 프레임은 I-Frame(Intra Frame, Key-Frame), P-Frame(Predictive Frame) 및 B-Frame(Bidirectional predictive Frame) 중 하나의 타입으로 생성될 수 있다. 예를 들어, 도 3에 나타난 'I'는 해당 프레임이 I-Frame 타입으로 생성되었음을, 'P'는 해당 프레임이 P-Frame 타입으로 생성되었음을, 그리고 'B'는 해당 프레임이 B-Frame 타입으로 생성되었음을 각각 나타내고 있다.
[32]
I-Frame은 독립적으로 인코딩된 프레임으로서, 다른 프레임을 참조하지 않고 독립적으로 디코딩될 수 있는 프레임이다.
[33]
P-Frame은 이전의 프레임을 참조하여 인코딩된 프레임으로서, 이전의 P-Frame 또는 I-Frame이 있어야 디코딩이 가능한 프레임이다.
[34]
B-Frame은 이전 및 이후의 프레임을 참조하여 인코딩된 프레임으로서, 이전 및 이후에 있는 P-Frame 또는 I-Frame이 있어야 디코딩이 가능한 프레임이다.
[35]
이때, 퍼블리싱되는 비디오 스트림의 프레임들은 일반적으로 도 3에 도시된 프레임들의 패턴(320)이 반복되는 형태로 나열된다. 패턴(320) 내에서 연속되는 프레임들의 개수는 차이가 있을 수 있다. 예를 들어, I-Frame과 P-Frame 사이에 또는 P-Frame과 P-Frame 사이에 B-Frame이 두 개가 아니라 세 개씩 나열될 수도 있다.
[36]
도 4는 제1 점선박스(310)에 나타난 비디오 스트림의 프레임들을 트랜스코더(410)가 트랜스코딩하여 서로 다른 품질의 비디오들을 제공하는 예를 나타내고 있다. 트랜스코딩은 단일 환경을 목표로 제작된 음성, 데이터, 영상 등 멀티미디어 콘텐츠를 다른 환경에서도 이용할 수 있도록 가공, 선별, 변환하는 기술로, 도 4에서는 비디오 스트림의 프레임들 각각의 해상도를 변경하여 총 세 가지 품질의 비디오 스트림을 제공하는 예를 나타내고 있다.
[37]
한편, 도 5는 제1 점선박스(310)에 나타난 비디오 스트림의 프레임들을 멀티플렉서(510)가 멀티플렉싱(또는 먹싱)하여 서로 다른 품질의 비디오들을 제공하는 예를 나타내고 있다. 이때, 도 4의 트랜스코더(410)는 프레임들 각각의 해상도를 조절하여 비트레이트(bitrate)를 제어하는 반면, 도 5의 멀티플렉서(510)는 프레임 레이트(frame rate)를 제어하는 시간의 확장성(temporal scalability)를 통해 비트레이트를 제어할 수 있다.
[38]
예를 들어, 도 5의 제2 점선박스(520)는 멀티플렉서(510)가 제1 점선박스(310)에 나타난 비디오 스트림의 프레임들을 입력으로 받아 그대로 모든 프레임들을 순차적으로 출력하는 경우를 나타내고 있다. 또한, 제3 점선박스(530)는 멀티플렉서(510)가 제1 점선박스(310)에 나타난 비디오 스트림의 프레임들을 입력으로 받아 B-Frame들을 제외한 나머지 I-Frame들과 P-Frame들만을 출력하는 경우를 나타내고 있다. 이와 유사하게 제4 점선박스(540)는 멀티플렉서(510)가 제1 점선박스(310)에 나타난 비디오 스트림의 프레임들을 입력으로 받아 I-Frame들만을 출력하는 경우를 나타내고 있다.
[39]
이미 설명한 바와 같이, I-Frame이나 P-Frame은 B-Frame이 없어도 아무런 영향 없이 디코딩될 수 있다. 다시 말해, B-Frame은 다른 프레임들에게 참조되지 않기 때문에 비디오 스트림에서 제거되어도 비디오 스트림을 문제없이 디코딩할 수 있다. 따라서, 제3 점선박스(530)와 같이 B-Frame이 비디오 스트림에서 제외되는 경우, 비트레이트가 감소하여 제1 점선박스(310)의 비디오 스트림이나 제2 점선박스(520)의 비디오 스트림에 비해 상대적으로 더 낮은 품질의 비디오 서비스가 가능해진다.
[40]
이와 유사하게, I-Frame 역시 독립적으로 인코딩 및 디코딩되기 때문에 P-Frame이나 B-Frame이 없어도 아무런 영향 없이 디코딩될 수 있다. 따라서, 제4 점선박스(540)와 같이 P-Frame이나 B-Frame이 비디오 스트림에서 제외되는 경우, 비트레이트가 감소하여 제3 점선박스(530)의 비디오 스트림에 비해 상대적으로 더 낮은 품질의 비디오 서비스가 가능해진다.
[41]
이처럼, 본 발명의 실시예들에서는 프레임들 각각에 대한 해상도 조절과 같은 트랜스코딩 없이 멀티플렉싱을 통해 제공되는 비디오 스트림의 패킷들을 타입에 따라 선택하여 출력하는 것만으로 다양한 품질의 비디오를 제공할 수 있게 된다. 이때, 도 5에서는 비디오 스트림에서 B-Frame이 P-Frame이나 I-Frame을 참조하고, P-Frame이 다른 P-Frame이나 I-Frame을 참조하는 구조를 갖고 있기 때문에, 참조되지 않는 프레임을 순차적으로 제외하는 방식으로 세 가지 품질의 비디오를 제공하는 예를 설명하였다. 그러나, 프레임들의 타입이 더 증가하여 단계적인 참조의 경우가 더 늘어나는 경우, 더 많은 수의 품질의 비디오를 제공할 수도 있다. 예를 들어, 'A → B'가 A 타입의 프레임이 B 타입의 프레임을 참조하여 인코딩 및 디코딩되는 것을 의미하고, A → B → C → D → E와 같이 다섯 단계의 프레임들의 타입이 존재한다고 가정할 수 있다. 또한, 이러한 다섯 단계의 프레임들의 타입에 따라 생성된 비디오 스트림이 제공된다고 가정할 수 있다. 이 경우, 멀티플렉서(510)는 모든 타입의 프레임들을 포함하는 제1 품질의 비디오 스트림, A 타입의 프레임들이 제외된 제2 품질의 비디오 스트림, A 타입과 B 타입의 프레임들이 제외된 제3 품질의 비디오 스트림, A 타입과 B 타입, 그리고 C 타입의 프레임들이 제외된 제4 품질의 비디오 스트림, 그리고 마지막으로 E 타입의 프레임들만을 포함하는 제5 품질의 비디오 스트림과 같이 총 다섯 가지의 품질의 비디오를 제공할 수 있다.
[42]
이와 같이, 본 발명의 실시예들에서는 프레임들간의 참조 관계에 따라 프레임들을 멀티플렉싱함으로써, 트랜스코딩 없이도 비디오의 품질을 제어할 수 있다. 한편, 앞서 설명한 바와 같이, 본 발명의 실시예들에서는 비디오 프레임 특성에 기반하여 프레임 레이트를 조절함에 따라 비트레이트를 조절함으로써 비디오 스트림의 품질을 제어하는 예들을 설명하였다. 이러한 비디오 스트림의 비트레이트는 비디오 스트림을 제공받는 방송 시청자와 같은 수신측에서의 비디오의 화질에 영향을 줄 수 있다.
[43]
도 6은 본 발명의 일실시예에 있어서, 비디오 스트림의 품질을 조절하여 제공하는 환경의 예를 도시한 도면이다. 도 6은 N(N은 자연수) 개의 방송 송출자 단말기들(610)을 통해 송출되는 라이브 비디오 스트림을 서버(150)가 M(M은 자연수) 개의 방송 수신자 단말기들(620)로 중계하는 라이브 방송 서비스 환경의 예를 나타내고 있다. 이때, N 개의 방송 송출자 단말기들(610) 각각과 M 개의 방송 수신자 단말기들(620) 각각은 앞서 설명한 전자 기기 1(110)과 같은 컴퓨터 장치를 통해 구현될 수 있다.
[44]
이때, 서버(150)는 N 개의 방송 송출자 단말기들(610) 각각이 송출하는 라이브 비디오 스트림들을 수신하고, 멀티플렉서(510)를 이용하여 수신되는 라이브 비디오 스트림들 각각의 품질을 제어하여 브로드캐스팅할 수 있다. 예를 들어, 하나의 라이브 비디오 스트림에 대해 총 세 가지 품질의 송출이 가능한 경우, 서버(150)는 N*3 개의 채널을 통해 라이브 비디오 스트림들을 브로드캐스팅할 수 있다.
[45]
이때, M 개의 방송 수신자 단말기들(620) 각각은 시청하고자 하는 라이브 비디오 스트림에 대한 품질별 세 개의 채널들 중 원하는 품질의 채널을 통해 선택된 품질의 라이브 비디오 스트림을 시청할 수 있게 된다.
[46]
보다 구체적인 예로, 제1 방송 송출자 단말기(611)가 라이브 비디오 스트림 A를 송출할 수 있다. 이 경우, 서버(150)는 멀티플렉서(510)를 통해 송출되는 라이브 비디오 스트림 A를 실시간으로 멀티플렉싱하여 I-Frame, P-Frame 및 B-Frame을 모두 포함하는 제1 품질의 라이브 비디오 스트림 A를 제1 채널을 통해, B-Frame이 모두 제외되어 I-Frame 및 P-Frame을 포함하는 제2 품질의 라이브 비디오 스트림 A를 제2 채널을 통해, 그리고 B-Frame과 P-Frame이 모두 제외되어 I-Frame을 포함하는 제3 품질의 라이브 비디오 스트림 A를 제3 채널을 통해 각각 브로드캐스팅할 수 있다. 이때, 제1 방송 수신자 단말기(621)에서는 라이브 비디오 스트림 A와 관련하여 이러한 제1 채널, 제2 채널 및 제3 채널 중 하나를 선택할 수 있는 사용자 인터페이스가 제공될 수 있다. 또한, 제1 방송 수신자 단말기(621)는 사용자 인터페이스에 기반하여 선택되는 채널(일례로, 제2 채널)을 통해 제2 품질의 라이브 비디오 스트림 A를 스트리밍 받아 재생할 수 있게 된다.
[47]
이미 설명한 바와 같이 트랜스코딩과 멀티플렉싱은 요구되는 서버(150)의 리소스에서 수백 배 이상의 차이가 발생하고, 도 6과 같은 라이브 방송 서비스 환경에서 N의 크기가 증가할수록 그 차이가 커지게 됨을 알 수 있다. 다시 말해, 서버(150)는 트랜스코딩 없이 멀티플렉싱을 통해 라이브 비디오 스트림의 품질을 제어함에 따라 요구되는 서버 리소스를 큰 폭으로 줄일 수 있음을 알 수 있다.
[48]
도 7은 본 발명의 일실시예에 따른 품질 제어 방법의 예를 도시한 흐름도이다. 본 실시예에 따른 품질 제어 방법은 서버(150)와 같은 컴퓨터 장치에 의해 수행될 수 있다. 예를 들어, 서버(150)의 프로세서(222)는 메모리(221)가 포함하는 운영체제의 코드나 적어도 하나의 프로그램의 코드에 따른 제어 명령(instruction)을 실행하도록 구현될 수 있다. 여기서, 프로세서(222)는 서버(150)에 저장된 코드가 제공하는 제어 명령에 따라 서버(150)가 도 7의 품질 제어 방법이 포함하는 단계들(710 내지 730)을 수행하도록 서버(150)를 제어할 수 있다.
[49]
단계(710)에서 서버(150)는 디코딩을 위한 참조 관계에 따라 복수의 타입으로 분류된 프레임들을 포함하는 비디오 스트림을 입력받을 수 있다. 예를 들어, 도 6의 실시예를 통해 설명한 라이브 방송의 경우, 서버(150)는 송출자의 단말기에서 인코딩되어 네트워크를 통해 라이브로 송출중인 비디오 스트림의 프레임들을 수신할 수 있다. 여기서 복수의 타입은, 독립적으로 디코딩되며 다른 프레임의 디코딩을 위해 참조되는 제1 타입, 다른 프레임을 참조하여 디코딩되며 다른 프레임의 디코딩을 위해 참조되는 제2 타입 및 다른 프레임을 참조하여 디코딩되며, 다른 프레임의 디코딩을 위해 참조되지 않는 제3 타입을 포함할 수 있다. 예를 들어, 제1 타입의 프레임은 앞서 설명한 I-Frame과 같이 다른 프레임에 대한 참조 없이 독립적으로 디코딩될 수 있다. 또한, 제2 타입의 프레임은 앞서 설명한 P-Frame과 같이 먼저 인코딩된 제1 타입 또는 제2 타입의 프레임을 참조하여 디코딩될 수 있다. 또한, 제3 타입의 프레임은 앞서 설명한 B-Frame과 같이 먼저 인코딩된 제1 타입 또는 제2 타입의 프레임 및 나중에 인코딩된 제1 타입 또는 제2 타입의 프레임을 모두 참조하여 디코딩될 수 있다.
[50]
단계(720)에서 서버(150)는 비디오 스트림이 포함하는 프레임들을 멀티플렉싱하여 복수의 타입 중 기설정된 타입의 프레임들을 출력함으로써, 비디오 스트림의 품질을 제어할 수 있다. 예를 들어, 서버(150)는 비디오 스트림이 포함하는 프레임들을 멀티플렉싱하여, 세 가지 품질의 비디오 스트림을 제공할 수 있다. 이 경우, 서버(150)는 제1 타입, 제2 타입 및 제3 타입의 프레임들을 모두 출력함으로써 제1 품질의 비디오 스트림을 제공하고, 제1 타입 및 제2 타입의 프레임들을 출력함으로써 제2 품질의 비디오 스트림을 제공하며, 제1 타입의 프레임들을 출력함으로써 제3 품질의 비디오 스트림을 제공할 수 있다.
[51]
단계(730)에서 서버(150)는 출력되는 기설정된 타입의 프레임들을 시청자의 단말기가 접속 가능한 채널을 통해 송출함으로써, 품질이 제어된 비디오 스트림을 중계할 수 있다. 예를 들어, 서버(150)는 앞서 설명한 제1 품질의 비디오 스트림을 제1 채널을 통해, 제2 품질의 비디오 스트림을 제2 채널을 통해, 제3 품질의 비디오 스트림을 제3 채널을 통해 각각 송출할 수 있다. 이 경우, 시청자의 단말기는 원하는 채널에 접속하여 원하는 품질의 비디오 스트림을 제공받을 수 있게 된다.
[52]
도 8은 본 발명의 일실시예에 있어서, 라이브 비디오 스트림의 품질을 제어하여 중계하는 예를 도시한 도면이다. 도 8은 라이브로 송출중인 비디오 스트림의 프레임들을 서버(150)가 수신하여 멀티플렉서(510)에 입력시키고, 멀티플렉서(510)가 타입에 따라 프레임들을 선택하여 출력하는 예를 나타내고 있다. 이때, 수신되는 프레임들은 제1 타입, 제2 타입 및 제3 타입의 프레임들을 포함한다고 가정한다.
[53]
멀티플렉서(510)는 제1 타입, 제2 타입 및 제3 타입의 프레임들을 모두 출력하여 제1 채널로 송출할 수 있다. 이 경우, 제1 채널을 통해 송출자가 송출한 품질과 동일한 제1 품질의 비디오 스트림이 서비스될 수 있다.
[54]
또한, 멀티플렉서(510)는 제1 타입 및 제2 타입의 프레임들을 출력하여 제2 채널로 송출할 수 있다. 이 경우, 제2 채널을 통해 송출자가 송출한 비디오 스트림의 품질보다 낮은 품질인 제2 품질의 비디오 스트림이 서비스될 수 있다. 다시 말해, 제3 타입의 프레임들이 제외되었기 때문에 프레임 레이트가 낮아지고, 그에 따라 제2 채널을 통해 서비스되는 비디오 스트림의 품질이 송출자가 송출한 비디오 스트림의 품질보다 상대적으로 낮아지게 된다.
[55]
또한, 멀티플렉서(510)는 제1 타입의 프레임들을 출력하여 제3 채널로 송출할 수 있다. 이 경우, 제3 채널을 통해 제1 타입의 프레임들만을 포함하는 제3 품질의 비디오 스트림이 서비스될 수 있다. 제3 품질의 비디오 스트림은 제1 타입의 프레임들만을 포함하기 때문에 제1 품질의 비디오 스트림이나 제2 품질의 비디오 스트림보다 상대적으로 더 낮은 품질을 갖게 된다.
[56]
이처럼, 서버(150)는 트랜스코딩 없이, 멀티플렉싱(또는 먹싱)을 통해 제1 채널을 통해 제1 품질의 비디오 스트림을, 제2 채널을 통해 제2 품질의 비디오 스트림을, 그리고 제3 채널을 통해 제3 품질의 비디오 스트림을 각각 서비스할 수 있다. 이 경우, 시청자는 단말기를 통해 원하는 품질의 채널에 접속하여 원하는 품질의 비디오 스트림을 라이브로 시청할 수 있게 된다. 예를 들어, 현재 네트워크 상태가 좋지 않은 위치의 시청자들은 상대적으로 낮은 품질의 채널을 선호할 수 있으며, 네트워크 상태가 좋은 위치의 시청자들은 상대적으로 높은 품질의 채널을 선호할 수 있으며, 단말기는 시청자의 선호에 따라(예를 들어, 시청자의 선택에 따라) 또는 네트워크 상태에 따라 자동으로 채널을 선택하여 원하는 품질의 비디오 스트림을 제공받을 수 있다.
[57]
도 9는 본 발명의 일실시예에 있어서, 비디오 스트림의 품질을 조절하여 제공하는 환경의 다른 예를 도시한 도면이다. 도 9는 앞서 설명한 도 6에서와 유사하게 N 개의 방송 송출자 단말기들(610)을 통해 송출되는 라이브 비디오 스트림을 서버(150)가 M 개의 방송 수신자 단말기들(620)로 중계하는 라이브 방송 서비스 환경의 예를 나타내고 있다. 이때, 도 9는 도 6에서와 달리 서버(150)로부터 송출되는 라이브 비디오 스트림을 제공받아 방송 내용을 모니터링 및/또는 검열하기 위한 모니터링 단말(910)을 더 나타내고 있다. 이러한 모니터링 단말(910)은 라이브 비디오 스트림의 중계 서비스를 제공하는 서비스 제공자 측에서 운영될 수도 있고, 별도의 모니터링 업체에 의해 운영될 수도 있다.
[58]
이 경우, 서버(150)가 모니터링 단말(910)과 통신하는 네트워크의 대역폭은 한계가 있기 때문에, 서버(150)가 모니터링 단말(910)로 실시간으로 제공할 수 있는 라이브 비디오 스트림의 수가 제한된다. 예를 들어, 네트워크의 대역폭을 기준으로 라이브 비디오 스트림의 비트레이트가 높아질수록 실시간으로 제공할 수 있는 라이브 비디오 스트림의 수는 줄어들게 된다. 이에, 서버(150)는 시청자수 등을 이용하여 측정되는 라이브 비디오 스트림의 인기도 등에 따라 기설정된 수의 라이브 비디오 스트림들을 선별하여 모니터링 단말(910)로 전송하게 되고, 모니터링 단말(910)은 기설정된 수의 라이브 비디오 스트림들을 모니터링 및/또는 검열을 진행하게 된다.
[59]
이때, 본 실시예에서는 앞서 설명한 멀티플렉싱을 이용하여 라이브 비디오 스트림의 품질을 제어(프레임 레이트를 제어)하여 비트레이트를 낮춤으로써, 서버(150)가 모니터링 단말(910)로 실시간으로 제공 가능한 라이브 비디오 스트림의 수를 획기적으로 증가시킬 수 있다. 예를 들어, 도 5의 제2 점선박스(520)가 나타내는 제1 품질의 라이브 비디오 스트림은 각각의 패턴마다 15개의 프레임들(첫 번째 I-Frame부터 두 번째 I-Frame 이전의 B-Frame까지의 15 개의 프레임들)로 구성되며, 제4 점선박스(540)가 나타내는 제3 품질의 라이브 비디오 스트림은 각각의 패턴마다 하나의 프레임(I-Frame)으로 구성된다. 이때, 제1 품질의 라이브 비디오 스트림에 비해 제3 품질의 라이브 비디오 스트림이 프레임 레이트의 감소에 따라 비트레이트가 감소함을 설명한 바 있다. 따라서 서버(150)가 제1 품질의 라이브 비디오 스트림 대신, 제3 품질의 라이브 비디오 스트림을 모바일 단말(910)로 전송하게 되는 경우, 동일한 네트워크 대역폭을 통해 실시간으로 전송 가능한 라이브 비디오 스트림의 수가 대폭 증가하게 된다. 다시 말해, 모니터링 단말(910)이 실시간으로 모니터링 및/또는 검열할 수 있는 라이브 비디오 스트림의 수가 대폭 증가하게 된다. 또한, 동일한 네트워크 대역폭에 대해 라이브 비디오 스트림의 수를 증가시킬 수 있다는 것은 역으로, 요구되는 동일한 수의 라이브 비디오 스트림들을 모니터링 및/또는 검열하기 위한 네트워크 비용(네트워크 리소스)을 줄일 수 있음을 의미할 수 있다.
[60]
이를 위해, 서버(150)는 도 7을 통해 설명한 단계(720) 이후에 실시간으로 비디오 스트림들을 모니터링 또는 검열하기 위한 모니터링 단말(일례로, 도 9를 통해 설명한 모니터링 단말(910))로 제공 가능한 비디오 스트림들의 수를 증가시키기 위해(또는 네트워크 비용을 줄이기 위해), 상기 수신된 비디오 스트림의 프레임들 대신, 상기 출력되는 기설정된 타입의 프레임들을 모니터링 단말로 송출할 수 있다.
[61]
또 다른 실시예에서, 모니터링이나 검열은 별도의 모니터링 단말(910)을 이용하지 않고, 서버(150)에서 프로그램적으로 처리될 수도 있다. 예를 들어, 서버(150)는 모니터링 및/또는 검열을 위한 모니터링 모듈을 포함할 수 있으며, 멀티플렉싱을 통해 프레임 레이트가 조절된 비디오 스트림이 상기 모니터링 모듈로 입력될 수 있다. 이 경우, 모니터링 모듈이 검사해야 할 프레임의 수가 감소하기 때문에 비디오 스트림을 모니터링 및/또는 검열하기 위한 시간과 비용을 줄일 수 있게 된다.
[62]
이상에서와 같이, 본 발명의 실시예들에 따르면, 비디오에 대한 트랜스코딩 없이, 비디오의 프레임들에 대한 멀티플렉싱 기법을 통해 비디오의 품질을 제어하여 다수의 품질을 갖는 비디오들을 생성할 수 있다.
[63]
이상에서 설명된 시스템 또는 장치는 하드웨어 구성요소, 소프트웨어 구성요소 또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
[64]
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록매체에 저장될 수 있다.
[65]
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 통상의 기술자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 이러한 기록매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있으며, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.

발명의 실시를 위한 형태

[66]
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
[67]
그러므로, 다른 구현들, 다른 실시예들 및 청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.

청구범위

[청구항 1]
디코딩을 위한 참조 관계에 따라 복수의 타입으로 분류된 프레임들을 포함하는 비디오 스트림을 입력받는 단계; 및 상기 비디오 스트림이 포함하는 프레임들을 멀티플렉싱하여 상기 복수의 타입 중 기설정된 타입의 프레임들을 출력함으로써, 상기 비디오 스트림의 품질을 제어하는 단계 를 포함하는 것을 특징으로 하는 품질 제어 방법.
[청구항 2]
제1항에 있어서, 상기 복수의 타입은, 독립적으로 디코딩되며 다른 프레임의 디코딩을 위해 참조되는 제1 타입, 다른 프레임을 참조하여 디코딩되며 다른 프레임의 디코딩을 위해 참조되는 제2 타입 및 다른 프레임을 참조하여 디코딩되며, 다른 프레임의 디코딩을 위해 참조되지 않는 제3 타입을 포함하는 것을 특징으로 하는 품질 제어 방법.
[청구항 3]
제2항에 있어서, 상기 비디오 스트림의 품질을 제어하는 단계는, 상기 비디오 스트림이 포함하는 프레임들을 멀티플렉싱하여, (1) 제1 채널을 통해 상기 제1 타입, 상기 제2 타입 및 상기 제3 타입의 프레임들을 출력함으로써 제1 품질의 비디오 스트림을 제공하고, (2) 제2 채널을 통해 상기 제1 타입 및 상기 제2 타입의 프레임들을 출력함으로써 제2 품질의 비디오 스트림을 제공하고, (3) 제3 채널을 통해 상기 제1 타입의 프레임들을 출력함으로써 제3 품질의 비디오 스트림을 제공하는 것을 특징으로 하는 품질 제어 방법.
[청구항 4]
제2항에 있어서, 상기 제1 타입의 프레임은 다른 프레임에 대한 참조 없이 독립적으로 디코딩되고, 상기 제2 타입의 프레임은 먼저 인코딩된 제1 타입 또는 제2 타입의 프레임을 참조하여 디코딩되며, 상기 제3 타입의 프레임은 먼저 인코딩된 제1 타입 또는 제2 타입의 프레임 및 나중에 인코딩된 제1 타입 또는 제2 타입의 프레임을 모두 참조하여 디코딩되는 것을 특징으로 하는 품질 제어 방법.
[청구항 5]
제1항에 있어서, 상기 비디오 스트림을 입력받는 단계는, 송출자의 단말기에서 인코딩되어 네트워크를 통해 라이브로 송출중인 상기 비디오 스트림의 프레임들을 수신하는 단계를 포함하고, 상기 품질 제어 방법은, 상기 출력되는 기설정된 타입의 프레임들을 시청자의 단말기가 접속 가능한 채널을 통해 송출함으로써, 품질이 제어된 비디오 스트림을 중계하는 단계 를 더 포함하는 것을 특징으로 하는 품질 제어 방법.
[청구항 6]
제5항에 있어서, 상기 품질 제어 방법은, 상기 수신된 비디오 스트림의 프레임들 대신, 상기 출력되는 기설정된 타입의 프레임들을 상기 비디오 스트림을 모니터링 또는 검열하기 위한 모니터링 단말로 송출하는 단계 를 더 포함하는 것을 특징으로 하는 품질 제어 방법.
[청구항 7]
컴퓨터와 결합되어 제1항 내지 제6항 중 어느 한 항의 방법을 컴퓨터에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램.
[청구항 8]
제1항 내지 제6항 중 어느 한 항의 방법을 컴퓨터에 실행시키기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록매체.
[청구항 9]
컴퓨터 장치에 있어서, 컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서 를 포함하고, 상기 적어도 하나의 프로세서는, 디코딩을 위한 참조 관계에 따라 복수의 타입으로 분류된 프레임들을 포함하는 비디오 스트림을 입력받고, 상기 비디오 스트림이 포함하는 프레임들을 멀티플렉싱하여 상기 복수의 타입 중 기설정된 타입의 프레임들을 출력함으로써, 상기 비디오 스트림의 품질을 제어하는 것 을 특징으로 하는 컴퓨터 장치.
[청구항 10]
제9항에 있어서, 상기 복수의 타입은, 독립적으로 디코딩되며 다른 프레임의 디코딩을 위해 참조되는 제1 타입, 다른 프레임을 참조하여 디코딩되며 다른 프레임의 디코딩을 위해 참조되는 제2 타입 및 다른 프레임을 참조하여 디코딩되며, 다른 프레임의 디코딩을 위해 참조되지 않는 제3 타입을 포함하는 것을 특징으로 하는 컴퓨터 장치.
[청구항 11]
제10항에 있어서, 상기 적어도 하나의 프로세서는, 상기 비디오 스트림의 품질을 제어하기 위해, 상기 비디오 스트림이 포함하는 프레임들을 멀티플렉싱하여, (1) 제1 채널을 통해 상기 제1 타입, 상기 제2 타입 및 상기 제3 타입의 프레임들을 출력함으로써 제1 품질의 비디오 스트림을 제공하고, (2) 제2 채널을 통해 상기 제1 타입 및 상기 제2 타입의 프레임들을 출력함으로써 제2 품질의 비디오 스트림을 제공하고, (3) 제3 채널을 통해 상기 제1 타입의 프레임들을 출력함으로써 제3 품질의 비디오 스트림을 제공하는 것을 특징으로 하는 컴퓨터 장치.
[청구항 12]
제10항에 있어서, 상기 제1 타입의 프레임은 다른 프레임에 대한 참조 없이 독립적으로 디코딩되고, 상기 제2 타입의 프레임은 먼저 인코딩된 제1 타입 또는 제2 타입의 프레임을 참조하여 디코딩되며, 상기 제3 타입의 프레임은 먼저 인코딩된 제1 타입 또는 제2 타입의 프레임 및 나중에 인코딩된 제1 타입 또는 제2 타입의 프레임을 모두 참조하여 디코딩되는 것을 특징으로 하는 컴퓨터 장치.
[청구항 13]
제10항에 있어서, 상기 적어도 하나의 프로세서는, 송출자의 단말기에서 인코딩되어 네트워크를 통해 라이브로 송출중인 상기 비디오 스트림의 프레임들을 수신하고, 상기 출력되는 기설정된 타입의 프레임들을 시청자의 단말기가 접속 가능한 채널을 통해 송출함으로써, 품질이 제어된 비디오 스트림을 중계하는 것 을 특징으로 하는 컴퓨터 장치.
[청구항 14]
제13항에 있어서, 상기 적어도 하나의 프로세서는, 상기 수신된 비디오 스트림의 프레임들 대신, 상기 출력되는 기설정된 타입의 프레임들을 상기 비디오 스트림을 모니터링 또는 검열하기 위한 모니터링 단말로 송출하는 것 을 특징으로 하는 컴퓨터 장치.

도면

[도1]

[도2]

[도3]

[도4]

[도5]

[도6]

[도7]

[도8]

[도9]