도 1은 본 발명이 적용되는 스케일러블 비디오 코딩 시스템의 개략적인 블럭도를 나타낸다.
도 2 및 도 3은 본 발명이 적용되는 실시예로서, 스케일러블 비디오 코딩된 비트스트림에 추가될 수 있는 스케일러블 영상에 대한 속성 정보 및 이를 설명하기 위한 픽쳐들의 구조를 나타낸다.
도 4는 본 발명이 적용되는 실시예로서, 샘플된 베이스 레이어와 인핸스드 레이어와의 크로핑(cropping) 관계를 나타낸 것이다.
도 5 및 도 6은 본 발명이 적용되는 실시예들로서, 레이어 간 예측을 통한 매크로블록 예측 및 서브 매크로블록 예측과 관련된 신택스들을 나타낸 것이다.
도 7은 본 발명이 적용되는 실시예로서, 레이어 간 예측을 통한 레지듀얼 예 측과 관련된 신택스를 나타낸 것이다.
도 8은 본 발명이 적용되는 실시예로서, 레이어 간 예측 수행 여부에 따라 디블록킹 필터링을 수행하기 위한 신택스 구조를 나타낸다.
도 9는 본 발명이 적용되는 실시예로서, 레이어 간 예측 수행 여부에 따라, 업샘플된 픽쳐와 현재 픽쳐 사이의 위치 차이를 나타내는 오프셋 정보를 획득하기 위한 신택스 구조를 나타낸다.
도 10은 본 발명이 적용되는 실시예로서, 레이어 간 예측 수행 여부에 따라, 참조 레이어에 있는 인트라 블록의 사용 제한 여부를 나타내는 플래그 정보를 획득하기 위한 신택스 구조를 나타낸다.
도 11은 본 발명이 적용되는 실시예로서, 레이어 간 예측 수행 여부에 따라, 적응적인 예측 정보를 획득하기 위한 신택스 구조를 나타낸다.
발명의 실시를 위한 최선의 형태
상기 목적을 달성하기 위하여 본 발명은, 제 1 레이어의 비트스트림을 디코딩하는 단계, 제 2 레이어의 현재 블록에 대하여 레이어 간 예측이 수행되는지 여부를 나타내는 플래그 정보를 획득하는 단계, 상기 플래그 정보에 기초하여 레이어 간 예측에 이용되는 업샘플된 픽쳐와 현재 픽쳐 사이의 위치 차이를 나타내는 오프셋 정보들을 획득하는 단계 및 상기 오프셋 정보들을 이용하여 상기 제 1 레이어를 업샘플링하는 단계를 포함하는 것을 특징으로 하는 비디오 신호 디코딩 방법을 제공한다.
또한, 본 발명은, 업샘플링 과정을 위한 파라미터가 해당 영역에 존재하는지 여부를 나타내는 정보를 획득하는 단계를 더 포함하고, 오프셋 정보들은, 상기 파라미터가 해당 영역에 존재하는지 여부를 나타내는 정보에 기초하여 획득되는 것을 특징으로 한다.
또한, 본 발명은, 파라미터가 해당 영역에 존재하는지 여부를 나타내는 정보에 기초하여 색차 신호의 위상 변화에 대한 정보를 획득하는 단계를 더 포함하고, 상기 색차 신호의 위상 변화에 대한 정보를 이용하여 상기 제 1 레이어를 업샘플링하는 것을 특징으로 한다.
또한, 본 발명은, 색차 신호의 위상 변화에 대한 정보는 수평 방향에 대한 정보와 수직 방향에 대한 정보를 모두 포함하는 것을 특징으로 한다.
또한, 본 발명은, 색차 신호의 위상 변화에 대한 정보는 영상 포맷을 나타내는 정보에 기초하여 획득되는 것을 특징으로 한다.
또한, 본 발명은, 제 2 레이어의 현재 블록에 대한 퀄러티를 식별해주는 정보를 획득하는 단계를 더 포함하고, 오프셋 정보는 상기 퀄러티 식별 정보에 기초하여 획득되는 것을 특징으로 한다.
발명의 실시를 위한 형태
비디오 신호 데이터를 압축 부호화하는 기술은 공간적 중복성, 시간적 중복성, 스케일러블한 중복성, 시점간 존재하는 중복성을 고려하고 있다. 스케일러블한 중복성을 고려하는 압축 코딩에 대한 기술은 본 발명의 실시예일 뿐이며, 본 발명의 기술적 사상은 시간적 중복성, 공간적 중복성, 시점간 중복성 등에도 적용될 수 있다. 또한, 본 명세서에서 코딩이라 함은 인코딩과 디코딩의 개념을 모두 포함할 수 있고, 본 발명의 기술적 사상 및 기술적 범위에 따라 유연하게 해석할 수 있을 것이다.
비디오 신호의 비트열 구성을 살펴보면, 동영상 부호화 처리 그 자체를 다루는 VCL(Video Coding Layer, 비디오 부호화 계층)과 부호화된 정보를 전송하고 저장하는 하위 시스템과의 사이에 있는 NAL(Network Abstraction Layer, 네트워크 추상 계층)이라는 분리된 계층 구조로 정의되어 있다. 부호화 과정의 출력은 VCL 데이터이고 전송하거나 저장하기 전에 NAL 단위로 맵핑된다. 각 NAL 단위는 압축된 비디오 데이터 또는 헤더 정보에 해당하는 데이터인 RBSP(Raw Byte Sequence Payload, 동영상 압축의 결과데이터)를 포함한다.
NAL 단위는 기본적으로 NAL헤더와 RBSP의 두 부분으로 구성된다. NAL헤더에는 그 NAL 단위의 참조픽처가 되는 슬라이스가 포함되어 있는지 여부를 나타내는 플래그 정보(nal_ref_idc)와 NAL 단위의 타입을 나타내는 정보(nal_unit_type)가 포함되어 있다. RBSP 에는 압축된 원본의 데이터를 저장하며, RBSP의 길이를 8비트의 배수로 표현하기 위해 RBSP 의 마지막에 RBSP 채워넣기 비트(RBSP trailing bit)를 첨가한다. 이러한 NAL 단위의 종류에는 IDR(Instantaneous Decoding Refresh, 순간 복호 리프레쉬) 픽쳐, SPS(Sequence Parameter Set, 시퀀스 파라미터 세트), PPS(Picture Parameter Set, 픽쳐 파라미터 세트), SEI(Supplemental Enhancement Information, 보충적 부가정보) 등이 있다.
따라서, 상기 NAL 단위의 타입을 나타내는 정보(nal_unit_type)가 스케일러블 비디오 코딩된 슬라이스임을 나타내는 경우, 상기 스케일러블 코딩에 관한 여러 가지 속성 정보들을 추가함으로써 코딩 효율을 높일 수 있다. 예를 들어, 현재 액세스 유닛이 순간 복호 리프레쉬(Instantaneous Decoding Refresh, 이하 IDR이라 함.) 액세스 유닛인지를 나타내는 플래그 정보, 공간적 스케일러빌러티를 나타내는 식별 정보(dependency identification information), 퀄러티 식별 정보(quality identification information), 레이어간 예측이 사용되는지 여부를 나타내는 플래그 정보(no_inter_layer_pred_flag), 참조 베이스 픽쳐가 참조 픽쳐로서 이용되는지 여부를 나타내는 플래그 정보, 시간적 스케일러빌러티를 나타내는 식별 정보, 우선 순위(priority) 식별 정보 등을 추가할 수 있다. 이는 도 2에서 상세히 설명하도록 한다.
또한, 규격에서는 대상 제품을 적당한 비용으로 구현 가능하도록 여러 가지 프로파일 및 레벨로 제약하고 있는데, 복호기는 해당 프로파일과 레벨에서 정해진 제약을 만족시켜야 한다. 이처럼 복호기가 어떤 압축 영상의 범위까지 대응할 수 있는지 그 기능 또는 파라미터를 나타내기 위해 프로파일과 레벨이라는 두 가지의 개념이 정의되었다. 비트스트림이 어떤 프로파일에 기초하는 것인가는 프로파일 식별자(profile_idc)로 식별할 수 있다. 프로파일 식별자란, 비트스트림이 기반을 둔 프로파일을 나타내는 플래그를 의미한다. 예를 들어, H.264/AVC 에서는 프로파일 식별자가 66 이면 베이스라인 프로파일에 기초함을 의미하고, 77 이면 메인 프로파일에 기초함을 의미하며, 88 이면 확장 프로파일에 기초함을 의미한다. 상기 프로파일 식별자는 시퀀스 파라미터 세트에 포함될 수 있다.
따라서, 스케일러블 영상을 다루기 위해서는 입력되는 비트스트림이 스케일 러블 영상에 관한 프로파일인지 여부를 식별하고, 스케일러블 영상에 관한 프로파일로 식별되면 스케일러블 영상에 대한 하나 이상의 추가 정보를 전송할 수 있도록 신택스를 추가할 필요가 있다. 여기서 스케일러블 영상에 관한 프로파일이란, H.264/AVC의 추가 기술로서 스케일러블 비디오(scalable video)를 다루는 프로파일 모드(profile mode)를 나타낸다. SVC는 기존 AVC 기술에 대한 추가 기술이므로 무조건적인 신택스보다는 SVC 모드인 경우에 대한 추가 정보로서 신택스를 추가하는 것이 더 효율적일 수 있다. 예를 들어, AVC의 프로파일 식별자가 스케일러블 영상에 관한 프로파일을 나타낼 때 스케일러블 영상에 대한 정보를 추가하면 부호화 효율을 높일 수 있다.
이하에서는 비디오 신호의 효율적인 디코딩 방법을 제공하기 위한 다양한 실시예들을 설명하도록 한다.
도 1은 본 발명이 적용되는 스케일러블 비디오 코딩 시스템의 개략적인 블럭도를 나타낸다.
다양한 통신환경과 다양한 단말기에 최적화된 영상을 제공하기 위해서는 단말기에 제공되는 영상 또한 다양하게 준비되어야만 한다. 단말기마다 그에 최적화된 영상을 제공한다는 것은 하나의 영상원(source)을, 초당 전송 프레임수, 해상도, 픽셀당 비트수 등 다양한 변수들의 조합된 값에 대해 구비하고 있어야 함을 의미하므로 컨텐츠 제공자에게 부담으로 작용할 수 밖에 없다. 이러한 이유로, 컨텐츠 제공자는 원영상을 고속 비트레이트의 압축 영상 데이터로 인코딩해 두고, 단말기로부터 영상요청이 수신되는 경우 원영상을 디코딩한 다음, 단말기의 영상처리 능력에 맞는 영상 데이터로 다시 인코딩하여 제공할 수 있다. 그러나 이와 같은 트랜스코딩(transcoding)의 경우 인코딩-디코딩-인코딩 과정이 수반되므로, 영상 제공에 있어서 시간 지연이 발생할 수 밖에 없고, 이에 따라 복잡한 하드웨어의 디바이스와 알고리즘이 추가로 요구된다.
반면, 스케일러블 비디오 코딩(Scalable Video Coding: SVC) 방식은 비디오 신호를 인코딩함에 있어, 최고 화질로 인코딩하되, 그 결과 생성된 픽쳐 시퀀스의 부분 시퀀스만을 디코딩해 사용해도 영상 표현이 가능하도록 하는 방식이다. 여기서, 부분 시퀀스라 함은 시퀀스 전체에서 간헐적으로 선택된 프레임들로 이루어진 시퀀스를 의미할 수 있다. SVC로 인코딩된 픽쳐 시퀀스는 낮은 비트레이트에 대해 공간적 스케일러빌리티(spatial scalability)를 이용하여 영상의 사이즈를 줄일 수도 있다. 또한, 퀄러티 스케일러빌리티를 이용하여 영상의 화질을 낮출 수도 있다. 이때 소화면 및/또는 초당 프레임수 등이 낮은 픽쳐 시퀀스를 베이스 레이어라 하고 상대적으로 대화면 및/또는 초당 프레임수은 시퀀스를 인핸스드 또는 인핸스먼트 레이어라 할 수 있다.
그런데, 앞서 언급한 바와 같은 스케일러블 방식으로 인코딩된 픽처 시퀀스는 그 부분 시퀀스만을 수신하여 처리함으로써도 저화질의 영상 표현이 가능하지만, 비트레이트(bitrate)가 낮아지는 경우 화질저하가 크게 나타난다. 이를 해소하기 위해서 낮은 전송률을 위한 별도의 보조 픽쳐 시퀀스, 예를 들어 소화면 및/또는 초당 프레임수 등이 낮은 픽쳐 시퀀스를 제공할 수도 있다. 이러한 보조 시퀀스를 베이스 레이어(base layer)라 하고, 주 픽처 시퀀스를 인핸스드(enhanced) 또는 인핸스먼트(enhancement) 레이어라 할 수 있다.
본 명세서에서는 레이어 간 예측을 위한 다양한 실시예를 설명함에 있어서, 제 1 레이어와 제 2 레이어의 개념이 적용될 것이다. 예를 들어, 상기 제 2 레이어는, 상기 제 1 레이어와 다른 공간 해상도 또는 다른 화면 비율을 가질 수 있다. 또는 상기 제 2 레이어는, 상기 제 1 레이어와 다른 화질을 가질 수 있다. 구체적 예로, 상기 제 1 레이어는 베이스 레이어일 수 있고, 상기 제 2 레이어는 인핸스드 레이어일 수 있다. 또는 레이어간 예측을 수행함에 있어서, 상기 제 1 레이어는 참조 레이어일 수 있고, 상기 제 2 레이어는 현재 레이어일 수 있다. 따라서, 이하에서는 설명하는 베이스 레이어와 인핸스드 레이어는 일실시예에 불과할 뿐이므로, 이에 한정하여 해석되어서는 안될 것이다.
이하에서는 스케일러블 비디오 코딩 시스템에 대해 보다 구체적으로 알아보도록 한다. 상기 스케일러블 비디오 코딩 시스템은 인코딩 장치(102)와 디코딩 장치(110)를 포함한다. 상기 인코딩 장치(102)는 베이스 레이어 인코딩부(104), 인핸스드 레이어 인코딩부(106) 및 멀티플렉싱부(108)를 포함하고, 디코딩 장치(110)는 디멀티플렉싱부(112), 베이스 레이어 디코딩부(114) 및 인핸스드 레이어 디코딩부(116)를 포함할 수 있다. 베이스 레이어 인코딩부(104)는 입력된 영상신호 X(n)을 압축하여 베이스 비트스트림을 생성할 수 있다. 인핸스드 레이어 인코딩부(106)는 입력 영상신호 X(n)과 베이스 레이어 인코딩부(104)에 의해 생성되는 정보를 이용하여 인핸스드 레이어 비트스트림을 생성할 수 있다. 멀티플렉싱부(108)는 상기 베이스 레이어 비트스트림과 상기 인핸스드 레이어 비트스트림을 이용하여 스케일러 블 비트스트림을 생성할 수 있다.
이렇게 생성된 스케일러블 비트스트림은 소정 채널을 통해 디코딩 장치(110)로 전송되고, 전송된 스케일러블 비트스트림은 디코딩 장치(110)의 디멀티플렉싱부(112)에 의해 인핸스드 레이어 비트스트림과 베이스 레이어 비트스트림으로 구분될 수 있다. 베이스 레이어 디코딩부(114)는 베이스 레이어 비트스트림을 수신하여 인트라 매크로블록의 영상 신호와 인터 블록의 레지듀얼 및 움직임 정보를 복호한다. 이 때, 싱글 루프 디코딩(single loop decoding) 방식에 기초하여 복호할 수 있다.
인핸스드 레이어 디코딩부(116)는 인핸스드 레이어 비트스트림을 수신하고, 베이스 레이어 디코딩부(114)에서 복원된 신호를 참조하여 출력 영상신호 Xe(n)를 복호한다. 여기서, 출력 영상신호 Xb(n)은 출력 영상신호 Xe(n)에 비하여 화질이 낮거나 해상도가 낮은 영상신호가 될 것이다.
상기 인핸스드 레이어 디코딩부(116)는 제 1 헤더 정보 획득부, 제 2 헤더 정보 획득부, 디블록킹 필터부 및 업샘플링부를 포함할 수 있다. 제 1 헤더 정보 획득부에서는 NAL의 헤더로부터 비트스트림의 속성 정보를 획득할 수 있다. 예를 들어, 퀄러티 식별 정보, 레이어 간 예측이 이용되는지 여부를 나타내는 정보 등을 획득할 수 있다. 제 2 헤더 정보 획득부에서는 슬라이스 헤더로부터 비트스트림의 속성 정보를 획득할 수 있다. 예를 들어, 업샘플링 과정에 있어서 슬라이스 경계에 대한 취급을 나타내는 정보, 디블록킹 필터의 동작에 관련된 정보, 색차 신호의 위상 변화에 대한 정보, 픽쳐들 사이의 위치 차이를 나타내는 오프셋 정보 및 적응적인 예측 수행 여부를 나타내는 정보 등을 획득할 수 있다. 디블록킹 필터부에서는 디블록킹 필터의 동작에 관련된 정보를 이용하여 디블록킹 필터링을 수행할 수 있다. 업샘플링부에서는 레이어 간 예측을 위해 픽쳐들 사이의 위치 차이를 나타내는 오프셋 정보들을 이용하여 제 1 레이어를 업샘플링할 수 있다. 이렇게 업샘플된 제 1 레이어의 정보들을 이용하여 레이어 간 예측을 수행할 수 있다.
이처럼, 상기 인핸스드 레이어 인코딩부(106)와 상기 인핸스드 레이어 디코딩부(116)에서는 레이어 간 예측 방법을 이용하여 코딩을 수행하게 된다. 레이어 간 예측(interlayer prediction)이란, 베이스 레이어의 모션(motion) 정보 및/또는 텍스쳐(texture) 정보를 이용하여 인핸스드 레이어의 영상 신호를 예측하는 것을 의미할 수 있다. 여기서, 텍스쳐 정보란 이미지 데이터 혹은 매크로블록에 속한 픽셀 값을 의미할 수 있다. 베이스 레이어의 텍스쳐 정보를 이용하는 레이어 간 예측 방법에는, 예를 들어, 인트라 베이스 예측(intra base prediction) 모드와 레지듀얼 예측(residual prediction) 모드가 있다. 인트라 베이스 예측 모드란, 베이스 레이어의 대응되는 영역을 기초로 하여 인핸스드 레이어의 블록을 예측하는 모드를 의미할 수 있다. 이 때, 상기 베이스 레이어의 대응되는 영역은 인트라 모드(intra mode)로 코딩된 영역을 의미할 수 있다. 반면, 레지듀얼 예측 모드는 이미지 차이값인 레지듀얼 데이터를 갖도록 코딩된, 베이스 레이어의 대응 영역을 이용할 수 있다. 이 때, 상기 베이스 레이어의 대응 영역은 샘플링(sampling)을 통해 확대 또는 축소되어 사용될 수 있다. 샘플링(sampling)이란, 이미지 해상도(image resolution)를 변화시키는 것을 의미할 수 있다. 상기 샘플링은 리샘플링(resampling), 다운샘플링(downsampling), 업샘플링(upsampling) 등을 포함할 수 있다. 예를 들어, 레이어 간 예측을 수행하기 위해 인트라 샘플들을 리샘플링할 수 있다. 또는 다운샘플링 필터를 이용하여 픽셀 데이터를 재생성함으로써 이미지 해상도를 줄일 수 있는데, 이를 다운샘플링(downsampling)이라 할수 있다. 또는, 업샘플링 필터를 사용하여 몇 개의 추가적인 픽셀 데이터를 만들어 냄으로써 이미지 해상도를 크게 할 수 있는데, 이를 업샘플링(upsampling)이라 할 수 있다. 상기 리샘플링은 다운샘플링과 업샘플링의 개념을 포함할 수 있다. 본 명세서에서 샘플링이란 용어는 실시예의 기술적 사상 및 기술적 범위에 따라 적절하게 해석할 수 있을 것이다.
한편, 동일한 영상 콘텐츠에 대해서 서로 다른 용도 또는 목적으로 베이스 레이어와 인핸스드 레이어가 생성되어, 공간적 해상도, 프레임 레이트, 비트 레이트 등이 서로 다를 수 있다. 레이어 간 예측 방법에 따라 영상 신호를 코딩할 때 인핸스드 레이어와 베이스 레이어의 공간적 해상도의 비가 2의 정수가 아닌 경우(non-dyadic case)를 확장된 공간적 스케일러빌러티(ESS : Extended Spatial Scalability)라 할 수 있다. 예를 들어, 가로:세로 16:9 비율의 영상 신호에 대해서 레이어 간 예측 방법에 따라 인핸스드 레이어를 코딩 할 때, 4:3 비율의 화면으로 코딩된 베이스 레이어를 이용해야 하는 경우가 발생할 수 있다. 이 경우, 베이스 레이어는 원래 영상 신호의 일부가 잘린(cropping) 상태로 코딩되었기 때문에, 레이어 간 예측을 위해 확대되더라도 인핸스드 레이어의 일부 영역은 커버할 수 없게 된다. 따라서, 인핸스드 레이어의 일부 영역은 업샘플링되는 베이스 레이어에서 대응되는 영역이 없기 때문에 베이스 레이어를 이용하지 못할 수 있다. 즉, 상기 일부 영역에 대해서는 레이어 간 예측 방법이 적용될 수 없음을 의미한다. 이러한 경우, 레이어 간 예측에 이용되는 코딩 정보들을 전송하지 않을 수 있다. 이에 대한 구체적인 실시예들을 도 5 내지 도 11에서 상세하게 설명하도록 한다.
도 2 및 도 3은 본 발명이 적용되는 실시예로서, 스케일러블 비디오 코딩된 비트스트림에 추가될 수 있는 스케일러블 영상에 대한 속성 정보 및 이를 설명하기 위한 픽쳐들의 구조를 나타낸다.
상기 도 2에서는 스케일러블 영상에 대한 속성 정보들이 추가될 수 있는 NAL 단위의 구성의 일례를 나타낸다. 크게 NAL 단위는 NAL 단위의 헤더와 RBSP(Raw Byte Sequence Payload, 동영상 압축의 결과데이터)로 구성될 수 있다. 그리고, NAL 단위의 헤더에서는 NAL 단위가 참조 픽쳐의 슬라이스를 포함하고 있는지 여부를 나타내는 식별 정보(nal_ref_idc)와 NAL 단위의 타입을 나타내는 정보(nal_unit_type)를 포함할 수 있다. 또한, 제한적으로 상기 NAL 단위 헤더의 확장 영역도 포함할 수 있다. 예를 들어, 상기 NAL 유닛의 타입을 나타내는 정보가 스케일러블 비디오 코딩과 관련이 있는 경우 또는 prefix NAL 유닛을 나타내는 경우에, 상기 NAL 유닛은 상기 NAL 유닛 헤더의 확장 영역을 포함할 수 있다. 구체적 예로, 상기 nal_unit_type = 20 또는 14일때 상기 NAL 유닛은 상기 NAL 유닛 헤더의 확장 영역도 포함할 수 있다. 또한, 상기 NAL 유닛 헤더의 확장 영역 내에서는, SVC 비트스트림인지 여부를 식별할 수 있는 플래그 정보(svc_mvc_flag)에 따라 스케일러블 영상에 대한 속성 정보들을 추가할 수 있다.
또 다른 예로, 상기 NAL 유닛의 타입을 나타내는 정보가 서브셋 시퀀스 파라 미터 세트(subset sequence parameter set)를 나타내는 정보일 경우, 상기 RBSP는 서브셋 시퀀스 파라미터 세트에 대한 정보를 포함할 수 있다. 구체적 예로, nal_unit_type = 15 일 경우, 상기 RBSP는 서브셋 시퀀스 파라미터 세트에 대한 정보, 슬라이스 레이어에 대한 정보 등을 포함할 수 있다. 이 때, 프로파일 정보에 따라 상기 서브셋 시퀀스 파라미터 세트는 시퀀스 파라미터 세트의 확장 영역을 포함할 수 있다. 예를 들어, 프로파일 정보(profile_idc)가 스케일러블 비디오 코딩에 관련된 프로파일인 경우, 상기 서브셋 시퀀스 파라미터 세트는 시퀀스 파라미터 세트의 확장 영역을 포함할 수 있다. 또는 프로파일 정보에 따라 시퀀스 파라미터 세트가 시퀀스 파라미터 세트의 확장 영역을 포함할 수 있다. 상기 시퀀스 파라미터 세트의 확장 영역은 레이어 간 예측을 위한 디블록킹 필터의 특성을 제어하는 정보, 업샘플링 과정을 위한 파라미터 관련 정보 등을 포함할 수 있다. 이하 스케일러블 영상에 대한 다양한 속성 정보들, 예를 들어, NAL 유닛 헤더의 확장 영역, 시퀀스 파라미터 세트의 확장 영역, 또는 슬라이스 레이어에 포함될 수 있는 속성 정보들에 대해 구체적으로 살펴보도록 한다.
예를 들어, 상기 레이어 간 예측을 위한 디블록킹 필터의 특성을 제어하는 정보가 존재하는지 여부를 나타내는 플래그 정보(inter_layer_deblocking_filter_control_present_flag)를 상기 시퀀스 파라미터 세트의 확장 영역으로부터 획득할 수 있다. 상기 디블록킹 필터의 특성을 제어하는 정보는 도 8에서 상세히 설명하도록 한다. 또한, 상기 업샘플링 과정을 위한 파라미터 관련 정보의 위치를 나타내는 정보(extended_spatial_scalability)를 상기 시 퀀스 파라미터 세트의 확장 영역으로부터 획득할 수 있다. 구체적 예로, 상기 extended_spatial_scalability = 0 이면, 업샘플링 과정을 위한 어떠한 파라미터도 시퀀스 파라미터 세트나 슬라이스 헤더에 존재하지 않음을 의미할 수 있다. 그리고, 상기 extended_spatial_scalability = 1 이면, 상기 업샘플링 과정을 위한 파라미터가 시퀀스 파라미터 세트에 존재함을 의미할 수 있다. 상기 extended_spatial_scalability = 2 이면, 상기 업샘플링 과정을 위한 파라미터가 슬라이스 헤더에 존재함을 의미할 수 있다. 상기 업샘플링 과정을 위한 파라미터에 대해서는 도 9에서 상세히 설명하도록 한다.
먼저, 레이어 간 예측이 이용되는지 여부를 나타내는 정보(④)란, 코딩된 슬라이스를 디코딩함에 있어서 레이어 간 예측이 이용되는지 여부를 나타내는 플래그 정보를 의미할 수 있다. 상기 플래그 정보는 NAL 헤더의 확장 영역으로부터 획득될 수 있다. 예를 들어, 상기 플래그 정보가 1일 경우, 레이어 간 예측이 이용되지 않음을 의미할 수 있다. 그리고, 상기 플래그 정보가 0일 경우에는 매크로블록 레이어에서의 코딩 방식에 따라 레이어간 예측이 이용될 수도 있고, 이용되지 않을 수 있다. 이는 매크로블록 단위에서 레이어 간 예측이 이용될 수도 있고, 이용되지 않을 수도 있기 때문이다.
퀄러티 식별 정보(quality identification information)(③)란, NAL 단위에 대한 퀄러티를 식별해주는 정보를 의미한다. 상기 속성 정보를 설명함에 있어서 도 3을 이용하도록 한다. 예를 들어, 하나의 픽쳐를 서로 다른 퀄러티의 레이어로 코딩할 수 있다. 도 3에서 Spa_Layer0, Spa_Layer1에 있는 레이어들 모두가 각각 서 로 다른 퀄러티의 레이어로 코딩될 수 있다. 구체적 예로, 상기 NAL 단위에 대한 퀄러티를 식별해주는 정보를 quality_id 라고 할 때, B1,B2, ...,B10 레이어들은 quality_id = 0 이라 할 수 있고, Q1,Q2, ...,Q10 레이어들은 quality_id = 1 이라 할 수 있다. 즉, B1,B2, ...,B10 레이어들은 화질이 가장 낮은 레이어들을 의미할 수 있다. 이를 베이스 픽쳐(base picture)라고 한다. Q1,Q2, ...,Q10 레이어들은 각각 B1,B2, ...,B10 레이어들을 포함하면서 B1,B2, ...,B10 레이어들보다 화질이 좋은 레이어들에 해당한다. 이러한 퀄러티 식별 정보는 다양하게 정의될 수 있다. 예를 들어, 16단계로 표현될 수도 있다.
공간적 스케일러빌러티를 나타내는 식별 정보란, NAL 단위에 대한 의존 관계를 식별해주는 정보를 의미한다. 상기 속성 정보를 설명함에 있어서 도 3을 이용하도록 한다. 예를 들어, 공간적 해상도에 따라 의존 관계가 달라질 수 있다. 도 3에서 Spa_Layer0, Spa_Layer1 각각에 있는 레이어들은 각각 동일한 해상도를 가질 수 있다. Spa_Layer0에 있는 레이어들은 Spa_Layer1에 있는 레이어들을 다운 샘플링하여 얻어진 픽쳐들일 수 있다. 구체적 예로, 상기 NAL 단위에 대한 의존 관계를 식별해주는 정보를 dependency_id 라고 할 때, Spa_Layer0에 있는 레이어들의 dependency_id = 0 이라고 할 수 있고, Spa_Layer1에 있는 레이어들의 dependency_id = 1 이라고 할 수 있다. 이러한 의존 관계 식별 정보는 다양하게 정의될 수 있다. 이처럼, 의존 관계를 식별해주는 정보와 동일한 값을 가지고 있는 NAL 단위들을 디펜던시 레프리젠테이션(dependency representation)이라 표시할 수 있다.
상기에서 살펴본 퀄러티 식별 정보와 의존 관계를 식별해주는 정보에 따라 하나의 레이어가 정의될 수 있다. 이때, 퀄러티 식별 정보 및 의존 관계를 식별해주는 정보와 동일한 값들을 가지고 있는 NAL 단위들을 레이어 레프리젠테이션(layer representation)이라 표시할 수 있다.
또한, 시간적 스케일러빌러티(temporal scalability)를 나타내는 식별 정보란, NAL 단위에 대한 시간적 레벨(temporal level)을 식별해주는 정보를 의미한다. 상기 시간적 레벨은 계층적 B 픽쳐(hierarchical B picture)구조에서 설명될 수 있다. 예를 들어, 도 3의 Spa_Layer0에서 (B1,Q1) 레이어와 (B3,Q3) 레이어는 동일한 시간적 레벨(Tem_Layer0)을 가질 수있다.(B5,Q5) 레이어가 (B1,Q1) 레이어와 (B3,Q3) 레이어를 참조하는 경우, 상기 (B5,Q5) 레이어는 상기 (B1,Q1) 레이어와 (B3,Q3) 픽쳐의 시간적 레벨(Tem_Layer0)보다 높은 시간적 레벨(Tem_Layer1)을 가질 수 있다. 마찬가지로, (B7,Q7) 레이어가 (B1,Q1) 레이어와 (B5,Q5) 레이어를 참조하는 경우, 상기 (B7,Q7) 레이어는 상기 (B5,Q5) 레이어의 시간적 레벨(Tem_Layer2)보다 높은 시간적 레벨(Tem_Layer2)을 가질 수 있다. 하나의 액세스 유닛 내에 있는 모든 NAL 단위들은 동일한 시간적 레벨값을 가질 수 있다. 또한, IDR 액세스 유닛의 경우에는 상기 시간적 레벨 값이 0이 될 수 있다.
참조 베이스 픽쳐가 참조 픽쳐로서 이용되는지 여부를 나타내는 플래그 정보는 레이어 간 예측 과정에서 참조 베이스 픽쳐들이 참조 픽쳐로서 이용되는지, 아니면 디코딩된 픽쳐들이 참조 픽쳐로서 이용되는지 여부를 나타낸다. 상기 플래그 정보는 동일한 레이어 상에 있는, 즉 의존 관계를 식별해주는 정보가 동일한 NAL 단위들에 대해서는 동일한 값을 가질 수 있다.
우선순위 식별(priority identification) 정보란, NAL 유닛의 우선 순위를 식별해주는 정보를 의미한다. 이를 이용하여 레이어간 확장성 또는 픽쳐간 확장성을 제공할 수 있다. 예를 들어, 상기 우선순위 식별 정보를 이용하여 사용자에게 다양한 시간적 레벨 및 공간적 레벨의 영상을 제공할 수 있다. 따라서, 사용자는 원하는 시간 및 공간의 영상만을 볼 수도 있고, 다른 제한 조건에 따른 영상만을 볼 수 있게 된다. 상기 우선순위 정보는 그 기준 조건에 따라 다양한 방법으로 다르게 설정될 수 있다. 또한, 상기 우선 순위 정보는 특별한 기준에 의하지 않고 임의로 설정될 수도 있으며, 디코딩 장치에 의해서 결정될 수도 있다.
또한, NAL 유닛 헤더의 확장 영역에 포함될 수 있는 속성 정보로는 현재 액세스 유닛이 IDR 액세스 유닛인지를 나타내는 플래그 정보가 있을 수 있다.
또한, 슬라이스 레이어에서는 레이어 간 예측을 위한 다양한 정보들을 포함할 수 있다. 예를 들어, 업샘플링 과정에 있어서 슬라이스 경계에 대한 취급을 나타내는 정보(⑤), 디블록킹 필터의 동작에 관련된 정보(⑥), 색차 신호의 위상 변화에 대한 정보(⑦), 픽쳐들 사이의 위치 차이를 나타내는 오프셋 정보(⑧) 및 적응적인 예측 수행 여부를 나타내는 정보(⑨) 등을 포함할 수 있다. 상기 정보들은 슬라이스 헤더로부터 획득될 수 있다.
상기 디블록킹 필터의 동작에 관련된 정보(⑥)의 예로서는 디블록킹 필터의 동작 방법을 나타내는 정보(disable_deblocking_filter_idc), 디블록킹 필터링 수행시 필요한 오프셋 정보(inter_layer_slice_alpha_c0_offset_div2, inter_layer_slice_beta_offset_div2)등이 있을 수 있다.
그리고, 색차 신호의 위상 변화에 대한 정보(⑦)의 예로서, 레이어 간 예측에 이용되는 픽쳐의 색차 성분의 수평, 수직 위상 변화에 대한 정보(ref_layer_chroma_phase_x_plus1, ref_layer_chroma_phase_y_plus1)가 있을 수 있다. 또한, 픽쳐들 사이의 위치 차이를 나타내는 오프셋 정보(⑧)의 예로서, 레이어 간 예측에 이용되는 업샘플된 픽쳐와 현재 픽쳐 사이의 상,하,좌,우 위치 차이를 나타내는 오프셋 정보들(scaled_ref_layer_left_offset, scaled_ref_layer_top_offset, scaled_ref_layer_right_offset, scaled_ref_layer_bottom_offset)이 있을 수 있다.
또한, 상기 업샘플링 과정에 있어서 슬라이스 경계에 대한 취급을 나타내는 정보(⑤)의 예로서, 제 1 레이어에 있는 대응 블록이 제 2 레이어의 2개 이상의 슬라이스에 걸쳐 있는 경우, 제 2 레이어에 있는 현재 블록에 대하여 제 1 레이어에 있는 인트라 블록을 이용한 레이어간 예측 사용 제한 여부를 나타내는 정보(constrained_intra_resampling_flag)가 있을 수 있다.
또한, 적응적인 예측 수행 여부를 나타내는 정보(⑨)는 슬라이스 헤더와 매크로블록 레이어 내에 예측 관련 정보의 존재 여부를 나타낼 수 있다. 상기 적응적인 예측 수행 여부를 나타내는 정보에 따라 어떠한 적응적인 예측 방법이 이용될지가 결정될 수 있다. 이에 대해서는 도 8에서 상세히 설명하도록 한다.
도 4는 본 발명이 적용되는 실시예로서, 샘플된 베이스 레이어와 인핸스드 레이어와의 크로핑(cropping) 관계를 나타낸 것이다.
스케일러블 비디오 코딩에 있어서, 인핸스드 레이어의 현재 블록이 레이어 간 예측을 이용할 수 있는지를 확인할 수 있다. 예를 들어, 현재 블록 내의 모든 픽셀에 대응되는 영역이 베이스 레이어에 있는지를 확인할 수 있다. 상기 확인 결과, 상기 인핸스드 레이어의 현재 블록이 레이어간 예측에 이용되지 않는 경우에는 레이어간 예측에 이용되는 코딩 정보를 전송할 필요가 없게 되므로 코딩 효율을 높일 수 있다.
이처럼, 인핸스드 레이어의 현재 블록이 레이어 간 예측을 이용할 수 있는지를 확인할 수 있는 함수를 정의할 수 있다. 예를 들어, 현재 블록 내의 모든 픽셀에 대응되는 영역이 베이스 레이어에 있는지를 확인할 수 있는 함수로서, in_crop_window()를 정의할 수 있다. 인핸스드 레이어에서 수평 방향의 매크로블록 인덱스를 mbIdxX라 하고 수직 방향의 매크로블록 인덱스를 mbIdxY라 할 때, 다음의 조건들을 만족하면 상기 함수 in_crop_window()는 'TRUE'(또는'1') 값을 리턴할 수 있다.
mbIdxX ≥ (ScaledBaseLeftOffset + 15) / 16
mbIdxX ≤ (ScaledBaseLeftOffset + ScaledBaseWidth - 1) / 16
mbIdxY ≥ (ScaledBaseTopOffset + 15)/ 16
mbIdxY ≤ (ScaledBaseTopOffset + ScaledBaseHeight - 1)/ 16
상기 mbIdxX는 매크로블록 주소와 수평 방향의 매크로블록 개수를 이용하여 유도될 수 있다. 상기 mbIdxY는 매크로블록 적응형 프레임-필드(MacroBlock Adaptive Frame-Field)가 적용되는지 여부에 따라 유도되는 방식이 다를 수 있다. 예를 들어, 매크로블록 적응형 프레임-필드가 적용되는 경우에는 매크로블록 쌍을 고려하여 유도될 수 있다. 상기 매크로블록 쌍을 고려할 때, 상위 매크로블록(top macroblock)의 인덱스를 mbIdxY0라 하고, 하위 매크로블록(bottom macroblock)의 인덱스를 mbIdxY1이라 하자. 상기 mbIdxY0 는 레이어 간 예측에 이용되는 업샘플된 픽쳐와 현재 픽쳐 사이의 상측 위치 차이를 나타내는 오프셋 정보와 수평 방향의 매크로블록 개수 정보로부터 유도될 수 있다. 이 때, 상기 수평 방향의 매크로블록 개수 정보는 현재 픽쳐가 프레임 픽쳐인지 필드 픽쳐인지 여부에 따라 그 값이 달라질 수 있다. 그리고, 상기 mbIdxY1 은 레이어 간 예측에 이용되는 업샘플된 픽쳐와 현재 픽쳐 사이의 상측 위치 차이를 나타내는 오프셋 정보와 수직 방향의 매크로블록 개수 정보로부터 유도될 수 있다. 한편, 매크로블록 적응형 프레임-필드가 적용되지 않는 경우에는 상기 mbIdxY0와 mbIdxY1 은 동일한 값을 가질 수 있다.
또한, 상기 ScaledBaseLeftOffset 은 레이어 간 예측에 이용되는 업샘플된 픽쳐와 현재 픽쳐 사이의 좌측 위치 차이를 나타내는 오프셋 정보를 나타낸다. 상기 ScaledBaseTopOffset 은 레이어 간 예측에 이용되는 업샘플된 픽쳐와 현재 픽쳐 사이의 상측 위치 차이를 나타내는 오프셋 정보를 나타낸다. 상기 ScaledBaseWidth 는 업샘플된 픽쳐의 수평 방향 폭을 나타내며, 상기 ScaledBaseHeight 는 업샘플된 픽쳐의 수직 방향 높이를 나타낸다.
위의 조건을 하나라도 만족하지 않은 경우, 상기 함수 in_crop_window()는 'FALSE'(또는 '0') 값을 리턴할 수 있다.
현재 블록(CurrMbAddr) 내의 적어도 하나 이상의 픽셀에 대해서 대응되는 픽 셀이 업샘플된 베이스 레이어에 있지 않는 경우, 즉 in_crop_window(CurrMbAddr)가 'FALSE' 값을 리턴하는 경우, 레이어 간 예측과 관련된 일부 정보는 인핸스드 레이어에서 사용되지 않게 되고 이러한 정보는 전송하지 않을 수 있다. 따라서, 본 발명의 실시예에서는, 상기 in_crop_window(CurrMbAddr)를 통해 대응되는 베이스 레이어 영역이 없는 것으로 확인되면 해당 영상 블록에 대해서는 레이어 간 예측과 관련된 정보의 전송을 생략할 수 있다.
본 발명의 일실시예로서, 상기 함수 in_crop_window()를 이용하여 코딩하는 경우를 설명하도록 한다.
상기 인핸스드 레이어 인코딩부(106)는, in_crop_window(CurrMbAddr)를 통해 현재 블록에 대응되는 영역이 베이스 레이어에 존재하는 것으로 확인되는 경우, 베이스 레이어의 텍스쳐 및/또는 모션 정보를 이용하여 레이어 간 예측을 수행한다. 이 때, 상기 모션 정보에는 레퍼런스 인덱스(reference index) 정보, 모션 벡터(motion vector) 정보, 파티션(partition) 정보 등이 포함될 수 있다.
또한, 상기 인핸스드 레이어 인코딩부(106)는, 텍스처 및/또는 모션 정보에 대해서 베이스 레이어의 것을 그대로 사용하거나 또는 이로부터 유도하는 경우, 이를 가리키는 지시 정보를 인핸스드 레이어의 데이터 스트림에 추가하여 디코더(110)에 알릴 수 있다. 그러나, 상기 인핸스드 레이어 인코딩부(106)는, in_crop_window(CurrMbAddr)를 통해 현재 영상 블록에 대응되는 영역이 베이스 레이어에 존재하지 않는 것으로 확인되는 경우, 레이어 간 예측없이 인핸스드 레이어를 생성할 수 있다. 한편, 상기 디코더(110)에서 상기 in_crop_window(CurrMbAddr) 를 통해 현재 블록에 대응되는 영역이 베이스 레이어에 존재하지 않는 것으로 확인되면 상기 디코더(110)는 상기 지시 정보를 전송하지 않은 것으로 판단한다.
도 5 및 도 6은 본 발명이 적용되는 실시예들로서, 레이어 간 예측을 통한 매크로블록 예측 및 서브 매크로블록 예측과 관련된 신택스들을 나타낸 것이다.
레이어 간 예측을 수행하게 되는 경우, 현재 NAL의 슬라이스 데이터에 레이어 간 예측과 관련된 정보가 디코더로 전송된다. 예를 들어, 인핸스드 레이어 현재 블록의 모션 벡터 예측시, 베이스 레이어의 모션 벡터를 사용할지 여부를 나타내는 플래그(motion_prediction_flag_lx)를 매크로블록 레이어로부터 획득할 수 있다. 본 발명의 실시예에서, 상기 디코더에서는 in_crop_window(CurrMbAddr)를 확인함으로써 레이어 간 예측에 관련된 정보가 인코더에서 전송되었는지 여부를 알 수 있다(510,610). 예를 들어, 상기 in_crop_window(CurrMbAddr)에 따라 현재 영상 블록에 대응되는 영역이 베이스 레이어에 존재하지 않는 경우, 상기 motion_prediction_flag_10/11 플래그는 비트스트림으로 전송하지 않을 수 있다(520/530, 620/630).
또한, 모션 벡터 예측과 관련된 정보가 매크로블록 내에 존재하는지 여부를 나타내는 플래그(adaptive_motion_prediction_flag)가, 현재 NAL의 슬라이스 데이터로부터 획득될 수 있다. 본 발명의 실시예에서는 상기 adaptive_motion_prediction_flag와 상기 in_crop_window(CurrMbAddr)를 모두 확인함으로써 레이어 간 예측에 관련된 정보를 인코더에서 전송하지 않을 수 있다(510). 예를 들어, 상기 in_crop_window(CurrMbAddr)에 따라 현재 영상 블록에 대 응되는 영역이 베이스 레이어에 존재하지 않거나, 상기 adaptive_motion_prediction_flag에 따라 모션 벡터 예측과 관련된 정보가 매크로블록 내에 존재하지 않는 경우에는, 상기 motion_prediction_flag_10/11 플래그를 전송하지 않을 수 있다(520/530, 620/630)). 상기에서 설명한 기술적 사상은 도 6에 나타난 서브 매크로블록 예측에서도 동일하게 적용될 수 있다.
이처럼, 상기 2가지 정보를 모두 확인하여 2가지 조건을 모두 만족하는 경우에만 레이어 간 예측과 관련된 정보를 전송함으로써 코딩 효율을 높일 수 있다.
도 7은 본 발명이 적용되는 실시예로서, 레이어 간 예측을 통한 레지듀얼 예측과 관련된 신택스를 나타낸 것이다.
레이어 간 예측을 수행하게 되는 경우, 현재 NAL의 슬라이스 데이터에 레이어 간 예측과 관련된 정보가 디코더로 전송된다. 예를 들어, 현재 블록의 레지듀얼 신호를 예측하는 경우, 베이스 레이어의 레지듀얼 신호를 이용할지 여부를 나타내는 플래그(residual_prediction_flag)를 매크로블록 레이어로부터 획득할 수 있다(740). 이 때, 상기 베이스 레이어는 레이어 레프리젠테이션 정보를 이용하여 알 수 있다. 본 발명의 실시예에서는 상기 in_crop_window(CurrMbAddr)를 확인함으로써 레이어 간 예측에 관련된 정보를 인코더에서 전송하지 않을 수 있다.
예를 들어, 매크로블록 내에 레지듀얼 신호의 예측과 관련된 정보가 존재하는지 여부를 나타내는 정보(adaptive_residual_prediction_flag) 및 슬라이스 타입에 따라(710), 상기 residual_prediction_flag를 획득할 수 있다. 또한, 매크로블록의 타입(mb_type)이 베이스 레이어의 대응 영역으로부터 유도되는 경우인지를 확 인할 수 있다(720). 즉, base_mode_flag가 '1'인 경우를 의미할 수있다. 또는 매크로블록과 서브 매크로블록의 타입이 인트라 모드가 아닌 것으로 결정되고(MbPartPredType(mb_type, 0) != Intra_16x16(8x8 및 4x4)), 현재 매크로블록에 대응되는 영역이 베이스 레이어에 존재하는지 여부도 함께 확인할 수 있다(730). 확인 결과, 매크로블록의 타입이 인트라 모드가 아니고, 현재 매크로블록에 대응되는 영역이 베이스 레이어에 존재하는 경우에만, 상기 residual_prediction_flag를 획득할 수 있다. 따라서, 현재 매크로블록이 인트라 모드가 아닌 것으로 결정되더라도 베이스 레이어에 대응 영역이 없는 경우(in_crop_window(CurrMbAddr)가 '0'인 경우)에는, 레지듀얼 예측이 수행되지 않는다. 그리고, 인코더(102)에서는 상기 residual_prediction_flag를 포함시키지 않은 상태로 인핸스드 레이어를 생성하게 된다.
상기 residual_prediction_flag가 '1'인 경우 레지듀얼 신호는 베이스 레이어의 레지듀얼 신호로부터 예측되지만, '0'인 경우 레지듀얼 신호는 예측되지 않고 그대로 인코딩된다. 또한, 상기 residual_prediction_flag가 존재하지 않는 경우에는 다음과 같이 유도될 수 있다. 예를 들어, 아래와 같은 조건들을 모두 만족시키는 경우에만 상기 residual_prediction_flag가 미리 정해진 값(default_residual_prediction_flag)으로 유도될 수 있다. 첫째, base_mode_flag가 '1'이거나 또는 매크로블록이 인트라 모드를 가리키지 않아야 한다. 둘째, in_crop_window(CurrMbAddr)가 '1'이어야 한다. 셋째, 레이어 간 예측이 이용되는지 여부를 나타내는 플래그(no_inter_layer_pred_flag)가 0이어야 한다. 넷째, 슬 라이스 타입이 EI 슬라이스가 아니어야 한다. 그렇지 않으면 '0'으로 유도될 수 있다.
한편, 상기 인핸스드 레이어 디코딩부(116)는, in_crop_window(CurrMbAddr)를 통해 현재 영상 블록에 대응되는 영역이 베이스 레이어에 존재하지 않는 것으로 확인되는 경우, 매크로블록 또는 서브 매크로블록 내에 모션 예측 플래그(motion_prediction_flag) 정보가 존재하지 않는 것으로 판단하고, 레이어 간 예측 없이 인핸스드 레이어의 데이터 비트스트림만으로 영상 신호를 복원할 수 있다. 또한, 상기 인핸스드 레이어 디코딩부(116)는, 상기 레지듀얼 예측에 관한 신택스 엘리먼트가 인핸스드 레이어의 데이터 비트스트림에 포함되어 있지 않는 경우 레지듀얼 예측 플래그(residual_prediction_flag)를 유도할 수 있다. 이 때, in_crop_window(CurrMbAddr)를 통해 현재 영상 블록에 대응되는 영역이 베이스 레이어에 존재하는지 여부를 고려할 수 있다. 그리고, 상기 인핸스드 레이어 디코딩부(116)는, 상기 in_crop_window(CurrMbAddr)가 '0'인 경우, 현재 영상 블록에 대응되는 영역이 베이스 레이어에 존재하지 않는 것으로 확인할 수 있다. 이 경우, 상기 residual_prediction_flag를 '0'으로 유도하여 베이스 레이어의 레지듀얼 신호를 이용하는 레지듀얼 예측없이 인핸스드 레이어의 데이터만으로 영상 신호를 복원할 수 있다.
도 8은 본 발명이 적용되는 실시예로서, 레이어 간 예측 수행 여부에 따라 디블록킹 필터링을 수행하기 위한 신택스 구조를 나타낸다.
본 발명의 실시예에서는 상기 스케일러블 비디오 코딩된 비트스트림의 속성 정보를 확인함으로써 레이어 간 예측에 관련된 정보를 인코더에서 전송하지 않을 수 있다. 상기 스케일러블 비디오 코딩된 비트스트림의 속성 정보는 NAL 헤더의 확장 영역으로부터 획득될 수 있다. 예를 들어, 레이어 간 예측이 이용되는지 여부를 나타내는 정보(no_inter_layer_pred_flag)와 퀄러티 식별 정보(quality_id)에 따라(810), 디블록킹 필터의 동작에 관련된 정보를 획득할 수 있다. 디블록킹 필터의 동작에 관련된 정보의 예로서는 디블록킹 필터의 동작 방법을 나타내는 정보(disable_deblocking_filter_idc), 디블록킹 필터링 수행시 필요한 오프셋 정보(slice_alpha_c0_offset_div2, slice_beta_offset_div2) 등이 있을 수 있다.
먼저 상기 디블록킹 필터의 동작 방법을 나타내는 정보는 디블록킹 필터의 특성을 제어하는 정보에 기초하여 획득될 수 있다. 상기 디블록킹 필터의 특성을 제어하는 정보는 상기 도 2에서 살펴본 바와 같이 시퀀스 파라미터 세트의 확장 영역으로부터 획득될 수 있다. 예를 들어, 상기 디블록킹 필터의 특성을 제어하는 정보로서, 레이어 간 예측을 위한 디블록킹 필터의 특성을 제어하는 정보가 존재하는지 여부를 나타내는 플래그 정보(inter_layer_deblocking_filter_control_present_flag)가 있을 수 있다(820). 상기 플래그 정보에 따라 상기 디블록킹 필터의 동작 방법을 나타내는 정보를 획득할 수 있게 된다(830).
구체적 예로, disable_deblocking_filter_idc = 0 일 경우, 현재 픽쳐의 모든 휘도 신호와 색차 신호의 블록 엣지에 대해서 필터링이 수행될 수 있다. disable_deblocking_filter_idc = 1 일 경우에는 현재 픽쳐의 모든 블록 엣지에 대 해서 필터링을 수행하지 않을 수 있다. 또한, 2일 경우에는 슬라이스 경계가 겹치는 블록 엣지를 제외한 모든 블록 엣지에 대해서 필터링이 수행될 수 있다. 3일 경우에는 먼저 슬라이스 경계가 겹치지 않는 블록 엣지에 대해서 필터링을 수행한 후, 그 다음에 슬라이스 경계가 겹치는 블록 엣지에 대해서 필터링을 수행할 수 있다. 4일 경우에는 휘도 신호의 블록 엣지에 대해서만 필터링을 수행하고, 색차 신호의 블록 엣지에 대해서는 필터링을 수행하지 않을 수 있다. 5일 경우에는 슬라이스 경계가 겹치는 블록 엣지를 제외한 모든 휘도 신호의 블록 엣지에 대해서 필터링을 수행하고, 색차 신호의 블록 엣지에 대해서는 필터링을 수행하지 않을 수 있다. 6일 경우에는 색차 신호의 블록 엣지에 대해서는 필터링을 수행하지 않고 휘도 신호의 블록 엣지에 대해서만 필터링을 수행할 수 있다. 먼저 슬라이스 경계가 겹치지 않는 휘도 신호의 블록 엣지에 대해서 필터링을 수행한 후, 그 다음에 슬라이스 경계가 겹치는 휘도 신호의 블록 엣지에 대해서 필터링을 수행할 수 있다.
상기 디블록킹 필터의 동작 방법을 나타내는 정보에 기초하여 디블록킹 필터링 수행시 필요한 오프셋 정보를 획득할 수 있다. 예를 들어, 상기 disable_deblocking_filter_idc 값이 1일 경우에는 모든 블록 엣지에 대해서 디블록킹 필터링을 수행하지 않으므로, 상기 disable_deblocking_filter_idc 값이 1이 아니어야 상기 디블록킹 필터링 수행시 필요한 오프셋 정보를 획득할 수 있다(840). 예를 들어, inter_layer_slice_alpha_c0_offset_div2와 inter_layer_slice_beta_offset_div2 는 레이어 간 예측시 매크로블록 내에서 디블록킹 필터 테이블을 액세스할 때 이용되는 오프셋 정보를 의미할 수 있다(850). 따 라서, 상기 획득된 오프셋 정보를 이용하여 디블록킹 필터링을 수행할 수 있게 된다.
도 9는 본 발명이 적용되는 실시예로서, 레이어 간 예측 수행 여부에 따라, 업샘플된 픽쳐와 현재 픽쳐 사이의 위치 차이를 나타내는 오프셋 정보를 획득하기 위한 신택스 구조를 나타낸다.
본 발명의 실시예에서는 상기 스케일러블 비디오 코딩된 비트스트림의 속성 정보를 확인함으로써 레이어 간 예측에 관련된 정보를 인코더에서 전송하지 않을 수 있다. 상기 스케일러블 비디오 코딩된 비트스트림의 속성 정보는 NAL 헤더의 확장 영역으로부터 획득될 수 있다. 예를 들어, 레이어 간 예측이 이용되는지 여부를 나타내는 정보(no_inter_layer_pred_flag)와 퀄러티 식별 정보(quality_id)에 따라(910), 업샘플링 과정을 위한 파라미터 관련 정보를 획득할 수 있다. 상기 업샘플링 과정을 위한 파라미터 관련 정보의 예로서는 색차 신호의 위상 변화에 대한 정보(930), 픽쳐들 사이의 위치 차이를 나타내는 오프셋 정보(940) 등이 있을 수 있다. 상기 파라미터 관련 정보들은 시퀀스 파라미터 세트의 확장 영역 및 슬라이스 헤더로부터 획득될 수 있다.
상기 색차 신호의 위상 변화에 대한 정보(930)의 예로서, 레이어 간 예측에 이용되는 픽쳐의 색차 성분의 수평 위상 변화에 대한 정보(ref_layer_chroma_phase_x_plus1)와 수직 위상 변화에 대한 정보(ref_layer_chroma_phase_y_plus1)가 있을 수 있다. 또한, 상기 픽쳐들 사이의 위치 차이를 나타내는 오프셋 정보(940)의 예로서, 레이어 간 예측에 이용되는 업샘 플된 픽쳐와 현재 픽쳐 사이의 상,하,좌,우 위치 차이를 나타내는 오프셋 정보들(scaled_ref_layer_left_offset, scaled_ref_layer_top_offset, scaled_ref_layer_right_offset, scaled_ref_layer_bottom_offset)이 있을 수 있다.
상기 파라미터 관련 정보들은 상기 파라미터 관련 정보들의 위치를 나타내는 정보(extended_spatial_scalability)에 기초하여 획득될 수 있다. 예를 들어, 상기 extended_spatial_scalability 가 0 이면, 업샘플링 과정을 위한 상기 파라미터 정보들은 시퀀스 파라미터 세트와 슬라이스 헤더 어디에도 존재하지 않음을 의미할 수 있다. 상기 extended_spatial_scalability 가 1 이면, 상기 파라미터 정보들은 시퀀스 파라미터 세트에는 존재하나, 슬라이스 헤더에는 존재하지 않음을 의미할 수 있다. 또한, 상기 extended_spatial_scalability 가 2 이면, 상기 파라미터 정보들은 슬라이스 헤더에는 존재하나, 시퀀스 파라미터 세트에는 존재하지 않음을 의미할 수 있다. 따라서, 상기 extended_spatial_scalability 가 2인 경우에 슬라이스 헤더 내에서 상기 파라미터 정보들을 제어할 수 있다(920). 또한, 상기 extended_spatial_scalability 가 1인 경우에는 시퀀스 파라미터 세트 내에서 상기 파라미터 정보들을 제어할 수 있게 된다.
상기 색차 신호의 위상 변화에 대한 정보(930)와 상기 픽쳐들 사이의 위치 차이를 나타내는 오프셋 정보(940)는 업샘플링 과정에서 이용될 수 있다.
도 10은 본 발명이 적용되는 실시예로서, 레이어 간 예측 수행 여부에 따라, 참조 레이어에 있는 인트라 블록의 사용 제한 여부를 나타내는 플래그 정보를 획득 하기 위한 신택스 구조를 나타낸다.
본 발명의 실시예에서는 상기 스케일러블 비디오 코딩된 비트스트림의 속성 정보를 확인함으로써 레이어 간 예측에 관련된 정보를 인코더에서 전송하지 않을 수 있다. 상기 스케일러블 비디오 코딩된 비트스트림의 속성 정보는 NAL 헤더의 확장 영역으로부터 획득될 수 있다. 예를 들어, 레이어 간 예측이 이용되는지 여부를 나타내는 정보(no_inter_layer_pred_flag)와 퀄러티 식별 정보(quality_id)에 따라(1010), 업샘플링 과정에 있어서 슬라이스 경계에 대한 취급을 나타내는 정보를 획득할 수 있다. 상기 슬라이스 경계에 대한 취급을 나타내는 정보의 예로서는, 제 2 레이어에 있는 현재 블록에 대하여 제 1 레이어에 있는 인트라 블록의 사용 제한 여부를 나타내는 정보(constrained_intra_resampling_flag)가 있을 수 있다(1020). 상기 인트라 블록의 사용 제한 여부를 나타내는 정보를 정의함으로써, 패러렐 프로세싱(parallel processing)을 수행할 때 디코딩 속도를 향상시킬 수 있다. 이러한 상기 인트라 블록의 사용 제한 여부를 나타내는 정보는 슬라이스 헤더로부터 획득될 수 있다.
상기 인트라 블록의 사용 제한 여부를 나타내는 정보는 슬라이스 헤더로부터 획득될 수 있기 때문에, 그 값이 1 이라 하더라도 각 매크로블록마다 대응되는 제 1 레이어의 영역이, 상기 제 1 레이어의 특정 슬라이스 내에 포함되는지를 확인할 필요가 있다. 따라서, 상기 constrained_intra_resampling_flag 가 1일 때, 현재 블록에 대응되는 제 1 레이어의 영역이, 상기 제 1 레이어의 특정 슬라이스 내에 포함되는지를 확인할 수 있다. 예를 들어, 제 1 레이어에 있는 대응 블록이 2 이상 의 슬라이스에 걸쳐 있는 경우, 현재 블록은 상기 제 1 레이어에 있는 인트라 블록을 이용할 수 없음으로 마킹될 수 있다. 즉, 상기 현재 블록은 인트라 베이스 예측 모드를 이용하여 코딩될 수 없다. 여기서, 인트라 베이스 예측 모드란, 베이스 레이어의 대응되는 영역을 기초로 하여 인핸스드 레이어의 블록을 예측하는 모드를 의미할 수 있다. 이 때, 상기 베이스 레이어의 대응되는 영역은 인트라 모드로 코딩된 영역을 의미할 수 있다. 또는 상기 대응되는 제 1 레이어의 영역이 상기 제 1 레이어의 특정 슬라이스 내에 포함되는 경우에는 상기 제 1 레이어에 있는 인트라 블록을 사용하여 상기 현재 블록을 디코딩할 수 있다. 이 때, 현재 블록은 인트라 베이스 예측 모드를 이용할 수 있음으로 마킹될 수 있다.
또한, 상기 constrained_intra_resampling_flag가 1일 때, 상기 도 8에서 설명한 디블록킹 필터의 동작 방법을 나타내는 정보(disable_deblocking_filter_idc)가 제한될 수 있다. 예를 들어, 상기 disable_deblocking_filter_idc 값은 1,2 또는 4의 값만 가질 수 있다.
반면, 상기 constrained_intra_resampling_flag 가 0일 때는 제 1 레이어에 있는 대응 블록이 2 이상의 슬라이스에 걸쳐 있더라도, 제 2 레이어에 있는 현재 블록은 상기 제 1 레이어에 있는 인트라 블록을 사용하여 디코딩될 수 있다.
상기에서 설명한 실시예들은 휘도 신호뿐만 아니라 색차 신호에도 동일한 방식으로 적용될 수 있다.
도 11은 본 발명이 적용되는 실시예로서, 레이어 간 예측 수행 여부에 따라, 적응적인 예측 정보를 획득하기 위한 신택스 구조를 나타낸다.
본 발명의 실시예에서는 상기 스케일러블 비디오 코딩된 비트스트림의 속성 정보를 확인함으로써 레이어 간 예측에 관련된 정보를 인코더에서 전송하지 않을 수 있다. 상기 스케일러블 비디오 코딩된 비트스트림의 속성 정보는 NAL 헤더의 확장 영역으로부터 획득될 수 있다. 예를 들어, 레이어 간 예측이 이용되는지 여부를 나타내는 정보(no_inter_layer_pred_flag)에 기초하여 적응적인 예측 정보를 획득할 수 있다(1110). 상기 적응적인 예측 정보는 예측과 관련된 신택스가 대응되는 위치에 존재하는지 여부를 나타낼 수 있다. 예를 들어, 슬라이스 헤더와 매크로블록 레이어에 예측과 관련된 신택스가 존재하는지를 나타내는 정보(adaptive_prediction_flag), 모션 예측과 관련된 신택스가 매크로블록 레이어에 존재하는지를 나타내는 정보(adaptive_motion_prediction_flag), 레지듀얼 예측과 관련된 신택스가 매크로블록 레이어에 존재하는지를 나타내는 정보(adaptive_residual_prediction_flag) 등이 있을 수 있다.
상기 레이어 간 예측이 이용되는지 여부를 나타내는 정보에 따라 레이어 간 예측이 수행되는 경우, 먼저 슬라이스 데이터의 존재 여부를 나타내는 정보(slice_skip_flag)를 획득할 수 있다(1120). 상기 슬라이스 데이터의 존재 여부를 나타내는 정보를 확인함으로써 레이어 간 예측을 수행하기 위해 매크로블록 내의 정보들을 유도할지 여부가 결정될 수 있다. 상기 슬라이스 데이터의 존재 여부를 나타내는 정보에 따라 슬라이스 내에 슬라이스 데이터가 존재하는 경우(1130), 적응적인 예측 플래그(adaptive_prediction_flag)를 획득할 수 있다(1140). 그리고, 매크로블록 레이어에 레지듀얼 예측와 관련된 신택스가 존재하는지를 나타내는 정 보(adaptive_residual_prediction_flag)도 획득할 수 있다(1180). 상기 적응적인 예측 플래그에 따라, 베이스 레이어의 대응 블록으로부터 모션 정보 등을 그대로 가져올 지 여부를 나타내는 정보를 어떻게 유도할 지를 나타내는 정보(default_base_mode_flag)를 획득할 수 있다(1150). 그에 따라 베이스 레이어의 대응 블록으로부터 모션 정보 등을 그대로 가져오지 않는 경우(1155), 모션 예측과 관련된 신택스가 매크로블록 레이어에 존재하는지를 나타내는 정보(adaptive_motion_prediction_flag)를 획득할 수 있다(1160). 또한, 모션 예측과 관련된 신택스가 매크로블록 레이어에 존재하지 않는 경우(1165), 모션 예측 플래그 정보를 어떻게 추론할 지를 나타내는 정보(default_motion_prediction_flag)를 획득할 수 있다(1170).
상기 모션 예측과 관련된 신택스가 매크로블록 레이어에 존재하는지를 나타내는 정보(adaptive_motion_prediction_flag)와 매크로블록 레이어에 레지듀얼 예측와 관련된 신택스가 존재하는지를 나타내는 정보(adaptive_residual_prediction_flag)는 매크로블록 레이어 내에서 이용될 수 있다. 예를 들어, 상기 adaptive_motion_prediction_flag에 기초하여 베이스 레이어의 모션 벡터를 사용할지 여부를 나타내는 플래그(motion_prediction_flag_lx)를 획득할 수 있다. 또한, 상기 adaptive_residual_prediction_flag에 기초하여 베이스 레이어의 레지듀얼 신호를 이용할지 여부를 나타내는 플래그(residual_prediction_flag)를 획득할 수 있다.
이상에서 설명한 바와 같이, 본 발명이 적용되는 디코딩/인코딩 장치는 DMB(Digital Multimedia Broadcasting)과 같은 멀티미디어 방송 송/수신 장치에 구비되어, 비디오 신호 및 데이터 신호 등을 복호화하는데 사용될 수 있다. 또한 상기 멀티미디어 방송 송/수신 장치는 이동통신 단말기를 포함할 수 있다.
또한, 본 발명이 적용되는 디코딩/인코딩 방법은 컴퓨터에서 실행되기 위한 프로그램으로 제작되어 컴퓨터가 읽을 수 있는 기록 매체에 저장될 수 있으며, 본 발명에 따른 데이터 구조를 가지는 멀티미디어 데이터도 컴퓨터가 읽을 수 있는 기록 매체에 저장될 수 있다. 상기 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 저장 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 상기 인코딩 방법에 의해 생성된 비트스트림은 컴퓨터가 읽을 수 있는 기록 매체에 저장되거나, 유/무선 통신망을 이용해 전송될 수 있다.