KR20130086011A - 비디오 정보 전송 방법, 비디오 복호화 방법, 비디오 부호화기 및 비디오 복호화기 - Google Patents

비디오 정보 전송 방법, 비디오 복호화 방법, 비디오 부호화기 및 비디오 복호화기 Download PDF

Info

Publication number
KR20130086011A
KR20130086011A KR1020130006715A KR20130006715A KR20130086011A KR 20130086011 A KR20130086011 A KR 20130086011A KR 1020130006715 A KR1020130006715 A KR 1020130006715A KR 20130006715 A KR20130006715 A KR 20130006715A KR 20130086011 A KR20130086011 A KR 20130086011A
Authority
KR
South Korea
Prior art keywords
information
scalability
nal unit
video
individual
Prior art date
Application number
KR1020130006715A
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 PCT/KR2013/000492 priority Critical patent/WO2013109126A1/ko
Publication of KR20130086011A publication Critical patent/KR20130086011A/ko

Links

Images

Classifications

    • 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/187Methods 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 a scalable video layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • 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
    • 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 

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 비디오 정보의 전송 방법과 이를 이용한 복호화 방법 및 장치에 관한 것으로서, 본 발명에 따른 비디오 정보의 전송 방법은 비디오를 부호화하는 단계 및 부호화된 비디오 정보를 비트스트림으로 전송하는 단계를 포함하며, 상기 전송되는 비디오 정보는 NAL (Network Abstract Layer) 유닛 헤더에서 전송되는 스케일러빌리티(scalability) 정보를 포함할 수 있다.

Description

비디오 정보 전송 방법, 비디오 복호화 방법, 비디오 부호화기 및 비디오 복호화기{METHODS FOR SIGNALING VIDEO INFORMATION AND VEDIO DECODING AND APPARATUSES FOR ENCODING AND DECODING}
본 발명은 영상 부호화 및 복호화 방법에 관한 것으로서, 더 구체적으로는 비디오 비트스트림 내의 계층적 정보(scalability information)를 이용하여 적응적인 비디오 전송 및 소비를 가능하게 하는 기술에 관한 것이다.
최근 멀티미디어(multimedia) 환경이 구축되면서, 다양한 단말과 네트워크가 이용되고 있으며, 이에 따른 사용자 요구도 다변화하고 있다.
성능과 컴퓨팅 능력(computing ability)가 다양해짐에 따라서 지원하는 성능도 기기별로 다양해지고 있으며, 정보가 전송되는 네트워크 역시 유무선 네트워크와 같은 외형적인 구조뿐만 아니라, 전송하는 정보의 형태, 정보량과 속도 등 기능별로도 다양해지고 있다. 사용자는 원하는 기능에 따라서 사용할 단말과 네트워크를 선택하며, 사용자에게 기업이 제공하는 단말과 네트워크의 스펙트럼도 다양해지고 있다.
예컨대, 다양한 통신망과 단말 장치가 사용됨에 따라서 스케일러빌리티(Scalability)는 비디오 포맷의 중요한 기능으로 부각되고 있다.
스케일러빌리티에 대한 표준으로서, AVC(Advanced Video Coding)의 확장 표준인 SVC(Scalable Video Coding)는 압축 효율을 최대한 유지하면서, 다양한 범위의 비트율(bitrate)을 가지는 비트스트림을 생성/이용하도록 하고 있다.
설명한 바와 같이, 다양한 통신망과 단말 장치가 사용되고 있는 환경을 고려하여, SVC가 적용되는 비트스트림은 쉽고 다양한 방식으로 추출될 수 있다.
구체적으로, SVC는 공간적(spatial) 스케일러빌리티, 시간적(temporal) 스케일러빌리티, SNR(Signal to Noise Ratio) 스케일러빌리티 등을 제공할 수 있다.
하나의 SVC 비트스트림은 패킷-스위칭 네트워크(packet-switching network)를 통한 비디오의 (적응적) 전송을 용이하게 하는 NAL(Network Abstraction Layer) 유닛들로 구성된다.
또한, AVC의 또 다른 확장 표준인 MVC(Multi-view Video Coding)는 뷰(view) 스케일러빌리티를 제공한다. 이때, 뷰 간의 관계는 SVC 비트스트림의 공간 계층(spatial layer) 간의 관계와 유사하다고 할 수 있다.
콘텐츠 전달 경로(contents delivery path)에서의 모든 노드에서 비트스트림을 효과적이며 효율적으로 비트스트림의 스케일러빌리티 정보가 매우 중요하다. 따라서, 네트워크 내의 노드들은 관련 비트스트림의 상태 정보를 저장하지 않고 패킷 단위로 처리할 수 있어야 한다.
본 발명은 계층적 비트스트림 내의 스케일러빌리티 정보를 기술하는 방법과 이를 이용하는 장치를 제공하는 것을 목적으로 한다.
이를 위하여, 본 발명은 다양한 종류의 비트스트림의 스케일러빌리티 정보를 표현하기 위한 유연한 방법과 이를 이용하는 장치를 제공하는 것을 목적으로 한다.
또한, 본 발명은 계층적 비트스트림에 스케일러빌리티를 적용하기 위해 패킷 레벨에서 효율적인 적응 변환을 가능하게 하는 방법 및 장치를 제공하는 것을 목적으로 한다.
본 발명의 일 실시형태는 비디오 정보 전송 방법으로서, 비디오를 부호화하는 단계 및 부호화된 비디오 정보를 비트스트림으로 전송하는 단계를 포함하며, 상기 전송되는 비디오 정보는 NAL (Network Abstract Layer) 유닛 헤더에서 전송되는 스케일러빌리티(scalability) 정보를 포함할 수 있다.
본 발명의 다른 실시형태는 상기 방법으로 전송되는 비디오 정보를 이용하는 복호화 방법으로서, 부호화된 비디오 정보를 비트스트림으로 수신하는 단계 및 상기 비디오 정보를 기반으로 비디오를 복호화 하는 단계를 포함하며, 상기 수신한 비디오 정보는 NAL (Network Abstract Layer) 유닛 헤더에서 전송되는 스케일러빌리티(scalability) 정보를 포함할 수 있다.
본 발명의 또 다른 실시형태는 비디오 부호화 장치로서, 입력된 비디오를 부호화하는 부호화부 및 부호화된 비디오 정보를 전송하는 전송부를 포함하며, 상기 전송되는 비디오 정보는 NAL (Network Abstract Layer) 유닛 헤더에서 전송되는 스케일러빌리티(scalability) 정보를 포함할 수 있다.
본 발명의 또 다른 실시형태는 비디오 복호화 장치로서, 부호화된 비디오 정보를 비트스트림으로 수신하는 수신부 및 상기 비디오 정보를 기반으로 비디오를 복호화 하는 복호화부를 포함하며, 상기 수신한 비디오 정보는 NAL (Network Abstract Layer) 유닛 헤더에서 전송되는 스케일러빌리티(scalability) 정보를 포함할 수 있다.
이때, 상기 스케일러빌리티 정보는, 상기 NAL 유닛 헤더에 대응하는 NAL 유닛에 개별 스케일러빌리티의 정보가 존재하는지를 지시할 수 있다. 또한, 상기 스케일러빌리티 정보는, 상기 NAL 유닛 헤더에 대응하는 NAL 유닛에 존재하는 개별 스케일러빌리티의 정보가 존재하는지와 함께 상기 개별 스케일러빌리티의 정보에 사용된 비트 수에 관한 정보가 존재하는지를 지시할 수도 있다.
상기 스케일러빌리티 정보는, 상기 NAL 유닛 헤더에 대응하는 NAL 유닛이 개별 스케일러빌리티의 정보를 포함하는지를 지시하는 플래그일 수 있다.
또한, 상기 스케일러빌리티 정보는 상기 NAL 유닛 헤더에 대응하는 NAL 유닛의 스케일러빌리티 프로파일(profile)을 특정할 수도 있다.
또한, 상기 스케일러빌리티 정보는, 상기 NAL 유닛 헤더에 대응하는 NAL 유닛에 개별 스케일러빌리티의 정보가 존재하는지를 지시하며, 상기 NAL 유닛에 개별 스케일러빌리티의 정보가 존재하는 경우에, 상기 스케일러빌리티 정보는 상기 개별 스케일러빌리티별 정보의 존재 여부가 플래그로 지시되는지 상기 개별 스케일러빌리티의 조합이 식별자에 의해 지시되는지를 특정할 수도 있다.
본 발명에 의하면, 계층적 비디오 부호화를 이용하여 부호화된 비트스트림의 다양한 스케일러빌리티 정보들을 효율적으로 이용할 수 있다.
본 발명에 의하면, 다양한 스케일러빌리티 정보들 중에서 해당 비트스트림이 표현 가능한 스케일러빌리티 정보만을 표현할 수 있도록 하여 부호화 효율을 증대시킬 수 있다.
본 발명에 의하면, 스케일러빌리티 정보의 표현 방식을 다양화함으로써 패킷 레벨에서의 효율적인 적응 변환이 가능하다.
도 1은 부호화 장치의 일 실시예에 따른 기본 구성을 나타내는 블록도이다.
도 2는 복호화 장치의 일 실시예에 따른 기본 구성을 나타내는 블록도이다.
도 3은 SVC가 적용되는 복수 계층 구조의 일 예를 개략적으로 나타낸 개념도이다.
도 4는 본 발명에 따른 부호화기의 동작을 개략적으로 설명하는 순서도이다.
도 5는 본 발명에 따른 복호화기의 동작을 개략적으로 설명하는 순서도이다.
도 6은 부호화기(부호화 장치)의 구조를 개략적으로 설명하는 블록도이다.
도 7은 복호화기(복호화 장치)의 구성을 개략적으로 설명하는 블록도이다.
이하, 도면을 참조하여 본 발명의 실시예에 대하여 구체적으로 설명한다. 본 명세서의 실시예를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 명세서의 요지를 흐릴 수 있다고 판단되는 경우에는 해당 설명을 생략할 수도 있다.
본 명세서에서 어떤 구성 요소가 다른 구성 요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있는 것을 의미할 수도 있고, 중간에 다른 구성 요소가 존재하는 것을 의미할 수도 있다. 아울러, 본 명세서에서 특정 구성을 “포함”한다고 기술하는 내용은 해당 구성 이외의 구성을 배제하는 것이 아니며, 추가적인 구성이 본 발명의 실시 또는 본 발명의 기술적 사상의 범위에 포함될 수 있음을 의미한다.
제1, 제2 등의 용어는 다양한 구성들을 설명하는데 사용될 수 있지만, 상기 구성들은 상기 용어에 의해 한정되지 않는다. 상기 용어들은 하나의 구성을 다른 구성으로부터 구별하는 목적으로 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성은 제2 구성으로 명명될 수 있고, 유사하게 제2 구성도 제1 구성으로 명명될 수 있다.
또한 본 발명의 실시예에 나타나는 구성부들은 서로 다른 특징적인 기능을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성 단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 포함한 것으로 각 구성부 중 적어도 두 개의 구성부가 하나의 구성부를 이루거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있다. 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리 범위에 포함된다.
도 1은 부호화 장치의 일 실시예에 따른 기본 구성을 나타내는 블록도이다.
도 1을 참조하면, 부호화 장치(100)는 인터 예측부(110), 인트라 예측부(120), 스위치(125), 감산기(130), 변환부(135), 양자화부(140), 엔트로피 부호화부(150), 역양자화부(160), 역변환부(170), 가산기(175), 필터부(180) 및 픽처 버퍼(190)를 포함한다.
부호화 장치(100)는 입력 영상에 대해 인트라(intra) 모드 또는 인터(inter) 모드로 부호화를 수행하고 비트스트림(bitstream)을 출력할 수 있다. 인트라 모드인 경우 스위치(125)가 인트라로 전환되고, 인터 모드인 경우 스위치(125)가 인터로 전환된다. 부호화 장치(100)는 입력 영상의 입력 블록에 대한 예측 블록을 생성한 후, 입력 블록과 예측 블록의 차분을 부호화할 수 있다.
인트라 모드인 경우, 인트라 예측부(120)는 현재 블록 주변의 이미 부호화된 블록의 화소값을 이용하여 공간적 예측을 수행하여 예측 블록을 생성할 수 있다.
인터 모드인 경우, 인터 예측부(110)는, 움직임 예측 과정에서 픽처 버퍼(190)에 저장되어 있는 참조 영상에서 입력 블록에 대응하는 영역을 찾아 움직임 벡터를 구할 수 있다. 인터 예측부(110)는 움직임 벡터와 픽처 버퍼(190)에 저장되어 있는 참조 영상을 이용하여 움직임 보상을 수행함으로써 예측 블록을 생성할 수 있다.
감산기(130)는 입력 블록과 생성된 예측 블록의 차분에 의해 레지듀얼 블록(residual block)을 생성할 수 있다. 변환부(135)는 레지듀얼 블록에 대해 변환(transform)을 수행하여 변환 계수(transform coefficient)를 출력할 수 있다. 그리고 양자화부(140)는 입력된 변환 계수를 양자화 파라미터에 따라 양자화하여 양자화된 계수(quantized coefficient)를 출력할 수 있다.
엔트로피 부호화부(150)는, 양자화부(140)에서 산출된 값들 또는 부호화 과정에서 산출된 부호화 파라미터 값 등을 기초로, 양자화된 계수를 확률 분포에 따라 엔트로피 부호화하여 비트스트림(bitstream)을 출력할 수 있다.
양자화된 계수는 역양자화부(160)에서 역양자화되고 역변환부(170)에서 역변환될 수 있다. 역양자화, 역변환된 계수는 가산기(175)를 통해 예측 블록과 더해지고 복원 블록이 생성될 수 있다.
복원 블록은 필터부(180)를 거치고, 필터부(180)는 디블록킹 필터(deblocking filter), SAO(Sample Adaptive Offset), ALF(Adaptive Loop Filter) 중 적어도 하나 이상을 복원 블록 또는 복원 픽쳐에 적용할 수 있다. 필터부(180)를 거친 복원 블록은 픽처 버퍼(190)에 저장될 수 있다.
도 2는 복호화 장치의 일 실시예에 따른 기본 구성을 나타내는 블록도이다.
도 2를 참조하면, 복호화 장치(200)는 엔트로피 복호화부(210), 역양자화부(220), 역변환부(230), 인트라 예측부(240), 인터 예측부(250), 필터부(260) 및 픽처 버퍼(270)를 포함한다.
복호화 장치(200)는 부호화 장치에서 출력된 비트스트림을 입력 받아 인트라 모드 또는 인터 모드로 복호화를 수행하고 재구성된 영상, 즉 복원 영상을 출력할 수 있다. 인트라 모드인 경우 스위치가 인트라로 전환되고, 인터 모드인 경우 스위치가 인터로 전환될 수 있다.
복호화 장치(200)는 입력 받은 비트스트림으로부터 복원된 레지듀얼 블록(residual block)을 얻고 예측 블록을 생성한 후 복원된 레지듀얼 블록과 예측 블록을 더하여 재구성된 블록, 즉 복원 블록을 생성할 수 있다.
엔트로피 복호화부(210)는, 입력된 비트스트림을 확률 분포에 따라 엔트로피 복호화한다. 엔트로피 복호화에 의해, 양자화된 (변환) 계수가 생성될 수 있다.
양자화된 계수는 역양자화부(220)에서 역양자화되고 역변환부(230)에서 역변환되며, 양자화된 계수가 역양자화/역변환된 결과, 복원된 레지듀얼 블록(residual block)이 생성될 수 있다.
인트라 모드인 경우, 인트라 예측부(240)는 현재 블록 주변의 이미 부호화된 블록의 화소값을 이용하여 공간적 예측을 수행하여 예측 블록을 생성할 수 있다. 인터 모드인 경우, 인터 예측부(250)는 움직임 벡터 및 픽처 버퍼(270)에 저장되어 있는 참조 영상을 이용하여 움직임 보상을 수행함으로써 예측 블록을 생성할 수 있다.
복원된 레지듀얼 블록과 예측 블록은 가산기(255)를 통해 더해지고, 더해진 블록은 필터부(260)를 거친다. 필터부(260)는 디블록킹 필터, SAO, ALF 중 적어도 하나를 복원 블록 또는 복원 픽쳐에 적용할 수 있다. 필터부(260)는 재구성된 영상, 즉 복원 영상을 출력한다. 복원 영상은 픽처 버퍼(270)에 저장되어 화면 간 예측에 사용될 수 있다.
상술한 바와 같이, 부호화 장치 및 복호화 장치는 영상(video) 부호화/복호화를 위해 현재 블록에 대한 예측을 수행한다.
예측은 부호화 장치/복호화 장치, 구체적으로 부호화 장치/복호화 장치의 예측부에서 수행될 수 있다. 부호화 장치의 예측부는, 예컨대 도 1의 인터 예측부(110), 인트라 예측부(120) 등을 포함할 수 있다. 복호화 장치의 예측부는, 예컨대 도 2의 인트라 예측부(240), 인터 예측부(250) 등을 포함할 수 있다.
현재 블록에 대한 예측 모드가 인트라 예측(intra prediction)인 경우에, 예측부는 현재 블록의 인트라 예측 모드에 따라서, 이전에 부호화된 현재 픽처 내의 픽셀(참조 샘플)을 기반으로 현재 블록에 대한 예측을 수행할 수 있다. 예측부는 참조 샘플로부터 현재 블록에 대한 예측 블록을 생성하는 인트라 예측을 수행할 수 있다.
스케일러블 영상 코딩 방법(Scalable Video Coding: SVC, 이하 ‘SVC’라 함)은 계층(layer) 간의 텍스쳐 정보, 움직임 정보, 잔여 신호 등을 활용하여 계층 간 중복성을 제거하여 부호화/복호화 성능을 높이는 코딩 방법이다. SVC 방법은, 전송 비트율, 전송 에러율, 시스템 자원 등의 주변 조건에 따라, 공간적, 시간적, 화질적 관점에서 다양한 스케일러빌리티를 제공할 수 있다.
SVC는, 다양한 네트워크 상황에 적용 가능한 비트스트림을 제공할 수 있도록, 복수 계층(multiple layers) 구조에 적용될 수 있다. 예를 들어 SVC의 비디오 스트림은, 일반적인 영상 부호화 방법을 이용하여 영상 정보를 처리하는 기본 계층(base layer)과 함께, 기본 계층의 부호화 정보 및 일반적인 영상 부호화 방법을 함께 사용하여 영상 정보를 처리하는 향상 계층(enhanced layer)을 포함할 수 있다.
계층 구조는 복수의 공간 계층, 복수의 시간 계층, 복수의 화질 계층 등을 포함할 수 있다. 서로 다른 공간 계층에 포함된 영상들은 서로 다른 공간적 해상도를 가질 수 있으며, 서로 다른 시간 계층에 포함된 영상들은 서로 다른 시간적 해상도(프레임율)를 가질 수 있다. 또한 서로 다른 화질 계층에 포함된 영상들은 서로 다른 화질, 예를 들어 서로 다른 SNR(Signal-to-Noise Ratio)을 가질 수 있다.
여기서, 계층(layer)은 공간(예를 들어, 영상 크기), 시간(예를 들어, 부호화 순서, 영상 출력 순서), 화질, 복잡도 등을 기준으로 구분되는 영상 및/또는 비트스트림(bitstream)의 집합을 의미한다.
도 3은 SVC가 적용되는 복수 계층 구조의 일 예를 개략적으로 나타낸 개념도이다. 도 3에서 GOP(Group of Picture)는 픽쳐의 그룹을 나타낸다.
도 3을 참조하면, 상술한 바와 같이, SVC는 복수 계층의 픽처들에 대하여 적용될 수 있다. 도 3에서는 각 계층의 픽처들이 POC(Picture Order Count)에 따라 배열되어 있는 예를 보여준다. 각 계층, 기본 계층과 향상 계층들은 서로 다른 비트율, 해상도, 크기 등의 특성을 가질 수 있다. 기본 계층에 대한 비트스트림은 기본적인 영상 정보를 포함할 수 있고, 향상 계층에 대한 비트스트림은 기본 계층의 품질(정확도, 크기 및/또는 프레임 레이트(frame rate) 등)이 더 향상된 영상에 대한 정보를 포함할 수 있다.
따라서, 각 계층은 서로 다른 특성을 고려하여 부호화/복호화될 수 있다. 예컨대, 도 1의 부호화 장치 및 도 2의 복호화 장치가 각 계층별로 해당 계층의 픽처를 도 1 및 도 2에 관해 설명한 바와 같이 부호화하고 복호화할 있다.
또한, 각 계층의 픽처는 다른 계층의 정보를 이용하여 부호화/복호화될 수도 있다. 예컨대, 각 계층의 픽처는 다른 계층의 정보를 이용한 계층 간 예측(inter layer prediction)을 통해 부호화되고 복호화될 수 있다. 따라서, SVC에 있어서, 도 1과 도 2에서 설명한 부호화 장치 및 복호화 장치의 예측부는 다른 계층, 즉 참조 계층(reference layer)의 정보를 이용한 예측을 수행할 수 있다. 부호화 장치 및 복호화 장치의 예측부는 다른 계층의 정보를 이용하여 계층 간 텍스처(texture) 예측, 계층 간 움직임 정보 예측, 계층 간 잔여 신호(residual) 등을 수행할 수 있다.
계층 간 텍스처 예측에서는 다른 계층의 텍스처 정보에 기반하여 현재 계층(부호화 또는 복호화 대상 계층)의 텍스처를 예측한다. 계층 간 움직임 정보 예측에서는 다른 계층의 움직임 정보(움직임 벡터, 참조 픽처 등)에 기반하여 현재 계층의 움직임 정보를 예측한다. 계층 간 잔여 신호 예측에서는 다른 계층의 잔여 신호에 기반하여 현재 계층의 잔여 신호를 예측한다.
SVC에서는 계층 간 예측을 수행하는 경우에, 참조 계층의 복원된 샘플들에 대해서 업샘플링을 수행한 후 향상 계층에 대한 예측 신호로 사용할 수도 있다.
다른 계층의 정보를 이용하여 현재 계층이 부호화되고 복호화되므로, 계층 간의 중복된 정보를 처리하는 복잡도를 줄일 수 있으며, 중복된 정보를 전송하는 오버헤드를 줄일 수도 있다.
한편, 계층적 비트스트림 구조에서 다양한 종류의 스케일러빌리티 정보를 표현하고, 패킷 레벨에서 효율적인 적응 변환을 하기 위해, 스케일러빌리티 정보를 효과적으로 시그널링하고 수신하는 방법 및 장치가 필요하다. 예컨대, 부호화기에서는 스케일러빌리티 정보를 시그널링하고 복호화기에서는 수신한 스케일러빌리티 정보를 기반으로 효과적인 복호화를 수행할 수 있다.
본 발명에서는 각각의 NAL 유닛(unit) 헤더(header)에 스케일러빌리티 정보가 포함되도록 할 수 있다. 이를 통해서 임의의 네트워크 노드에서 각 NAL 유닛을 빠르게 처리할 수 있게 된다.
NAL 유닛 헤더에서 각각의 스케일러빌리티에 대한 정보의 존부를 제공하며, 각각의 NAL 유닛에서는 이에 대응한 스케일러빌리티 정보가 제공된다.
예컨대, 부호화기가 스케일러빌리티 정보를 포함하는 NAL 유닛 헤더를 전송하면, 복호화기는 해당 정보를 기반으로 NAL 유닛을 빠르게 처리할 수 있다.
NAL 유닛 헤더에서 스케일러빌리티에 관한 정보를 제공하는 방법으로 플래그(flag)를 이용하는 방법, 식별자(identifier)를 이용하는 방법, 플래그와 식별자를 함께 이용하는 방법 등을 고려할 수 있다.
플래그를 이용하는 방법
본 실시예에서는 부호화기로부터 전송되는 NAL 유닛에서 플래그를 이용하여 스케일러빌리티에 관한 정보가 전송된다.
부호화기는 NAL 유닛에 스케일러빌리티들에 대한 정보의 유무를 지시하는 플래그들을 포함시켜 전송할 수 있다. 예를 들어, NAL 유닛에 스케일러빌리티에 관한 정보(스케일러빌리티 정보)가 적어도 하나 이상 존재하는지를 지시하는 정보(플래그)가 전송되며, 스케일러빌리티에 관한 정보가 존재하는 경우에 각 스케일러빌리티에 대한 정보별로 존부를 지시하는 플래그가 전송되도록 할 수 있다.
표 1은 NAL 유닛을 통해 전송되는 플래그들의 예를 개략적으로 나타낸 것이다.
<표 1>
Figure pat00001
표 1의 예에서, scalability_info_flag는 NAL 유닛에 스케일러빌리티 정보가 존재하는지를 특정한다. 예컨대, scalability_info_flag의 값이 1이면, NAL 유닛에 스케일러빌리티 정보가 존재한다는 것을 지시하고, scalability_info_flag의 값이 0이면 NAL 유닛에 스케일러빌리티 정보가 존재하지 않는다는 것을 지시한다.
priority_id_flag는 NAL 유닛에 priority_id 값이 존재하는지를 특정한다. 예컨대, priority_id_flag의 값이 1이면, NAL 유닛에 priority_id 값이 존재하는 것을 지시하고, priority_id_flag의 값이 0이면, NAL 유닛에 priority_id 값이 존재하지 않는다는 것을 지시한다.
dependency_id_flag는 NAL 유닛에 dependency_id가 존재하는지를 특정한다. 예컨대, dependency_id_flag의 값이 1이면, NAL 유닛에 dependency_id 값이 존재한다는 것을 지시하고, dependency_id_flag의 값이 0이면, NAL 유닛에 dependency_id 값이 존재하지 않는다는 것을 지시한다.
temporal_id_flag는 NAL 유닛에 temporal_id가 존재하는지를 특정한다. 예컨대, temporal_id_flag의 값이 1이면, NAL 유닛에 temporal_id 값이 존재하는 것을 지시하고, temporal_id_flag의 값이 0이면, NAL 유닛에 temporal_id 값이 존재하지 않는다는 것을 지시한다.
quality_id_flag는 NAL 유닛에 quality_id가 존재하는지를 특정한다. 예컨대, quality_id_flagd의 값이 1이면, NAL 유닛에 quality_id 값이 존재하는 것을 지시하고, quality_id _flag의 값이 0이면 NAL 유닛에 quality_id 값이 존재하지 않는 것을 지시한다.
view_id_flag는 NAL 유닛에 view_id가 존재하는지를 특정한다. 예컨대, view_id_flag 의 값이 1이면, NAL 유닛에 view_id 값이 존재하는 것을 지시하고, view_id_flag ? 값이 0이면, NAL 유닛에 view_id 값이 존재하지 않는 것을 지시한다.
priority_id는 우선 식별자(priority identifier)를 특정한다. 우선 식별자는 부호화기에 의해 NAL 유닛마다 할당되며, NAL 유닛의 추출 우선 순위 혹은 NAL 유닛의 중요도를 지시한다. priority_id의 구체적인 내용은 ITU-T Recommendation H.264의 Annex G Scalable video coding에 기술된 바와 같다.
dependency_id는 NAL 유닛에 대한 종속 식별자(dependency identifier)를 특정한다. 종속 식별자는 공간적 스케일러빌리티를 지원하는 계층들을 특정한다. 예컨대, 공간적 스케일러빌리티에 있어서, 기본 계층(base layer)에 대한 종속 식별자의 값은 0으로 설정될 수 있으며, 다음 향상 계층(enhancement layer)들에 대해서는 종속 식별자의 값을 1씩 증가시켜 할당할 수 있다. dependency_id의 구체적인 내용은 ITU-T Recommendation H.264의 Annex G Scalable video coding에 기술된 바와 같다.
quality_id는 NAL 유닛에 대한 품질 식별자(quality identifier)를 특정한다. 품질 식별자는 품질 개선 계층(quality refinement layer)를 특정한다. quality_id의 구체적인 내용은 ITU-T Recommendation H.264의 Annex G Scalable video coding에 기술된 바와 같다.
temporal_id는 NAL 유닛에 대한 시간 식별자(temporal identifier)를 특정한다. 시간 식별자는 시간적 스케일러빌리티를 지원하는 계층들을 특정할 수 있다. 예컨대, 시간적 스케일러빌리티에 대하여 기본 계층에 대한 시간 식별자의 값을 0으로 설정하고, 향상 계층들에 대하여 1씩 시간 식별자의 값을 증가시켜 할당할 수 있다. tempor_id의 구체적인 내용은 ITU-T Recommendation H.264의 Annex G Scalable video coding에 기술된 바와 같다.
둘 이상의 스케일러빌리티가 함께 적용되는 경우에는, NAL 유닛에 대한 각 스케일러빌리티의 식별자가 시그널링될 수 있다. 예컨대, 품질 스케일러빌리티와 공간 스케일리빌티가 함께 적용되는 경우에 종속 계층(예컨대, 공간적 향상 계층)에 대한 참조 계층이 상이한 품질 표현(quality representation)들을 포함한다면, 어떤 품질 표현이 이용될 것인지가 시그널링 될 수 있다.
long_view_id_flag는 NAL 유닛에 view_id_part2가 존재하는지를 특정한다. 예컨대, long_view_id_flag의 값이 1이면, NAL 유닛에 view_id_part2가 존재하는 것을 지시하며, long_view_id_flag의 값이 0이면, NAL 유닛에 view_id_part2가 존재하지 않는 것을 지시한다.
view_id_part1는 비트스트림의 뷰(view) 식별자이다. view_id_part1는 소정의 길이를 가질 수 있다. 예컨대, view_id_part1는 2 비트(bits)의 길이를 가질 수 있다.
view_id_part2는 비트스트림 내 뷰 식별자로서 long_view_id_flag의 값이 1의 값이 1이면 view_id_part1과 함께 비트스트림 내 시점들을 특정할 수 있다. view_id_part2는 소정의 길이를 가질 수 있다. 예컨대, view_id_part2는 8 비트의 길이를 가질 수 있으며, long_view_id_flag의 값이 1이라면, 2 비트 길이의 view_id_part1과 합해서 10 비트의 길이를 가지고 비트스트림 내의 시점들을 특정할 수 있다.
스테레오 3D 비디오와 같이, 시점의 수가 작은 비트스트림에 대하여 길이가 긴 파라미터를 이용하여 시점들을 특정하는 것은 비효율적일 수 있다. 따라서, 시점의 수가 작은 비트스트림에 대해서는 view_id_part1만으로 시점들을 특정하고, 시점의 수가 적지 않은 비트스트림에 대해서는 view_id_part1과 view_id_part2를 함께 이용하여 시점들을 특정하도록 할 수 있다.
한편, 이후에 정의되거나 사용될 수 있는 정보/필드들을 위하여 소정 크기의 필드가 유보될(reserved) 수도 있다. 표 1의 예에서는 2 비트의 reserved_one_2bits가 포함되어 있다. 이런 유보된 비트(reserved bit)들 가운데 하나 이상의 비트는 NAL 유닛 헤더를 확장하기 위해 사용될 수도 있다. 예를 들어, NAL 유닛 헤더의 확장 여부를 특정하는 소정의 플래그 값이 1인 경우에는 기존의 NAL 유닛 헤더에 새로운 바이트(byte)가 추가되도록 할 수 있다.
표 1의 예에서, view_id_part1과 view_id_part2 다음의 유보된 비트 요소(element) reserved_bits는 다른 유보된 비트들을 포함하기 위한 것이다. 이 비트 요소의 길이를 N(N < 8)이라고 할 때, N은 forbidden_zero_bit부터 해당 요소(element)까지의 NAL 유닛 헤더 길이가 바이트(byte)의 정수 배가 되도록 정의될 수 있다.
실시예 1과 같이, 플래그를 이용하는 경우에는 표현 방식이 단순하기 때문에 NAL 유닛 헤더를 분석함으로써 스케일러빌리티를 위한 정보를 손쉽게 확인할 수 있다. 또한, 해당 비트스트림에서 지원하지 않는 스케일러빌리티에 대해서는 식별자를 기술하지 않음으로써 비트율을 감소시키는 효과를 얻을 수 있다.
스케일러빌리티 식별자를 이용하는 방법
본 실시예에서는 플래그들을 이용하는 대신에 NAL 유닛 헤더에서 식별자를 사용하여 스케일러빌리티 정보를 전송하는 방법을 제시한다.
각 식별자의 값은 나타내고자 하는 스케일러빌리티 프로타일을 특정한다. 스케일러빌리티 프로파일(scalability profile)은 스케일러빌리티들의 특정 조합일 수 있다. 예컨대, 식별자의 값이 주어지면 대응하는 스케일러빌리티 조합(combination)의 필드들의 존부에 관한 정보 및/또는 필드의 길이 정보들이 NAL 유닛 헤더에 존재할 수 있다. 이때, 적어도 하나 이상의 스케일러빌리티들의 조합인 스케일러빌리티 조합을 스케일러빌리티 프로파일이라고 칭할 수 있다. 스케일러빌리티 조합의 필드들은 NAL 유닛의 스케일러빌리티 디멘젼(dimension)을 기술하기 위한 특정 필드들일 수 있다.
따라서, 이 식별자, 즉 NAL 유닛 헤더 요소(element)의 특정값은 필드들의 존재 여부 및/또는 필드의 길이에 대한 정보가 비트스트림의 특정 메시지 혹은 특정 패킷에 제공되는지를 나타내기 위해 사용될 수 있다.
표 2는 NAL 유닛 헤더에서 식별자를 이용하여 스케일러빌리티 정보를 전송하는 예를 개략적으로 나타낸 것이다.
<표 2>
Figure pat00002
표 2의 예에서, scalability_info_flag는 스케일러빌리티 정보가 NAL 유닛에 존재하는지를 특정한다. scalability_info_flag의 값이 1이면, 스케일러빌리티 정보가 NAL 유닛 헤더에 존재한다는 것을 지시하고, scalability_info_flag의 값이 0이면 스케일러빌리티 정보가 NAL 유닛 헤더에 존재하지 않는다는 것을 지시한다.
scalability_identifier는 스케일러빌리티 프로파일(scalability profile)을 특정하는 식별자(identifier)이다. 각 scalability_identifier 값은 해당 스케일러빌리티 디멘젼(dimension)의 조합(combination) 즉, 스케일러빌리티 프로파일을 특정한다. 다시 말하면, 각 scalability_identifier 값은 특정 스케일리빌리티 프로파일에 대한 스케일러빌리티 정보들을 나타내기 위한 특정 필드들 및/또는 필드의 길이들에 대응한다고 할 수 있다. 예를 들어, scalability_identifier의 특정한 값이 있다면, 이 값은 스케일러빌리티 정보를 나타내는 필드들 중에서 비트스트림의 특정 메시지 혹은 특정 패킷에서 제공되는 필드 또는 NAL 유닛에 존재하는 필드 및 그 길이 정보를 나타낼 수 있다.
스케일러빌리티에 대한 id들, 즉 표 2의 예에서 scalability_identifier 다음에 오는 값으로 priority_id, dependency_id, quality_id, temporal_id, view_id 등과 같은 필드 또는 id 중에서 어떤 필드/id와 그 길이 정보가 NAL 유닛에 존재하는지는 scalability_identifier에 의해 특정되는 조합에 의해 결정될 수 있다.
priority_id는 우선 식별자(priority identifier)를 특정한다. 우선 식별자는 부호화기에 의해 NAL 유닛마다 할당되며, NAL 유닛의 추출 우선 순위 혹은 NAL 유닛의 중요도를 지시한다. priority_id의 구체적인 내용은 ITU-T Recommendation H.264의 Annex G Scalable video coding에 기술된 바와 같다.
dependency_id는 NAL 유닛에 대한 종속 식별자(dependency identifier)를 특정한다. 종속 식별자는 공간적 스케일러빌리티를 지원하는 계층들을 특정한다. 예컨대, 공간적 스케일러빌리티에 있어서, 기본 계층(base layer)에 대한 종속 식별자의 값은 0으로 설정될 수 있으며, 다음 향상 계층(enhancement layer)들에 대해서는 종속 식별자의 값을 1씩 증가시켜 할당할 수 있다. dependency_id의 구체적인 내용은 ITU-T Recommendation H.264의 Annex G Scalable video coding에 기술된 바와 같다.
quality_id는 NAL 유닛에 대한 품질 식별자(quality identifier)를 특정한다. 품질 식별자는 품질 개선 계층(quality refinement layer)를 특정한다. quality_id의 구체적인 내용은 ITU-T Recommendation H.264의 Annex G Scalable video coding에 기술된 바와 같다.
temporal_id는 NAL 유닛에 대한 시간 식별자(temporal identifier)를 특정한다. 시간 식별자는 시간적 스케일러빌리티를 지원하는 계층들을 특정할 수 있다. 예컨대, 시간적 스케일러빌리티에 대하여 기본 계층에 대한 시간 식별자의 값을 0으로 설정하고, 향상 계층들에 대하여 1씩 시간 식별자의 값을 증가시켜 할당할 수 있다. tempor_id의 구체적인 내용은 ITU-T Recommendation H.264의 Annex G Scalable video coding에 기술된 바와 같다.
view_id는 비트스트림 내 뷰 식별자로서 비트스트림 내 시점들을 특정할 수 있다.
other_ids는 나중에 스케일러빌리티 프로파일에 추가될 수 있는 필드나 id들을 위한 플래이스 홀더(place holder)이다.
한편, 이후에 정의되거나 사용될 수 있는 정보/필드들을 위하여 소정 크기의 필드가 유보될(reserved) 수도 있다. 표 2의 예에서는 2 비트의 reserved_one_2bits가 포함되어 있다. 이런 유보된 비트(reserved bit)들 가운데 하나 이상의 비트는 NAL 유닛 헤더를 확장하기 위해 사용될 수도 있다. 예를 들어, NAL 유닛 헤더의 확장 여부를 특정하는 소정의 플래그 값이 1인 경우에는 기존의 NAL 유닛 헤더에 새로운 바이트(byte)가 추가되도록 할 수 있다.
표 2의 예에서, other_ids 다음의 유보된 비트 요소(element) reserved_bits는 다른 유보된 비트들을 포함하기 위한 것이다. 이 비트 요소의 길이를 N(N < 8)이라고 할 때, N은 forbidden_zero_bit부터 해당 요소(element)까지의 NAL 유닛 헤더 길이가 바이트(byte)의 정수 배가 되도록 정의될 수 있다.
표 2의 예에서 대부분의 element의 semantics는 표 1의 예와 동일하거나 유사하다. 그러나, 표 2의 예에서 각 요소(element)를 위해 사용된 비트 수는 scalability_identifier에 의해 지시되는 조합(combination/profile)에 의해 정의된다.
scalability_identifier를 사용하는 실시예 2는 플래그들을 사용하는 실시예 1보다 유연한(flexible) 방식이나, 처리하고자 하는 네트워크의 노드에서 스케일러빌리티의 상이한 조합(combinations/profiles)에 대한 정보를 유지해야 할 필요가 있을 수 있다.
scalability_identifier를 이용하는 경우로서, scalability_identifier의 1부터 3의 세 값 중 어느 한 값을 지시함으로써 세 가지 스케일러빌리티 프로파일 중에서 스케일러빌리티 프로파일을 특정하는 경우를 일 예로서 고려해 보자.
(1) 프로파일 1. scalability_identifier의 값 1은 다음의 4 요소(element)들만을 포함하는 스케일러비리티 프로파일을 지시한다.
reserved_one_2bits 이후의 6 bit은 priority_id 를 위해 사용된다. priority_id는 우선 식별자(priority identifier)를 특정한다. 우선 식별자는 부호화기에 의해 NAL 유닛마다 할당되며, NAL 유닛의 추출 우선 순위 혹은 NAL 유닛의 중요도를 지시한다. priority_id의 구체적인 내용은 ITU-T Recommendation H.264의 Annex G Scalable video coding에 기술된 바와 같다.
② 그 다음의 3 bit은 dependency_id를 위해 사용된다. dependency_id는 NAL 유닛에 대한 종속 식별자(dependency identifier)를 특정한다. 종속 식별자는 공간적 스케일러빌리티를 지원하는 계층들을 특정한다. dependency_id의 구체적인 내용은 ITU-T Recommendation H.264의 Annex G Scalable video coding에 기술된 바와 같다.
③ 그 다음의 3 bit은 temporal_id를 위해 사용된다. temporal_id는 NAL 유닛에 대한 시간 식별자(temporal identifier)를 특정한다. 시간 식별자는 시간적 스케일러빌리티를 지원하는 계층들을 특정할 수 있다. tempor_id의 구체적인 내용은 ITU-T Recommendation H.264의 Annex G Scalable video coding에 기술된 바와 같다.
④ 그 다음의 4 bit은 quality_id를 위해 사용된다. quality_id는 NAL 유닛에 대한 품질 식별자(quality identifier)를 특정한다. 품질 식별자는 품질 개선 계층(quality refinement layer)를 특정한다. quality_id의 구체적인 내용은 ITU-T Recommendation H.264의 Annex G Scalable video coding에 기술된 바와 같다.
reserved_bit에는 비트를 할당하지 않는다.
(2) 프로파일 2. scalability_identifier의 값 2는 다음의 요소(element)들만을 포함하는 스케일러비리티 프로파일을 지시한다.
reserved_one_2bits 이후의 10 비트는 view_id를 위해 사용된다. view_id는 비트스트림 내 뷰 식별자로서 비트스트림 내 시점들을 특정할 수 있다. view_id의 구체적인 내용은 ITU-T Recommendation H.264의 Annex G Scalable video coding에 기술된 바와 같다.
② 그 다음의 6 비트는 reserved_bits으로 사용된다.
(3) 프로파일 3. scalability_identifier 값 3은 다음의 요소(element)들만을 포함하는 스케일러빌리티 프로파일을 지시한다.
reserved_one_2bits 이후의 6 비트는 priority_id 를 위해 사용된다. priority_id는 우선 식별자(priority identifier)를 특정한다. 우선 식별자는 부호화기에 의해 NAL 유닛마다 할당되며, NAL 유닛의 추출 우선 순위 혹은 NAL 유닛의 중요도를 지시한다. priority_id의 구체적인 내용은 ITU-T Recommendation H.264의 Annex G Scalable video coding에 기술된 바와 같다.
② 그 다음의 2 비트는 reserved_bits로 사용된다.
예를 들어, scalability_identifier의 값이 31인 경우, 비트스트림의 특정 메시지가 필드들의 존재 여부 및 길이(length)에 대한 정보를 나타내기 위해서 사용될 수 있다.
본 명세서에서는 스케일러빌리티에 관한 필드들의 존재 여부 및 길이에 대한 정보를 지시하는 특정 메시지를 설명의 편의를 위해 scal_info 라고 한다.
표 3은 scal_info의 일 예를 개략적으로 나타낸 것이다.
<표 3>
Figure pat00003
표 3의 예에서, XXX_length(즉, priority_id_length, dependency_id_length, temporqal_id_length, quality_id_length, view_id_length, other_id_length)는 NAL 유닛 헤더에서 해당 요소(element)/필드(field)를 위해 사용된 비트 수를 지시한다.
또한, XXX_length는 해당 요소/필드가 NAL 유닛 헤더에 존재하는지를 지시할 수도 있다. XXX_length의 값이 0이면, 즉 요소/필드의 길이가 0이거나 요소/필드에 사용된 비트 수가 0이면 해당 요소 또는 필드는 NAL 유닛 헤더에 존재하지 않는다는 것을 지시한다. 예컨대, priority_id_length의 값이 0이면 NAL 유닛 헤더에 priority_id가 존재하지 않는다.
표 3의 scal_info 역시 다른 스케일러빌리티 정보들과 함께 NAL 유닛 헤더에서 전송될 수 있다.
플래그를 사용하는 방법과 식별자를 사용하는 방법의 조합
비트스트림을 생성하는데 있어서, 콘텐츠 제공자가 더 많은 융통성을 가질 수 있도록 플래그와 식별자를 상호 대안적으로 사용할 수도 있다.
본 실시예에서는 앞선 실시예들에서 설명한 플래그를 사용하는 방법과 식별자를 사용하는 방법을 조합하여 사용하는 방법을 설명한다.
스케일러빌리티 정보의 존부와 함께 플래그와 식별자 중 어느 것을 사용할 것인지를 지시하기 위해서, 본 실시예에서는 앞 선 두 실시예에서 스케일러빌리티 정보의 존부를 지시하던 플래그 정보(scalability_info_flag) 대신에, 새로운 요소(element) scalability_info를 도입한다.
scalability_info는 NAL 유닛 헤더에 스케일러빌리티 정보가 존재하는지, 스케일러빌리티 정보가 존재한다면 플래그를 이용하여 개별 스케일러빌리티 정보의 존부를 지시할 것인지 식별자를 이용하여 개별 스케일러빌리터 정보의 존부를 지시할 것인지를 특정할 수 있다.
예컨대, scalability_info의 값이 0이면 NAL 유닛에 스케일러빌리티 정보가 존재하지 않는 것을 지시하며, scalability_info의 값이 1이면 플래그를 이용하여 개별 스케일러빌리티 정보의 존부를 나타낸다는 것을 지시하고, scalability_info의 값이 2이면 식별자를 이용하여 개별 스케일러빌리티 정보의 존부를 나타낸다는 것을 지시한다.
표 4는 플래그를 사용하는 방법과 식별자를 사용하는 방법을 조합하여 스케일러빌리티 정보의 존부 등에 관한 정보를 전송하는 방법의 일 예를 간단히 나타낸 것이다.
<표 4>
Figure pat00004
표 4를 참조하면, scalability_info의 값이 0인 경우에는 스케일러빌리티 정보가 NAL 유닛에 존재하지 않는다는 것을 지시한다.
표 4의 예에서, scalability_info의 값이 1인 경우에는 스케일러빌리티 정보가 NAL 유닛에 존재하며, 플래그를 이용하여 개별 스케일러빌리티 정보의 존부를 지시한다.
priority_id_flag는 NAL 유닛에 priority_id 값이 존재하는지를 특정한다. 예컨대, priority_id_flag의 값이 1이면, NAL 유닛에 priority_id 값이 존재하는 것을 지시하고, priority_id_flag의 값이 0이면, NAL 유닛에 priority_id 값이 존재하지 않는다는 것을 지시한다.
dependency_id_flag는 NAL 유닛에 dependency_id가 존재하는지를 특정한다. 예컨대, dependency_id_flag의 값이 1이면, NAL 유닛에 dependency_id 값이 존재한다는 것을 지시하고, dependency_id_flag의 값이 0이면, NAL 유닛에 dependency_id 값이 존재하지 않는다는 것을 지시한다.
temporal_id_flag는 NAL 유닛에 temporal_id가 존재하는지를 특정한다. 예컨대, temporal_id_flag의 값이 1이면, NAL 유닛에 temporal_id 값이 존재하는 것을 지시하고, temporal_id_flag의 값이 0이면, NAL 유닛에 temporal_id 값이 존재하지 않는다는 것을 지시한다.
quality_id_flag는 NAL 유닛에 quality_id가 존재하는지를 특정한다. 예컨대, quality_id_flagd의 값이 1이면, NAL 유닛에 quality_id 값이 존재하는 것을 지시하고, quality_id _flag의 값이 0이면 NAL 유닛에 quality_id 값이 존재하지 않는 것을 지시한다.
view_id_flag는 NAL 유닛에 view_id가 존재하는지를 특정한다. 예컨대, view_id_flag 의 값이 1이면, NAL 유닛에 view_id 값이 존재하는 것을 지시하고, view_id_flag ? 값이 0이면, NAL 유닛에 view_id 값이 존재하지 않는 것을 지시한다.
priority_id는 우선 식별자(priority identifier)를 특정한다. dependency_id는 NAL 유닛에 대한 종속 식별자(dependency identifier)를 특정한다. quality_id는 NAL 유닛에 대한 품질 식별자(quality identifier)를 특정한다. temporal_id는 NAL 유닛에 대한 시간 식별자(temporal identifier)를 특정한다. priority_id, dependency_id, quality_id 및 tempor_id의 구체적인 내용은 ITU-T Recommendation H.264의 Annex G Scalable video coding에 기술된 바와 같다.
long_view_id_flag는 NAL 유닛에 view_id_part2가 존재하는지를 특정한다. 예컨대, long_view_id_flag의 값이 1이면, NAL 유닛에 view_id_part2가 존재하는 것을 지시하며, long_view_id_flag의 값이 0이면, NAL 유닛에 view_id_part2가 존재하지 않는 것을 지시한다.
view_id_part1는 비트스트림의 뷰(view) 식별자이다. view_id_part1는 소정의 길이를 가질 수 있다. 예컨대, view_id_part1는 2 비트(bits)의 길이를 가질 수 있다.
view_id_part2는 비트스트림 내 뷰 식별자로서 long_view_id_flag의 값이 1의 값이 1이면 view_id_part1과 함께 비트스트림 내 시점들을 특정할 수 있다. view_id_part2는 소정의 길이를 가질 수 있다. 예컨대, view_id_part2는 8 비트의 길이를 가질 수 있으며, long_view_id_flag의 값이 1이라면, 2 비트 길이의 view_id_part1과 합해서 10 비트의 길이를 가지고 비트스트림 내의 시점들을 특정할 수 있다.
2 비트의 reserved_one_2bits는 이후에 정의되거나 사용될 수 있는 정보/필드들을 위하여 유도된 것으로서, 이중 하나 이상의 비트는 NAL 유닛 헤더를 확장하기 위해 사용될 수도 있다.
reserved_bits는 다른 유보된 비트들을 포함하기 위한 것이다.
표 4의 예에서, scalability_info의 값이 2인 경우에는 스케일러빌리티 정보가 NAL 유닛에 존재하며, 식별자를 이용하여 개별 스케일러빌리티 정보의 존부를 지시한다.
scalability_identifier는 스케일러빌리티 프로파일(scalability profile)을 특정하는 식별자(identifier)이다. 각 scalability_identifier 값은 해당 스케일러빌리티 디멘젼(dimension)의 조합(combination) 즉, 스케일러빌리티 프로파일을 특정한다. 다시 말하면, 각 scalability_identifier 값은 특정 스케일리빌리티 프로파일에 대한 스케일러빌리티 정보를 구성하는 개별 필드들 및/또는 필드의 길이들에 대응한다고 할 수 있다. 예를 들어, scalability_identifier의 특정 값은 스케일러빌리티 정보를 나타내는 필드들 중에서 비트스트림의 특정 메시지 혹은 특정 패킷에서 제공되는 필드들 또는 NAL 유닛에 존재하는 필드들 및 그 길이 정보를 나타낼 수 있다.
스케일러빌리티에 대한 id들, 즉 표 2의 예에서 scalability_identifier 다음에 오는 값으로 priority_id, dependency_id, quality_id, temporal_id, view_id 등과 같은 필드 또는 id 중에서 어떤 필드/id와 그 길이 정보가 NAL 유닛에 존재하는지는 scalability_identifier에 의해 특정되는 조합에 의해 결정될 수 있다.
priority_id는 우선 식별자(priority identifier)를 특정한다. dependency_id는 NAL 유닛에 대한 종속 식별자(dependency identifier)를 특정한다. quality_id는 NAL 유닛에 대한 품질 식별자(quality identifier)를 특정한다. temporal_id는 NAL 유닛에 대한 시간 식별자(temporal identifier)를 특정한다. view_id는 비트스트림 내 뷰 식별자로서 비트스트림 내 시점들을 특정할 수 있다. priority_id, dependency_id, quality_id, tempor_id 및 view_id의 구체적인 내용은 ITU-T Recommendation H.264의 Annex G Scalable video coding에 기술된 바와 같다.
도 4는 본 발명에 따른 부호화기의 동작을 개략적으로 설명하는 순서도이다.
도 4를 참조하면, 부호화기는 입력된 비디오를 부호화한다(S410). 부호화기는 수행하는 부호화 방법에 대해서는 도 1에서 설명한 바와 같다. 이때, 부호화기는 도 1 및 도 3에서 설명한 바와 같이, SVC를 적용하여 비디오를 부호화할 수 있다.
부호화기는 부호화된 비디오 정보를 전송한다(S410). 부호화기는 도 1 및 도 3에서 설명한 바와 같이, 부호화된 정보를 비트스트림으로 전송할 수 있다. 예컨대, 부호화된 비디오 정보의 전송은 도 1에서 설명한 엔트로피 부호화된 정보의 전송일 수 있다.
부호화된 비디오 정보를 전송하는 비트스트림은 부호화에 적용된 스케일러빌리티를 반영한 복수 계층 구조를 가질 수 있으며, 전송되는 비디오 정보는 NAL 유닛 헤더에서 전송되는 스케일러빌리티 정보를 포함할 수 있다.
이때, 스케일러빌리티 정보는 상기 NAL 유닛 헤더에 대응하는 NAL 유닛에 개별 스케일러빌리티의 정보가 존재하는지를 지시하는 정보일 수 있다. 또한, 스케일러빌리티 정보는 상기 NAL 유닛 헤더에 대응하는 NAL 유닛에 존재하는 개별 스케일러빌리티의 정보가 존재하는지와 함께 상기 개별 스케일러빌리티의 정보에 사용된 비트 수에 관한 정보가 존재하는지를 지시하는 정보일 수도 있다.
이때, 스케일러빌리티 정보는 상기 NAL 유닛 헤더에 대응하는 NAL 유닛이 개별 스케일러빌리티의 정보를 포함하는지를 지시하는 플래그일 수 있다. 이 경우, 개별 스케일러빌리티의 정보는 비트스트림 내의 뷰들을 특정하는 제1 뷰 아이디 및 제2 뷰 아이디와 제2 뷰 아이디의 사용 여부를 지시하는 정보를 포함할 수 있다.
또한, 스케일러빌리티 정보는 상기 NAL 유닛 헤더에 대응하는 NAL 유닛의 스케일러빌리티 프로파일(profile)을 특정하는 정보(예컨대, 식별자)일 수도 있다. 이때, 스케일러빌리티 프로파일은 상기 NAL 유닛에 포함된 개별 스케일러빌리티들의 조합을 나타내는 정보일 수 있다.
더 나아가, 스케일러빌리티 정보는 (1) 상기 NAL 유닛 헤더에 대응하는 NAL 유닛에 개별 스케일러빌리티의 정보가 존재하는지를 지시하며, (2) 상기 NAL 유닛에 개별 스케일러빌리티의 정보가 존재하는 경우에는 상기 개별 스케일러빌리티별 정보의 존재 여부가 플래그로 지시되는지 상기 개별 스케일러빌리티의 조합이 식별자에 의해 지시되는지를 특정하는 정보일 수도 있다.
도 4에서는 설명의 이해를 높기 위해 간단하게 설명되었으나, 부호화기로부터 전송되는 스케일러빌러티 관련 정보 및 전송 방법의 구체적인 내용은 실시예 1 내지 실시예 3에서 설명한 바와 같다.
도 5는 본 발명에 따른 복호화기의 동작을 개략적으로 설명하는 순서도이다.
도 5를 참조하면, 복호화기는 부호화된 비디오 정보를 비트스트림으로 수신한다(S510). 도 2 및 도 3에서 설명한 바와 같이, 비디오 정보는 SVC가 적용되어 부호화되었을 수 있으며, SVC가 적용된 비디오 정보는 부호화에 적용된 스케일러빌리티를 반영한 복수 계층 구조를 가지는 비트스트림을 통해 부호화기로부터 전송될 수 있다.
수신된 비디오 정보는 NAL 유닛 헤더에서 전송되는 스케일러빌리티 정보를 포함할 수 있다.
이때, 스케일러빌리티 정보는 상기 NAL 유닛 헤더에 대응하는 NAL 유닛에 개별 스케일러빌리티의 정보가 존재하는지를 지시하는 정보일 수 있다. 또한, 스케일러빌리티 정보는 상기 NAL 유닛 헤더에 대응하는 NAL 유닛에 존재하는 개별 스케일러빌리티의 정보가 존재하는지와 함께 상기 개별 스케일러빌리티의 정보에 사용된 비트 수에 관한 정보가 존재하는지를 지시하는 정보일 수도 있다.
이때, 스케일러빌리티 정보는 상기 NAL 유닛 헤더에 대응하는 NAL 유닛이 개별 스케일러빌리티의 정보를 포함하는지를 지시하는 플래그일 수 있다. 이 경우, 개별 스케일러빌리티의 정보는 비트스트림 내의 뷰들을 특정하는 제1 뷰 아이디 및 제2 뷰 아이디와 제2 뷰 아이디의 사용 여부를 지시하는 정보를 포함할 수 있다.
또한, 스케일러빌리티 정보는 상기 NAL 유닛 헤더에 대응하는 NAL 유닛의 스케일러빌리티 프로파일(profile)을 특정하는 정보(예컨대, 식별자)일 수도 있다. 이때, 스케일러빌리티 프로파일은 상기 NAL 유닛에 포함된 개별 스케일러빌리티들의 조합을 나타내는 정보일 수 있다.
더 나아가, 스케일러빌리티 정보는 (1) 상기 NAL 유닛 헤더에 대응하는 NAL 유닛에 개별 스케일러빌리티의 정보가 존재하는지를 지시하며, (2) 상기 NAL 유닛에 개별 스케일러빌리티의 정보가 존재하는 경우에는 상기 개별 스케일러빌리티별 정보의 존재 여부가 플래그로 지시되는지 상기 개별 스케일러빌리티의 조합이 식별자에 의해 지시되는지를 특정하는 정보일 수도 있다.
복호화기는 수신한 비디오 정보를 복호화하여 비디오를 복원할 수 있다(S520). 부호화기에서 SVC를 적용하여 비디오를 부호화한 경우에, 복호화기는 부호화기에서 적용된 스케일러빌리티에 기반하여 비디오를 복호화할 수 있다. 복호화기가 수행하는 복호화 방법의 구체적인 내용은 도 2 및 도 3에서 설명한 바와 같다.
도 5에서는 설명의 이해를 높기 위해 간단하게 설명되었으나, 부호화기로부터 전송되는 스케일러빌러티 관련 정보 및 전송 방법의 구체적인 내용은 실시예 1 내지 실시예 3에서 설명한 바와 같다.
도 6은 부호화기(부호화 장치)의 구조를 개략적으로 설명하는 블록도이다. 도 6을 참조하면, 부호화기(600)는 부호화부(610) 및 전송부(620)를 포함한다.
부호화부(610)는 입력된 비디오를 부호화하고, 전송부(620)는 부호화된 비디오 정보를 전송한다. 부호화된 비디오 정보를 전송하는 비트스트림은 부호화에 적용된 스케일러빌리티를 반영한 복수 계층 구조를 가질 수 있으며, 전송되는 비디오 정보는 NAL 유닛 헤더에서 전송되는 스케일러빌리티 정보를 포함할 수 있다. 스케일러빌리티 정보는 실시예 1 내지 3과 도 4에서 설명한 바와 같다.
부호화의 구체적인 방법 또한 도 1 및 도 3에서 설명한 바와 같다. 예컨대, 부호화부(610)는 도 1에서 설명한 부호화 장치(100)에 대응하며, 도 1에서 설명한 각 기능 블록들을 포함할 수 있다. 전송부(620)는 도 1에서 엔트로피 부호화된 정보를 비트스트림으로 전송한다.
도 7은 복호화기(복호화 장치)의 구성을 개략적으로 설명하는 블록도이다. 도 7을 참조하면, 복호화기(700)는 수신부(710) 및 복호화부(720)를 포함한다.
수신부(710)는 부호화기로부터 비디오 정보를 수신한다. 수신한 비디오 정보는 SVC가 적용되어 부호화되었을 수 있으며, SVC가 적용된 비디오 정보는 부호화에 적용된 스케일러빌리티를 반영한 복수 계층 구조를 가지는 비트스트림을 통해 부호화기로부터 전송될 수 있다. 또한, 수신된 비디오 정보는 NAL 유닛 헤더에서 전송되는 스케일러빌리티 정보를 포함할 수 있다.
스케일러빌러티 정보는 실시예 1 내지 3과 도 4에서 설명한 바와 같다.
복호화부(720)는 수신한 비디오 정보를 복호화하여 비디오를 복원한다. 복호화의 구체적인 방법은 도 2 및 도 3에서 설명한 바와 같다. 예컨대, 복호화부(720)는 도 2에서 설명한 복호화 장치(200)에 대응하며, 도 2에서 설명한 각 기능 블록들을 포함할 수 있다. 수신부(710)는 수신한 비디오 정보를 복호화부(720) 내 엔트로피 복호화부에 전달한다고 할 수 있다.
상술한 예시적인 시스템에서, 방법들은 일련의 단계 또는 블록으로써 순서도를 기초로 설명되고 있지만, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 상술한 실시예들은 다양한 양태의 예시들을 포함한다. 예컨대, 각 실시예의 조합 역시 본 발명의 일 실시예로서 이해되어야 할 것이다.

Claims (18)

  1. 비디오를 부호화하는 단계; 및
    부호화된 비디오 정보를 비트스트림으로 전송하는 단계를 포함하며,
    상기 전송되는 비디오 정보는 NAL (Network Abstract Layer) 유닛 헤더에서 전송되는 스케일러빌리티(scalability) 정보를 포함하는 것을 특징으로 하는 비디오 정보 전송 방법.
  2. 제1항에 있어서, 상기 스케일러빌리티 정보는,
    상기 NAL 유닛 헤더에 대응하는 NAL 유닛에 개별 스케일러빌리티의 정보가 존재하는지를 지시하는 것을 특징으로 하는 비디오 정보 전송 방법.
  3. 제1항에 있어서, 상기 스케일러빌리티 정보는,
    상기 NAL 유닛 헤더에 대응하는 NAL 유닛에 존재하는 개별 스케일러빌리티의 정보가 존재하는지와 함께 상기 개별 스케일러빌리티의 정보에 사용된 비트 수에 관한 정보가 존재하는지를 지시하는 것을 특징으로 하는 비디오 정보 전송 방법.
  4. 제1항에 있어서, 상기 스케일러빌리티 정보는,
    상기 NAL 유닛 헤더에 대응하는 NAL 유닛이 개별 스케일러빌리티의 정보를 포함하는지를 지시하는 플래그인 것을 특징으로 하는 비디오 정보 전송 방법.
  5. 제4항에 있어서, 상기 개별 스케일러빌리티의 정보는,
    상기 비트스트림 내의 뷰들을 특정하는 제1 뷰 아이디 및 제2 뷰 아이디; 및
    상기 제2 뷰 아이디의 사용 여부를 지시하는 정보를 포함하는 것을 특징으로 하는 비디오 정보 전송 방법.
  6. 제1항에 있어서, 상기 스케일러빌리티 정보는,
    상기 NAL 유닛 헤더에 대응하는 NAL 유닛의 스케일러빌리티 프로파일(profile)을 특정하는 것을 특징으로 하는 비디오 정보 전송 방법.
  7. 제6항에 있어서, 상기 스케일러빌리티 프로파일은,
    상기 NAL 유닛에 포함된 개별 스케일러빌리티들의 조합을 지시하는 것을 특징으로 하는 비디오 정보 전송 방법.
  8. 제1항에 있어서, 상기 스케일러빌리티 정보는,
    상기 NAL 유닛 헤더에 대응하는 NAL 유닛에 개별 스케일러빌리티의 정보가 존재하는지를 지시하며,
    상기 NAL 유닛에 개별 스케일러빌리티의 정보가 존재하는 경우에,
    상기 스케일러빌리티 정보는 상기 개별 스케일러빌리티별 정보의 존재 여부가 플래그로 지시되는지 상기 개별 스케일러빌리티의 조합이 식별자에 의해 지시되는지를 특정하는 것을 특징으로 하는 비디오 정보 전송 방법.
  9. 부호화된 비디오 정보를 비트스트림으로 수신하는 단계; 및
    상기 비디오 정보를 기반으로 비디오를 복호화 하는 단계를 포함하며,
    상기 수신한 비디오 정보는 NAL (Network Abstract Layer) 유닛 헤더에서 전송되는 스케일러빌리티(scalability) 정보를 포함하는 것을 특징으로 하는 비디오 복호화 방법.
  10. 제9항에 있어서, 상기 스케일러빌리티 정보는,
    상기 NAL 유닛 헤더에 대응하는 NAL 유닛에 개별 스케일러빌리티의 정보가 존재하는지를 지시하는 것을 특징으로 하는 비디오 복호화 방법.
  11. 제9항에 있어서, 상기 스케일러빌리티 정보는,
    상기 NAL 유닛 헤더에 대응하는 NAL 유닛에 존재하는 개별 스케일러빌리티의 정보가 존재하는지와 함께 상기 개별 스케일러빌리티의 정보에 사용된 비트 수에 관한 정보가 존재하는지를 지시하는 것을 특징으로 하는 비디오 복호화 방법.
  12. 제9항에 있어서, 상기 스케일러빌리티 정보는,
    상기 NAL 유닛 헤더에 대응하는 NAL 유닛이 개별 스케일러빌리티의 정보를 포함하는지를 지시하는 플래그인 것을 특징으로 하는 비디오 복호화 방법.
  13. 제12항에 있어서, 상기 개별 스케일러빌리티의 정보는,
    상기 비트스트림 내의 뷰들을 특정하는 제1 뷰 아이디 및 제2 뷰 아이디; 및
    상기 제2 뷰 아이디의 사용 여부를 지시하는 정보를 포함하는 것을 특징으로 하는 비디오 복호화 방법.
  14. 제9항에 있어서, 상기 스케일러빌리티 정보는,
    상기 NAL 유닛 헤더에 대응하는 NAL 유닛의 스케일러빌리티 프로파일(profile)을 특정하는 것을 특징으로 하는 비디오 복호화 방법.
  15. 제14항에 있어서, 상기 스케일러빌리티 프로파일은,
    상기 NAL 유닛에 포함된 개별 스케일러빌리티들의 조합을 지시하는 것을 특징으로 하는 비디오 복호화 방법.
  16. 제9항에 있어서, 상기 스케일러빌리티 정보는,
    상기 NAL 유닛 헤더에 대응하는 NAL 유닛에 개별 스케일러빌리티의 정보가 존재하는지를 지시하며,
    상기 NAL 유닛에 개별 스케일러빌리티의 정보가 존재하는 경우에,
    상기 스케일러빌리티 정보는 상기 개별 스케일러빌리티별 정보의 존재 여부가 플래그로 지시되는지 상기 개별 스케일러빌리티의 조합이 식별자에 의해 지시되는지를 특정하는 것을 특징으로 하는 비디오 복호화 방법.
  17. 입력된 비디오를 부호화하는 부호화부; 및
    부호화된 비디오 정보를 전송하는 전송부를 포함하며,
    상기 전송되는 비디오 정보는 NAL (Network Abstract Layer) 유닛 헤더에서 전송되는 스케일러빌리티(scalability) 정보를 포함하는 것을 특징으로 하는 비디오 부호화 장치.
  18. 부호화된 비디오 정보를 비트스트림으로 수신하는 수신부; 및
    상기 비디오 정보를 기반으로 비디오를 복호화 하는 복호화부를 포함하며,
    상기 수신한 비디오 정보는 NAL (Network Abstract Layer) 유닛 헤더에서 전송되는 스케일러빌리티(scalability) 정보를 포함하는 것을 특징으로 하는 비디오 복호화 장치.
KR1020130006715A 2012-01-20 2013-01-21 비디오 정보 전송 방법, 비디오 복호화 방법, 비디오 부호화기 및 비디오 복호화기 KR20130086011A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2013/000492 WO2013109126A1 (ko) 2012-01-20 2013-01-21 비디오 정보 전송 방법, 비디오 복호화 방법, 비디오 부호화기 및 비디오 복호화기

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020120006740 2012-01-20
KR20120006740 2012-01-20

Publications (1)

Publication Number Publication Date
KR20130086011A true KR20130086011A (ko) 2013-07-30

Family

ID=48995991

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130006715A KR20130086011A (ko) 2012-01-20 2013-01-21 비디오 정보 전송 방법, 비디오 복호화 방법, 비디오 부호화기 및 비디오 복호화기

Country Status (1)

Country Link
KR (1) KR20130086011A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9967571B2 (en) 2014-01-02 2018-05-08 Electronics And Telecommunications Research Institute Method for decoding image and apparatus using same

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9967571B2 (en) 2014-01-02 2018-05-08 Electronics And Telecommunications Research Institute Method for decoding image and apparatus using same
US10291920B2 (en) 2014-01-02 2019-05-14 Electronics And Telecommunications Research Institute Method for decoding image and apparatus using same
US10326997B2 (en) 2014-01-02 2019-06-18 Electronics And Telecommunications Research Institute Method for decoding image and apparatus using same
US10375400B2 (en) 2014-01-02 2019-08-06 Electronics And Telecommunications Research Institute Method for decoding image and apparatus using same
US10397584B2 (en) 2014-01-02 2019-08-27 Electronics And Telecommunications Research Institute Method for decoding image and apparatus using same

Similar Documents

Publication Publication Date Title
US10972743B2 (en) Method for decoding image and apparatus using same
KR101759855B1 (ko) 영상 디코딩 방법 및 이를 이용하는 장치
US10375400B2 (en) Method for decoding image and apparatus using same
JP7125520B2 (ja) ピクチャ復号化方法およびピクチャ符号化方法
KR20140121355A (ko) 영상 부호화/복호화 방법 및 장치
JP7389241B2 (ja) マルチビュースケーラビリティのためのols
KR102412637B1 (ko) 영상 부호화/복호화 방법 및 장치
KR102431741B1 (ko) 영상 부호화/복호화 방법 및 장치
KR20140043240A (ko) 영상 부호화/복호화 방법 및 장치
WO2013109126A1 (ko) 비디오 정보 전송 방법, 비디오 복호화 방법, 비디오 부호화기 및 비디오 복호화기
KR20130086011A (ko) 비디오 정보 전송 방법, 비디오 복호화 방법, 비디오 부호화기 및 비디오 복호화기
KR20150043977A (ko) 다계층 기반의 영상 부호화/복호화 방법 및 장치

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination