KR101538114B1 - 모바일 스마트 기기 내에서 다중 코덱 기반으로 끊김 없이 동영상을 재생할 수 있도록 하는 동영상 처리 장치 및 방법 - Google Patents

모바일 스마트 기기 내에서 다중 코덱 기반으로 끊김 없이 동영상을 재생할 수 있도록 하는 동영상 처리 장치 및 방법 Download PDF

Info

Publication number
KR101538114B1
KR101538114B1 KR1020140062291A KR20140062291A KR101538114B1 KR 101538114 B1 KR101538114 B1 KR 101538114B1 KR 1020140062291 A KR1020140062291 A KR 1020140062291A KR 20140062291 A KR20140062291 A KR 20140062291A KR 101538114 B1 KR101538114 B1 KR 101538114B1
Authority
KR
South Korea
Prior art keywords
video
data
audio
moving picture
reproducible
Prior art date
Application number
KR1020140062291A
Other languages
English (en)
Inventor
강운구
박춘원
허선영
이영호
Original Assignee
가천대학교 산학협력단
주식회사 위즈메타
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 가천대학교 산학협력단, 주식회사 위즈메타 filed Critical 가천대학교 산학협력단
Priority to KR1020140062291A priority Critical patent/KR101538114B1/ko
Application granted granted Critical
Publication of KR101538114B1 publication Critical patent/KR101538114B1/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/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/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4341Demultiplexing of audio and video streams
    • 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/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof
    • H04N21/42653Internal components of the client ; Characteristics thereof for processing graphics
    • 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/4302Content synchronisation processes, e.g. decoder synchronisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Graphics (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

본 발명에 따르면, 다양한 동영상 서비스 서버로부터 수신된 다양한 코덱의 실시간 스트림 영상 데이터로부터 재생하고자 하는 구간의 데이터를 추출하고, 모바일 스마트 기기 사용자의 네트워크 상태와 동영상 재생기의 특성을 확인하고, 확인된 정보에 따라 선택된 재생 비트스트림의 오디오 및 비디오 데이터를 각각 변환한 다음 이를 동기화하여 동영상 재생기로 제공한다. 이에 따라, 다양한 코덱을 적용하여 제공하는 실시간 스트림 영상 데이터를 원본 전체 또는 일부 구간만 발췌하여 다중으로 수신하여 재생하더라도 기존과 같이 코덱 처리를 위해 동영상 재생 환경이 초기화됨으로써 후속 동영상 스트림이 끊기는 문제가 없이 자연스럽게 연결하여 재생할 수 있다.

Description

모바일 스마트 기기 내에서 다중 코덱 기반으로 끊김 없이 동영상을 재생할 수 있도록 하는 동영상 처리 장치 및 방법{Video processing apparatus and method for seamless video playing in a mobile smart device based on multi-codec}
본 발명은 동영상 처리 장치 및 방법에 관한 것으로서, 더 구체적으로는 모바일 스마트 기기에서 다중 코덱 기반으로 끊김 없이 동영상을 재생할 수 있는 동영상 재생 장치 및 방법에 관한 것이다.
최근 인터넷 기술의 발달로 인하여 동영상 서비스 서버로부터 무선 인터넷을 이용하여 스마트 모바일 기기로 동영상을 다운로드하거나 실시간 스트리밍 서비스를 통해 동영상을 이용할 수 있는 서비스가 보편화되었다.
일반적으로 실시간 동영상 서비스의 경우, 동영상 서비스 서버에서는 사용자 단말로부터 특정 동영상 파일의 요청이 있으면, 동영상 서버에 저장된 해당 동영상 파일을 추출하고, 이를 스트리밍하여 상기 사용자 단말로 전송한다.
이때, 적용되는 스트리밍 방식으로는 크게 Bit Rate Throttling (BRT) 방식과 Adaptive Streaming 방식의 두 가지가 있다.
BRT 방식은 재생 시간의 10초 전까지만 버퍼링을 통해 미리 받아 놓도록 함으로써 재생 도중 중단시에 과다 프리 버퍼링으로 인한 경제적 손실을 최소화 하는 방식이다.
Adaptive Streaming 방식은 기존의 스트리밍 기술을 쓰지 않고 HTTP의 표준 웹기술을 사용하여 스트리밍을 흉내내는 방식이다. 이는 동영상 데이터를 슬라이스로 나누어 표준적인 HTTP 기술로 전송한다. 이로 인하여, 인터넷 등의 회선 품질의 변동에 따라 전송되는 동영상 데이터의 품질을 변화시킴으로써 최적화된 동영상 서비스를 가능하게 해준다.
그런데, 이러한 종래의 실시간 스트리밍 동영상 서비스 방식에는 서비스 면에서 사용자 요구를 충족치 못하는 여러 가지 불편한 점이 있다. 예를 들면, 긴 분량의 동영상에서 다음에 또 필요로 하는 내용이 일부분에 불과하더라도 해당 동영상의 처음부터 끝까지 보거나 해당 부분을 일일이 찾아야 한다. 그리고, 필요한 내용이 여러 동영상에 조금씩 들어 있을 경우, 전문적인 동영상 처리 프로그램을 이용하여 각 동영상에서 필요한 부분을 발췌하여 재편집 후 다시 인코딩해야 한다. 또한, 필요한 동영상이 여러 사이트에 혼재할 경우에는, 해당 사이트마다 개별적으로 접속해야만 한다.
이러한 종래의 동영상 서비스가 가지는 불편 요소는 여러 사이트에 혼재하는 다수 동영상의 필요 부분에 대한 정보를 인터넷 서핑하는 과정에서 나중에 재방문 필요가 있는 페이지를 Book Marking 하듯이 해당 동영상의 재활용 필요 부분을 Video Duration Time Marking (동영상 재생구간 정보표시)하고 이 VDTM 정보를 데이터베이스로 저장하여 놓았다가 나중에 데이터베이스에서 필요한 VDTM 정보만을 검색 및 조합하여 동영상을 재생할 수 있는 동영상 서비스 환경 및 동영상 재생기를 개발하여 해결할 수 있다.
그런데, 새로운 서비스를 위해 개발하는 동영상 재생기가 필수적으로 해결해야 할 기술적 과제는 앞에서 언급한 바와 같이 여러 동영상 서비스 사이트가 동영상을 서비스하는 스트리밍 방식이 각기 달라 이들 다른 스트리밍 서비스로 제공되는 동영상들을 실시간으로 조합하여 재생할 때 발생할 수 있는 끊김 및 재생 불능의 문제이다.
특히, 모바일 스마트 기기의 경우, 대부분의 운영체제에서 제공하는 비디오 재생기가 한번에 한 개의 동영상 재생을 전제로 설계되어 있어 다양한 소스로부터 공급되는 여러가지 비디오 코덱 기반의 비디오 스트림을 끊김없이 이어서 처리하지 못한다.
예를 들어 Android OS에서는 비디오 스트림을 연결할 때마다 코덱을 확인한 후 이를 처리하기 위하여 재생기를 초기화하며, iOS에서는 동영상 파일의 소스 URL로 해당 파일을 바로 접근하거나 iOS 고유의 HLS(HTTP Live Streaming)을 통해서만 재생할 수 있다. 예를 들어, 유튜브의 동영상을 iOS에서 재생하기 위해서는 애플리케이션에서 유튜브 앱을 호출하여 유튜브를 실행시키거나, 애플리케이션 내에서 웹뷰(WebView)를 내장하여 재생하는 방법을 사용하고 있으나, 유튜브 앱을 실행시키는 경우는 실행중인 애플리케이션이 백그라운드로 내려가서 다시 활성화되지 않고, 웹뷰를 내장하는 경우에는 iOS에서 동영상을 자동으로 실행시켜주지 못하기 때문에, 여러 동영상으로 이루어진 재생 목록 기반의 동영상 서비스를 제공하고자 할 경우 다음 동영상으로 자동으로 넘어가지 못하게 된다.
본 발명은 상기와 같은 배경에서 고안된 것으로서, 다양한 코덱을 적용하여 제공하는 실시간 스트림 영상 데이터를 원본 전체 또는 일부 구간만 발췌하여 다중으로 수신하여 재생하더라도 기존과 같이 코덱 처리를 위해 동영상 재생 환경이 초기화됨으로써 후속 동영상 스트림이 끊기는 문제가 없이 자연스럽게 연결 재생할 수 있도록 하는 동영상 처리 장치 및 방법을 제공하고자 한다.
본 발명은 상기와 같은 과제를 해결하기 위한 것으로서, 다양한 동영상 서비스 서버로부터 수신된 다양한 코덱의 실시간 스트림 영상 데이터로부터 재생하고자 하는 구간의 데이터를 추출하고, 모바일 스마트 기기 사용자의 네트워크 상태와 동영상 재생기의 특성을 확인하고, 확인된 정보에 따라 선택된 재생 비트스트림의 오디오 및 비디오 데이터를 각각 변환한 다음 이를 동기화하여 동영상 재생기로 제공한다.
즉, 본 발명의 일 면에 따른 동영상 처리 장치는, 모바일 스마트 기기에 포함된 동영상 재생기에서 재생하고자 하는 동영상을 처리하는 장치로서, 수신한 동영상 패킷을 저장하는 동영상 패킷 큐; 상기 동영상 패킷 큐에 저장된 동영상 파일로부터 재생가능한 비트스트림 데이터인 원본 데이터를 추출하는 데이터 추출부; 상기 데이터 추출부를 통해 추출된 원본 데이터로부터 재생하고자 하는 구간의 데이터를 추출하는 재생 비트스트림 선택부; 상기 모바일 스마트 기기 사용자의 네트워크 상태와 상기 동영상 재생기의 특성을 확인하는 재생환경 확인부; 상기 재생환경 확인부에 의해 확인된 상기 네트워크 상태와 상기 동영상 재생기의 특성을 참조하여 상기 재생 비트스트림 선택부에 의해 선택된 재생 비트스트림의 오디오 및 비디오 데이터를 각각 변환하는 오디오 변환부 및 비디오 변환부; 상기 오디오 변환부 및 비디오 변환부에 의해 변환된 오디오 및 비디오 데이터를 각각 저장하기 위한 오디오 패킷 큐 및 비디오 패킷 큐; 상기 오디오 패킷 큐 및 비디오 패킷 큐에 저장된 오디오 및 비디오 데이터를 동기화하는 스트림 동기화부; 및 상기 스트림 동기화부에 의해 동기화된 데이터를 상기 동영상 재생기로 전달하는 전송부를 포함하여 이루어진다.
여기에서, 상기 수신한 동영상 패킷은 상기 모바일 스마트 기기 외부의 동영상 서비스 서버로부터 제공된 두 개 이상의 동영상 패킷을 포함할 수 있다.
상기 비디오 변환부는, 상기 재생 비트스트림 선택부에 의해 선택된 재생 비트스트림의 비디오 데이터가 RGB 형태가 아닌 경우, 상기 모바일 스마트 기기의 GPU(Graphic Processing Unit)을 이용하여 상기 비디오 데이터를 RGB 형태로 변환하는 것이 바람직하다.
상기 재생환경 확인부는, 구체적으로, 상기 네트워크 상태와 상기 동영상 재생기의 특성에 적합한 동영상 포맷, 상기 동영상 재생기의 특성에 적합한 동영상 크기 및 상기 네트워크 상태를 고려하여 원활한 재생을 위한 해상도를 확인할 수 있다.
상기 동영상 처리 장치는 상기 모바일 스마트 기기 내부에 포함되거나, 그 구성요소의 전부 또는 일부가 상기 모바일 스마트 기기 외부에 위치하여 상기 모바일 스마트 기기와 네트워크를 통해 연결될 수 있다.
본 발명의 다른 면에 따른 동영상 처리 방법은, 모바일 스마트 기기에 포함된 동영상 재생기에서 재생하고자 하는 동영상을 처리하는 방법으로서, 동영상 패킷을 수신하여 동영상 패킷 큐에 저장하는 제1 저장 단계; 상기 동영상 패킷 큐에 저장된 동영상 파일로부터 재생가능한 비트스트림 데이터인 원본 데이터를 추출하는 원본 데이터 추출 단계; 상기 모바일 스마트 기기 사용자의 네트워크 상태와 상기 동영상 재생기의 특성을 확인하는 재생환경 확인 단계; 추출된 상기 원본 데이터로부터 재생하고자 하는 구간의 데이터를 추출하는 재생 비트스트림 선택 단계; 확인된 상기 네트워크 상태와 상기 동영상 재생기의 특성을 참조하여 선택된 상기 재생 비트스트림의 오디오 및 비디오 데이터를 각각 변환하는 오디오 및 비디오 변환 단계; 변환된 상기 오디오 및 비디오 데이터를 각각 오디오 패킷 큐 및 비디오 패킷 큐에 저장하는 제2 저장 단계; 상기 오디오 패킷 큐 및 비디오 패킷 큐에 저장된 오디오 및 비디오 데이터를 동기화하는 스트림 동기화 단계; 동기화된 상기 오디오 및 비디오 데이터를 상기 동영상 재생기로 전달하는 단계를 포함하여 이루어진다.
여기에서, 상기 재생 비트스트림 선택 단계는, 추출된 상기 원본 데이터가 상기 동영상 재생기에서 바로 재생가능한 데이터인지 여부를 판단하는 제1 판단 단계; 상기 제1 판단 단계의 판단 결과 바로 재생가능한 데이터이면, 전체구간 재생 여부를 판단하는 제2 판단 단계; 상기 제2 판단 단계의 판단 결과 전체구간 재생이 아니면 재생시간 구간으로 이동하는 단계; 상기 제1 판단 단계의 판단 결과 바로 재생가능한 데이터가 아니면, 전체구간 재생 여부를 판단하는 제3 판단 단계; 상기 제3 단계의 판단 결과 전체구간 재생이 아니면 상기 원본 데이터의 오디오 및 비디오 스트림으로부터 재생 구간을 추출하는 단계를 포함할 수 있다.
또한, 상기 오디오 및 비디오 변환 단계는, 선택된 상기 재생 비트스트림이 상기 동영상 재생기에서 바로 재생가능한 데이터인지 여부를 판단하는 제4 판단 단계; 상기 제4 판단 단계의 판단 결과 바로 재생가능한 데이터이면, 전체구간 재생 여부를 판단하는 제5 판단 단계; 상기 제5 판단 단계의 판단 결과 전체구간 재생이 아니면 재생시간 구간으로 이동하는 단계; 상기 동영상 패킷 큐로부터 재생을 위한 동영상을 읽는 단계; 및 상기 동영상 패킷 큐로부터 읽은 동영상을 상기 오디오 및 비디오 패킷 큐에 저장하는 단계를 포함할 수 있으며, 상기 제4 판단 단계의 판단 결과 바로 재생가능한 데이터가 아니면, 상기 재생환경 확인부에 의해 확인된 상기 네트워크 상태와 상기 동영상 재생기의 특성을 참조하여 상기 재생 비트스트림 선택부에 의해 선택된 재생 비트스트림의 오디오 및 비디오 데이터를 각각 변환할 수 있다.
본 발명에 의하면 다양한 코덱을 적용하여 제공하는 실시간 스트림 영상 데이터를 원본 전체 또는 일부 구간만 발췌하여 다중으로 수신하여 재생하더라도 기존과 같이 코덱 처리를 위해 동영상 재생 환경이 초기화됨으로써 후속 동영상 스트림이 끊기는 문제가 없이 자연스럽게 연결하여 재생할 수 있는 효과가 있다.
도 1은 본 발명의 실시예에 따른 동영상 처리 장치의 구성 및 이를 포함하는 네트워크 구성을 도시한 도면이다.
도 2는 본 발명의 실시예에 따른 동영상 처리 방법의 흐름도이다.
도 3은 본 발명의 실시예에 따른 동영상 처리 방법에서 재생 비트스트림 선택 단계를 더 자세히 나타낸 흐름도이다.
도 4는 본 발명의 실시예에 따른 동영상 처리 방법에서 비디오 및 오디오 변환 단계를 더 자세히 나타낸 흐름도이다.
이하, 도면을 참조하여 본 발명의 실시예에 따른 동영상 처리 장치 및 방법을 설명한다. 본 발명을 설명함에 있어서, 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단된 경우 그 상세한 설명은 생략한다.
도 1은 본 발명의 실시예에 따른 동영상 처리 장치의 구성 및 이를 포함하는 네트워크 구성을 도시한 도면이다.
도 1에 도시한 실시예에 따른 동영상 처리 장치(100)는 스마트폰과 같은 모바일 스마트 기기(10) 내에 포함될 수 있으며, 이 경우 모바일 스마트 기기(10) 내의 기억장치와 프로세서를 그 구현수단으로 사용할 수 있다. 그러나 이와는 달리, 본 발명의 동영상 처리 장치의 구성요소 일부 또는 전부가 모바일 스마트 기기 외부의 별도의 서버에 위치하여 모바일 스마트 기기와 네트워크를 통해 연결될 수도 있다.
도 1에 나타난 바와 같이, 여러 동영상 서비스 서버(20)로부터 전송되는 동영상 데이터를 네트워크를 통해 모바일 스마트 기기(10) 내의 동영상 처리 장치(100)에서 수신하여 처리하고 이를 모바일 스마트 기기(10) 내의 동영상 재생기(11)로 보내 재생한다.
동영상 처리 장치(100)는 여러 동영상 서비스 서버(20)로부터 수신한 동영상 패킷을 저장하는 동영상 패킷 큐(110), 동영상 패킷 큐(110)에 저장된 동영상 파일로부터 재생가능한 비트스트림 데이터인 원본 데이터를 추출하는 데이터 추출부(130), 데이터 추출부(130)를 통해 추출된 원본 데이터로부터 재생하고자 하는 구간의 데이터를 추출하는 재생 비트스트림 선택부(140)를 포함한다.
동영상 처리 장치(100)는 또한 모바일 스마트 기기(10) 사용자의 네트워크 상태와 동영상 재생기(11)의 특성을 확인하는 재생환경 확인부(120)를 포함한다. 재생환경 확인부(120)는 구체적으로 네트워크 상태와 동영상 재생기의 특성에 적합한 동영상 포맷을 확인하고, 동영상 재생기에 적합한 동영상 크기를 확인하며, 현재 네트워크 상태를 고려하여 원활한 재생을 위한 해상도를 확인하고, 확인된 정보를 재생 비트스트림 선택부(140)로 전달한다.
선택된 재생 비트스트림의 오디오 및 비디오 데이터는 각각 오디오 변환부(150) 및 비디오 변환부(152)로 전달되며, 오디오 변환부(150) 및 비디오 변환부(152)는 각각 변환된 오디오 및 비디오 데이터를 저장하기 위한 오디오 패킷 큐(160) 및 비디오 패킷 큐(162)와 연결되어 있다.
스트림 동기화부(170)는 각각 오디오 변환부(150) 및 비디오 변환부(152)에 의해 변환되어 오디오 패킷 큐(160) 및 비디오 패킷 큐(162)에 저장된 오디오 및 비디오 데이터를 동기화하고, 동기화된 데이터는 전송부(180)에 의해 동영상 재생기(11)로 전달된다.
도 2는 도 1에 나타난 바와 같은 동영상 처리 장치(100)에 의해 수행되는 본 발명의 실시예에 따른 동영상 처리 방법을 나타내는 흐름도이다.
도 2에 나타난 바와 같이, 먼저 동영상 패킷 큐(110)에 패킷이 수신되면(S210), 해당 패킷이 재생가능한 URL을 갖고 있는지 확인한다(S220).
재생가능 URL인 경우(S220의 "예"), 재생환경 확인부(120)는 네트워크 상태와 동영상 재생기(11)의 특성을 포함하는 재생 환경을 확인한다(S230).
재생 환경 확인 단계(S230)에 있어서는, 네트워크 상태와 동영상 재생기의 특성을 확인하게 되는데, 네트워크 상태가 실시간으로 변화하는 것에 비해 동영상 재생기의 특성은 변화하지 않으므로, 최초로 동영상 처리 방법이 수행될 때 동영상 재생기의 특성을 확인하여 모바일 스마트 기기(10)의 기억장치에 저장해 두고 이를 이용할 수도 있다.
다음, 현재 제공된 동영상 파일로부터 재생가능한 비트스트림 데이터인 원본 데이터를 추출한다(S240). 원본 데이터 추출에는 쓰레드(Thread)를 이용하는데, 현재 제공된 동영상 파일로부터 재생가능한 비트스트림 데이터를 추출하고, 제공된 동영상의 재생하고자 하는 특정 구간만을 디먹싱(demuxing)하여 디먹싱을 통해 얻은 코덱이 재생 가능한 코덱인지 아닌지를 파악한 다음 재생 가능한 코덱을 선택하고, 디먹싱한 비디오와 오디오를 각각의 패킷 큐로 보내는 과정을 진행한다.
다음, 추출된 원본 데이터로부터 재생 비트스트림을 선택한다(S250).
본 발명의 실시예에 따른 동영상 처리 방법은 여러 동영상 서비스 서버로부터 제공된 동영상 중 사용자의 요구에 따라 필요한 부분을 추출하고 추출된 동영상을 끊김없이 재생할 수 있도록 하기 위한 것으로서, 원본 데이터를 모두 재생하지 않고 원본 데이터 중 일부만을 재생하도록 하는 경우를 전제로 하는 것이지만, 원본 데이터 전체를 재생하는 경우를 배제하지 않는다. 재생 비트스트림의 선택 단계(S250)에 대해서는 이하에서 도 3을 참조로 더 자세히 설명하기로 한다.
재생 비트스트림이 선택되면, 선택된 비트스트림에 대하여 오디오 및 비디오 변환을 수행하고 이를 오디오 및 비디오 패킷 큐(160, 162)에 저장한다(S260). 오디오 및 비디오 변환 단계(S260)에 대해서는 이하에서 도 4를 참조하여 더 자세히 설명하기로 하며, 오디오 변환 및 비디오 변환은 쓰레드(Thread)를 이용하여 수행된다.
이제, 변환된 오디오 및 비디오 데이터를 동기화하고(S270), 이를 재생기(11)로 전송한다(S280).
이어서 재생해야 하는 다음 재생영상이 존재하는 경우에는(S290의 "예") 패킷을 수신하는 S210 단계로 돌아가 S280까지의 과정을 되풀이하고, 다음 재생영상이 존재하지 않는 경우에는(S290의 "아니오") 처리를 종료한다.
도 3은 본 발명의 실시예에 따른 동영상 재생 방법에서 재생 비트스트림 선택 단계를 더 자세히 나타낸 흐름도이다.
도 3에 나타난 바와 같이, 원본 데이터를 추출하는 단계(S240) 이후에, 재생 비트스트림 선택 단계(S250)를 수행하게 되는데, 먼저 해당 원본 데이터가 YouTube 또는 Vimeo 데이터인지의 여부를 확인한다(S251). YouTube 또는 Vimeo 데이터인 경우(S251의 "예"), 전체구간 재생인지의 여부를 판단하고(S252), 전체구간 재생이 아니면(S252의 "아니오"), 재생시간 구간으로 이동한다(S253). 전체구간 재생인 경우(S252의 "예"), 특별한 처리 없이 다음 단계인 오디오 및 비디오 변환 단계(S260)로 진행할 수 있다.
원본 데이터가 YouTube 또는 Vimeo 데이터가 아닌 경우(S251의 "아니오"), 전체구간 재생인지의 여부를 판단하여(S254), 전체구간 재생이 아닌 경우(S254의 "아니오") 원본 오디오 및 비디오 스트림에서 재생구간을 추출한다(S255). 전체구간 재생인 경우(S254의 "예"), YouTube 또는 Vimeo 데이터의 경우와 마찬가지로 특별한 처리 없이 다음 단계인 오디오 및 비디오 변환 단계(S260)로 진행할 수 있다.
도 4는 본 발명의 실시예에 따른 동영상 재생 방법에서 비디오 및 오디오 변환 단계를 더 자세히 나타낸 흐름도이다.
도 4에 나타난 바와 같이, 재생 비트스트림이 선택(S250)되면, 먼저 해당 비트스트림이 YouTube 또는 Vimeo 데이터인지 확인한다(S2610). YouTube 또는 Vimeo 데이터인 경우(S2610의 "예"), 전체구간 재생인지의 여부를 판단하고(S2620), 전체구간 재생이 아니면(S2620의 "아니오"), 재생시간 구간으로 이동한다(S2622). 이제 재생시간 구간으로부터 재생을 위한 동영상을 읽고(S2624), 읽은 동영상을 각각 오디오 및 비디오 패킷 큐에 저장한다(S2626). 전체구간 재생인 경우(S2620의 "예")에는 재생시간 구간으로 이동할 필요 없이 S2624 단계로 진행하여 재생을 위한 동영상을 읽고(S2624), 읽은 동영상을 각각 오디오 및 비디오 패킷 큐에 저장(S2626)할 수 있다.
선택된 재생 비트스트림이 YouTube 또는 Vimeo 데이터가 아닌 경우에는 오디오 및 비디오 데이터를 각각 변환하여야 한다.
먼저 오디오 데이터의 변환을 설명하면, 재생가능 오디오 포맷인지의 여부를 판단하고(S2630), 재생가능한 오디오 포맷이 아니면(S2630의 "아니오") 오디오 스트림을 재생가능한 형태로 변환하고(S2632), 오디오 패킷 큐(160)에 저장한다(S2634). 재생가능한 오디오 포맷인 경우(S2630의 "예"), 선택된 재생 비트스트림의 오디오 데이터를 바로 오디오 패킷 큐(160)에 저장하면 된다.
비디오 데이터에서 대해서도 마찬가지로 재생가능한 비디오 코덱인지의 여부를 판단하고(S2640), 재생가능한 비디오 코덱이 아니면 (S2640의 "아니오") 비디오 스트림을 재생가능한 형태로 변환한다(S2632). 예를 들면, 비디오 스트림을 mp4 비디오로 변환할 수 있다.
다음, 비디오 스트림으로부터 픽셀 정보를 추출하고(S2644), 표현가능한 픽셀인지의 여부를 판단한다(S2646).
표현가능한 픽셀이 아닌 경우(S2646의 "아니오"), 픽셀 데이터를 표현가능한 형태로 변환한다(S2648). 예를 들면, 픽셀 정보의 추출 결과 RGB 형태의 픽셀이 아닌 경우 RGB 형태로 변환할 수 있다. 또한 픽셀 데이터의 변환 단계에서는 CPU의 과다한 사용으로 인한 성능 저하를 막기 위하여 GPU(Graphic Processing Unit)를 사용하여 픽셀 데이터를 변환할 수 있으며, 이때 Shader와 OpenGL을 이용할 수 있다.
변환된 픽셀 데이터는 비디오 패킷 큐(162)에 저장한다(S2650). S2646 단계의 판단 결과 표현가능한 픽셀인 경우(S2646의 "예")에는 픽셀 데이터의 변환 단계(S2648)를 거치지 않고 바로 픽셀 데이터를 비디오 패킷 큐(162)에 저장할 수 있다(S2650).
이와 같이 하여 오디오 및 비디오 변환(S260)이 완료되면, 오디오 및 비디오 동기화 단계(S270)로 진행한다.
본 발명의 실시예에 따른 동영상 처리 방법의 재생 비트스트림 선택 단계(S250) 및 오디오 및 비디오 변환 단계(S260)에서는 해당 동영상 데이터가 YouTube 또는 Vimeo 데이터인지의 여부를 먼저 판단하도록 하였는데, 이는 동영상 데이터가 YouTube 또는 Vimeo 데이터인 경우 모바일 스마트 기기(100)에서 바로 재생가능한 동영상이기 때문이다. 즉, YouTube 또는 Vimeo 데이터 여부를 판단하는 것은 모바일 스마트 기기(100)에서 바로 재생가능한 동영상인지의 여부를 판단하고자 하는 것이며, 이를 특정한 형태의 동영상 데이터로 한정하고자 하는 의도가 아님을 유의할 필요가 있다.
한편, 상술한 실시예에서는 원본 데이터로부터 재생 비트스트림을 선택(S250)하고, 재생 비트스트림으로부터 오디오 및 비디오를 변환(S260)하도록 하였으나, 대안적인 실시예로서, 원본 데이터의 추출시에 검색된 코덱을 FFmpeg로부터 찾아 재생하고자 하는 기기에 탑재하도록 한 다음, 디먹싱한 비디오와 오디오를 각각의 패킷 큐로 보내고 쓰레드를 이용하여 오디오 및 비디오를 디코딩하도록 할 수 있다.
그러나, 만일 원본 데이터가 FFmpeg에 있는 코덱을 사용한 것이 아니라면, 예를 들면 mp4와 같은 형태로 동영상을 인코딩하여 동영상 재생기로 보내도록 한다.
한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허 청구의 범위와 균등한 것들에 의해 정해져야 한다.

Claims (11)

  1. 모바일 스마트 기기에 포함된 동영상 재생기에서 재생하고자 하는 동영상을 처리하는 장치로서,
    수신한 동영상 패킷을 저장하는 동영상 패킷 큐;
    상기 동영상 패킷 큐에 저장된 동영상 파일로부터 재생가능한 비트스트림 데이터인 원본 데이터를 추출하는 데이터 추출부;
    상기 데이터 추출부를 통해 추출된 원본 데이터로부터 재생하고자 하는 구간의 데이터를 추출하는 재생 비트스트림 선택부;
    상기 모바일 스마트 기기 사용자의 네트워크 상태와 상기 동영상 재생기의 특성을 확인하는 재생환경 확인부;
    상기 재생환경 확인부에 의해 확인된 상기 네트워크 상태와 상기 동영상 재생기의 특성을 참조하여 상기 재생 비트스트림 선택부에 의해 선택된 재생 비트스트림의 오디오 및 비디오 데이터를 각각 변환하는 오디오 변환부 및 비디오 변환부;
    상기 오디오 변환부 및 비디오 변환부에 의해 변환된 오디오 및 비디오 데이터를 각각 저장하기 위한 오디오 패킷 큐 및 비디오 패킷 큐;
    상기 오디오 패킷 큐 및 비디오 패킷 큐에 저장된 오디오 및 비디오 데이터를 동기화하는 스트림 동기화부; 및
    상기 스트림 동기화부에 의해 동기화된 데이터를 상기 동영상 재생기로 전달하는 전송부를 포함하며,
    상기 데이터 추출부는, 상기 동영상 파일로부터 재생하고자 하는 원본 데이터를 추출할 때, 상기 동영상 파일로부터 재생하고자 하는 구간을 디먹싱(demuxing)하며 상기 디먹싱을 통해 얻은 데이터의 포맷 및 코덱이 상기 재생환경 확인부에서 확인된 상기 동영상 재생기의 특성에 부합하는 재생 가능한 포맷 및 코덱인지를 판단하며,
    상기 오디오 변환부는, 선택된 상기 재생 비트스트림의 오디오 데이터의 포맷이 상기 동영상 재생기의 특성에 부합하는 재생 가능한 포맷이 아닌 경우, 상기 동영상 재생기에 의해 재생 가능한 포맷을 가진 오디오 데이터로 변환하며,
    상기 비디오 변환부는, 선택된 상기 재생 비트스트림의 비디오 데이터의 코덱이 상기 동영상 재생기의 특성에 부합하는 재생 가능한 코덱이 아닌 경우, 상기 동영상 재생기에 의해 재생 가능한 코덱을 가진 비디오 데이터로 변환하는,
    동영상 처리 장치.
  2. 제 1 항에 있어서,
    상기 수신한 동영상 패킷은 상기 모바일 스마트 기기 외부의 동영상 서비스 서버로부터 제공된 두 개 이상의 동영상 패킷을 포함하는 동영상 처리 장치.
  3. 제 1 항에 있어서,
    상기 비디오 변환부는, 상기 재생 비트스트림 선택부에 의해 선택된 재생 비트스트림의 비디오 데이터가 RGB 형태가 아닌 경우, 상기 모바일 스마트 기기의 GPU(Graphic Processing Unit)을 이용하여 상기 비디오 데이터를 RGB 형태로 변환하는 동영상 처리 장치.
  4. 제 1 항에 있어서,
    상기 재생환경 확인부는, 상기 네트워크 상태와 상기 동영상 재생기의 특성에 적합한 동영상 포맷, 상기 동영상 재생기의 특성에 적합한 동영상 크기 및 상기 네트워크 상태를 고려하여 원활한 재생을 위한 해상도를 확인하는 동영상 처리 장치.
  5. 제 1 항에 있어서,
    상기 동영상 처리 장치는 상기 모바일 스마트 기기 내부에 포함되는 동영상 처리 장치.
  6. 제 1 항에 있어서,
    상기 동영상 처리 장치는 그 구성요소의 전부 또는 일부가 상기 모바일 스마트 기기 외부에 위치하여 상기 모바일 스마트 기기와 네트워크를 통해 연결되는 동영상 처리 장치.
  7. 모바일 스마트 기기에 포함된 동영상 재생기에서 재생하고자 하는 동영상을 처리하는 방법으로서,
    동영상 패킷을 수신하여 동영상 패킷 큐에 저장하는 제1 저장 단계;
    상기 모바일 스마트 기기 사용자의 네트워크 상태와 상기 동영상 재생기의 특성을 확인하는 재생환경 확인 단계;
    상기 동영상 패킷 큐에 저장된 동영상 파일로부터 재생가능한 비트스트림 데이터인 원본 데이터를 추출하는 원본 데이터 추출 단계;
    추출된 상기 원본 데이터로부터 재생하고자 하는 구간의 데이터를 추출하는 재생 비트스트림 선택 단계;
    확인된 상기 네트워크 상태와 상기 동영상 재생기의 특성을 참조하여 선택된 상기 재생 비트스트림의 오디오 및 비디오 데이터를 각각 변환하는 오디오 및 비디오 변환 단계;
    변환된 상기 오디오 및 비디오 데이터를 각각 오디오 패킷 큐 및 비디오 패킷 큐에 저장하는 제2 저장 단계;
    상기 오디오 패킷 큐 및 비디오 패킷 큐에 저장된 오디오 및 비디오 데이터를 동기화하는 스트림 동기화 단계;
    동기화된 상기 오디오 및 비디오 데이터를 상기 동영상 재생기로 전달하는 단계를 포함하며,
    상기 원본 데이터 추출 단계는,
    상기 동영상 파일로부터 재생하고자 하는 구간을 디먹싱(demuxing)하는 단계; 및
    상기 디먹싱을 통해 얻은 데이터의 포맷 및 코덱이 상기 재생환경 확인 단계에서 확인된 상기 동영상 재생기의 특성에 부합하는 재생 가능한 포맷 및 코덱인지를 판단하는 단계;를 포함하며,
    상기 오디오 및 비디오 변환 단계는,
    선택된 상기 재생 비트스트림의 오디오 데이터의 포맷이 상기 동영상 재생기의 특성에 부합하는 재생 가능한 포맷이 아닌 경우, 상기 동영상 재생기에 의해 재생 가능한 포맷을 가진 오디오 데이터로 변환하는 단계; 및
    선택된 상기 재생 비트스트림의 비디오 데이터의 코덱이 상기 동영상 재생기의 특성에 부합하는 재생 가능한 코덱이 아닌 경우, 상기 동영상 재생기에 의해 재생 가능한 코덱을 가진 비디오 데이터로 변환하는 단계;를 포함하는,
    동영상 처리 방법.
  8. 제 7 항에 있어서,
    상기 수신한 동영상 패킷은 상기 모바일 스마트 기기 외부의 동영상 서비스 서버로부터 제공된 두 개 이상의 동영상 패킷을 포함하는 동영상 처리 방법.
  9. 제 7 항에 있어서,
    상기 재생 비트스트림 선택 단계는,
    추출된 상기 원본 데이터가 상기 동영상 재생기에서 바로 재생가능한 오디오 포맷 및 비디오 코덱을 가진 데이터인지 여부를 판단하는 제1 판단 단계;
    상기 제1 판단 단계의 판단 결과 바로 재생가능한 데이터이면, 전체구간 재생 여부를 판단하는 제2 판단 단계;
    상기 제2 판단 단계의 판단 결과 전체구간 재생이 아니면 재생시간 구간으로 이동하는 단계;
    상기 제1 판단 단계의 판단 결과 바로 재생가능한 데이터가 아니면, 전체구간 재생 여부를 판단하는 제3 판단 단계;
    상기 제3 단계의 판단 결과 전체구간 재생이 아니면 상기 원본 데이터의 오디오 및 비디오 스트림으로부터 재생 구간을 추출하는 단계를 포함하는 동영상 처리 방법.
  10. 삭제
  11. 삭제
KR1020140062291A 2014-05-23 2014-05-23 모바일 스마트 기기 내에서 다중 코덱 기반으로 끊김 없이 동영상을 재생할 수 있도록 하는 동영상 처리 장치 및 방법 KR101538114B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140062291A KR101538114B1 (ko) 2014-05-23 2014-05-23 모바일 스마트 기기 내에서 다중 코덱 기반으로 끊김 없이 동영상을 재생할 수 있도록 하는 동영상 처리 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140062291A KR101538114B1 (ko) 2014-05-23 2014-05-23 모바일 스마트 기기 내에서 다중 코덱 기반으로 끊김 없이 동영상을 재생할 수 있도록 하는 동영상 처리 장치 및 방법

Publications (1)

Publication Number Publication Date
KR101538114B1 true KR101538114B1 (ko) 2015-07-23

Family

ID=53875518

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140062291A KR101538114B1 (ko) 2014-05-23 2014-05-23 모바일 스마트 기기 내에서 다중 코덱 기반으로 끊김 없이 동영상을 재생할 수 있도록 하는 동영상 처리 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101538114B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020055802A1 (en) * 2018-09-12 2020-03-19 Roku, Inc. Adaptive switching in a whole home entertainment system
WO2020055803A1 (en) * 2018-09-12 2020-03-19 Roku, Inc. Dynamically adjusting video to improve synchronization with audio
US10979785B2 (en) 2017-01-20 2021-04-13 Hanwha Techwin Co., Ltd. Media playback apparatus and method for synchronously reproducing video and audio on a web browser

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100054586A (ko) * 2008-11-14 2010-05-25 한국과학기술정보연구원 그래픽스 가속을 통한 고화질 영상의 스테레오스코픽 다중화 및 저비율 압축 전송 장치 및 그 방법과 그 프로그램 소스를 저장한 기록매체
KR20140004262A (ko) * 2009-09-22 2014-01-10 퀄컴 인코포레이티드 시그널링 또는 블록 생성을 이용하는 개선된 블록-요청 스트리밍 시스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100054586A (ko) * 2008-11-14 2010-05-25 한국과학기술정보연구원 그래픽스 가속을 통한 고화질 영상의 스테레오스코픽 다중화 및 저비율 압축 전송 장치 및 그 방법과 그 프로그램 소스를 저장한 기록매체
KR20140004262A (ko) * 2009-09-22 2014-01-10 퀄컴 인코포레이티드 시그널링 또는 블록 생성을 이용하는 개선된 블록-요청 스트리밍 시스템

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10979785B2 (en) 2017-01-20 2021-04-13 Hanwha Techwin Co., Ltd. Media playback apparatus and method for synchronously reproducing video and audio on a web browser
WO2020055802A1 (en) * 2018-09-12 2020-03-19 Roku, Inc. Adaptive switching in a whole home entertainment system
WO2020055803A1 (en) * 2018-09-12 2020-03-19 Roku, Inc. Dynamically adjusting video to improve synchronization with audio
US10805658B2 (en) 2018-09-12 2020-10-13 Roku, Inc. Adaptive switching in a whole home entertainment system
US11611788B2 (en) 2018-09-12 2023-03-21 Roku, Inc. Adaptive switching in a whole home entertainment system

Similar Documents

Publication Publication Date Title
US11778258B2 (en) Establishing a streaming presentation of an event
WO2019205872A1 (zh) 视频流处理方法、装置、计算机设备及存储介质
RU2577468C2 (ru) Способ совместного использования цифрового медиаконтента (варианты)
US10698864B2 (en) Auxiliary manifest file to provide timed metadata
WO2013008867A1 (ja) 送信装置、送信装置の制御方法、制御プログラム、及び記録媒体
CN112752115B (zh) 直播数据传输方法、装置、设备及介质
EP3039866A1 (en) Audio video playback synchronization for encoded media
KR20170074866A (ko) 수신 장치, 송신 장치, 및 데이터 처리 방법
CN110351594A (zh) 用于在自适应流播环境中管理相邻频道的系统和方法
KR102499231B1 (ko) 수신 장치, 송신 장치 및 데이터 처리 방법
KR101538114B1 (ko) 모바일 스마트 기기 내에서 다중 코덱 기반으로 끊김 없이 동영상을 재생할 수 있도록 하는 동영상 처리 장치 및 방법
KR102090070B1 (ko) 스트리밍 서버, 클라이언트 단말 및 이를 이용한 av 라이브 스트리밍 시스템
CN105260131A (zh) 内容处理装置及其内容处理方法
CN101527153B (zh) 使异步的传递文本和音视频数据在移动终端同步显示的方法
KR101863598B1 (ko) 스트리밍 서비스를 위한 클라이언트의 동작 방법
US20230010754A1 (en) Non-television experience triggers
CN114885198B (zh) 面向混合网络的伴音与视频协同呈现系统
KR20140117889A (ko) 클라이언트 장치, 서버 장치, 멀티미디어 리디렉션 시스템 및 그 방법
US20220321945A1 (en) Server-side digital content insertion in audiovisual streams broadcasted through an interactive live streaming network
KR102533674B1 (ko) 수신 장치, 송신 장치 및 데이터 처리 방법
US10805027B2 (en) Method, device, and non-transitory computer-readable recording medium for supporting relay broadcast
JP2017130957A (ja) 送信装置、送信方法、再生装置、及び再生方法
JP6400163B2 (ja) 受信装置、受信方法、送信装置、送信方法、及びプログラム
KR20200005968A (ko) 컨텐츠 생성 장치 및 방법
KR101001010B1 (ko) 더블 버퍼링을 이용한 색인 기반 동영상 재생 장치 및 방법

Legal Events

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

Payment date: 20190711

Year of fee payment: 5