KR20200091277A - 오디오 프라이밍을 고려한 디코딩 방법 및 시스템 - Google Patents

오디오 프라이밍을 고려한 디코딩 방법 및 시스템 Download PDF

Info

Publication number
KR20200091277A
KR20200091277A KR1020190008360A KR20190008360A KR20200091277A KR 20200091277 A KR20200091277 A KR 20200091277A KR 1020190008360 A KR1020190008360 A KR 1020190008360A KR 20190008360 A KR20190008360 A KR 20190008360A KR 20200091277 A KR20200091277 A KR 20200091277A
Authority
KR
South Korea
Prior art keywords
packets
file
frames
processor
priming
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
KR1020190008360A
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 KR1020190008360A priority Critical patent/KR20200091277A/ko
Publication of KR20200091277A publication Critical patent/KR20200091277A/ko
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/008Multichannel audio signal coding or decoding using interchannel correlation to reduce redundancy, e.g. joint-stereo, intensity-coding or matrixing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

오디오 프라이밍을 고려한 디코딩 방법 및 시스템을 제공한다. 본 발명의 일실시예에 따른 디코딩 방법은, 음원을 구성하는 패킷들을 분할하여 각각 복수의 패킷들을 포함하도록 구성된 복수의 파일들을 서버로부터 수신하는 단계, 상기 적어도 하나의 프로세서에 의해, 상기 복수의 파일들 중 제1 파일에서 적어도 일부의 패킷을 추출하는 단계, 상기 적어도 하나의 프로세서에 의해, 상기 복수의 파일들 중 상기 제1 파일의 다음 파일인 제2 파일이 포함하는 패킷들 앞에 상기 추출된 적어도 일부의 패킷을 추가하는 단계, 상기 적어도 하나의 프로세서에 의해, 상기 적어도 일부의 패킷이 추가된 상기 제2 파일의 패킷들을 디코딩하는 단계 및 상기 적어도 하나의 프로세서에 의해, 상기 디코딩된 제2 파일의 패킷들의 첫 번째 프레임의 위치 및 상기 디코딩된 제2 파일의 패킷들의 전체 프레임 수를 보정하는 단계를 포함할 수 있다.

Description

오디오 프라이밍을 고려한 디코딩 방법 및 시스템{DECODING METHOD AND SYSTEM CONSIDERING AUDIO PRIMING}
아래의 설명은 사용자의 오디오 프라이밍(Audio Priming)을 고려한 디코딩 방법 및 시스템에 관한 것이다.
AAC(Advanced Audio Coding)는 MPEG(Moving Picture Experts Group) 규격에 포함되는 디지털 압축 오디오 신호를 말한다. 이러한 AAC는 MPEG2 AAC와 MPEG4 AAC로 나누어지는데, 일반적으로 자주 듣는 음악 파일 형식인 MP3와 AAC는 동일한 MPEG 기술을 사용한다. 예를 들어, 한국공개특허 제10-2006-0104684호는 오디오 부호화 방법 및 장치에 관한 것으로, MPEG-4 AAC의 처리 효율을 향상하는데 적당한 오디오 부호화 방법 및 장치를 개시하고 있다.
이때, ACC의 하나의 패킷(1024 프레임)을 디코딩하기 위해서는 최소 앞의 하나 이상의 패킷이 된다. 따라서 ACC 파일을 디코딩 시, ACC 음원의 앞의 일부분이 들리지 않는 문제가 발생하게 되는데, 이를 오디오 프라이밍(Audio Priming)이라 부른다(인코더 딜레이(encoder delay)라고도 함). 예를 들어, iOS의 코어오디오(CoreAudio)에서는 2112 프레임만큼 프라이밍 프레임(오디오 프라이밍에 의해 들리지 않게 되는 프레임)이 발생한다.
한편, HLS(Hypertext Transfer Protocol Live Streaming)는 네트워크 환경에 따른 품질 변경 등을 위해 원본 파일을 복수의 파일들로 분할하고, 분할된 개별 파일들을 MPEG-2 TS(Transport stream)에 담아 전달하게 된다. 이때, ACC 파일을 MPEG-2 TS로 변환할 때, ACC의 음원을 디코딩한 후 HLS를 위한 패킷 단위로 분할하게 된다. 따라서, HLS를 위한 매 패킷마다 오디오 프라이밍에 의해 프라이밍 프레임만큼 오디오가 들리지 않는 문제가 발생하게 된다.
이전 TS(Transport stream) 파일에 포함된 ACC(Advanced Audio Coding) 패킷을 이용하여 오디오 프라이밍(Audio Priming) 이슈를 제거할 수 있는 디코딩 방법 및 시스템을 제공한다.
적어도 하나의 프로세서를 포함하는 컴퓨터 장치의 디코딩 방법에 있어서, 상기 적어도 하나의 프로세서에 의해, 음원을 구성하는 패킷들을 분할하여 각각 복수의 패킷들을 포함하도록 구성된 복수의 파일들을 서버로부터 수신하는 단계; 상기 적어도 하나의 프로세서에 의해, 상기 복수의 파일들 중 제1 파일에서 적어도 일부의 패킷을 추출하는 단계; 상기 적어도 하나의 프로세서에 의해, 상기 복수의 파일들 중 상기 제1 파일의 다음 파일인 제2 파일이 포함하는 패킷들 앞에 상기 추출된 적어도 일부의 패킷을 추가하는 단계; 상기 적어도 하나의 프로세서에 의해, 상기 적어도 일부의 패킷이 추가된 상기 제2 파일의 패킷들을 디코딩하는 단계; 및 상기 적어도 하나의 프로세서에 의해, 상기 디코딩된 제2 파일의 패킷들의 첫 번째 프레임의 위치 및 상기 디코딩된 제2 파일의 패킷들의 전체 프레임 수를 보정하는 단계를 포함하는 디코딩 방법을 제공한다.
컴퓨터 장치와 결합되어 상기 방법을 컴퓨터 장치에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램을 제공한다.
상기 방법을 컴퓨터 장치에 실행시키기 위한 컴퓨터 프로그램이 기록되어 있는 컴퓨터 판독 가능한 기록매체를 제공한다.
컴퓨터 장치에 있어서, 상기 컴퓨터 장치에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서에 의해, 음원을 구성하는 패킷들을 분할하여 각각 복수의 패킷들을 포함하도록 구성된 복수의 파일들을 서버로부터 수신하고, 상기 복수의 파일들 중 제1 파일에서 적어도 일부의 패킷을 추출하고, 상기 복수의 파일들 중 상기 제1 파일의 다음 파일인 제2 파일이 포함하는 패킷들 앞에 상기 추출된 적어도 일부의 패킷을 추가하고, 상기 적어도 일부의 패킷이 추가된 상기 제2 파일의 패킷들을 디코딩하고, 상기 디코딩된 제2 파일의 패킷들의 첫 번째 프레임의 위치 및 상기 디코딩된 제2 파일의 패킷들의 전체 프레임 수를 보정하는 것을 특징으로 하는 컴퓨터 장치를 제공한다.
이전 TS(Transport stream) 파일에 포함된 ACC(Advanced Audio Coding) 패킷을 이용하여 오디오 프라이밍(Audio Priming) 이슈를 제거할 수 있다.
도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 컴퓨터 장치의 예를 도시한 블록도이다.
도 3은 본 발명의 일실시예에 있어서, 서버로부터 클라이언트로 제공되는 파일 형태의 예를 도시한 도면이다.
도 4는 본 발명의 일실시예에 있어서, 수신된 TS 파일에 대한 디코딩 과정의 예를 도시한 도면이다.
도 5는 본 발명의 일실시예에 따른 디코딩 방법의 예를 도시한 흐름도이다.
이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.
본 발명의 실시예들에 따른 디코딩 시스템은 이후 설명될 컴퓨터 장치에 의해 구현될 수 있다. 컴퓨터 장치에는 본 발명의 일실시예에 따른 컴퓨터 프로그램이 설치 및 구동될 수 있고, 컴퓨터 장치는 구동된 컴퓨터 프로그램의 제어에 따라 본 발명의 일실시예에 따른 디코딩 방법을 수행할 수 있다. 상술한 컴퓨터 프로그램은 컴퓨터 장치와 결합되어 디코딩 방법을 컴퓨터 장치에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장될 수 있다. 여기서 설명한 컴퓨터 프로그램은 독립된 하나의 프로그램 패키지의 형태를 가질 수도 있고, 독립된 하나의 프로그램 패키지의 형태가 컴퓨터 장치에 기 설치되어 운영체제나 다른 프로그램 패키지들과 연계되는 형태를 가질 수도 있다.
도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다. 도 1의 네트워크 환경은 복수의 전자 기기들(110, 120, 130, 140), 복수의 서버들(150, 160) 및 네트워크(170)를 포함하는 예를 나타내고 있다. 이러한 도 1은 발명의 설명을 위한 일례로 전자 기기의 수나 서버의 수가 도 1과 같이 한정되는 것은 아니다. 또한, 도 1의 네트워크 환경은 본 실시예들에 적용 가능한 환경들 중 하나의 예를 설명하는 것일 뿐, 본 실시예들에 적용 가능한 환경이 도 1의 네트워크 환경으로 한정되는 것은 아니다.
복수의 전자 기기들(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)와 통신할 수 있는 다양한 물리적인 컴퓨터 장치들 중 하나를 의미할 수 있다.
통신 방식은 제한되지 않으며, 네트워크(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) 네트워크 등을 포함하는 네트워크 토폴로지 중 임의의 하나 이상을 포함할 수 있으나, 이에 제한되지 않는다.
서버(150, 160) 각각은 복수의 전자 기기들(110, 120, 130, 140)과 네트워크(170)를 통해 통신하여 명령, 코드, 파일, 컨텐츠, 서비스 등을 제공하는 컴퓨터 장치 또는 복수의 컴퓨터 장치들로 구현될 수 있다. 예를 들어, 서버(150)는 네트워크(170)를 통해 접속한 복수의 전자 기기들(110, 120, 130, 140)로 서비스(일례로, 컨텐츠 제공 서비스, 소셜 네트워크 서비스, 영상통화 서비스, 금융 서비스, 결제 서비스, 메시징 서비스, 검색 서비스, 메일 서비스, 및/또는 질문 및 답변 서비스 등)를 제공하는 시스템일 수 있다.
도 2는 본 발명의 일실시예에 따른 컴퓨터 장치의 예를 도시한 블록도이다. 앞서 설명한 복수의 전자 기기들(110, 120, 130, 140) 각각이나 서버들(150, 160) 각각은 도 2를 통해 도시된 컴퓨터 장치(200)에 의해 구현될 수 있으며, 본 발명의 실시예들에 따른 방법은 이러한 컴퓨터 장치(200)에 의해 수행될 수 있다.
이때, 도 2에 도시된 바와 같이 컴퓨터 장치(200)는, 메모리(210), 프로세서(220), 통신 인터페이스(230) 그리고 입출력 인터페이스(240)를 포함할 수 있다. 메모리(210)는 컴퓨터에서 판독 가능한 기록매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 여기서 ROM과 디스크 드라이브와 같은 비소멸성 대용량 기록장치는 메모리(210)와는 구분되는 별도의 영구 저장 장치로서 컴퓨터 장치(200)에 포함될 수도 있다. 또한, 메모리(210)에는 운영체제와 적어도 하나의 프로그램 코드가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 메모리(210)와는 별도의 컴퓨터에서 판독 가능한 기록매체로부터 메모리(210)로 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록매체가 아닌 통신 인터페이스(230)를 통해 메모리(210)에 로딩될 수도 있다. 예를 들어, 소프트웨어 구성요소들은 네트워크(170)를 통해 수신되는 파일들에 의해 설치되는 컴퓨터 프로그램에 기반하여 컴퓨터 장치(200)의 메모리(210)에 로딩될 수 있다.
프로세서(220)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(210) 또는 통신 인터페이스(230)에 의해 프로세서(220)로 제공될 수 있다. 예를 들어 프로세서(220)는 메모리(210)와 같은 기록 장치에 저장된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다.
통신 인터페이스(230)은 네트워크(170)를 통해 컴퓨터 장치(200)가 다른 장치(일례로, 앞서 설명한 저장 장치들)와 서로 통신하기 위한 기능을 제공할 수 있다. 일례로, 컴퓨터 장치(200)의 프로세서(220)가 메모리(210)와 같은 기록 장치에 저장된 프로그램 코드에 따라 생성한 요청이나 명령, 데이터, 파일 등이 통신 인터페이스(230)의 제어에 따라 네트워크(170)를 통해 다른 장치들로 전달될 수 있다. 역으로, 다른 장치로부터의 신호나 명령, 데이터, 파일 등이 네트워크(170)를 거쳐 컴퓨터 장치(200)의 통신 인터페이스(230)를 통해 컴퓨터 장치(200)로 수신될 수 있다. 통신 인터페이스(230)를 통해 수신된 신호나 명령, 데이터 등은 프로세서(220)나 메모리(210)로 전달될 수 있고, 파일 등은 컴퓨터 장치(200)가 더 포함할 수 있는 저장 매체(상술한 영구 저장 장치)로 저장될 수 있다.
입출력 인터페이스(240)는 입출력 장치(250)와의 인터페이스를 위한 수단일 수 있다. 예를 들어, 입력 장치는 마이크, 키보드, 카메라 또는 마우스 등의 장치를, 그리고 출력 장치는 디스플레이, 스피커와 같은 장치를 포함할 수 있다. 다른 예로 입출력 인터페이스(240)는 터치스크린과 같이 입력과 출력을 위한 기능이 하나로 통합된 장치와의 인터페이스를 위한 수단일 수도 있다. 입출력 장치(250)는 컴퓨터 장치(200)와 하나의 장치로 구성될 수도 있다.
또한, 다른 실시예들에서 컴퓨터 장치(200)는 도 2의 구성요소들보다 더 적은 혹은 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 컴퓨터 장치(200)는 상술한 입출력 장치(250) 중 적어도 일부를 포함하도록 구현되거나 또는 트랜시버(transceiver), 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수도 있다.
도 3은 본 발명의 일실시예에 있어서, 서버로부터 제공되는 파일의 형태의 예를 도시한 도면이다. 도 3의 제1 점선박스(310)는 AAC(Advanced Audio Coding) 형식의 음원의 예를 나타내고 있다. 서버(일례로, 도 1의 서버(150))는 HLS(Hypertext Transfer Protocol Live Streaming) 프로토콜을 이용하여 음원을 전송하기 위해, 음원을 복수의 TS(Transport stream) 파일들로 분할할 수 있다. 도 3의 제2 점선박스(320)는 이러한 복수의 TS 파일들의 예를 나타내고 있다. 이때, ACC 형식의 음원은 각각 1024 프레임을 포함하는 복수의 패킷들로 구성될 수 있다. 다시 말해, 서버는 음원을 구성하는 복수의 패킷들을 분할하여 복수의 TS 파일들을 생성할 수 있다. 도 3의 제3 점선박스(330)는 하나의 TS 파일이 복수의 AAC 패킷들을 포함하는 예를 나타내고 있다. 이때, AAC가 갖는 오디오 프라이밍(Audio Priming) 이슈로 인해 기설정된 수의 프레임만큼 소리가 들리지 않게 되는 문제점이 매 TS 파일마다 발생하게 된다. 도 3의 실시예에서는 오디오 프라이밍에 따른 프라이밍 프레임의 수가 2112인 예를 나타내고 있다. 이때, 본 발명의 실시예들에서는 이러한 TS 파일들을 수신하여 오디오 프라이밍을 제거할 수 있는 디코딩 방법을 설명한다.
도 4는 본 발명의 일실시예에 있어서, 수신된 TS 파일에 대한 디코딩 과정의 예를 도시한 도면이다. 도 4는 하나의 TS 파일(410)에 2112 프라이밍 프레임이 존재함을 나타내고 있다. 이때, 본 실시예에서는 TS 파일(410)이 포함하는 AAS 패킷들(420)의 앞에 이전 TS 파일(430)에서 추출된 세 개의 AAS 패킷들(440)을 추가하는 예를 나타내고 있다. 이 경우, 오디오 프라이밍은 도 4에 도시된 바와 같이 추가된 세 개의 AAS 패킷들(440)에 발생하기 때문에 TS 파일(410)의 AAS 패킷들(420)에서 오디오 프라이밍이 제거될 수 있다. 예를 들어, AAS 패킷들(420)의 앞에 추가된 세 개의 AAS 패킷들(440)에서 2112개의 프라이밍 프레임은 디코딩 과정에서 무시될 수 있다. 한편, AAS 패킷들(420)의 앞에는 여전히 960개의 프레임들이 추가된 상태이기 때문에 TS 파일(410)을 위한 AAS 패킷들(420)에서 첫 번째 프레임의 위치가 960개의 프레임들 이후의 첫 번째 프레임의 위치로 보정될 수 있다. 또한, 전체 프레임 수 역시 세 개의 AAS 패킷들(440)이 추가되기 전의 AAS 패킷들(420)이 포함하는 프레임들의 수로 보정될 수 있다.
보다 구체적인 예로, AAS 패킷들(420)이 30개의 패킷들이라 가정한다. 이 경우, AAS 패킷들(420)의 전체 프레임 수는 30,720(1024Х30)개이다. 이때, AAS 패킷들(420)의 앞에 세 개의 AAS 패킷들(440)이 추가되면, 전체 프레임 수는 33,792(1024Х33)개가 된다. 이러한 33,792개의 전체 프레임을 디코딩하면, 2112개의 프레임들이 오디오 프라이밍에 의해 무시되기 때문에 디코딩된 전체 프레임 수는 31,680(33,792-2112 또는 30,720+960)개가 된다. 하지만, 960개의 프레임들 역시 이전 TS 파일(430)의 프레임들이기 때문에 디코딩된 프레임들에서 첫 번째 프레임의 위치는 961번째 프레임(960개의 프레임 다음 프레임)의 위치로 보정될 수 있다. 다시 말해, 디코딩된 프레임들 중 961번째 프레임이 TS 파일(410)을 위한 첫 번째 프레임이 될 수 있다. 또한, 전체 프레임 수 역시 최초 30,720개로 조회되도록 보정될 수 있다. 따라서, 오디오 프라이밍이 추가된 세 개의 AAS 패킷들(440)에 반영되었기 때문에 디코딩된 TS 파일(410)에서는 오디오 프라이밍이 제거될 수 있다.
본 실시예에서는 AAS의 예를 들고 있으나, 디코딩을 위해 적어도 하나의 이전 패킷이 요구되는 오디오 인코딩 기술이라면 유사하게 오디오 프라이밍 이슈가 발생할 수 있기 때문에 본 실시예의 적용 가능하다. 뿐만 아니라, 본 실시예에서는 HLS의 예를 들고 있으나, 이러한 오디오 프라이밍 이슈가 존재하는 인코딩 기술의 오디오 데이터를 다수의 파일들로 나누어 전달하는 스트리밍 기법이라면, 해당 파일들 각각에 오디오 프라이밍 이슈가 발생할 수 있기 때문에 본 실시예의 적용 가능해질 수 있다. 게다가 오디오 프라이밍의 프라이밍 프레임의 수 2112는 특정 플랫폼에서의 수일 뿐, 이러한 프라이밍 프레임의 수 역시 적용되는 플랫폼에 따라 달라질 수 있다.
도 5는 본 발명의 일실시예에 따른 디코딩 방법의 예를 도시한 흐름도이다. 본 실시예에 따른 디코딩 방법은 앞서 설명한 컴퓨터 장치(200)에 의해 수행될 수 있다. 일례로, 컴퓨터 장치(200)의 프로세서(220)는 메모리(210)가 포함하는 운영체제의 코드나 적어도 하나의 프로그램의 코드에 따른 제어 명령(instruction)을 실행하도록 구현될 수 있다. 여기서, 프로세서(220)는 컴퓨터 장치(200)에 저장된 코드가 제공하는 제어 명령에 따라 컴퓨터 장치(200)가 도 5의 방법이 포함하는 단계들(510 내지 550)을 수행하도록 컴퓨터 장치(200)를 제어할 수 있다.
단계(510)에서 컴퓨터 장치(200)는 음원을 구성하는 패킷들을 분할하여 각각 복수의 패킷들을 포함하도록 구성된 복수의 파일들을 서버로부터 수신할 수 있다. 일례로, 컴퓨터 장치(200)는 앞서 도 1을 통해 설명한 복수의 전자 기기들(110, 120, 130, 140) 중 어느 하나일 수 있으며, 서버는 서버(150, 160) 중 어느 하나일 수 있다. 이때, 서버는 음원을 구성하는 패킷들을 분할하여 각각 복수의 패킷들을 포함하도록 구성된 복수의 파일들을 생성할 수 있으며, 생성된 복수의 파일들을 네트워크(170)를 통해 컴퓨터 장치(200)로 전송할 수 있다. 예를 들어, 앞서 도 3 및 도 4를 통해 설명한 예시에서와 같이, 컴퓨터 장치(200)는 ACC 패킷들로 구성된 ACC 음원을 네트워크를 통해 HLS 프로토콜을 이용하여 제공받음에 따라, 서버로부터 각각 복수의 ACC 패킷들을 포함하는 TS 파일들을 수신할 수 있다.
단계(520)에서 컴퓨터 장치(200)는 복수의 파일들 중 제1 파일에서 적어도 일부의 패킷을 추출할 수 있다. 일례로, 복수의 패킷들 각각은 n(n은 자연수) 개의 프레임을 포함하도록 구성될 수 있다. 이 경우, 컴퓨터 장치(200)는 제1 파일이 포함하는 복수의 패킷들 중 m 개의 패킷을 추출할 수 있다. 여기서, m은 mХn의 크기가 오디오 프라이밍(Audio Priming)에 따른 프라이밍 프레임의 수 이상이고, (m-1)Хn의 크기가 상기 프라이밍 프레임의 수 미만인 자연수일 수 있다. 예를 들어, 앞서 설명한 바와 같이 n이 1024이고, 프라이밍 프레임의 수가 2112인 경우, 1024m이 2112 이상이면서 1024(m-1)이 2112 미만인 자연수인 m은 3이 될 수 있다.
단계(530)에서 컴퓨터 장치(200)는 복수의 파일들 중 제1 파일의 다음 파일인 제2 파일이 포함하는 패킷들 앞에 추출된 적어도 일부의 패킷을 추가할 수 있다. 예를 들어, m이 3인 경우에는 제1 파일에서 추출된 세 개의 패킷들이 제2 파일이 포함하는 패킷들 앞에 추가될 수 있으며, m이 4인 경우에는 제1 파일에서 추출된 네 개의 패킷들이 제2 파일이 포함하는 패킷들 앞에 추가될 수 있다.
단계(540)에서 컴퓨터 장치(200)는 적어도 일부의 패킷이 추가된 제2 파일의 패킷들을 디코딩할 수 있다. 이때, 오디오 프라이밍은 제2 파일의 패킷들의 앞에 추가된 패킷들에 반영될 수 있기 때문에 제2 파일의 패킷들에서는 오디오 프라이밍이 제거될 수 있다.
단계(550)에서 컴퓨터 장치(200)는 디코딩된 제2 파일의 패킷들의 첫 번째 프레임의 위치 및 디코딩된 제2 파일의 패킷들의 전체 프레임 수를 보정할 수 있다. 이미 설명한 바와 같이, 오디오 프라이밍에 따른 프라이밍 프레임들이 무시된 후에도 일부의 프레임들(일례로, 도 4의 960개의 프레임들)이 제2 파일의 패킷들 앞에 추가되어 있기 때문에, 보정 전에는 첫 번째 프레임의 위치가 추가된 프레임들 중 하나의 위치이며, 전체 프레임 수 역시 제2 파일의 패킷들이 포함하는 프레임들의 수에 일부의 프레임의 수가 더해진 수를 갖게 된다. 따라서 컴퓨터 장치(200)는 첫 번째 프레임의 위치와 전체 프레임 수를 보정하여 디코딩된 프레임들이 정상적으로 재생될 수 있도록 할 수 있다.
예를 들어, 컴퓨터 장치(200)는 디코딩된 제2 파일의 패킷들이 포함하는 프레임들 중 k+1 번째 프레임을 첫 번째 프레임으로 설정하여 첫 번째 프레임의 위치를 보정할 수 있다. 여기서, k는 추가된 적어도 일부의 패킷이 포함하는 프레임의 수에서 오디오 프라이밍에 따른 프라이밍 프레임의 수를 뺀 나머지 프레임의 수를 포함할 수 있다. 일례로, 도 4의 실시예에서 추가된 적어도 일부의 패킷이 포함하는 프레임의 수는 3,072(1024Х3)일 수 있고, 여기서 프라이밍 프레임의 수 2112를 뺀 나머지 프레임의 수 k는 960이 될 수 있다. 이 경우, 컴퓨터 장치(200)는 k+1인 961번째 프레임을 첫 번째 프레임으로 설정하여 첫 번째 프레임의 위치를 보정할 수 있다.
또한, 컴퓨터 장치(200)는 디코딩된 제2 파일의 전체 프레임 수를 디코딩 전의 제2 파일이 포함하는 패킷들의 프레임 수로 보정할 수 있다. 도 4의 실시예에서는 디코딩 후의 31,680개의 전체 프레임 수를 원래의 30,720개로 보정하는 예를 설명한 바 있다. 따라서, 제2 파일은 오디오 프라이밍이 제거된 상태로 정상적으로 재생될 수 있게 된다.
이상에서와 같이, 본 발명의 실시예들에 따르면, 이전 TS 파일에 포함된 ACC 패킷을 이용하여 오디오 프라이밍 이슈를 제거할 수 있다.
이상에서 설명된 시스템 또는 장치는 하드웨어 구성요소, 소프트웨어 구성요소 또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 통상의 기술자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 이러한 기록매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있으며, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.

Claims (12)

  1. 적어도 하나의 프로세서를 포함하는 컴퓨터 장치의 디코딩 방법에 있어서,
    상기 적어도 하나의 프로세서에 의해, 음원을 구성하는 패킷들을 분할하여 각각 복수의 패킷들을 포함하도록 구성된 복수의 파일들을 서버로부터 수신하는 단계;
    상기 적어도 하나의 프로세서에 의해, 상기 복수의 파일들 중 제1 파일에서 적어도 일부의 패킷을 추출하는 단계;
    상기 적어도 하나의 프로세서에 의해, 상기 복수의 파일들 중 상기 제1 파일의 다음 파일인 제2 파일이 포함하는 패킷들 앞에 상기 추출된 적어도 일부의 패킷을 추가하는 단계;
    상기 적어도 하나의 프로세서에 의해, 상기 적어도 일부의 패킷이 추가된 상기 제2 파일의 패킷들을 디코딩하는 단계; 및
    상기 적어도 하나의 프로세서에 의해, 상기 디코딩된 제2 파일의 패킷들의 첫 번째 프레임의 위치 및 상기 디코딩된 제2 파일의 패킷들의 전체 프레임 수를 보정하는 단계
    를 포함하는 디코딩 방법.
  2. 제1항에 있어서,
    상기 복수의 파일들을 수신하는 단계는,
    ACC(Advanced Audio Coding) 패킷들로 구성된 ACC 음원을 네트워크를 통해 HLS(Hypertext Transfer Protocol Live Streaming) 프로토콜을 이용하여 제공받음에 따라, 상기 서버로부터 각각 복수의 ACC 패킷들을 포함하는 TS(Transport stream) 파일들을 수신하는 것을 특징으로 하는 디코딩 방법.
  3. 제1항에 있어서,
    상기 복수의 패킷들 각각은 n(상기 n은 자연수) 개의 프레임을 포함하고,
    상기 적어도 일부의 패킷을 추출하는 단계는,
    상기 제1 파일이 포함하는 복수의 패킷들 중 m 개의 패킷을 추출하고,
    상기 m은 mХn의 크기가 오디오 프라이밍(Audio Priming)에 따른 프라이밍 프레임의 수 이상이고, (m-1)Хn의 크기가 상기 프라이밍 프레임의 수 미만인 자연수인 것을 특징으로 하는 디코딩 방법.
  4. 제1항에 있어서,
    상기 보정하는 단계는,
    상기 디코딩된 상기 제2 파일의 패킷들이 포함하는 프레임들 중 k+1 번째 프레임을 첫 번째 프레임으로 설정하여 첫 번째 프레임의 위치를 보정하고,
    상기 k는 상기 추가된 적어도 일부의 패킷이 포함하는 프레임의 수에서 오디오 프라이밍에 따른 프라이밍 프레임의 수를 뺀 나머지 프레임의 수를 포함하는 것을 특징으로 하는 디코딩 방법.
  5. 제1항에 있어서,
    상기 보정하는 단계는,
    상기 디코딩된 제2 파일의 전체 프레임 수를 상기 디코딩 전의 제2 파일이 포함하는 패킷들의 프레임 수로 보정하는 것을 특징으로 하는 디코딩 방법.
  6. 컴퓨터 장치와 결합되어 제1항 내지 제5항 중 어느 한 항의 방법을 컴퓨터 장치에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램.
  7. 제1항 내지 제5항 어느 한 항의 방법을 컴퓨터 장치에 실행시키기 위한 컴퓨터 프로그램이 기록되어 있는 컴퓨터 판독 가능한 기록매체.
  8. 컴퓨터 장치에 있어서,
    상기 컴퓨터 장치에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서
    를 포함하고,
    상기 적어도 하나의 프로세서에 의해,
    음원을 구성하는 패킷들을 분할하여 각각 복수의 패킷들을 포함하도록 구성된 복수의 파일들을 서버로부터 수신하고,
    상기 복수의 파일들 중 제1 파일에서 적어도 일부의 패킷을 추출하고,
    상기 복수의 파일들 중 상기 제1 파일의 다음 파일인 제2 파일이 포함하는 패킷들 앞에 상기 추출된 적어도 일부의 패킷을 추가하고,
    상기 적어도 일부의 패킷이 추가된 상기 제2 파일의 패킷들을 디코딩하고,
    상기 디코딩된 제2 파일의 패킷들의 첫 번째 프레임의 위치 및 상기 디코딩된 제2 파일의 패킷들의 전체 프레임 수를 보정하는 것
    을 특징으로 하는 컴퓨터 장치.
  9. 제8항에 있어서,
    상기 적어도 하나의 프로세서에 의해,
    ACC(Advanced Audio Coding) 패킷들로 구성된 ACC 음원을 네트워크를 통해 HLS(Hypertext Transfer Protocol Live Streaming) 프로토콜을 이용하여 제공받음에 따라, 상기 서버로부터 각각 복수의 ACC 패킷들을 포함하는 TS(Transport stream) 파일들을 수신하는 것
    을 특징으로 하는 컴퓨터 장치.
  10. 제8항에 있어서,
    상기 복수의 패킷들 각각은 n(상기 n은 자연수) 개의 프레임을 포함하고,
    상기 적어도 하나의 프로세서에 의해,
    상기 제1 파일이 포함하는 복수의 패킷들 중 m 개의 패킷을 추출하고,
    상기 m은 mХn의 크기가 오디오 프라이밍(Audio Priming)에 따른 프라이밍 프레임의 수 이상이고, (m-1)Хn의 크기가 상기 프라이밍 프레임의 수 미만인 자연수인 것
    을 특징으로 하는 컴퓨터 장치.
  11. 제8항에 있어서,
    상기 적어도 하나의 프로세서에 의해,
    상기 디코딩된 상기 제2 파일의 패킷들이 포함하는 프레임들 중 k+1 번째 프레임을 첫 번째 프레임으로 설정하여 첫 번째 프레임의 위치를 보정하고,
    상기 k는 상기 추가된 적어도 일부의 패킷이 포함하는 프레임의 수에서 오디오 프라이밍에 따른 프라이밍 프레임의 수를 뺀 나머지 프레임의 수를 포함하는 것
    을 특징으로 하는 컴퓨터 장치.
  12. 제8항에 있어서,
    상기 적어도 하나의 프로세서에 의해,
    상기 디코딩된 제2 파일의 전체 프레임 수를 상기 디코딩 전의 제2 파일이 포함하는 패킷들의 프레임 수로 보정하는 것
    을 특징으로 하는 컴퓨터 장치.
KR1020190008360A 2019-01-22 2019-01-22 오디오 프라이밍을 고려한 디코딩 방법 및 시스템 Ceased KR20200091277A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190008360A KR20200091277A (ko) 2019-01-22 2019-01-22 오디오 프라이밍을 고려한 디코딩 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190008360A KR20200091277A (ko) 2019-01-22 2019-01-22 오디오 프라이밍을 고려한 디코딩 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR20200091277A true KR20200091277A (ko) 2020-07-30

Family

ID=71839420

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190008360A Ceased KR20200091277A (ko) 2019-01-22 2019-01-22 오디오 프라이밍을 고려한 디코딩 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR20200091277A (ko)

Similar Documents

Publication Publication Date Title
JP7246508B2 (ja) Httpによる動的適応ストリーミングのための方法及び装置
WO2020155964A1 (zh) 音视频的切换方法、装置、计算机设备及可读存储介质
US9584788B1 (en) Video storage and video playing
CN111510755A (zh) 音视频的切换方法、装置、计算机设备及可读存储介质
US11838570B2 (en) Loudness normalization method and system
CN101316358A (zh) 向设备传输数字媒体流
CN111541905B (zh) 一种直播方法、装置、计算机设备和存储介质
CN110855645B (zh) 流媒体数据播放方法、装置
CN109076250B (zh) 交互式音频元数据处置
JP2021078122A (ja) ハイブリッドビデオコーディング方法およびコンピュータ装置
US12284415B2 (en) Method and system for playing streaming content
JP7736332B2 (ja) クラウドプラットフォームでの並列処理のためのセグメント化されたメディアメタデータのワイヤフォーマットのための方法、装置及びコンピュータプログラム
US11437052B2 (en) Method and system for parallel audio transcoding
KR102825746B1 (ko) W3c 미디어 소스 및 암호화된 확장을 이용한 라이브 cmaf/dash 플레이어에서의 mpd 체이닝
JP7658660B2 (ja) スタッキング特性を有するプレロール、ミッドロールおよびエンドロールをサポートするためのmpeg dash用の補助mpdに関する方法、装置、媒体
KR102432376B1 (ko) 콘텐츠 재생 방법 및 시스템
KR102228375B1 (ko) 다수의 스트리밍 콘텐츠들을 재생하는 방법 및 시스템
JP7477645B2 (ja) Process@appendおよびprocess@playモードを使用してメディアと共にdashおよびcmafインバンドイベントを処理するためのw3cメディア拡張
KR102798933B1 (ko) Dash 및 cmaf 대역내 이벤트를 프로세싱하기 위한 확장된 w3c 미디어 확장
US12356015B2 (en) Method and apparatus for signaling CMAF switching sets in ISOBMFF
KR20210011038A (ko) 오디오 인코딩을 위한 방법 및 시스템
CN110213583A (zh) 视频编码方法、系统及装置
KR102199276B1 (ko) 클라우드 스트리밍 서비스 시스템, 클라우드 스트리밍 서비스 유형에 따른 서비스 처리 방법 및 이를 위한 장치
KR20240101023A (ko) 스트리밍 서버의 동작 방법 및 스트리밍 서버 장치
HK40091323B (zh) 用於在主dash媒体流中指示辅助媒体的方法和装置

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20190122

PA0201 Request for examination
PG1501 Laying open of application
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20200814

Patent event code: PE09021S01D

AMND Amendment
E601 Decision to refuse application
PE0601 Decision on rejection of patent

Patent event date: 20210215

Comment text: Decision to Refuse Application

Patent event code: PE06012S01D

Patent event date: 20200814

Comment text: Notification of reason for refusal

Patent event code: PE06011S01I

X091 Application refused [patent]
AMND Amendment
PX0901 Re-examination

Patent event code: PX09011S01I

Patent event date: 20210215

Comment text: Decision to Refuse Application

Patent event code: PX09012R01I

Patent event date: 20201014

Comment text: Amendment to Specification, etc.

PX0601 Decision of rejection after re-examination

Comment text: Decision to Refuse Application

Patent event code: PX06014S01D

Patent event date: 20210401

Comment text: Amendment to Specification, etc.

Patent event code: PX06012R01I

Patent event date: 20210310

Comment text: Decision to Refuse Application

Patent event code: PX06011S01I

Patent event date: 20210215

Comment text: Amendment to Specification, etc.

Patent event code: PX06012R01I

Patent event date: 20201014

Comment text: Notification of reason for refusal

Patent event code: PX06013S01I

Patent event date: 20200814

X601 Decision of rejection after re-examination