비디오 신호 데이터를 압축 부호화하는 기술은 공간적 중복성, 시간적 중복성, 스케일러블한 중복성, 시점간 존재하는 중복성을 고려하고 있다. 또한, 이러한 압축 부호화 과정에서 시점 간 존재하는 상호 중복성을 고려하여 압축 코딩을 할 수 있다. 시점간 중복성을 고려하는 압축 코딩에 대한 기술은 본 발명의 실시예일 뿐이며, 본 발명의 기술적 사상은 시간적 중복성, 스케일러블한 중복성 등에도 적용될 수 있다.
비디오 신호의 비트열 구성을 살펴보면, 동영상 부호화 처리 그 자체를 다루는 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, 보충적 부가정보) 등이 있다.
또한, 규격에서는 대상 제품을 적당한 비용으로 구현 가능하도록 여러 가지 프로파일 및 레벨로 제약하고 있는데, 복호기는 해당 프로파일과 레벨에서 정해진 제약을 만족시켜야 한다. 이처럼 복호기가 어떤 압축 영상의 범위까지 대응할 수 있는지 그 기능 또는 파라미터를 나타내기 위해 프로파일과 레벨이라는 두 가지의 개념이 정의되었다. 비트스트림이 어떤 프로파일에 기초하는 것인가는 프로파일 식별자(profile_idc)로 식별할 수 있다. 프로파일 식별자란, 비트스트림이 기반을 둔 프로파일을 나타내는 플래그를 의미한다. 예를 들어, H.264/AVC 에서는 프로파일 식별자가 66 이면 베이스라인 프로파일에 기초함을 의미하고, 77 이면 메인 프로파일에 기초함을 의미하며, 88 이면 확장 프로파일에 기초함을 의미한다. 상기 프로파일 식별자는 시퀀스 파라미터 세트에 포함될 수 있다.
따라서, 다시점(multiview) 영상을 다루기 위해서는 입력되는 비트스트림이 다시점 프로파일(Multiview Profile)에 대한 것인지 여부를 식별하고, 다시점 프로파일로 식별되면 다시점에 대한 하나 이상의 추가 정보를 전송할 수 있도록 신택스를 추가할 필요가 있다. 여기서 다시점 프로파일이란, H.264/AVC의 추가 기술로서 다시점 비디오(multiview video)를 다루는 프로파일 모드(profile mode)를 나타낸다. MVC는 기존 AVC 기술에 대한 추가 기술이므로 무조건적인 신택스보다는 MVC 모드인 경우에 대한 추가 정보로서 신택스를 추가하는 것이 더 효율적일 수 있다. 예 를 들어, AVC의 프로파일 식별자가 다시점 프로파일을 나타낼 때 다시점 영상에 대한 정보를 추가하면 부호화 효율을 높일 수 있다.
시퀀스 파라미터 세트란, 프로파일, 레벨 등 시퀀스 전체의 부호화에 걸쳐있는 정보가 포함되어 있는 헤더 정보를 말한다. 압축된 동영상 전체, 즉 시퀀스는 반드시 시퀀스 헤더로부터 시작하여야 하므로 헤더 정보에 상당하는 시퀀스 파라미터 세트는 그 파라미터 세트를 참조하는 데이터보다 먼저 복호기에 도착하여야 한다. 결국, 시퀀스 파라미터 세트 RBSP 는 동영상 압축의 결과 데이터에 대한 헤더 정보로써의 역할을 한다. 비트스트림이 입력되면, 먼저 프로파일 식별자는 입력된 비트스트림이 복수개의 프로파일 중에서 어떤 프로파일에 기초하는 것인지를 식별하게 된다. 따라서, 입력되는 비트스트림이 다시점 프로파일에 대한 것인지 여부를 판단하는(예를 들어, " If ( profile_idc == MULTI_VIEW_PROFILE )") 부분을 신택스 상에 추가함으로써, 입력된 비트스트림이 다시점 프로파일에 대한 것인지 여부를 판별하고, 다시점 프로파일에 대한 것으로 인정되는 경우에만 여러 가지 속성 정보들을 추가할 수 있게 된다. 예를 들어, 전체 시점의 개수, 인터 뷰 픽쳐 그룹인 경우의 시점간 참조 픽쳐의 개수(List0/1), 넌-인터 뷰 픽쳐 그룹인 경우의 시점간 참조 픽쳐의 개수(List0/1) 등을 추가할 수 있다. 또한, 복호 픽쳐 버퍼에서는 참조 픽쳐 리스트를 생성 및 관리하기 위하여 시점에 대한 정보들을 이용할 수 있다.
도 1은 본 발명이 적용되는 비디오 신호 디코딩 장치의 개략적인 블록도를 나타낸다.
상기 디코딩 장치는 크게 파싱부(100), 엔트로피 디코딩부(200), 역양자화/역변환부(300), 인트라 예측부(400), 디블록킹 필터부(500), 복호 픽쳐 버퍼부(600), 인터 예측부(700) 등을 포함한다. 그리고, 복호 픽쳐 버퍼부(600)는 크게 참조 픽쳐 저장부(610), 참조 픽쳐 리스트 생성부(620), 참조 픽쳐 관리부(640) 등을 포함하며, 상기 참조 픽쳐 리스트 생성부(620)는 변수 유도부(625), 참조 픽쳐 리스트 초기화부(630), 참조 픽쳐 리스트 재배열부(640)을 포함한다. 그리고, 인터 예측부(700)는 움직임 보상부(710), 휘도 보상부(720), 휘도 차분 예측부(730), 시점 합성 예측부(740) 등을 포함한다.
파싱부(100)에서는 수신된 비디오 영상을 복호하기 위하여 NAL 단위로 파싱을 수행한다. 일반적으로 하나 또는 그 이상의 시퀀스 파라미터 셋과 픽쳐 파라미터 셋이 슬라이스 헤더와 슬라이스 데이터가 디코딩되기 전에 디코더로 전송된다. 이 때 NAL 헤더 영역 또는 NAL 헤더의 확장 영역에는 여러 가지 속성 정보가 포함될 수 있다. MVC는 기존 AVC 기술에 대한 추가 기술이므로 무조건적으로 추가하기보다는 MVC 비트스트림인 경우에 한해 여러 가지 속성 정보들을 추가하는 것이 더 효율적일 수 있다. 예를 들어, 상기 NAL 헤더 영역 또는 NAL 헤더의 확장 영역에서 MVC 비트스트림인지 여부를 식별할 수 있는 플래그 정보를 추가할 수 있다. 상기 플래그 정보에 따라 입력된 비트스트림이 다시점 영상 코딩된 비트스트림일 경우에 한해 다시점 영상에 대한 속성 정보들을 추가할 수 있다. 예를 들어, 상기 속성 정보들은 시간적 레벨(temporal level) 정보, 시점 레벨(view level) 정보, 인터 뷰 픽쳐 그룹 식별 정보, 시점 식별(view identification) 정보 등을 포함할 수 있다. 이는 도 2에서 상세히 설명하도록 한다.
도 2는 본 발명이 적용되는 실시예로서, 다시점 영상 코딩된 비트스트림에 추가될 수 있는 다시점 영상에 대한 속성 정보들을 나타낸다. 이하 다시점 영상에 대한 속성 정보들에 대해 구체적으로 살펴보도록 한다.
먼저 시간적 레벨 정보란, 비디오 신호로부터 시간적 확장성을 제공하기 위한 계층적인 구조에 대한 정보를 말한다(①). 이러한 시간적 레벨 정보를 통해 사용자에게 다양한 시간대의 영상을 제공할 수 있게 된다.
시점 레벨 정보란, 비디오 신호로부터 시점 확장성을 제공하기 위한 계층적인 구조에 대한 정보를 말한다(②). 다시점 비디오 영상에서는 사용자에게 다양한 시간 및 시점의 영상을 제공하도록 하기 위해 시간 및 시점에 대한 레벨을 정의해 줄 필요가 있다. 이처럼 레벨 정보를 정의할 경우, 시간 및 시점에 대한 확장성(scalability)을 이용할 수 있게 된다. 따라서, 사용자는 원하는 시간 및 시점의 영상만을 볼 수도 있고, 다른 제한 조건에 따른 영상만을 볼 수 있게 된다. 상기 레벨 정보는 그 기준 조건에 따라 다양한 방법으로 다르게 설정될 수 있다. 예를 들어, 카메라의 위치에 따라 다르게 설정될 수 있고, 카메라의 배열 형태에 따라 다르게 설정될 수 있다. 또한, 상기 레벨 정보는 시점간 참조 정보를 고려하여 결정될 수도 있는데, 예를 들어, 인터 뷰 픽쳐 그룹이 I픽쳐인 시점에는 레벨을 0으로 할당하고, 인터 뷰 픽쳐 그룹이 P픽쳐인 시점에는 레벨을 1로 할당하고, 인터 뷰 픽쳐 그룹이 B픽쳐인 시점에는 레벨을 2로 할당할 수 있다. 또한, 상기 레벨 정보는 특별한 기준에 의하지 않고 임의로 설정될 수도 있다. 상기 시점 레벨 정보에 대해서는 도 4,5에서 상세히 설명하도록 한다.
인터 뷰 픽쳐 그룹 식별 정보란, 현재 NAL 유닛의 코딩된 픽쳐가 인터 뷰 픽쳐 그룹인지 여부를 식별하는 정보를 말한다(③). 그리고, 인터 뷰 픽쳐 그룹이라 함은, 모든 슬라이스들이 동일 시간대의 프레임에 있는 슬라이스만을 참조하는 부호화된 픽쳐를 의미한다. 예를 들어, 다른 시점에 있는 슬라이스만을 참조하고 현재 시점에 있는 슬라이스는 참조하지 않는 부호화된 픽쳐를 말한다. 다시점 영상의 복호화 과정에 있어서, 시점 간의 랜덤 액세스는 가능할 수 있다. 또한, 시점간 예측을 위해서는 시점간 참조 정보가 필요한데, 상기 시점간 참조 정보를 알기 위해 인터 뷰 픽쳐 그룹 식별 정보가 이용될 수 있다. 또한, 참조 픽쳐 리스트를 생성할 때 시점간 예측을 위한 참조 픽쳐들을 추가하는데 상기 인터 뷰 픽쳐 그룹 식별 정보가 이용될 수도 있다. 그리고, 추가된 상기 시점간 예측을 위한 참조 픽쳐들을 관리하기 위해서도 이용될 수 있다. 예를 들어, 상기 참조 픽쳐들을 인터 뷰 픽쳐 그룹과 넌-인터 뷰 픽쳐 그룹으로 나누고, 시점간 예측을 수행할 때 이용되지 않는 참조 픽쳐들은 사용하지 않겠다는 마킹을 할 수 있다. 또한, 상기 인터 뷰 픽쳐 그룹 식별 정보는 가상 참조 디코더(hypothetical reference decoder)에서도 적용될 수 있다. 상기 인터 뷰 픽쳐 그룹 식별 정보에 대해서는 도 6에서 상세히 설명하도록 한다.
또한 시점 식별 정보란, 현재 시점에 있는 픽쳐와 다른 시점에 있는 픽쳐를 구별하기 위한 정보를 말한다(④). 비디오 영상 신호가 코딩될 때, 각각의 픽쳐를 식별하기 위하여 POC(Picture Order Count)와 frame_num 이 이용된다. 다시점 비디 오 영상인 경우에는 시점간 예측이 수행되기 때문에 현재 시점에 있는 픽쳐와 다른 시점에 있는 픽쳐를 구별하기 위한 식별 정보가 필요하다. 따라서, 픽쳐의 시점을 식별하는 시점 식별 정보를 정의할 필요가 있다. 상기 시점 식별 정보는 비디오 신호의 헤더 영역으로부터 획득될 수 있다. 예를 들어, 상기 헤더 영역은 NAL 헤더 영역 또는 NAL 헤더의 확장 영역일 수도 있고, 슬라이스 헤더 영역일 수도 있다. 상기 시점 식별 정보를 이용하여 현재 픽쳐와 다른 시점에 있는 픽쳐의 정보를 획득하고, 상기 다른 시점에 있는 픽쳐의 정보를 이용하여 상기 비디오 신호를 디코딩할 수 있다. 이러한 상기 시점 식별 정보는 비디오 신호의 인코딩/디코딩 과정 전반에 걸쳐 적용될 수 있다. 또한, 특정한 시점 식별자가 아닌, 시점이 고려된 frame_num을 이용하여 다시점 비디오 코딩에 그대로 적용할 수도 있다.
파싱된 비트스트림은 엔트로피 디코딩부(200)를 통하여 엔트로피 디코딩되고, 각 매크로브록의 계수, 움직임 벡터 등이 추출된다. 역양자화/역변환부(300)에서는 수신된 양자화된 값에 일정한 상수를 곱하여 변환된 계수값을 획득하고, 상기 계수값을 역변환하여 화소값을 복원하게 된다. 상기 복원된 화소값을 이용하여 인트라 예측부(400)에서는 현재 픽쳐 내의 디코딩된 샘플로부터 화면내 예측을 수행하게 된다. 한편, 디블록킹 필터부(500)에서는 블록 왜곡 현상을 감소시키기 위해 각각의 코딩된 매크로블록에 적용된다. 필터는 블록의 가장자리를 부드럽게 하여 디코딩된 프레임의 화질을 향상시킨다. 필터링 과정의 선택은 경계 세기(boundary strenth)와 경계 주위의 이미지 샘플의 변화(gradient)에 의해 좌우된다. 필터링을 거친 픽쳐들은 출력되거나 참조 픽쳐로 이용하기 위해 복호 픽쳐 버퍼부(600)에 저 장된다.
복호 픽쳐 버퍼부(Decoded Picture Buffer unit)(600)에서는 화면간 예측을 수행하기 위해서 이전에 코딩된 픽쳐들을 저장하거나 개방하는 역할 등을 수행한다. 이 때 복호 픽쳐 버퍼부(600)에 저장하거나 개방하기 위해서 각 픽쳐의 frame_num 과 POC(Picture Order Count)를 이용하게 된다. 따라서, MVC에 있어서 상기 이전에 코딩된 픽쳐들 중에는 현재 픽쳐와 다른 시점에 있는 픽쳐들도 있으므로, 이러한 픽쳐들을 참조 픽쳐로서 활용하기 위해서는 상기 frame_num 과 POC 뿐만 아니라 픽쳐의 시점을 식별하는 시점 정보도 함께 이용할 수 있다. 상기 복호 픽쳐 버퍼부(600)는 참조 픽쳐 저장부(610)와 참조 픽쳐 리스트 생성부(620)와 참조 픽쳐 관리부(640)를 포함한다. 참조 픽쳐 저장부(610)는 현재 픽쳐의 코딩을 위해 참조가 되는 픽쳐들을 저장한다. 참조 픽쳐 리스트 생성부(620)는 화면간 예측을 위한 참조 픽쳐들의 리스트를 생성하게 된다. 다시점 비디오 코딩에 있어서는 시점간 예측이 이루어질 수 있으므로 현재 픽쳐가 다른 시점에 있는 픽쳐를 참조하게 되는 경우, 시점간 예측을 위한 참조 픽쳐 리스트를 생성할 필요가 있을 수 있다. 이 때, 참조 픽쳐 리스트 생성부(620)는 시점간 예측을 위한 참조 픽쳐 리스트를 생성하기 위하여 시점에 대한 정보를 이용할 수 있다. 이는 도 3에서 상세히 설명하도록 한다.
도 3은 본 발명이 적용되는 실시예로서, 참조 픽쳐 리스트 생성부(620)의 내부 블록도를 나타낸다. 상기 참조 픽쳐 리스트 생성부(620)는 변수 유도부(625), 참조 픽쳐 리스트 초기화부(630) 및 참조 픽쳐 리스트 재배열부(640)을 포함한다.
변수 유도부(625)는 참조 픽쳐 리스트 초기화에 사용되는 변수들을 유도한다. 예를 들어, 픽쳐의 식별 번호를 나타내는 frame_num 을 이용하여 상기 변수를 유도할 수 있다. 구체적 예로, 각각의 단기 참조 픽쳐에는 변수 FrameNum과 변수 FrameNumWrap 이 이용될 수 있다. 먼저 상기 변수 FrameNum은 신택스 요소인 frame_num 값과 같다. 그리고, 상기 변수 FrameNumWrap은 상기 복호 픽쳐 버퍼부(600)에서 참조 픽쳐마다 작은 번호를 할당해주기 위하여 이용될 수 있으며, 상기 변수 FrameNum으로부터 유도될 수 있다. 이렇게 유도된 상기 변수 FrameNumWrap 을 이용하여 변수 PicNum 을 유도할 수 있다. 여기서 변수 PicNum은 상기 복호 픽쳐 버퍼부(600)에서 사용되는 픽쳐의 식별 번호를 의미할 수 있다. 장기 참조 픽쳐를 나타내는 경우에는 변수 LongTermPicNum이 이용될 수 있다.
또한, 시점간 예측을 위한 참조 픽쳐 리스트를 생성하기 위해서는 시점에 대한 정보를 이용하여 시점간 예측을 위한 참조 픽쳐 리스트를 생성하기 위한 제 1 변수(예를 들어, ViewNum)를 유도할 수 있다. 예를 들어, 픽쳐의 시점을 식별해주는 view_id 를 이용하여 상기 제 2 변수(예를 들어, ViewId)를 유도할 수 있다. 먼저 상기 제 2 변수는 신택스 요소인 상기 view_id 값과 같을 수 있다. 그리고, 제 3 변수(예를 들어, ViewIdWrap)는 상기 복호 픽쳐 버퍼부(600)에서 참조 픽쳐마다 작은 시점 식별 번호를 할당해주기 위하여 이용될 수 있으며, 상기 제 2 변수로부터 유도될 수 있다. 여기서 상기 제 1 변수(ViewNum)는 상기 복호 픽쳐 버퍼부(600)에서 사용되는 픽쳐의 시점 식별 번호를 의미할 수 있다. 다만, 다시점 비디오 코딩에서는 시간적 예측에 이용되는 참조 픽쳐의 수에 비해 시점간 예측에 이 용되는 참조 픽쳐의 수가 상대적으로 작을 수 있으므로, 장기 참조 픽쳐의 시점 식별 번호를 표시하기 위한 별도의 변수를 정의하지 않을 수 있다.
참조 픽쳐 리스트 초기화부(630)는 상기 변수들을 이용하여 참조 픽쳐 리스트를 초기화한다. 이때 참조 픽쳐 리스트의 초기화 과정은 슬라이스 타입에 따라 그 방식이 달라질 수 있다. 예를 들어, P슬라이스를 디코딩할 경우에는 디코딩 순서에 기초하여 참조 픽쳐 번호를 할당할 수 있으며, B슬라이스를 디코딩할 경우에는 픽쳐 출력 순서에 기초하여 참조 픽쳐 번호를 할당할 수 있다. 또한, 시점간 예측을 위한 참조 픽쳐 리스트를 초기화할 경우에는 상기 제 1 변수, 즉 시점 정보로부터 유도된 변수에 기초하여 참조 픽쳐에 번호를 할당할 수 있다.
참조 픽쳐 리스트 재배열부(640)는 초기화된 참조 픽쳐 리스트에서 빈번하게 참조된 픽쳐에 더 작은 번호를 할당함으로써 압축률을 향상시키는 역할을 수행한다. 참조 픽쳐를 지정하는 참조 픽쳐 번호는 블록단위로 부호화되는데 참조 픽쳐 번호의 부호화를 위한 참조 픽쳐 번호가 작을수록 작은 비트수의 부호가 할당되기 때문이다.
또한, 상기 참조 픽쳐 리스트 재배열부(640)는 슬라이스 타입 확인부(642), 참조 픽쳐 리스트0 재배열부(643) 및 참조 픽쳐 리스트1 재배열부(645)를 포함한다. 슬라이스 타입 확인부(642)는 초기화된 참조 픽쳐 리스트가 입력될 경우, 디코딩하려는 슬라이스의 타입을 확인하여 참조 픽쳐 리스트0을 재배열할지, 참조 픽쳐 리스트1을 재배열할지를 결정하게 된다. 이에 따라 참조 픽쳐 리스트0/1 재배열부(643,645)에서는, 예를 들어, 슬라이스 타입이 I슬라이스가 아닌 경우에는 참조 픽쳐 리스트0의 재배열을 수행하고, 슬라이스 타입이 B슬라이스인 경우에는 참조 픽쳐 리스트1의 재배열도 수행한다. 이렇게 재배열 과정이 종료되면, 참조 픽쳐 리스트가 생성된다.
그리고, 상기 참조 픽쳐 리스트0/1 재배열부(643,645)는 각각 식별정보 획득부(643A,645A)와 참조번호 할당 변경부(643B,645B)를 포함한다. 식별정보 획득부(643A,645A)는 참조 픽쳐 리스트의 재배열을 수행할지 여부를 나타내는 플래그 정보에 따라 참조 픽쳐 리스트의 재배열을 수행하게 되는 경우, 참조 번호의 할당 방법을 나타내는 식별 정보(reordering_of_pic_nums_idc)를 입력받는다. 참조번호 할당 변경부(643B,645B)에서는 상기 식별 정보에 따라 참조번호의 할당을 변경함으로써 참조 픽쳐 리스트를 재배열하게 된다.
또한, 상기 참조 픽쳐 리스트 재배열부(640)는 다른 방식을 적용하여 수행될 수도 있다. 예를 들어, 슬라이스 타입 확인부(642)를 거치기 전에 전송된 NAL의 타입을 확인하여 MVC NAL 인 경우와 그렇지 않은 경우로 나누어서 재배열을 할 수도 있다.
참조 픽쳐 관리부(640)는 보다 유연하게 화면간 예측을 실현하기 위하여 참조 픽쳐를 관리한다. 예를 들어, 적응 메모리 관리 방법(Memory Management Control Operation Method)과 이동 윈도우 방법(Sliding Window Method)이 이용될 수 있다. 이는 참조 픽쳐와 비참조 픽쳐의 메모리를 하나의 메모리로 통일하여 관리하고 적은 메모리로 효율적으로 관리하기 위함이다. 다시점 비디오 코딩에 있어서, 시점 방향의 픽쳐들은 픽쳐 출력 순서(Picture Order Count)가 동일하기 때문 에 이들의 마킹을 위해서는 각 픽쳐의 시점을 식별해주는 정보가 이용될 수 있다. 이러한 과정을 통해 관리되는 참조 픽쳐들은 인터 예측부(700)에서 이용될 수 있다.
인터 예측부(700)에서는 복호 픽쳐 버퍼부(600)에 저장된 참조 픽쳐를 이용하여 화면간 예측을 수행한다. 인터 코딩된 매크로블록은 매크로블록 파티션으로 나누어질 수 있으며, 각 매크로블록 파티션은 하나 또는 두개의 참조 픽쳐로부터 예측될 수 있다. 상기 인터 예측부(700)는 움직임 보상부(710)와 휘도 보상부(720), 휘도 차분 예측부(730), 시점 합성 예측부(740) 및 가중치 예측부(750) 등을 포함한다.
움직임 보상부(710)에서는 엔트로피 디코딩부(200)로부터 전송된 정보들을 이용하여 현재 블록의 움직임을 보상한다. 비디오 신호로부터 현재 블록에 이웃하는 블록들의 움직임 벡터를 추출하고, 상기 현재 블록의 움직임 벡터 휘도 차분를 획득한다. 상기 획득된 움직임 벡터 휘도 차분와 비디오 신호로부터 추출되는 차분 벡터를 이용하여 현재 블록의 움직임을 보상한다. 또한, 이러한 움직임 보상은 하나의 참조 픽쳐를 이용하여 수행될 수도 있고, 복수의 픽쳐를 이용하여 수행될 수도 있다. 다시점 비디오 코딩에 있어서, 현재 픽쳐가 다른 시점에 있는 픽쳐들을 참조하게 되는 경우, 상기 복호 픽쳐 버퍼부(600)에 저장되어 있는 시점간 예측을 위한 참조 픽쳐 리스트에 대한 정보를 이용하여 움직임 보상을 수행할 수 있다. 또한, 그 픽쳐의 시점을 식별하는 시점 정보를 이용하여 움직임 보상을 수행할 수도 있다. 또한, 직접 예측 모드(direct mode)는 부호화가 끝난 블록의 움직임 정보로 부터 현재 블록의 움직임 정보를 예측하는 부호화 모드이다. 이러한 방법은 움직임 정보를 부호화할 때 필요한 비트수가 절약되기 때문에 압축 효율이 향상된다. 예를 들어, 시간 직접 예측 모드(temporal direct mode)는 시간 방향의 움직임 정보 상관도를 이용하여 현재 블록의 움직임 정보를 예측하게 된다. 이 방법과 유사하게 본 발명에서는 시점 방향의 움직임 정보 상관도를 이용하여 현재 블록의 움직임 정보를 예측할 수 있다.
또한, 입력된 비트스트림이 다시점 영상에 해당되는 경우, 각 시점 영상(view sequence)들은 각기 다른 카메라에서 취득된 영상들이기 때문에 카메라의 내외적 요인으로 인하여 휘도 (illumination) 차이가 발생하게 된다. 이를 방지하기 위해서 휘도 보상부(720)에서는 휘도 보상(illumination compensation)을 수행하게 된다. 휘도 보상을 수행함에 있어서, 비디오 신호의 일정 계층에 대한 휘도 보상 수행여부를 나타내는 플래그 정보를 이용할 수 있다. 예를 들어, 해당 슬라이스 또는 해당 매크로블록의 휘도 보상 수행여부를 나타내는 플래그 정보를 이용하여 휘도 보상을 수행할 수 있다. 또한, 상기 플래그 정보를 이용하여 휘도 보상을 수행함에 있어서, 여러 가지 매크로블록의 타입(예를 들어, 인터16×16모드 또는 B-skip모드 또는 직접 예측 모드 등)에 적용될 수 있다.
또한, 휘도 보상을 수행함에 있어서, 현재 블록을 복원하기 위하여 주변 블록의 정보 또는 현재 블록과 다른 시점에 있는 블록의 정보를 이용할 수 있으며, 현재 블록의 휘도 차분값을 이용할 수도 있다. 이 때 현재 블록이 다른 시점에 있는 블록들을 참조하게 되는 경우, 상기 복호 픽쳐 버퍼부(600)에 저장되어 있는 시 점간 예측을 위한 참조 픽쳐 리스트에 대한 정보를 이용하여 휘도 보상을 수행할 수 있다. 여기서 현재 블록의 휘도 차분 값이란, 현재 블록의 평균 화소값과 그에 대응하는 참조 블록의 평균 화소값 사이의 차이를 말한다. 상기 휘도 차분 값을 이용하는 일례로, 상기 현재 블록의 이웃 블록들을 이용하여 상기 현재 블록의 휘도 차분 예측값을 획득하고, 상기 휘도 차분 값과 상기 휘도 차분 예측값와의 차이값인 휘도 차분 레지듀얼(IC offset residual)을 이용할 수 있다. 따라서, 디코딩부에서는 상기 휘도 차분 레지듀얼과 상기 휘도 차분 예측값을 이용하여 상기 현재 블록의 휘도 차분 값을 복원할 수 있다. 또한, 현재 블록의 휘도 차분 예측값을 획득함에 있어서, 이웃 블록의 정보를 이용할 수 있다. 예를 들어, 이웃 블록의 휘도 차분 값을 이용하여 현재 블록의 휘도 차분 값을 예측할 수 있는데, 이에 앞서 상기 현재 블록의 참조 번호(reference index)와 상기 이웃 블록의 참조 번호가 동일한지 여부를 확인하고, 그 확인 결과에 따라 어떤 이웃 블록을 이용할지, 또는 어떤 값을 이용할지가 결정될 수 있다.
시점 합성 예측부(740)는 현재 픽쳐의 시점에 이웃하는 시점에 있는 픽쳐들을 이용하여 새로운 시점의 픽쳐들을 합성하고, 합성된 새로운 시점의 픽쳐들을 이용하여 현재 픽쳐를 예측하기 위해 이용된다. 디코딩부에서는 인코딩부로부터 전송된 시점간 합성 예측 식별자에 따라서 새로운 시점의 픽쳐를 합성할지 여부를 판단할 수 있다. 예를 들어, view_synthesize_pred_flag = 1 이거나, 또는 view_syn_pred_flag = 1 인 경우, 각각 새로운 시점의 슬라이스 또는 매크로블록을 합성하게 된다. 이 때, 상기 시점간 합성 예측 식별자가 새로운 시점을 생성할 것 임을 알려주었을 때, 픽쳐의 시점을 식별하는 시점 정보를 이용하여 새로운 시점의 픽쳐를 생성할 수 있다. 또한, 상기 새로운 시점의 픽쳐를 합성하고 현재 픽쳐를 예측할 때, 상기 새로운 시점의 픽쳐를 참조 픽쳐로 이용하기 위해 상기 시점 정보가 이용될 수 있다.
가중치 예측부(750)는 밝기가 시간적으로 변화하는 영상을 부호화할 때 영상의 화질이 크게 열화되는 현상을 보상하기 위해 이용된다. MVC에서는 시간적으로 밝기가 변화하는 영상뿐만 아니라 다른 시점에 있는 영상과의 밝기 차이를 보상하기 위해 가중치 예측이 수행될 수 있다. 예를 들어, 가중치 예측 방법에는 명시적(explicit) 가중치 예측 방법과 암시적(implicit) 가중치 예측 방법이 있다. 상기 명시적 가중치 예측 방법에는 한 장의 참조 픽쳐를 이용하는 경우 또는 두 장의 참조 픽쳐를 이용하는 경우가 있다. 한 장의 참조 픽쳐를 이용하는 경우에는 움직임 보상에 해당하는 예측 신호에 가중치 계수를 곱해서 예측 신호를 생성하고, 두 장의 참조 픽쳐를 이용하는 경우에는 움직임 보상에 해당하는 예측 신호에 가중치 계수를 곱한 값에 오프셋 값을 더하여 예측 신호를 생성한다. 암시적 가중치 예측 방법은 참조 픽쳐로부터의 거리를 이용하여 가중치 예측을 수행한다. 상기 참조 픽쳐로부터의 거리를 구하는 방법으로는, 예를 들어, 픽쳐의 출력 순서를 나타내는 값인 POC(Picture Order Count)를 이용하는 경우가 있는데, 상기 POC는 각 픽쳐의 시점을 구분할 수 있도록 고려하여 만들어진 POC이다. 또는, 다른 시점에 있는 픽쳐에 대하여 가중치 계수를 획득할 때, 각 픽쳐의 시점 사이의 거리를 계산하기 위하여 픽쳐의 시점을 식별하는 시점 정보가 이용될 수 있다.
또한, 비디오 신호 코딩에 있어서, 특정 어플리케이션을 위해서 또는 다른 목적을 위해서 깊이 정보를 이용할 수 있다. 깊이 정보란, 시점 간의 변이 차이를 나타낼 수 있는 정보를 의미할 수 있다. 예를 들어, 시점 간의 예측을 통해서 변이 벡터를 획득할 수 있는데 상기 획득된 변이 벡터는 현재 블록의 변이 보상을 위해 디코딩 장치에 전송되어야 한다. 하지만, 깊이 맵을 구하여 이를 디코딩 장치에 전송하게 될 경우, 상기 변이 벡터를 디코딩 장치에 전송할 필요없이 상기 깊이 맵(depth map)(또는 변이 맵(disparity map))으로부터 상기 변이 벡터를 유추해낼 수 있다. 이러한 경우, 디코딩 장치에 전송되어져야 할 깊이 정보의 비트수를 감소시킬 수 있는 장점이 있다. 따라서, 상기 깊이 맵으로부터 변이 벡터를 유추함으로써 새로운 변이 보상하는 방법이 제공될 수 있다. 위와 같이 상기 깊이 맵으로부터 변이 벡터를 유추하는 과정에서 다른 시점의 픽쳐를 이용할 경우, 픽쳐의 시점을 식별할 수 있는 시점 정보가 이용될 수 있다.
상기와 같은 과정을 통해 인터 예측된 픽쳐들과 인트라 예측된 픽쳐들은 예측 모드에 따라 선택되어 현재 픽쳐를 복원하게 된다. 이하에서는 비디오 신호의 효율적인 디코딩 방법을 제공하기 위한 다양한 실시예들을 설명하도록 한다.
도4는 본 발명이 적용된 실시예로서, 비디오 신호의 시점 확장성(view scalability)을 제공하기 위한 레벨 정보의 계층적 구조를 나타낸다.
각 시점의 레벨 정보는 시점간 참조 정보를 고려하여 결정될 수 있다. 예를 들어, I픽쳐 없이는 P픽쳐와 B픽쳐의 디코딩이 불가능하기 때문에 인터 뷰 픽쳐 그룹이 I픽쳐인 기준 시점(Base view)에는 level=0을 할당할 수 있고, 앵커 쳐가 P픽 쳐인 시점에는 level=1을 할당할 수 있으며, 인터 뷰 픽쳐 그룹이 B픽쳐인 시점에는 level=2를 할당할 수 있다. 하지만 특정 기준에 따라 임의대로 레벨 정보를 결정할 수도 있다.
또한, 레벨 정보는 특정 기준에 따라 임의대로 결정될 수 있고, 또는 기준없이 랜덤하게 결정될 수도 있다. 예를 들어, 시점을 기준으로 레벨 정보를 결정하게 되는 경우, V0 시점을 기준 시점(base view)으로 설정하여 view level 0, 하나의 시점에 있는 픽쳐들을 이용하여 예측된 픽쳐들의 시점을 view level 1, 그리고 복수개의 시점에 있는 픽쳐들을 이용하여 예측된 픽쳐들의 시점을 view level 2로 설정할 수 있다. 이 경우, 기존의 디코더(예를 들어, H.264/AVC, MPEG-2, MPEG-4 등)와 호환성을 가지기 위한 적어도 하나의 시점 영상(view sequence)이 필요할 수 있다. 이러한 기준 시점은 다시점(multi view) 중 부호화의 기준이 되며, 이는 다른 시점의 예측을 위한 참조 시점(reference view)에 해당될 수 있다. MVC(Multiview Video Coding)에서 기준 시점에 해당되는 영상은 종래 일반적인 영상 부호화 방식(MPEG-2, MPEG-4, H.263, H.264 등)에 의해 부호화되어 독립적인 비트스트림으로 형성될 수 있다. 기준 시점에 해당되는 영상은 H.264/AVC와 호환될 수도 있고, 되지 않을 수도 있다. 하지만, H.264/AVC와 호환될 수 있는 시점의 영상은 기준 시점이 된다.
상기 도 4에서 알 수 있듯이, 상기 V0 시점에 있는 픽쳐들을 이용하여 예측된 픽쳐들의 시점인 V2 시점, V2 시점에 있는 픽쳐들을 이용하여 예측된 픽쳐들의 시점인 V4 시점과 V4 시점에 있는 픽쳐들을 이용하여 예측된 픽쳐들의 시점인 V6 시점, 그리고 V6 시점에 있는 픽쳐들을 이용하여 예측된 픽쳐들의 시점인 V7 시점을 view level 1 으로 설정할 수 있다. 그리고, V0 시점과 V2 시점에 있는 픽쳐들을 이용하여 예측된 픽쳐들의 시점인 V1 시점, 그리고 동일한 방식으로 예측된 V3 시점, V5 시점은 view level 2 로 설정할 수 있다. 따라서, 사용자의 디코더가 다시점 비디오 영상을 볼 수 없는 경우에는 상기 view level 0 에 해당되는 시점의 영상들만을 디코딩하게 된다. 또는 사용자의 디코더가 프로파일 정보에 의해 제한되는 경우에도 제한된 view level의 정보만을 디코딩할 수 있게 된다. 여기서, 프로파일(profile)이란 비디오 부호화/복호화 과정에서 알고리즘상 들어가는 기술적 구성요소를 규격화한 것을 의미한다. 즉, 압축된 영상의 비트열을 복호하기 위해 필요한 기술요소의 집합으로서 일종의 서브 규격이라 할 수 있다.
본 발명이 적용되는 다른 일실시예로서, 레벨 정보는 카메라의 위치에 따라 달라질 수 있다. 예를 들어, V0 시점과 V1 시점은 정면에 위치한 카메라에 의해 획득된 영상들이고, V2 시점과 V3 시점은 후면에 위치한 카메라에 의해 획득된 영상들이고, V4 시점과 V5 시점은 좌측에 위치한 카메라에 의해 획득된 영상들이며, V6 시점과 V7 시점은 우측에 위치한 카메라에 의해 획득된 영상들이라고 가정할 경우, V0 시점과 V1 시점을 view level 0로, V2 시점과 V3 시점은 view level 1로, V4 시점과 V5 시점은 view level 2로, V6 시점과 V7 시점은 view level 3로 설정할 수도 있다. 또 다른 실시예로서, 레벨 정보는 카메라의 배열 형태에 따라 달라질 수 있다. 또한, 레벨 정보는 특별한 기준에 의하지 않고 임의로 결정될 수도 있다.
도 5는 본 발명이 적용되는 일실시예로서, NAL헤더의 확장 영역 내에 레벨 정보를 포함하는 NAL단위의 구성을 나타낸다.
NAL 단위는 기본적으로 NAL헤더와 RBSP의 두 부분으로 구성된다. NAL헤더에는 그 NAL 단위의 참조픽처가 되는 슬라이스가 포함되어 있는지 여부를 나타내는 플래그 정보(nal_ref_idc)와 NAL 단위의 종류를 나타내는 식별자(nal_unit_type)가 포함되어 있다. 그리고, 시점 확장성(view scalability)을 제공하기 위한 계층적인 구조에 대한 정보를 나타내는 레벨 정보(view_level)도 포함할 수 있다.
RBSP 에는 압축된 원본의 데이터를 저장하며, RBSP 의 길이를 8비트의 배수로 표현하기 위해 RBSP 의 마지막에 RBSP trailing bit(RBSP 채워넣기 비트)를 첨가한다. 이러한 NAL 단위의 종류에는 IDR (Instantaneous Decoding Refresh, 순간 복호 리프레쉬) 픽쳐, SPS (Sequence Parameter Set, 시퀀스 파라미터 세트), PPS (Picture Parameter Set, 픽쳐 파라미터 세트), SEI (Supplemental Enhancement Information, 보충적 부가정보) 등이 있다.
상기 NAL 헤더에는 시점 식별자(view identifer)에 대한 정보를 포함하고 있으며, 시점 레벨에 따라서 디코딩을 수행하는 과정에서 시점 식별자를 참조하여 해당 시점 레벨의 비디오 영상을 디코딩한다. 상기 NAL 단위는 NAL 헤더(header)(51)와 슬라이스 계층(slice layer)(53)을 포함하며, 상기 NAL 헤더(710)는 NAL 헤더 확장 영역(NAL header extention) (52)을 포함하고, 상기 슬라이스 계층(53)은 슬라이스 헤더(slice header)(54)와 슬라이스 데이터(slice data)(55)를 포함한다. 상기 NAL 헤더(51)는 NAL 단위의 종류를 나타내는 식별자(nal_unit_type)를 포함하고 있는데, 예를 들어, 상기 NAL 단위의 종류를 나타내는 식별자는 스케일러블 비 디오 코딩(Scalable Video Coding)과 다시점 비디오 코딩(Multi-view Video Coding) 모두를 위한 식별자일 수 있다. 이 때 상기 NAL 헤더 확장 영역(52)에서는 현재 NAL이 스케일러블 비디오 코딩을 위한 NAL인지 다시점 비디오 코딩을 위한 NAL인지를 구별하는 플래그 정보를 포함할 수 있고, 상기 플래그 정보에 따라 상기 현재 NAL의 확장 정보를 포함할 수 있다. 예를 들어, 상기 플래그 정보에 따라 상기 현재 NAL이 다시점 비디오 코딩을 위한 NAL인 경우, 상기 NAL 헤더 확장 영역(52)은 시점 확장성(view scalability)을 제공하기 위한 계층적인 구조에 대한 정보를 나타내는 레벨 정보(view_level)를 포함할 수 있다.
도6은 본 발명이 적용되는 실시예로서, 인터 뷰 픽쳐 그룹의 개념을 설명하기 위한 다시점 영상 신호의 전체적인 예측 구조를 나타낸다.
도 6에 나타난 바와 같이 가로축의 T0 ∼ T100 은 각각 시간에 따른 프레임을 나타낸 것이고, 세로축의 S0 ∼ S7은 각각 시점에 따른 프레임을 나타낸 것이다. 예를 들어, T0에 있는 픽쳐들은 같은 시간대(T0)에 서로 다른 카메라에서 찍은 영상들을 의미하며, S0 에 있는 픽쳐들은 한 대의 카메라에서 찍은 다른 시간대의 영상들을 의미한다. 또한, 도면 상의 화살표들은 각 픽쳐들의 예측 방향과 순서를 나타낸 것으로서, 예를 들어, T0 시간대의 S2 시점에 있는 P0 픽쳐는 I0로부터 예측된 픽쳐이며, 이는 TO 시간대의 S4 시점에 있는 P0 픽쳐의 참조 픽쳐가 된다. 또한, S2 시점의 T4, T2 시간대에 있는 B1, B2 픽쳐의 참조 픽쳐가 된다.
다시점 영상의 복호화 과정에 있어서, 시점 간의 랜덤 액세스는 필수적이다. 따라서, 복호화 노력을 최소화하면서 임의 시점에 대한 액세스가 가능하도록 하여 야 한다. 여기서 효율적인 랜덤 액세스를 실현하기 위하여 인터 뷰 픽쳐 그룹의 개념이 필요할 수 있다. 인터 뷰 픽쳐 그룹이라 함은, 모든 슬라이스들이 동일 시간대의 프레임에 있는 슬라이스만을 참조하는 부호화된 픽쳐를 의미한다. 예를 들어, 다른 시점에 있는 슬라이스만을 참조하고 현재 시점에 있는 슬라이스는 참조하지 않는 부호화된 픽쳐를 말한다. 도 6에서 보면, T0 시간대의 S0 시점에 있는 I0픽쳐가 인터 뷰 픽쳐 그룹이라면, 같은 시간대에 있는, 즉 T0 시간대의 다른 시점에 있는 모든 픽쳐들 또한 인터 뷰 픽쳐 그룹이 된다. 또 다른 예로서, T8 시간대의 S0 시점에 있는 I0픽쳐가 인터 뷰 픽쳐 그룹이라면, 같은 시간대에 있는, 즉 T8 시간대의 다른 시점에 있는 모든 픽쳐들 또한 인터 뷰 픽쳐 그룹이 된다. 마찬가지로, T16, ..., T96, T100 에 있는 모든 픽쳐들이 인터 뷰 픽쳐 그룹의 예가 된다.
도 7은 본 발명이 적용되는 실시예로서, 새롭게 정의된 인터 뷰 픽쳐 그룹의 개념을 설명하기 위한 예측 구조를 나타낸다.
MVC의 전반적인 예측 구조에 있어서, GOP는 I 픽쳐로부터 시작될 수 있으며, 상기 I 픽쳐는 H.264/AVC와 호환 가능하다. 따라서, H.264/AVC와 호환 가능한 모든 인터 뷰 픽쳐 그룹들은 항상 I 픽쳐가 될 수 있다. 그러나, 상기 I 픽쳐들을 P 픽쳐로 대체하게 될 경우, 우리는 보다 효율적인 코딩이 가능해질 수 있다. 즉, GOP가 H.264/AVC와 호환 가능한 P 픽쳐로 시작하도록 하는 예측 구조를 이용할 경우 보다 효율적인 코딩이 가능해질 것이다.
이 때, 인터 뷰 픽쳐 그룹을 다시 정의하면, 모든 슬라이스들이 동일 시간대의 프레임에 있는 슬라이스뿐만 아니라 동일 시점의 다른 시간대에 있는 슬라이스 도 참조할 수 있는 부호화된 픽쳐가 된다. 다만, 동일 시점의 다른 시간대에 있는 슬라이스를 참조하는 경우는 오로지 H.264/AVC와 호환 가능한 인터 뷰 픽쳐 그룹에 한할 수 있다. 예를 들어, 도 6에서 S0 시점의 T8 시간에 있는 P 픽쳐는 새롭게 정의된 인터 뷰 픽쳐 그룹이 될 수 있으며, 마찬가지로 S0 시점의 T96 시간에 있는 P 픽쳐, 그리고 S0 시점의 T100 시간에 있는 P 픽쳐가 상기 새롭게 정의된 인터 뷰 픽쳐 그룹이 될 수 있다. 또는 상기 인터 뷰 픽쳐 그룹은 기준 시점인 경우에 한하여 정의될 수도 있다.
인터 뷰 픽쳐 그룹이 디코딩된 후, 차례로 코딩된 모든 픽쳐들은 출력 순서상 인터 뷰 픽쳐 그룹에 선행하여 디코딩된 픽쳐로부터 인터-프리딕션(inter-prediction)없이 디코딩된다.
따라서, 상기 도 6 및 도 7의 다시점 비디오 영상의 전반적인 코딩 구조에 따를 때, 인터 뷰 픽쳐 그룹과 넌-인터 뷰 픽쳐 그룹의 시점간 참조 정보가 다르기 때문에 상기 인터 뷰 픽쳐 그룹 식별 정보에 따라 인터 뷰 픽쳐 그룹과 넌-인터 뷰 픽쳐 그룹을 구별할 필요가 있다.
상기 시점간 참조 정보는, 시점간 영상들이 어떠한 구조로 예측되었는지를 알 수 있는 정보를 말한다. 이는 비디오 신호의 데이터 영역로부터 획득될 수 있는데, 예를 들어, 시퀀스 파라미터 셋 영역으로부터 획득될 수 있다. 또한, 상기 시점간 참조 정보는 참조 픽쳐의 개수와 참조 픽쳐의 시점 정보를 이용하여 파악할 수 있다. 예를 들어, 먼저 전체 시점의 개수를 획득하고, 상기 전체 시점의 개수에 근거하여 각 시점을 구별하는 시점 정보를 파악할 수 있다. 그리고, 각 시점마다 참조 방향에 대한 참조 픽쳐의 개수를 획득할 수 있다. 상기 참조 픽쳐의 개수에 따라 각 참조 픽쳐의 시점 정보를 획득할 수 있다. 이러한 방식을 통해서 상기 시점간 참조 정보가 획득될 수 있으며, 상기 시점간 참조 정보는 인터 뷰 픽쳐 그룹일 경우와 넌-인터 뷰 픽쳐 그룹일 경우로 나누어서 파악될 수 있다. 이는 현재 NAL에 있는 코딩된 슬라이스가 인터 뷰 픽쳐 그룹인지 여부를 나타내는 인터 뷰 픽쳐 그룹 식별 정보를 이용하여 알 수 있다. 이하 도 8에서는 상기 인터 뷰 픽쳐 그룹 식별 정보에 대하여 상세히 알아본다.
도 8은 본 발명이 적용되는 실시예로서, 인터 뷰 픽쳐 그룹 식별 정보를 이용하여 다시점 영상을 디코딩하는 장치의 개략적인 블록도를 나타낸다.
본 실시예에서의 디코딩 장치는 비트스트림 판단부(81), 인터 뷰 픽쳐 그룹 식별 정보 획득부(82) 및 다시점 영상 디코딩부(83)를 포함한다. 비트스트림 판단부(81)에서는 비트스트림이 입력되면 상기 비트스트림이 스케일러블 비디오 코딩된 비트스트림인지, 아니면 다시점 비디오 코딩된 비트스트림인지 여부를 판단하게 된다. 이는 비트스트림으로 날라오는 플래그 정보에 의해 판단될 수 있다.
인터 뷰 픽쳐 그룹 식별 정보 획득부(82)에서는 상기 판단 결과 다시점 비디오 코딩된 비트스트림인 경우 인터 뷰 픽쳐 그룹 식별 정보를 획득할 수 있다. 상기 획득된 인터 뷰 픽쳐 그룹 식별 정보가 참일 경우에는 현재 NAL에 있는 코딩된 슬라이스가 인터 뷰 픽쳐 그룹임을 의미하고, 거짓일 경우에는 넌-인터 뷰 픽쳐 그룹임을 의미할 수 있다. 이러한 인터 뷰 픽쳐 그룹 식별 정보는 NAL 헤더의 확장 영역으로부터 획득될 수 있으며, 또는 슬라이스 레이어 영역으로부터 획득될 수도 있다.
다시점 영상 디코딩부(83)에서는 상기 인터 뷰 픽쳐 그룹 식별 정보에 따라 다시점 영상을 디코딩하게 된다. 다시점 비디오 영상의 전반적인 코딩 구조에 따를 때, 인터 뷰 픽쳐 그룹과 넌-인터 뷰 픽쳐 그룹의 시점간 참조 정보가 다르기 때문에, 예를 들어, 참조 픽쳐 리스트를 생성할 때 시점간 예측을 위한 참조 픽쳐들을 추가하는데 상기 인터 뷰 픽쳐 그룹 식별 정보가 이용될 수 있다. 그리고, 추가된 상기 시점간 예측을 위한 참조 픽쳐들을 관리하기 위해서도 이용될 수 있다. 또한, 상기 인터 뷰 픽쳐 그룹 식별 정보는 가상 참조 디코더(hypothetical reference decoder)에서도 적용될 수 있다.
상기 인터 뷰 픽쳐 그룹 식별 정보가 이용되는 다른 예로서, 각 디코딩 프로세스에서 다른 시점에 있는 정보를 이용하게 되는 경우, 시퀀스 파라미터 셋에 포함된 시점간 참조 정보가 이용될 수 있다. 이 때, 현재 픽쳐가 인터 뷰 픽쳐 그룹인지 넌-인터 뷰 픽쳐 그룹인지 여부를 구분할 수 있는 정보, 즉 인터 뷰 픽쳐 그룹 식별 정보가 필요할 수 있으며, 이에 따라 각 디코딩 프로세스마다 다른 시점간 참조 정보가 이용될 수 있다.
도 9는 본 발명이 적용되는 실시예로서, 참조 픽쳐 리스트를 생성하는 흐름도를 나타낸다.
복호 픽쳐 버퍼부(Decoded Picture Buffer unit)(600)에서는 화면간 예측을 수행하기 위해서 이전에 코딩된 픽쳐들을 저장하거나 개방하는 역할 등을 수행한다. 먼저, 현재 픽쳐 이전에 코딩된 픽쳐들은 참조 픽쳐로 활용하기 위하여 참조 픽쳐 저장부(610)에 저장된다(S91). 다시점 비디오 코딩에 있어서 상기 이전에 코딩된 픽쳐들 중에는 현재 픽쳐와 다른 시점에 있는 픽쳐들도 있으므로, 이러한 픽쳐들을 참조 픽쳐로서 활용하기 위해서는 픽쳐의 시점을 식별하는 시점 정보를 이용할 수 있다. 따라서, 디코더에서는 픽쳐의 시점을 식별하는 시점 정보를 획득하여야 한다(S92). 예를 들어, 상기 시점 정보는 픽쳐의 시점을 식별하는 view_id 를 포함할 수 있다. 상기 복호 픽쳐 버퍼부(600)에서는 참조 픽쳐 리스트를 생성하기 위하여 상기 복호 픽쳐 버퍼부(600) 내에서 사용되는 변수를 유도할 필요가 있다. 다시점 비디오 코딩에 있어서는 시점간 예측이 이루어질 수 있으므로 현재 픽쳐가 다른 시점에 있는 픽쳐를 참조하게 되는 경우, 시점간 예측을 위한 참조 픽쳐 리스트를 생성할 필요가 있을 수 있다. 이 때, 상기 복호 픽쳐 버퍼부(600)에서는 상기 획득된 시점 정보를 이용하여, 시점간 예측을 위한 참조 픽쳐 리스트를 생성하기 위해 사용되는 변수를 유도할 필요가 있다(S93).
시간적 예측을 위한 참조 픽쳐 리스트 또는 시점간 예측을 위한 참조 픽쳐 리스트는 현재 슬라이스의 슬라이스 타입에 따라 다른 방식으로 생성될 수 있다(S94). 예를 들어, 슬라이스 타입이 P/SP 슬라이스인 경우에는 참조 픽쳐 리스트0를 생성하게 되고(S95), 슬라이스 타입이 B 슬라이스인 경우에는 참조 픽쳐 리스트0와 참조 픽쳐 리스트1을 생성하게 된다(S96). 이 때 참조 픽쳐 리스트 0 또는 참조 픽쳐 리스트 1은 시간적 예측을 위한 참조 픽쳐 리스트만을 포함할 수 있고, 또는 상기 시간적 예측을 위한 참조 픽쳐 리스트와 시점간 예측을 위한 참조 픽쳐 리스트를 모두 포함하고 있을 수 있다. 이에 대해서는 도 8 및 도 9에서 상세히 설 명하도록 한다.
이렇게 초기화된 참조 픽쳐 리스트는 보다 압축률을 향상시키기 위하여 빈번하게 참조된 픽쳐에 더 작은 번호를 할당하는 과정을 거치게 된다(S97). 이를 참조 픽쳐 리스트의 재배열 과정이라고 한다. 도 12 내지 도 19에서 상세히 설명하도록 한다. 이렇게 재배열된 참조 픽쳐 리스트를 이용하여 현재 픽쳐를 디코딩하게 되며, 상기 복호 픽쳐 버퍼부(600)에서는 버퍼를 보다 효율적으로 운영하기 위하여 디코딩된 참조 픽쳐들을 관리할 필요가 있다(S98). 이러한 과정을 통해 관리되는 참조 픽쳐들은 상기 인터 예측부(700)로부터 불러들여져 인터 예측을 위해 이용된다. 다시점 비디오 코딩에 있어서, 상기 인터 예측은 시점간 예측을 포함할 수 있으므로 이러한 경우에는 시점간 예측을 위한 참조 픽쳐 리스트가 이용될 수 있다.
이하 도 10 및 도 11에서는 슬라이스 타입에 따라 참조 픽쳐 리스트가 어떠한 방식으로 생성되는지 구체적인 실시예들을 통해서 알아보도록 한다.
도 10은 본 발명이 적용되는 일실시예로서, 현재 슬라이스가 P슬라이스일 때의 참조 픽쳐 리스트를 초기화하는 방법을 설명하기 위해 나타낸 것이다.
T0, T1, ...,TN 은 시간을 나타내고, V0, V1, ...,V4 는 시점을 나타낸다. 예를 들어, 현재 픽쳐(current picture)는 V4 시점의 T3 시간에 있는 픽쳐를 나타낸다. 또한 현재 픽쳐의 슬라이스 타입은 P 슬라이스인 경우이다. PN은 변수 PicNum의 약자이며, LPN은 변수 LongtermPicNum의 약자이며, VN은 변수 ViewNum의 약자이다. 각 변수 뒤에 붙은 숫자는 각 픽쳐의 시간(PN,LPN의 경우) 또는 시점(VN의 경 우)을 가리키는 인덱스를 의미한다. 이는 도 11에서도 동일하게 적용된다.
시간적 예측을 위한 참조 픽쳐 리스트 또는 시점간 예측을 위한 참조 픽쳐 리스트는 현재 슬라이스의 슬라이스 타입에 따라 다른 방식으로 생성될 수 있다. 예를 들어, 도 12에서는 슬라이스 타입이 P/SP 슬라이스인 경우로, 이 경우에는 참조 픽쳐 리스트0를 생성하게 된다. 여기서 상기 참조 픽쳐 리스트0는 시간적 예측을 위한 참조 픽쳐 리스트 및/또는 시점간 예측을 위한 참조 픽쳐 리스트를 포함할 수 있다. 본 실시예에서는 참조 픽쳐 리스트 0가 시간적 예측을 위한 참조 픽쳐 리스트와 시점간 예측을 위한 참조 픽쳐 리스트 모두를 포함하는 경우를 설명하도록 한다. 참조 픽쳐들을 배열하는 방법으로는 여러 가지가 있을 수 있는데, 예를 들어, 디코딩 순서에 따라 참조 픽쳐들을 배열할 수 있으며, 또는 픽쳐 출력 순서에 따라 참조 픽쳐들을 배열할 수도 있다. 또는 시점 정보를 이용하여 유도된 변수에 기초하여 배열될 수 있으며, 또는 시점 간의 예측 구조를 알 수 있는 시점간 참조 정보에 따라 참조 픽쳐들이 배열될 수도 있다.
시간적 예측을 위한 참조 픽쳐 리스트의 경우, 단기 참조 픽쳐와 장기 참조 픽쳐는 디코딩 순서에 기초하여 배열될 수 있다. 예를 들어, 픽쳐의 식별 번호를 나타내는 값(예를 들어, frame_num 또는 Longtermframeidx)으로부터 유도된 변수(PicNum 또는 LongtermPicNum)값에 따라 배열될 수 있다. 먼저 장기 참조 픽쳐에 앞서 단기 참조 픽쳐들이 초기화될 수 있다. 단기 참조 픽쳐의 배열되는 순서는 참조 픽쳐 중 가장 높은 변수(PicNum)값을 갖는 참조 픽쳐부터 가장 낮은 변수값을 갖는 참조 픽쳐의 순서로 배열될 수 있다. 예를 들어, PN0,PN1,PN2 중 가장 높은 변수를 갖는 PN1부터 시작하여, 그 다음에 PN2, 그 다음에 가장 낮은 변수를 갖는 PN0 순서로 배열될 수 있다. 장기 참조 픽쳐의 배열되는 순서는 참조 픽쳐 중 가장 낮은 변수(LongtermPicNum)값을 갖는 참조 픽쳐부터 가장 높은 변수값을 갖는 참조 픽쳐의 순서로 배열될 수 있다. 예를 들어, LPN0,LPN1 중 가장 낮은 변수를 갖는 LPN0부터 시작하여, 그 다음에 가장 낮은 변수를 갖는 LPN1 순서로 배열될 수 있다.
시점간 예측을 위한 참조 픽쳐 리스트의 경우, 시점 정보를 이용하여 유도된 제 1 변수(ViewNum)에 기초하여 배열될 수 있다. 예를 들어, 참조 픽쳐 중 가장 높은 제 1 변수(ViewNum)값을 갖는 참조 픽쳐부터 가장 낮은 변수값을 갖는 참조 픽쳐의 순서로 배열될 수 있다. 예를 들어, VN0,VN1,VN2,VN3 중 가장 높은 변수를 갖는 VN3부터 시작하여, 그 다음에 VN2,VN1, 그 다음에 가장 낮은 변수를 갖는 VN0 순서로 배열될 수 있다.
이처럼, 상기 시간적 예측을 위한 참조 픽쳐 리스트와 상기 시점간 예측을 위한 참조 픽쳐 리스트는 하나의 참조 픽쳐 리스트로 관리될 수 있으며, 또는 별개의 참조 픽쳐 리스트로 각각 관리될 수도 있다. 그리고, 하나의 참조 픽쳐 리스트로 관리하게 되는 경우에는 순서에 따라 초기화될 수 있으며, 또는 동시에 초기화될 수도 있다. 순서에 따라 초기화되는 경우에는, 예를 들어, 상기 시간적 예측을 위한 참조 픽쳐 리스트를 먼저 초기화하고, 그 다음에 추가적으로 상기 시점간 예측을 위한 참조 픽쳐 리스트를 초기화할 수 있다. 이러한 개념은 도 11에서도 적용될 수 있다. 이하 도 11에서는 현재 픽쳐의 슬라이스 타입이 B 슬라이스인 경우에 대해 살펴보도록 한다.
도 11은 본 발명이 적용되는 일실시예로서, 현재 슬라이스가 B슬라이스일 때의 참조 픽쳐 리스트를 초기화하는 방법을 설명하기 위해 나타낸 것이다.
슬라이스 타입이 B 슬라이스인 경우에는 참조 픽쳐 리스트0와 참조 픽쳐 리스트1을 생성하게 된다. 이 때 참조 픽쳐 리스트 0 또는 참조 픽쳐 리스트 1은 시간적 예측을 위한 참조 픽쳐 리스트만을 포함할 수 있고, 또는 상기 시간적 예측을 위한 참조 픽쳐 리스트와 시점간 예측을 위한 참조 픽쳐 리스트를 모두 포함하고 있을 수 있다.
먼저 시간적 예측을 위한 참조 픽쳐 리스트의 경우, 단기 참조 픽쳐와 장기 참조 픽쳐의 배열 방법이 다를 수 있다. 예를 들어, 단기 참조 픽쳐의 경우는 픽쳐 출력 순서(Picture Order Count, 이하 POC라 함)에 따라 참조 픽쳐들이 배열될 수 있고, 장기 참조 픽쳐의 경우는 변수(LongtermPicNum)값에 따라 참조 픽쳐들이 배열될 수 있다. 그리고, 장기 참조 픽쳐에 앞서 단기 참조 픽쳐들이 초기화될 수 있다.
참조 픽쳐 리스트0의 단기 참조 픽쳐의 배열되는 순서는 현재 픽쳐보다 낮은 POC값을 갖는 참조 픽쳐 중 가장 높은 POC값을 갖는 참조 픽쳐부터 가장 낮은 POC값을 갖는 참조 픽쳐의 순서로 배열되고, 그 다음에 현재 픽쳐보다 높은 POC값을 갖는 참조 픽쳐 중 가장 낮은 POC값을 갖는 참조 픽쳐부터 가장 높은 POC값을 갖는 참조 픽쳐의 순서로 배열될 수 있다. 예를 들어, 현재 픽쳐보다 낮은 POC값을 갖는 참조 픽쳐인 PN0,PN1 중 가장 높은 POC값을 갖는 PN1부터 시작하여, PN0 순서로 배 열되고, 그 다음에 현재 픽쳐보다 높은 POC값을 갖는 참조 픽쳐인 PN3,PN4 중 가장 낮은 POC값을 갖는 PN3부터 시작하여, PN4 순서로 배열될 수 있다.
그리고 참조 픽쳐 리스트0의 장기 참조 픽쳐의 배열되는 순서는 참조 픽쳐 중 가장 낮은 변수(LongtermPicNum)를 갖는 참조 픽쳐부터 가장 높은 변수를 갖는 참조 픽쳐의 순서로 배열될 수 있다. 예를 들어, LPN0,LPN1 중 가장 낮은 변수를 갖는 LPN0부터 시작하여, 그 다음에 가장 낮은 변수를 갖는 LPN1 순서로 배열될 수 있다.
시점간 예측을 위한 참조 픽쳐 리스트의 경우, 시점 정보를 이용하여 유도된 제 1 변수(ViewNum)에 기초하여 배열될 수 있다. 예를 들어, 시점간 예측을 위한 참조 픽쳐 리스트0의 경우 현재 픽쳐보다 낮은 제 1 변수값을 갖는 참조 픽쳐 중 가장 높은 제 1 변수값을 갖는 참조 픽쳐부터 가장 낮은 제 1 변수값을 갖는 참조 픽쳐의 순서로 배열될 수 있다. 그리고, 현재 픽쳐보다 높은 제 1 변수값을 갖는 참조 픽쳐 중 가장 낮은 제 1 변수값을 갖는 참조 픽쳐부터 가장 높은 제 1 변수값을 갖는 참조 픽쳐의 순서로 배열될 수 있다. 예를 들어, 현재 픽쳐보다 낮은 제 1 변수값을 갖는 참조 픽쳐인 VN0,VN1 중 가장 높은 제 1 변수값을 갖는 VN1부터 시작하여, 가장 낮은 제 1 변수값을 갖는 VN0 순서로 배열될 수 있다. 그 다음에 현재 픽쳐보다 높은 제 1 변수값을 갖는 참조 픽쳐인 VN3,VN4 중 가장 낮은 제 1 변수값을 갖는 VN3부터 시작하여, 가장 높은 제 1 변수값을 갖는 VN4 순서로 배열될 수 있다.
참조 픽쳐 리스트 1의 경우, 상기에서 설명한 참조 픽쳐 리스트 0의 배열 방 식과 유사하게 적용될 수 있다.
먼저 시간적 예측을 위한 참조 픽쳐 리스트의 경우, 참조 픽쳐 리스트1의 단기 참조 픽쳐의 배열되는 순서는 현재 픽쳐보다 높은 POC값을 갖는 참조 픽쳐 중 가장 낮은 POC값을 갖는 참조 픽쳐부터 가장 높은 POC값을 갖는 참조 픽쳐의 순서로 배열되고, 그 다음에 현재 픽쳐보다 낮은 POC값을 갖는 참조 픽쳐 중 가장 높은 POC값을 갖는 참조 픽쳐부터 가장 낮은 POC값을 갖는 참조 픽쳐의 순서로 배열될 수 있다. 예를 들어, 현재 픽쳐보다 높은 POC값을 갖는 참조 픽쳐인 PN3,PN4 중 가장 낮은 POC값을 갖는 PN3부터 시작하여, PN4 순서로 배열되고, 그 다음에 현재 픽쳐보다 낮은 POC값을 갖는 참조 픽쳐인 PN0,PN1 중 가장 높은 POC값을 갖는 PN1부터 시작하여, PN0 순서로 배열될 수 있다.
그리고 참조 픽쳐 리스트1의 장기 참조 픽쳐의 배열되는 순서는 참조 픽쳐 중 가장 낮은 변수(LongtermPicNum)를 갖는 참조 픽쳐부터 가장 높은 변수를 갖는 참조 픽쳐의 순서로 배열될 수 있다. 예를 들어, LPN0,LPN1 중 가장 낮은 변수를 갖는 LPN0부터 시작하여, 그 다음에 가장 낮은 변수를 갖는 LPN1 순서로 배열될 수 있다.
시점간 예측을 위한 참조 픽쳐 리스트의 경우, 시점 정보를 이용하여 유도된 제 1 변수(ViewNum)에 기초하여 배열될 수 있다. 예를 들어, 시점간 예측을 위한 참조 픽쳐 리스트1의 경우 현재 픽쳐보다 높은 제 1 변수값을 갖는 참조 픽쳐 중 가장 낮은 제 1 변수값을 갖는 참조 픽쳐부터 가장 높은 제 1 변수값을 갖는 참조 픽쳐의 순서로 배열될 수 있다. 그리고, 현재 픽쳐보다 낮은 제 1 변수값을 갖는 참조 픽쳐 중 가장 높은 제 1 변수값을 갖는 참조 픽쳐부터 가장 낮은 제 1 변수값을 갖는 참조 픽쳐의 순서로 배열될 수 있다. 예를 들어, 현재 픽쳐보다 높은 제 1 변수값을 갖는 참조 픽쳐인 VN3,VN4 중 가장 낮은 제 1 변수값을 갖는 VN3부터 시작하여, 가장 높은 제 1 변수값을 갖는 VN4 순서로 배열될 수 있다. 그 다음에 현재 픽쳐보다 낮은 제 1 변수값을 갖는 참조 픽쳐인 VN0,VN1중 가장 높은 제 1 변수값을 갖는 VN1부터 시작하여, 가장 낮은 제 1 변수값을 갖는 VN0 순서로 배열될 수 있다.
상기와 같은 과정을 통해 초기화된 참조 픽쳐 리스트는 상기 참조 픽쳐 리스트 재배열부(640)로 전송되어 보다 효율적인 코딩을 위해 상기 초기화된 참조 픽쳐 리스트를 재배열하게 된다. 이러한 재배열 과정은 복호 픽쳐 버퍼를 운영하여 참조 픽쳐로서 선택될 확률이 가장 높은 참조 픽쳐에 낮은 번호를 할당하여 비트율을 줄이기 위한 것이다. 이하 도 12 내지 도 19에서는 참조 픽쳐 리스트를 재배열하는 방법을 다양한 실시예들을 통해 설명하도록 한다.
도 12는 본 발명이 적용되는 실시예로서, 참조 픽쳐 리스트 재배열부(640)의 내부 블록도를 나타낸다.
참조 픽쳐 리스트 재배열부(640)는 크게 슬라이스 타입 확인부(642), 참조 픽쳐 리스트0 재배열부(643) 및 참조 픽쳐 리스트1 재배열부(645)를 포함한다. 상기 참조 픽쳐 리스트0 재배열부(643)는 제 1 식별정보 획득부(643A)와 제 1 참조번호 할당 변경부(643B)를 포함하고, 상기 참조 픽쳐 리스트1 재배열부(645)는 제 2 식별정보 획득부(645A)와 제 2 참조번호 할당 변경부(645B)를 포함한다.
슬라이스 타입 확인부(642)는 현재 슬라이스의 슬라이스 타입을 확인하여, 상기 슬라이스 타입에 따라 참조 픽쳐 리스트0 및/또는 참조 픽쳐 리스트1의 재배열을 수행할지 여부가 결정된다. 예를 들어, 현재 슬라이스의 슬라이스 타입이 I슬라이스인 경우 참조 픽쳐 리스트0 및 참조 픽쳐 리스트1 모두 재배열을 수행하지 않는다. 그리고, P슬라이스인 경우에는 참조 픽쳐 리스트0만에 대해 재배열을 수행하고, B슬라이스인 경우에는 참조 픽쳐 리스트0 및 참조 픽쳐 리스트1 모두에 대해 재배열을 수행한다.
참조 픽쳐 리스트0 재배열부(643)는 상기 현재 슬라이스의 슬라이스 타입이 I슬라이스가 아니고, 상기 참조 픽쳐 리스트0의 재배열을 수행하라는 플래그 정보가 참일 경우에 동작한다. 제 1 식별정보 획득부(643A)는 참조번호의 할당 방법을 나타내는 식별 정보를 획득하고, 제 1 참조번호 할당 변경부(643B)에서는 상기 식별 정보에 따라 상기 참조 픽쳐 리스트0의 각 참조 픽쳐에 할당되는 참조 번호를 변경하게 된다.
마찬가지로 참조 픽쳐 리스트1 재배열부(645)는 상기 현재 슬라이스의 슬라이스 타입이 B 슬라이스이고, 상기 참조 픽쳐 리스트1의 재배열을 수행하라는 플래그 정보가 참일 경우에 동작한다. 제 2 식별정보 획득부(645A)는 참조번호의 할당 방법을 나타내는 식별 정보를 획득하고, 제 2 참조번호 할당 변경부(645B)에서는 상기 식별 정보에 따라 상기 참조 픽쳐 리스트1의 각 참조 픽쳐에 할당되는 참조 번호를 변경하게 된다.
상기 참조 픽쳐 리스트0 재배열부(643)와 상기 참조 픽쳐 리스트1 재배열 부(645)를 통해 실제 인터 예측을 위해 사용되는 참조 픽쳐 리스트 정보가 생성된다. 이하 도 13에서는 상기 제 1,2 참조번호 할당 변경부(643B,645B)에서 각 참조 픽쳐에 할당되는 참조 번호를 변경하는 방법을 상세히 설명하도록 한다.
도 13은 본 발명이 적용되는 실시예로서, 참조번호 할당 변경부(643B,645B)의 내부 블록도를 나타낸다.
본 실시예에서는 상기 도 12에 나타난 참조 픽쳐 리스트0 재배열부(643)와 참조 픽쳐 리스트1 재배열부(645)를 함께 설명하도록 한다. 제 1,2 참조번호 할당 변경부(643B,645B)는 시간적 예측을 위한 참조번호 할당 변경부(644A), 장기 참조 픽쳐를 위한 참조번호 할당 변경부(644B), 시점간 예측을 위한 참조번호 할당 변경부(644C) 및 참조번호 할당 변경 종료부(644D)를 포함한다. 제 1,2 식별정보 획득부(643A,645A)에서 획득된 식별 정보에 따라 상기 제 1,2 참조번호 할당 변경부(643B,645B)내의 각 부분들이 동작하게 된다. 이러한 재배열 과정은 참조번호 할당 변경을 종료하라는 식별 정보가 들어올 때까지 수행된다.
예를 들어, 상기 제 1,2 식별정보 획득부(643A,645A)에서 시간적 예측을 위한 참조 번호의 할당을 변경하라는 식별 정보가 전송된 경우, 상기 시간적 예측을 위한 참조번호 할당 변경부(644A)가 동작한다. 상기 시간적 예측을 위한 참조번호 할당 변경부(644A)에서는 상기 식별 정보에 따라 픽쳐 번호의 차이값을 획득한다. 여기서 픽쳐 번호의 차이값이란, 현재 픽쳐의 픽쳐 번호와 예측된 픽쳐 번호의 차이를 의미하고, 상기 예측된 픽쳐 번호란 직전에 할당된 참조 픽쳐의 번호를 의미 할 수 있다. 이렇게 획득된 상기 픽쳐 번호의 차이값을 이용하여 참조번호의 할당을 변경할 수 있다. 이 때, 상기 픽쳐 번호의 차이값은 상기 식별 정보에 따라 상기 예측된 픽쳐 번호로부터 더해지거나 빼질 수 있다.
다른 예로서, 지정한 장기 참조 픽쳐에 참조 번호의 할당을 변경하라는 식별 정보가 전송된 경우, 상기 장기 참조 픽쳐를 위한 참조번호 할당 변경부(644B)가 동작한다. 상기 장기 참조 픽쳐를 위한 참조번호 할당 변경부(644B)에서는 상기 식별 정보에 따라 지정된 픽쳐의 장기 참조 픽쳐 번호를 획득하게 된다.
또 다른 예로서, 시점간 예측을 위한 참조 번호의 할당을 변경하라는 식별 정보가 전송된 경우, 상기 시점간 예측을 위한 참조번호 할당 변경부(644C)가 동작한다. 상기 시점간 예측을 위한 참조번호 할당 변경부(644C)에서는 상기 식별 정보에 따라 시점 정보의 차이값을 획득한다. 여기서 시점 정보의 차이값이란, 현재 픽쳐의 시점 번호와 예측된 시점 번호의 차이를 의미하고, 상기 예측된 시점 번호란 직전에 할당된 참조 픽쳐의 시점 번호를 의미할 수 있다. 이렇게 획득된 상기 시점 정보의 차이값을 이용하여 참조번호의 할당을 변경할 수 있다. 이 때, 상기 시점 정보의 차이값은 상기 식별 정보에 따라 상기 예측된 시점 번호로부터 더해지거나 빼질 수 있다.
또 다른 예로서, 참조번호 할당 변경을 종료하라는 식별 정보가 전송된 경우, 상기 참조번호 할당변경 종료부(644D)가 동작한다. 상기 참조번호 할당변경 종료부(644D)에서는 상기 식별 정보에 따라 참조번호의 할당 변경을 종료하고, 그에 따라 상기 참조 픽쳐 리스트 재배열부(640)에서는 참조 픽쳐 리스트 정보를 생성하 게 된다.
이처럼, 시점간 예측에 이용되는 참조 픽쳐들은 시간적 예측에 이용되는 참조 픽쳐들과 함께 관리될 수 있다. 또는 시점간 예측에 이용되는 참조 픽쳐들을 시간적 예측에 이용되는 참조 픽쳐들과는 별도로 관리할 수도 있다. 이러한 경우에는 상기 시점간 예측에 이용되는 참조 픽쳐들을 관리하기 위한 새로운 정보들이 필요할 수 있다. 이러한 경우에 대해서는 도 15내지 도 19에서 상세히 설명하도록 한다. 이하 도 14에서는 상기 시점간 예측을 위한 참조번호 할당 변경부(644C)에 대하여 구체적인 실시예를 통해 살펴보도록 한다.
도 14는 본 발명이 적용되는 일실시예로서, 시점 정보를 이용하여 참조 픽쳐 리스트를 재배열하는 과정을 설명하기 위해 나타낸 것이다.
본 실시예에서는 현재 픽쳐의 시점 번호(VN)는 3, 복호 픽쳐 버퍼의 크기(DPBsize)는 4이고, 현재 슬라이스의 슬라이스 타입이 P슬라이스인 경우 참조 픽쳐 리스트0의 재배열 과정을 설명하도록 한다. 초기 예측된 시점 번호는 현재 픽쳐의 시점 번호인 3 이고, 시점간 예측을 위한 참조 픽쳐 리스트0의 최초 배열은 4,5,6,2 이다(①). 이 때, 시점 정보의 차이값을 감산하여 시점간 예측을 위한 참조 번호의 할당을 변경하라는 식별 정보가 전송되고, 상기 식별 정보에 따라 상기 시점 정보 차이값으로 1을 획득한다. 그리고 상기 예측된 시점 번호(=3)에 상기 시점 정보 차이값(=1)을 감산하여 새롭게 예측된 시점 번호(=2)가 계산된다. 즉, 시점 번호 2 를 가지는 참조 픽쳐에 시점간 예측을 위한 참조 픽쳐 리스트0의 첫번째 인덱스를 할당한다. 그리고, 이전의 첫번째 인덱스에 할당되어 있던 픽쳐는 상기 참조 픽쳐 리스트0의 제일 뒷부분으로 옮겨질 수 있다. 따라서, 재배열된 상기 참조 픽쳐 리스트0는 2,5,6,4 이다(②). 그 다음에, 다시 시점 정보의 차이값을 감산하여 시점간 예측을 위한 참조 번호의 할당을 변경하라는 식별 정보가 전송되고, 상기 식별 정보에 따라 상기 시점 정보 차이값으로 -2 를 획득한다. 그리고 상기 예측된 시점 번호(=2)에 상기 시점 정보 차이값(= -2)을 감산하여 새롭게 예측된 시점 번호(=4)가 계산된다. 즉, 시점 번호 4 를 가지는 참조 픽쳐에 시점간 예측을 위한 참조 픽쳐 리스트0의 두번째 인덱스를 할당한다. 따라서, 재배열된 상기 참조 픽쳐 리스트0는 2,4,6,5 이다(③). 그 다음에는, 참조번호 할당 변경을 종료하라는 식별 정보가 전송된 경우, 상기 식별 정보에 따라 상기 재배열된 참조 픽쳐 리스트0를 끝으로 참조 픽쳐 리스트0가 생성된다(④). 결국 최종 생성된 시점간 예측을 위한 참조 픽쳐 리스트0의 배열은 2,4,6,5 이다.
시점간 예측을 위한 참조 픽쳐 리스트0의 첫번째 인덱스를 할당한 후 나머지 픽쳐들을 재배열하는 다른 예로서, 각 인덱스에 할당되어 있던 픽쳐가 차례로 바로 뒤의 위치로 옮겨질 수 있다. 즉, 시점 번호가 4인 픽쳐에는 두번째 인덱스를 할당하고, 두번째 인덱스가 할당되어 있던 시점 번호 5인 픽쳐에는 세번째 인덱스를 할당하며, 세번째 인덱스가 할당되어 있던 시점 번호 6인 픽쳐에는 네번째 인덱스를 할당할 수 있게 된다. 따라서, 재배열된 상기 참조 픽쳐 리스트0는 2,4,5,6 이 된다. 이후 재배열되는 과정도 동일하게 적용시킬 수 있다.
상기와 같은 과정을 거쳐 생성된 참조 픽쳐 리스트는 인터 예측에 사용된다. 시점간 예측을 위한 참조 픽쳐 리스트는 시간적 예측을 위한 참조 픽쳐 리스트와 함께 하나의 참조 픽쳐 리스트로 관리될 수 있다. 또한, 별개의 참조 픽쳐 리스트로 관리될 수도 있는데, 이에 대해서는 도 15 내지 도 19에서 살펴보도록 한다.
도 15는 본 발명이 적용되는 다른 실시예로서, 참조 픽쳐 리스트 재배열부(640)의 내부 블록도를 나타낸다.
시점간 예측을 위한 참조 픽쳐 리스트를 별개의 참조 픽쳐 리스트로 관리하기 위해서는 새로운 정보들이 필요할 수 있다. 예를 들어, 먼저 시간적 예측을 위한 참조 픽쳐 리스트를 재배열하고, 경우에 따라서 시점간 예측을 위한 참조 픽쳐 리스트를 재배열하도록 구성할 수 있다.
본 실시예에서 참조 픽쳐 리스트 재배열부(640)는 크게, 시간적 예측을 위한 참조 픽쳐 리스트 재배열부(910)와 NAL 타입 확인부(960) 및 시점간 예측을 위한 참조 픽쳐 리스트 재배열부(970)를 포함한다. 그리고, 상기 시간적 예측을 위한 참조 픽쳐 리스트 재배열부(910)는 슬라이스 타입 확인부(642), 제 3 식별정보 획득부(920), 제 3 참조번호 할당 변경부(930), 제 4 식별정보 획득부(940), 제 4 참조번호 할당 변경부(950)을 포함한다. 상기 제 3 참조번호 할당 변경부(930)는 시간적 예측을 위한 참조번호 할당 변경부(930A), 장기 참조 픽쳐를 위한 참조번호 할당 변경부(930B) 및 참조번호 할당변경 종료부(930C)를 포함한다. 마찬가지로 상기 제 4 참조번호 할당 변경부(950)는 시간적 예측을 위한 참조번호 할당 변경부(950A), 장기 참조 픽쳐를 위한 참조번호 할당 변경부(950B) 및 참조번호 할당변경 종료부(950C)를 포함한다.
시간적 예측을 위한 참조 픽쳐 리스트 재배열부(910)는 시간적 예측에 이용 되는 참조 픽쳐들을 재배열한다. 상기 시간적 예측을 위한 참조 픽쳐 리스트 재배열부(910)에서의 동작은 상기 도 12에서 설명한 참조 픽쳐 리스트 재배열부(640)에서 시점간 예측을 위한 참조 픽쳐에 관한 정보들을 제외하면, 그 동작이 동일하다. 따라서, 상기 도 12로부터 유추가능하므로 이에 대한 설명은 생략하기로 한다.
NAL 타입 확인부(960)에서는 전송된 비트스트림의 NAL 타입을 확인한다. 상기 NAL 타입이 다시점 영상 코딩을 위한 NAL 인 경우, 시점간 예측을 위한 참조픽쳐 리스트 재배열부(970)를 통해 시점간 예측에 이용되는 참조 픽쳐들을 재배열하게 된다. 이렇게 생성된 시점간 예측을 위한 참조픽쳐 리스트는 시간적 예측을 위한 참조픽쳐 리스트 재배열부(910)을 통해 생성된 시간적 예측을 위한 참조픽쳐 리스트와 함께 인터 예측을 위해 사용된다. 그러나, 상기 NAL 타입이 다시점 영상 코딩을 위한 NAL 이 아닌 경우에는 시점간 예측을 위한 참조픽쳐 리스트를 재배열하지 않는다. 이 경우에는 단지 시간적 예측을 위한 참조 픽쳐 리스트만 생성된다. 그리고, 시점간 예측을 위한 참조픽쳐 리스트 재배열부(970)는 시점간 예측에 이용되는 참조 픽쳐들을 재배열하게 된다. 이는 도 16에서 상세히 설명하도록 한다.
도 16은 본 발명이 적용되는 실시예로서, 시점간 예측을 위한 참조 픽쳐 리스트 재배열부(970)의 내부 블록도를 나타낸다.
시점간 예측을 위한 참조 픽쳐 리스트 재배열부(970)는 슬라이스 타입 확인부(642), 제 5 식별정보 획득부(971), 제 5 참조번호 할당 변경부(972), 제 6 식별정보 획득부(973) 및 제 6 참조번호 할당 변경부(974)를 포함한다.
슬라이스 타입 확인부(642)는 현재 슬라이스의 슬라이스 타입을 확인하여, 상기 슬라이스 타입에 따라 참조 픽쳐 리스트0 및/또는 참조 픽쳐 리스트1의 재배열을 수행할지 여부가 결정된다. 상기 슬라이스 타입 확인부(642)에 대한 자세한 설명은 상기 도 12로부터 유추가능하므로 생략하기로 한다.
제 5,6 식별정보 획득부(971,973)는 참조번호의 할당 방법을 나타내는 식별 정보를 획득하고, 제 5,6 참조번호 할당 변경부(972,974)에서는 각각 상기 식별 정보에 따라 상기 참조 픽쳐 리스트0,1의 각 참조 픽쳐에 할당되는 참조 번호를 변경하게 된다. 여기서의 참조번호는 참조 픽쳐의 시점 번호만을 의미할 수 있다. 또한, 상기 참조번호의 할당 방법을 나타내는 식별 정보는 플래그 정보일 수 있다. 예를 들어, 플래그 정보가 참일 경우에는 시점 번호의 할당을 변경하고, 거짓일 경우에는 시점 번호의 재배열 과정을 종료할 수 있다. 만약 상기 플래그 정보가 참일 경우, 상기 제 5,6 참조번호 할당 변경부(972,974)는 상기 플래그 정보에 따라 시점 번호의 차이값을 획득할 수 있다. 여기서 시점 번호의 차이값이란, 현재 픽쳐의 시점 번호와 예측된 픽쳐의 시점 번호 사이의 차이를 의미하고, 상기 예측된 픽쳐의 시점 번호란 직전에 할당된 참조 픽쳐의 시점 번호를 의미할 수 있다. 이렇게 획득된 상기 시점 번호의 차이값을 이용하여 시점 번호의 할당을 변경할 수 있다. 이 때, 상기 시점 번호의 차이값은 상기 식별 정보에 따라 상기 예측된 픽쳐의 시점 번호로부터 더해지거나 빼질 수 있다.
이처럼, 시점간 예측을 위한 참조 픽쳐 리스트를 별개의 참조 픽쳐 리스트로 관리하기 위해서는 그 신택스 구조 또한 새롭게 정의할 필요가 있다. 따라서, 도 15와 도 16에서 설명한 내용에 대한 일실시예로서, 도 17,18 및 도 19에서는 그 신 택스를 설명한다.
도 17 및 도 18은 본 발명이 적용되는 일실시예로서, 참조 픽쳐 리스트 재배열을 위한 신택스를 나타낸다.
도 17은 상기 도 15에서 나타낸 시간적 예측을 위한 참조픽쳐 리스트 재배열부(910)의 동작을 신택스로 나타낸 것이다. 상기 도 15의 각 블록들과 비교해보면, 상기 슬라이스 타입 확인부(642)는 (S1),(S6)에 해당되고, 상기 제 3 식별정보 획득부(920)은 (S2), 상기 제 4 식별정보 획득부(940)은 (S7)에 해당된다. 그리고, 상기 제 3 참조번호 할당 변경부(930)의 내부 블록도들은 각각 (S3),(S4),(S5)에 해당되고, 상기 제 4 참조번호 할당 변경부(950)의 내부 블록도들은 각각 (S8),(S9),(S10)에 해당된다.
도 18은 상기 도 15 및 도 16에서 나타낸 NAL 타입 확인부(960)와 시점간 예측을 위한 참조픽쳐 리스트 재배열부(970)의 동작을 신택스로 나타낸 것이다. 상기 도 15와 도 16의 각 블록들과 비교해보면, 상기 NAL 타입 확인부(960)는 (S11)에 해당되고, 상기 슬라이스 타입 확인부(642)는 (S13),(S16)에 해당되고, 상기 제 5 식별정보 획득부(971)는 (S14), 상기 제 6 식별정보 획득부(973)는 (S17)에 해당된다. 그리고, 상기 제 5 참조번호 할당 변경부(972)는 (S15)에 해당되고, 상기 제 6 참조번호 할당 변경부(974)는 (S18)에 해당된다.
도 19는 본 발명이 적용되는 다른 일실시예로서, 참조 픽쳐 리스트 재배열을 위한 신택스를 나타낸다.
도 19는 상기 도 15 및 도 16에서 나타낸 NAL 타입 확인부(960)와 시점간 예 측을 위한 참조픽쳐 리스트 재배열부(970)의 동작을 다른 신택스의 예로 나타낸 것이다. 상기 도 15와 도 16의 각 블록들과 비교해보면, 상기 NAL 타입 확인부(960)는 (S21)에 해당되고, 상기 슬라이스 타입 확인부(642)는 (S22),(S25)에 해당되고, 상기 제 5 식별정보 획득부(971)는 (S23), 상기 제 6 식별정보 획득부(973)는 (S26)에 해당된다. 그리고, 상기 제 5 참조번호 할당 변경부(972)는 (S24)에 해당되고, 상기 제 6 참조번호 할당 변경부(974)는 (S27)에 해당된다.
위에서 살펴본 바와 같이, 시점간 예측을 위한 참조 픽쳐 리스트는 인터 예측부(700)에서 이용될 수 있는데, 휘도 보상을 수행함에 있어서도 적용이 가능할 수 있다. 휘도 보상은 움직임 추정/움직임 보상을 수행하는 과정에서 적용될 수 있는데, 이때 현재 픽쳐가 다른 시점에 있는 참조 픽쳐를 이용하게 되는 경우 상기 시점간 예측을 위한 참조 픽쳐 리스트를 이용함으로써 보다 효율적인 휘도 보상을 수행할 수 있다. 이하 위한 본 발명을 적용한 휘도 보상의 실시예들을 살펴보도록 한다.
도 20은 본 발명이 적용되는 일실시예로서, 현재 블록의 휘도 차분 값을 획득하는 과정을 설명하기 위한 도면을 나타낸다.
휘도 보상은 휘도 변이에 따라서 적응적으로 움직임 보상된 비디오 신호를 복호화하는 과정을 의미하며, 비디오 신호의 예측 구조가 인터 뷰 예측, 인트라 뷰 예측 등에 적용될 수 있다.
휘도 보상은 복호 대상이 되는 블록에 대응하는 휘도 차분 레지듀얼과, 휘도 차분 예측값을 이용하여 비디오 신호를 복호화하는 과정을 의미한다. 여기서, 휘도 차분 예측값은 복호 대상이 되는 블록에 존재하는 주변 블록으로부터 획득된다. 또한, 주변 블록으로부터 휘도 차분 예측값을 획득하는 과정은 주변 블록의 참조 정보를 이용하여 결정하되, 주변 블록을 탐색하는 과정에서 순서 및 방향이 고려된다. 마지막으로, 주변 블록은 이미 복호화된 블록을 의미하되, 시점 또는 시간에 대한 동일 픽쳐 내의 중복성을 고려하여 복호화된 영상 혹은 서로 다른 픽쳐 내의 중복성을 고려하여 복호화된 영상을 의미한다.
현재 블록과 후보 참조 블록(candidate reference block)의 유사성을 비교할 때 양 블록 사이의 휘도 차이를 고려하여야 한다. 상기 휘도 차이를 보상하기 위하여 새로운 움직임 추정/움직임 보상(motion compensation)이 수행된다. 새로운 SAD는 다음 수학식 1을 이용하여 구할 수 있다.
수학식 1
수학식 2
여기서, Mcurr 는 현재 블록의 평균 화소값을 나타내고, Mref 는 참조 블록의 평균 화소값을 나타낸다. f(i,j) 는 현재 블록의 화소값을 나타내고, r(i+x, j+y) 는 참조 블록의 화소값를 나타낸다. 상기 수학식 2의 새로운 SAD에 기초하여 움직임 추정을 수행함으로써 상기 현재 블록과 상기 참조 블록 사이의 평균 화소값 차이가 획득될 수 있다. 상기 획득된 평균 화소값 차이를 휘도 차분값(IC_offset)이라 한다.
휘도 보상이 적용된 움직임 추정이 수행되는 경우, 휘도 차분 값과 움직임 벡터가 구해지고 휘도 보상은 상기 휘도 차분 값과 상기 움직임 벡터를 이용하여 수학식 3과 같이 수행된다.
수학식 3
여기서, NewR(i,j)는 휘도 보상이 수행된 오차값(residual)을 나타내고, (x', y')는 움직임 벡터를 나타낸다.
휘도 차분 값(Mcurr-Mref)은 디코딩 장치로 전송되어야 한다. 디코딩 장치에서의 휘도 보상은 다음과 같이 수행된다.
수학식 4
NewR"(i,j)는 복원된, 휘도 보상이 수행된 오차값(residual)을 나타내고, f'(i,j)는 복원된 현재 블록의 화소값을 나타낸다.
현재 블록을 복원하기 위해서는 휘도 차분 값이 디코딩 장치에 전송되어야 하고, 상기 휘도 차분 값은 이웃 블록들의 정보로부터 예측될 수 있다. 상기 휘도 차분 값을 코딩할 비트수를 더 감소시키기 위하여, 현재 블록의 휘도 차분 값(IC_offset)과 이웃 블록의 휘도 차분 값(predIC _ offset)과의 차이값(RIC_offset)만 보낼 수 있다. 이는 아래 수학식 5와 같다.
수학식 5
도 21은 본 발명이 적용되는 실시예로서, 현재 블록에 대한 휘도 보상을 수행하는 과정을 설명하기 위한 흐름도를 나타낸다.
먼저 비디오 신호로부터, 현재 블록의 이웃 블록과 상기 이웃 블록이 참조하는 블록의 평균 화소값 차이를 나타내는 상기 이웃 블록의 휘도 차분값을 추출한다(S2110). 상기 휘도 차분값을 이용하여 상기 현재 블록의 휘도 차분 예측값을 획득한다(S2120). 상기 획득된 휘도 차분 예측값을 이용하여 상기 현재 블록의 휘도 차분값을 복원할 수 있게 된다.
이 때, 상기 휘도 차분 예측값을 획득함에 있어서 다양한 방법으로 접근할 수 있다. 예를 들어, 상기 이웃 블록의 휘도 차분 값으로부터 상기 현재 블록의 휘도 차분 값을 예측하기에 앞서 현재 블록의 참조 번호(reference index)와 상기 이 웃 블록의 참조 번호가 동일한지 여부를 확인하고, 그 확인 결과에 따라 어떤 이웃 블록을 이용할지, 또는 어떤 값을 이용할지가 결정될 수 있다. 또한, 이웃 블록의 정보를 탐색하는 과정에서 순서 또는 방향이 주어질 수 있으며, 정해진 순서 또는 방향에 따라 휘도 보상에 필요한 휘도 차분 예측값을 획득할 수도 있다. 다른 예로, 상기 휘도 차분 예측값을 획득할 때, 상기 현재 블록의 휘도 보상 수행 여부를 나타내는 플래그 정보(IC_flag)도 이용할 수 있다. 상기 현재 블록의 플래그 정보도 이웃 블록들의 정보를 이용하여 예측할 수 있다. 또 다른 예로, 상기 참조 번호를 확인하는 방법과 플래그 정보를 예측하는 방법 모두를 이용하여 상기 휘도 차분 예측값을 획득할 수도 있다. 이하 도 22 내지 도 24에서 상세하게 설명하기로 한다.
도 22는 본 발명이 적용되는 일실시예로서, 이웃 블록의 정보를 이용하여 현재 블록의 휘도 차분 예측값을 획득하는 과정을 설명하기 위한 도면을 나타낸다.
현재 블록의 휘도 차분 예측값을 획득할 때 이웃 블록의 정보를 이용할 수 있다. 본 명세서에서 블록이라 함은 매크로블록 또는 서브매크로블록을 모두 포함한다. 예를 들어, 상기 이웃 블록의 휘도 차분 값을 이용하여 상기 현재 블록의 휘도 차분 값을 예측할 수 있는데, 이에 앞서 현재 블록의 참조 번호(reference index)와 상기 이웃 블록의 참조 번호가 동일한지 여부를 확인하고, 그 확인 결과에 따라 어떤 이웃 블록을 이용할지, 또는 어떤 값을 이용할지가 결정될 수 있다. "refIdxLX" 는 현재 블록의 참조 번호를 나타내고, "refIdxLXN" 은 N 블록의 참조 번호를 나타내며, 여기서 N은 현재 블록에 이웃한 블록의 표시로서 A, B or C 를 나타낸다. "PredIC _ offsetN" 은 이웃한 N 블록의 휘도 보상을 위한 휘도 차분 값을 나타낸다. 여기서, 현재 블록의 우측 상단에 있는 블록인 C 블록을 이용할 수 없는 경우, C 블록 대신 D 블록을 사용할 수 있다. 즉, D 블록에 대한 정보를 C 블록에 대한 정보로 사용할 수 있다. 또한, B 블록과 C 블록을 모두 이용할 수 없는 경우, 대신하여 A 블록을 사용할 수 있다. 즉, A 블록에 대한 정보를 각각 B 블록에 대한 정보, C 블록에 대한 정보로 사용할 수 있다.
다른 예로, 상기 휘도 차분 예측값을 획득할 때, 상기 현재 블록의 휘도 보상 수행 여부를 나타내는 플래그 정보(IC_flag)도 이용할 수 있다. 또는 상기 참조 번호를 확인하는 방법과 플래그 정보를 예측하는 방법 모두를 이용하여 상기 휘도 차분 예측값을 획득할 수도 있다. 이 때, 상기 이웃 블록의 플래그 정보가 휘도 보상을 수행하지 않았음을 나타내는 경우, 즉 IC_flag == 0 인 경우 상기 이웃 블록의 휘도 차분값인 PredIC _ offsetN 는 0 으로 셋팅된다.
도 23은 본 발명이 적용되는 일실시예로서, 이웃 블록의 정보를 이용하여 휘도 보상을 수행하는 과정을 나타내는 흐름도이다.
디코딩 장치에서는 휘도 보상을 수행하기 위하여 비디오 신호로부터 참조 블록의 평균 화소값, 상기 현재 블록과 상기 참조 블록의 참조 번호 등을 추출하고, 이러한 정보들을 이용하여 현재 블록의 휘도 차분 예측값을 획득할 수 있다. 그리고, 현재 블록의 휘도 차분 값과 상기 휘도 차분 예측값 사이의 차이값인 휘도 차분 레지듀얼을 획득하고, 상기 획득된 휘도 차분 레지듀얼과 상기 휘도 차분 예측 값을 이용하여 상기 현재 블록의 휘도 차분 값을 복원할 수 있다. 이때, 현재 블록의 휘도 차분 예측값을 획득함에 있어서, 이웃 블록의 정보를 이용할 수 있다. 예를 들어, 상기 이웃 블록의 휘도 차분 값을 이용하여 상기 현재 블록의 휘도 차분 값을 예측할 수 있는데, 이에 앞서 현재 블록의 참조 번호(reference index)와 상기 이웃 블록의 참조 번호가 동일한지 여부를 확인하고, 그 확인 결과에 따라 어떤 이웃 블록을 이용할지, 또는 어떤 값을 이용할지가 결정될 수 있다.
그 구체적 실시예로, 현재 블록의 이웃 블록과 상기 이웃 블록이 참조하는 블록의 평균 화소값 차이를 나타내는 상기 이웃 블록의 휘도 차분값을 비디오 신호로부터 추출한다(S2310). 현재 블록의 참조 번호와 이웃 블록들의 참조 번호가 동일한지 여부를 확인한다(S2320). 확인 결과, 현재 블록의 참조 번호와 동일한 참조 번호를 가지는 이웃 블록이 존재하는 경우, 그 이웃 블록이 1개만 존재하는지 여부를 확인한다(S2325). 확인 결과, 현재 블록의 참조 번호와 동일한 참조 번호를 가지는 이웃 블록이 1개만 존재하는 경우, 상기 참조 번호가 동일한 이웃 블록의 휘도 차분 값을 현재 블록의 휘도 차분 예측값에 할당하게 된다(S2330). 즉, "PredIC_offset= PredIC _ offsetN" 이 된다. 상기 S2320 단계의 확인 결과에 따라 현재 블록의 참조 번호와 동일한 참조 번호를 가지는 이웃 블록이 존재하지 않는 경우 또는 상기 S2325 단계의 확인 결과에 따라 현재 블록의 참조 번호와 동일한 참조 번호를 가지는 이웃 블록이 2이상 존재하는 경우에는 상기 이웃 블록들의 휘도 차분 값들(PredIC _ offsetN, N = A, B or C)의 중간값(Median)을 현재 블록의 휘도 차분 예측 값에 할당하게 된다(S2340). 즉, "PredIC _ offset = Median(PredIC _ offsetA, PredIC _ offsetB, PredIC_offsetC)" 이 된다.
도 24는 본 발명이 적용되는 다른 일실시예로서, 이웃 블록의 정보를 이용하여 휘도 보상을 수행하는 과정을 나타내는 흐름도이다.
디코딩부에서는 휘도 보상을 수행하기 위하여 현재 블록의 휘도 차분 값을 복원하여야 한다. 이때, 현재 블록의 휘도 차분 예측값을 획득함에 있어서, 이웃 블록의 정보를 이용할 수 있다. 예를 들어, 상기 이웃 블록의 휘도 차분 값을 이용하여 상기 현재 블록의 휘도 차분 값을 예측할 수 있는데, 이에 앞서 현재 블록의 참조 번호(reference index)와 상기 이웃 블록의 참조 번호가 동일한지 여부를 확인하고, 그 확인 결과에 따라 어떤 이웃 블록을 이용할지, 또는 어떤 값을 이용할지가 결정될 수 있다.
그 구체적 실시예로, 현재 블록의 이웃 블록과 상기 이웃 블록이 참조하는 블록의 평균 화소값 차이를 나타내는 상기 이웃 블록의 휘도 차분값을 비디오 신호로부터 추출한다(S2410). 현재 블록의 참조 번호와 이웃 블록들의 참조 번호가 동일한지 여부를 확인한다(S2420). 확인 결과, 현재 블록의 참조 번호와 동일한 참조 번호를 가지는 이웃 블록이 존재하는 경우, 그 이웃 블록이 1개만 존재하는지 여부를 확인한다(S2430). 확인 결과, 현재 블록의 참조 번호와 동일한 참조 번호를 가지는 이웃 블록이 1개만 존재하는 경우, 상기 참조 번호가 동일한 이웃 블록의 휘도 차분 값을 현재 블록의 휘도 차분 예측값에 할당하게 된다(S2440). 즉, "PredIC_offset = PredIC _ offsetN" 이 된다. 상기 S2420 단계의 확인 결과에 따라 현재 블록의 참조 번호와 동일한 참조 번호를 가지는 이웃 블록이 존재하지 않는 경우, 현재 블록의 휘도 차분 예측값은 "0"으로 할당된다(S2460). 즉, "PredIC _ offset= 0" 이 된다. 또한, 상기 S2430 단계의 확인 결과에 따라 현재 블록의 참조 번호와 동일한 참조 번호를 가지는 이웃 블록이 2이상 존재하는 경우에는 현재 블록의 참조 번호와 다른 참조 번호를 가지는 이웃 블록은 "0"으로 셋팅하고, 상기 "0"으로 셋팅된 값을 포함하여 이웃 블록들의 휘도 차분 값들의 중간값(Median)을 현재 블록의 휘도 차분 예측값에 할당하게 된다(S2450). 즉, "PredIC _ offset = Median(PredIC _ offsetA, PredIC_offsetB, PredIC _ offsetC)" 이 된다. 단, 현재 블록의 참조 번호와 다른 참조 번호를 가지고 있는 이웃 블록이 존재하는 경우라면, 여기서 PredIC _ offsetA, PredIC _ offsetB 또는 PredIC _ offsetC 중 0 값이 포함될 수 있다.
또한, 휘도 보상 외에도 픽쳐의 시점을 식별하는 시점 정보 및 시점간 예측을 위한 참조 픽쳐 리스트는 가상 시점의 픽쳐를 합성함에 있어서도 적용이 가능할 수 있다. 상기 가상 시점의 픽쳐를 합성하는 과정에서 다른 시점에 있는 픽쳐를 참조하게 되므로, 상기 시점 정보 및 상기 시점간 예측을 위한 참조 픽쳐 리스트를 이용하게 되는 경우 보다 효율적으로 가상 시점의 픽쳐를 합성할 수 있게 된다. 이하 본 발명이 적용되는, 가상 시점의 픽쳐를 합성하는 방법의 실시예들을 살펴보도록 한다.
도 25는 본 발명이 적용된 일실시예로서, 가상 시점의 픽쳐를 이용하여 현재 픽쳐를 예측하는 과정을 설명하기 위해 나타낸 것이다.
다시점 비디오 코딩에서 시점 간 예측(inter-view prediction)을 수행함에 있어서, 현재 픽쳐와 다른 시점에 있는 픽쳐를 참조 픽쳐로 하여 현재 픽쳐를 예측할 수 있다. 하지만, 현재 픽쳐에 이웃하는 시점에 있는 픽쳐들을 이용하여 새로운 시점의 픽쳐를 획득하고, 상기 획득된 새로운 시점의 픽쳐를 이용하여 현재 픽쳐를 예측할 경우 보다 정확한 예측이 가능할 수 있다. 이 때, 각 이웃하는 시점의 픽쳐들을 이용하기 위해 또는 원하는 특정 시점의 픽쳐들을 이용하기 위해, 픽쳐의 시점을 나타내는 시점 식별자가 이용될 수 있다. 이러한 새로운 시점을 생성하게 될 경우, 상기 새로운 시점을 생성할지 여부를 알려주는 특정 신택스가 존재할 것이며, 이 신택스가 상기 새로운 시점을 생성할 것임을 알려주었을 때, 상기 시점 식별자를 이용하여 새로운 시점을 생성할 수 있다. 상기 시점 합성 예측부를 통해 획득된 새로운 시점의 픽쳐들은 참조 픽쳐로 사용될 수도 있으며, 이 경우 상기 새로운 시점의 픽쳐들에 상기 시점 식별자를 할당할 수 있다. 또한, 움직임 벡터를 전송하기 위해 움직임 벡터 예측을 수행하는 과정에서, 현재 블록의 이웃 블록들이 상기 시점 합성 예측부를 통해 획득된 픽쳐를 참조할 수 있다. 이 때, 상기 새로운 시점의 픽쳐를 참조 픽쳐로 이용하기 위해 픽쳐의 시점을 나타내는 시점 식별자가 이용될 수 있다.
도 26은 본 발명이 적용된 실시예로서, MVC에서 시점 간 예측을 수행함에 있어서 새로운 시점의 픽쳐를 합성하기 위한 과정을 나타내는 흐름도이다.
현재 픽쳐에 이웃하는 시점에 있는 픽쳐들을 이용하여 새로운 시점의 픽쳐를 합성하고, 상기 합성된 새로운 시점의 픽쳐를 이용하여 현재 픽쳐를 예측할 경우 보다 정확한 예측이 가능할 수 있다. 이 때, 새로운 시점의 픽쳐를 합성하게 될 경우, 상기 새로운 시점의 픽쳐를 합성하여 현재 픽쳐의 예측을 수행할지 여부를 알려주는 특정 신택스가 존재하여, 경우에 따라 현재 픽쳐의 예측 수행 여부를 판단한다면 보다 효율적인 코딩이 가능하다. 상기 특정 신택스를 시점 간 합성 예측 식별자라 정의하고, 이는 다음과 같다. 예를 들어, 슬라이스 계층에서 새로운 시점의 픽쳐를 합성하여 현재 픽쳐의 예측을 수행할지 여부를 나타내는 view_synthesize_pred_flag 를 정의할 수 있고, 또는 매크로블록 계층에서 새로운 시점의 픽쳐를 합성하여 현재 픽쳐의 예측을 수행할지 여부를 나타내는 view_syn_pred_flag 를 정의할 수 있다. view_synthesize_pred_flag = 1 인 경우, 현재 슬라이스는 현재 슬라이스에 이웃하는 시점의 슬라이스를 이용하여 새로운 시점의 슬라이스를 합성하고, 상기 합성된 슬라이스를 이용하여 현재 슬라이스를 예측할 수 있다. view_synthesize_pred_flag = 0 인 경우에는 새로운 시점의 슬라이스를 합성하지 않는다. 마찬가지로, view_syn_pred_flag = 1 인 경우, 현재 매크로블록은 현재 매크로블록에 이웃하는 시점의 매크로블록을 이용하여 새로운 시점의 매크로블록을 합성하고, 상기 합성된 매크로블록을 이용하여 현재 매크로블록을 예측할 수 있다. view_syn_pred_flag = 0 인 경우에는 새로운 시점의 매크로블록을 합성하지 않는다. 따라서, 본 발명에서는 비디오 신호로부터 가상 시점의 픽쳐를 획득할 지 여부를 나타내는 상기 시점 간 합성 예측 식별자를 추출하고, 상기 시점 간 합성 예측 식별자를 이용하여 가상 시점의 픽쳐를 획득할 수 있다.
위에서 살펴본 바와 같이, 픽쳐의 시점을 식별하는 시점 정보 및 시점간 예측을 위한 참조 픽쳐 리스트는 인터 예측부(700)에서 이용될 수 있는데, 가중치 예측을 수행함에 있어서도 적용이 가능할 수 있다. 가중치 예측은 움직임 보상을 수행하는 과정에서 적용될 수 있는데, 이때 현재 픽쳐가 다른 시점에 있는 참조 픽쳐를 이용하게 되는 경우 상기 시점 정보 및 상기 시점간 예측을 위한 참조 픽쳐 리스트를 이용함으로써 보다 효율적인 가중치 예측을 수행할 수 있다. 이하 위한 본 발명을 적용한 가중치 예측 방법의 실시예들을 살펴보도록 한다.
도 27은 본 발명이 적용되는 비디오 신호 코딩에 있어서, 슬라이스 타입에 따라 가중치 예측을 수행하는 흐름도를 나타낸다.
가중치 예측(weighted prediction)은 P 또는 B 슬라이스 매크로블록 내의 움직임 보상된 예측 데이터의 샘플을 스케일링하는 방법이다. 가중치 예측 방법은 참조 픽쳐들에 대한 정보로부터 획득된 가중치 계수 정보를 이용하여 현재 픽쳐에 대한 가중치 예측을 수행하는 명시적인(explicit) 모드 또는 현재 픽쳐와 참조 픽쳐들 사이의 거리 정보로부터 획득된 가중치 계수 정보를 이용하여 현재 픽쳐에 대한 가중치 예측을 수행하는 암시적인(implicit) 모드를 포함한다. 이러한 가중치 예측 방법은 적용하고자 하는 매크로블록의 슬라이스 타입에 따라 다르게 적용될 수 있다. 예를 들어, 상기 명시적인 모드는 가중치 예측이 수행되는 현재 매크로블록이 P 슬라이스의 매크로블록인지 B 슬라이스의 매크로블록인지에 따라 가중치 계수 정보가 달라질 수 있다. 그리고, 명시적인 모드에서의 가중치 계수는 인코더에 의해 결정되고 슬라이스 헤더 내에 포함되어 전송될 수 있다. 반면에, 암시적인 모드에서의 가중치 계수는 List 0와 List 1 참조 픽쳐의 상대적인 시간적 위치에 기초하여 획득될 수 있다. 예를 들어, 참조 픽쳐가 현재 픽쳐에 시간적으로 가까우면 큰 가중치 계수가 적용될 수 있고, 참조 픽쳐가 현재 픽쳐로부터 시간적으로 멀리 떨어져 있으면 작은 가중치 계수가 적용될 수 있다. 따라서, 본 발명에서는 먼저 비디오 신호로부터 가중치 예측을 적용하고자 하는 매크로블록의 슬라이스 타입을 추출한다(S2710). 상기 추출된 슬라이스 타입에 따라 현재 매크로블록에 대해 가중치 예측을 수행할 수 있다(S2720). 여기서, 상기 슬라이스 타입은 시점 간 예측(inter-view prediction)이 적용된 매크로블록을 포함할 수 있다. 시점 간 예측이란, 현재 픽쳐와 다른 시점에 있는 픽쳐의 정보를 이용하여 현재 픽쳐를 예측하는 것을 말한다. 예를 들어, 상기 슬라이스 타입은 현재 픽쳐와 같은 시점에 있는 픽쳐의 정보를 이용하여 예측을 수행하는 시간적 예측(temporal prediction)이 적용된 매크로블록, 상기 시점 간 예측이 적용된 매크로블록 및 시간적 예측과 시점 간 예측이 함께 적용된 매크로블록을 포함할 수 있다. 또한, 상기 슬라이스 타입은 시간적 예측이 적용된 매크로블록만을 포함할 수도 있고, 시점 간 예측이 적용된 매크로블록만을 포함할 수도 있으며, 상기 두 가지 예측이 모두 적용된 매크로블록만을 포함할 수도 있으며, 상기 매크로블록 유형 중 두 가지 유형 또는 세 가지 유형 모두를 포함할 수도 있다. 이에 대해서는 도 28에서 상세히 설명하도록 한다. 이처럼, 비디오 신호로부터 시점 간 예측이 적용된 매크로블록을 포함하는 슬라이스 타입이 추출된 경우, 현재 픽쳐와 다른 시점에 있는 픽쳐에 대한 정보를 이용하 여 가중치 예측을 수행하게 된다. 여기서, 다른 시점에 있는 픽쳐에 대한 정보를 이용하기 위하여 픽쳐의 시점을 구별하는 시점 식별자를 이용할 수 있다.
도 28은 본 발명이 적용되는 비디오 신호 코딩에 있어서, 슬라이스 타입에서 허용되는 매크로블록 유형들의 일실시예를 나타낸다.
상기 도 28에 도시된 바와 같이, 먼저 시점 간 예측에 의한 P 슬라이스 타입을 VP(View_P)라 정의할 때, 상기 시점 간 예측에 의한 P 슬라이스 타입에는 인트라 매크로블록(I), 현재 시점(current view)에 있는 하나의 픽쳐로부터 예측되는 매크로블록(P) 또는 다른 시점(different view)에 있는 하나의 픽쳐로부터 예측되는 매크로블록(VP)이 허용된다(2810). 그리고, 시점 간 예측에 의한 B 슬라이스 타입을 VB(View_B)라 정의할 때, 상기 시점 간 예측에 의한 B 슬라이스 타입에는 인트라 매크로블록(I), 현재 시점에 있는 적어도 하나 이상의 픽쳐로부터 예측되는 매크로블록(P or B) 또는 적어도 하나 이상의 다른 시점에 있는 픽쳐로부터 예측되는 매크로블록(VP or VB)이 허용된다(2820). 또한, 시간적 예측과 시점 간 예측 각각 또는 모두를 이용하여 예측 수행된 슬라이스 타입을 Mixed 라 정의할 때, 상기 Mixed 슬라이스 타입에는 인트라 매크로블록(I), 현재 시점에 있는 적어도 하나 이상의 픽쳐로부터 예측되는 매크로블록(P or B) 또는 적어도 하나 이상의 다른 시점에 있는 픽쳐로부터 예측되는 매크로블록(VP or VB) 또는 현재 시점에 있는 픽쳐와 다른 시점에 있는 픽쳐 모두를 이용하여 예측된 매크로블록(Mixed)이 허용된다(2830). 여기서, 다른 시점에 있는 픽쳐를 이용하기 위하여 픽쳐의 시점을 구별하는 시점 식별자를 이용할 수 있다.
도 29 ∼ 도 30은 본 발명이 적용되는 일실시예로서, 새롭게 정의된 슬라이스 타입에 따라 가중치 예측을 수행하는 신택스를 나타낸다.
상기 도 28에서 살펴본 바와 같이, 슬라이스 타입이 VP, VB, Mixed 로 정의될 경우, 기존(예를 들어, H.264)의 가중치 예측을 수행하는 신택스는 도 29 ∼ 도 30과 같이 변경될 수 있다. 예를 들어, 슬라이스 타입이 시간적 예측에 의한 P 슬라이스인 경우에는 "if(slice_type != VP ∥ slice_type != VB) " 부분이 추가되고(2910), 슬라이스 타입이 시간적 예측에 의한 B 슬라이스인 경우에는 if 문이 "if(slice_type == B ∥ slice_type == Mixed) " 와 같이 변경될 수 있다(2920). 또한, VP 및 VB 슬라이스 타입이 새롭게 정의됨으로써, 도 29와 유사한 형식으로 새롭게 추가될 수 있다(2930,2940). 이 경우, 시점에 대한 정보가 추가되기 때문에 신택스 요소들은 "시점(view)"부분을 포함하고 있다. 그 예로, "luma_log2_view_weight_denom, chroma_log2_view_weight_denom" 등을 들 수 있다.
도 31은 본 발명이 적용되는 비디오 신호 코딩에 있어서, 시점 간 가중치 예측 수행 여부를 나타내는 플래그 정보를 이용하여 가중치 예측을 수행하는 흐름도를 나타낸다.
본 발명이 적용되는 비디오 신호 코딩에 있어서, 가중치 예측을 수행할지 여부를 나타내는 플래그 정보를 사용할 경우 보다 효율적인 코딩이 가능해진다. 이러한 플래그 정보는 슬라이스 타입에 기초하여 정의할 수 있다. 예를 들어, 가중치 예측이 P 슬라이스와 SP 슬라이스에 적용될지 여부를 나타내는 플래그 정보가 존재할 수 있고, B 슬라이스에 적용될지 여부를 나타내는 플래그 정보가 존재할 수 있 다. 그 구체적 예로, 상기 플래그 정보를 각각 "weighted_pred_flag", "weighted_bipred_idc"로 정의할 수 있다. weighted_pred_flag = 0 이면 가중치 예측이 P 슬라이스와 SP 슬라이스에 적용되지 않는 것을 나타내고, weighted_pred_flag = 1 이면 가중치 예측이 P 슬라이스와 SP 슬라이스에 적용되는 것을 나타낸다. 그리고, weighted_bipred_idc = 0 이면 디폴트(default) 가중치 예측이 B 슬라이스에 적용되는 것을 나타내고, weighted_bipred_idc = 1 이면 명시적인(explicit) 가중치 예측이 B 슬라이스에 적용되는 것을 나타내며, weighted_bipred_idc = 2 이면 암시적인(implicit) 가중치 예측이 B 슬라이스에 적용되는 것을 나타낸다. 또한, 다시점 비디오 코딩에 있어서는, 시점 간의 픽쳐에 대한 정보를 이용하여 가중치 예측을 수행할지 여부를 나타내는 플래그 정보를 슬라이스 타입에 기초하여 정의할 수도 있다.
먼저 비디오 신호로부터 슬라이스 타입 및 시점 간 가중치 예측 수행 여부를 나타내는 플래그 정보를 추출한다(S3110,S3120). 여기서, 상기 슬라이스 타입은, 예를 들어, 현재 픽쳐와 같은 시점에 있는 픽쳐의 정보를 이용하여 예측을 수행하는 시간적 예측이 적용된 매크로블록 및 현재 픽쳐와 다른 시점에 있는 픽쳐의 정보를 이용하여 예측을 수행하는 시점 간 예측이 적용된 매크로블록을 포함할 수 있다. 상기 추출된 슬라이스 타입과 플래그 정보에 기초하여 가중치 예측 모드를 결정할 수 있다(S3130). 결정된 가중치 예측 모드에 따라 가중치 예측을 수행할 수 있다(S3140). 여기서, 플래그 정보는 상기 예를 들어 설명했던 "weighted_pred_flag" , "weighted_bipred_idc" 외에, 현재 픽쳐와 다른 시점에 있 는 픽쳐의 정보를 이용하여 가중치 예측을 수행할지 여부를 나타내는 플래그 정보를 포함할 수 있다. 이에 대해서는 도 32에서 상세히 설명하도록 한다. 이처럼, 현재 매크로블록의 슬라이스 타입이 시점 간 예측이 적용된 매크로블록을 포함하는 슬라이스 타입인 경우에 다른 시점의 픽쳐에 대한 정보를 이용하여 가중치 예측을 수행할지 여부를 나타내는 플래그 정보를 사용할 경우 보다 효율적인 코딩이 가능해진다.
도 32는 본 발명이 적용되는 일실시예로서, 현재 픽쳐와 다른 시점에 있는 픽쳐의 정보를 이용하여 가중치 예측을 수행할지 여부를 나타내는 플래그 정보에 따른 가중치 예측 방법을 설명하기 위한 것이다.
예를 들어, 현재 픽쳐와 다른 시점에 있는 픽쳐의 정보를 이용하여 가중치 예측을 수행할지 여부를 나타내는 플래그 정보를 "view_weighted_pred_flag" , "view_weighted_bipred_idc" 로 정의할 수 있다. view_weighted_pred_flag = 0 이면 가중치 예측이 VP 슬라이스에 적용되지 않는 것을 나타내고, view_weighted_pred_flag = 1 이면 명시적인(explicit) 가중치 예측이 VP 슬라이스에 적용되는 것을 나타낸다. 그리고, view_weighted_bipred_idc = 0 이면 디폴트(default) 가중치 예측이 VB 슬라이스에 적용되는 것을 나타내고, view_weighted_bipred_idc = 1 이면 명시적인 가중치 예측이 VB 슬라이스에 적용되는 것을 나타내며, view_weighted_bipred_idc = 2 이면 암시적인(implicit) 가중치 예측이 VB 슬라이스에 적용되는 것을 나타낸다. 암시적인 가중치 예측이 VB 슬라이스에 적용되는 경우, 가중치 계수는 현재 시점과 다른 시점 간의 상대적인 거리에 의하여 획득될 수 있다. 또한, 암시적인 가중치 예측이 VB 슬라이스에 적용되는 경우, 픽쳐의 시점을 구별하는 시점 식별자를 이용하여 가중치 예측을 수행할 수 있으며, 또는 각 시점을 구분할 수 있도록 고려하여 만들어진 픽쳐 출력 순서(Picture Order Count, POC)를 이용하여 가중치 예측을 수행할 수도 있다. 또한, 상기 플래그 정보들은 픽쳐 파라미터 세트(Picture Parameter Set, PPS)에 포함될 수 있다. 여기서 픽쳐 파라미터 세트란, 픽쳐 전체의 부호화 모드(예를 들어, 엔트로피 부호화 모드, 픽쳐 단위의 양자화 파라미터 초기값 등)를 나타내는 헤더 정보를 말한다. 단, 픽쳐 파라미터 세트는 모든 픽쳐에 붙는 것이 아니며, 픽쳐 파라미터 세트가 없는 경우에는 직전에 존재하는 픽쳐 파라미터 세트를 헤더 정보로 사용한다.
도 33은 본 발명이 적용되는 일실시예로서, 새롭게 정의된 플래그 정보에 따라 가중치 예측을 수행하는 신택스를 나타낸다.
본 발명이 적용되는 다시점 비디오 코딩에 있어서, 시점 간 예측이 적용된 매크로블록을 포함하는 슬라이스 타입 및 현재 픽쳐와 다른 시점에 있는 픽쳐의 정보를 이용하여 가중치 예측을 수행할지 여부를 나타내는 플래그 정보가 정의되는 경우, 어떤 슬라이스 타입에 따라 어떤 가중치 예측을 수행할지를 판단할 필요가 있다. 예를 들어, 도 33에 도시된 바와 같이 비디오 신호로부터 추출된 슬라이스 타입이 P 슬라이스이거나 SP 슬라이스인 경우 weighted_pred_flag = 1 이어야 가중치 예측을 수행할 수 있으며, 슬라이스 타입이 B 슬라이스인 경우에는 weighted_bipred_idc = 1 이어야 가중치 예측을 수행할 수 있다. 또한, 슬라이스 타입이 VP 슬라이스인 경우 view_weighted_pred_flag = 1 이어야 가중치 예측을 수행할 수 있으며, 슬라이스 타입이 VB 슬라이스인 경우에는 view_weighted_bipred_idc = 1 이어야 가중치 예측을 수행할 수 있다.
도 34는 본 발명이 적용되는 실시예로서, NAL(Network Abstraction Layer) 유닛 타입에 따라 가중치 예측을 수행하는 흐름도를 나타낸다.
먼저 비디오 신호로부터 NAL 유닛 타입(nal_unit_type)을 추출한다(S3410). 여기서, NAL 유닛 타입이란, NAL 단위의 종류를 나타내는 식별자를 말한다. 예를 들어, nal_unit_type = 5 인 경우 NAL 단위가 IDR 픽쳐의 슬라이스임을 나타낸다. IDR(Instantaneous Decoding Refresh) 픽쳐란, 영상 시퀀스의 선두 픽쳐를 말한다. 그리고, 상기 추출된 NAL 유닛 타입이 다시점 비디오 코딩을 위한 NAL 유닛 타입인지 여부를 확인한다(S3420). 상기 NAL 유닛 타입이 다시점 비디오 코딩을 위한 NAL 유닛 타입인 경우, 현재 픽쳐와 다른 시점에 있는 픽쳐에 대한 정보를 이용하여 가중치 예측을 수행하게 된다(S3430). 상기 NAL 유닛 타입은 스케일러블 비디오 코딩과 다시점 비디오 코딩 모두 적용가능한 NAL 유닛 타입일 수도 있고, 다시점 비디오 코딩만을 위한 NAL 유닛 타입일 수도 있다. 이처럼, 다시점 비디오 코딩을 위한 NAL 유닛 타입일 경우, 현재 픽쳐와 다른 시점에 있는 픽쳐의 정보를 이용하여 가중치 예측을 수행할 수 있어야 하므로 새롭게 신택스가 정의될 필요가 있다. 이하 도 35 ∼ 도 36에서 상세히 설명하도록 한다.
도 35 ∼ 도 36은 본 발명이 적용되는 일실시예로서, NAL 유닛 타입이 다시점 비디오 코딩을 위한 NAL 유닛 타입인 경우 가중치 예측을 수행하는 신택스를 나 타낸다.
NAL 유닛 타입이 다시점 비디오 코딩을 위한 NAL 유닛 타입일 경우, 기존(예를 들어, H.264)의 가중치 예측을 수행하는 신택스는 도 35 ∼ 도 36과 같이 변경될 수 있다. 예를 들어, 도 35의 3510 부분은 기존의 가중치 예측을 수행하는 신택스 부분에 해당되며, 도 35의 3520 부분은 다시점 비디오 코딩에서 가중치 예측을 수행하는 신택스 부분에 해당된다. 따라서, 3520 부분에서는 NAL 유닛 타입이 다시점 비디오 코딩을 위한 NAL 유닛 타입일 경우에 한하여 가중치 예측이 수행된다. 이 경우, 시점에 대한 정보가 추가되기 때문에 신택스 요소들은 "시점(view)"부분을 포함하고 있다. 그 예로, "luma_view_log2_weight_denom, chroma_view_log2_weight_denom" 등을 들 수 있다. 또한, 도 36의 3530 부분은 기존의 가중치 예측을 수행하는 신택스 부분에 해당되며, 도 36의 3540 부분은 다시점 비디오 코딩에서 가중치 예측을 수행하는 신택스 부분에 해당된다. 따라서, 3540 부분에서는 NAL 유닛 타입이 다시점 비디오 코딩을 위한 NAL 유닛 타입일 경우에 한하여 가중치 예측이 수행된다. 이 경우에도 마찬가지로, 시점에 대한 정보가 추가되기 때문에 신택스 요소들은 "시점(view)"부분을 포함하고 있다. 그 예로, "luma_view_weight_l1_flag, chroma_view_weight_l1_flag" 등을 들 수 있다. 이처럼, 다시점 비디오 코딩을 위한 NAL 유닛 타입이 정의될 경우, 현재 픽쳐와 다른 시점에 있는 픽쳐의 정보를 이용하여 가중치 예측을 수행함으로써 보다 효율적인 코딩이 가능할 수 있다.
도 37은 본 발명에 의한 비디오 신호 디코딩 장치의 실시예의 블럭도로서, 슬라이스 타입 추출부(3710), 프리딕션 모드 추출부(3720) 및 복호화부(3730)로 구성된다.
도 38는 도 37에 도시된 장치에서 수행되는 본 발명에 의한 비디오 신호 디코딩 방법을 설명하기 위한 흐름도로서, 슬라이스 타입을 추출하는 단계(S3810), 매크로블록 프리딕션 모드에 따라 현재 매크로블록을 디코딩하는 단계(S3820)로 이루어진다.
먼저, 본 발명의 이해를 돕기 위해 본 발명에서 사용되는 예측 방식에 대해 살펴 보기로 한다. 현재 매크로블록이 포함되어 있는 픽쳐와 동일한 시점에 있는 픽쳐를 참조하는지 또는 다른 시점에 있는 픽쳐를 참조하는지에 따라 시점 내 예측(intra-view prediction) 또는 시점 간 예측(inter-view prediction)으로 나눌 수 있다. 또한, 시점 내 예측은 기존의 시간적 예측(temporal prediction)과 동일한 예측 방식이라 할 수 있다.
본 발명에 의하면, 먼저, 슬라이스 타입 추출부(3710)는 현재 매크로블록을 포함하는 슬라이스의 슬라이스 타입을 추출한다(S3810).
여기서, 슬라이스 타입은 일 실시예로 시점 내 예측에 의한 슬라이스 타입(slice_type)과 시점 간 예측에 의한 슬라이스 타입의 두 가지가 가능하다. 이를 위해, 본 발명에서는 시점 간 예측에 의한 슬라이스 타입(view_slice_type)을 정의한다. 또한, 시점 내 예측에 의한 슬라이스 타입과 시점 간 예측에 의한 슬라이스 타입은 각각 I 슬라이스(I_SLICE) 타입 또는 P 슬라이스(P_SLICE) 타입 또는 B 슬라이스 타입(B_SLICE)일 수 있다. 예를 들어, 특정 슬라이스가 'slice_type'이 B 슬라이스이고, 'view_slice_type'이 P 슬라이스인 경우에는, 특정 슬라이스에 있는 매크로블록은 시점 내 방향 즉 시간 방향으로 B 슬라이스(B_SLICE) 코딩 방식으로 복호화되거나 시점 방향으로 P 슬라이스(P_SLICE) 코딩 방식으로 복호화될 수 있다.
한편, 슬라이스 타입은 다른 실시예로 시점 간 예측에 의한 P 슬라이스 타입(VP), 시점 간 예측에 의한 B 슬라이스 타입(VB) 및 양 예측이 혼합된 예측에 의한 믹스드 슬라이스 타입(Mixed)을 포함할 수 있다.
여기서, 시점 간 예측에 의한 P 슬라이스 타입이란 슬라이스에 포함된 각각의 매크로블록 또는 매크로블록 파티션이 현재 시점(current view)에 있는 하나의 픽쳐(picture)로부터 예측되거나 다른 시점(different view)에 있는 하나의 픽쳐로부터 예측되는 경우를 말한다. 다음으로, 시점 간 예측에 의한 B 슬라이스 타입이란 슬라이스에 포함된 각각의 매크로블록 또는 매크로블록 파티션이 현재 시점에 있는 하나의 픽쳐 또는 두 개의 픽쳐들로부터 예측되거나, 다른 시점에 있는 하나의 픽쳐 또는 각각 다른 시점에 있는 두 개의 픽쳐들로부터 예측되는 경우를 말한다. 마지막으로, 양 예측이 혼합된 예측에 의한 믹스드 슬라이스 타입이란 슬라이스에 포함된 각각의 매크로블록 또는 매크로블록 파티션이 현재 시점에 있는 하나의 픽쳐 또는 두 개의 픽쳐들로부터 예측되거나, 다른 시점에 있는 하나의 픽쳐 또는 각각 다른 시점에 있는 두 개의 픽쳐들로부터 예측되거나, 현재 시점에 있는 하나의 픽쳐 또는 두 개의 픽쳐들 및 다른 시점에 있는 하나의 픽쳐 또는 각각 다른 시점에 있는 두 개의 픽쳐들로부터 예측되는 경우를 말한다. 다시 말해, 각각의 슬 라이스 타입마다 참조하는 픽쳐 및 허용되는 매크로블록 타입이 다르며, 이에 대해서는 도 43 및 도 44에서 자세히 설명하기로 한다.
또한, 위에서 설명한 슬라이스 타입의 실시예 중 신택스와 관련해서 도 40, 도 41에서 자세히 설명하기로 한다.
다음으로, 프리딕션 모드 추출부(3720)는 현재 매크로블록이 시점 내 예측에 의한 매크로블록인지 또는 시점 간 예측에 의한 매크로블록인지 또는 양 예측이 혼합된 예측에 의한 매크로블록인지를 나타내는 매크로블록 프리딕션 모드를 추출한다(S3820). 이를 위해, 본 발명에서는 매크로블록 프리딕션 모드(mb_pred_mode)를 정의한다. 한편, 매크로블록 프리딕션 모드의 일 실시예와 관련해서는 도 39, 도 40 및 도 41에서 자세히 설명하기로 한다.
마지막으로, 복호화부(3730)는 현재 매크로블록을 복원하기 위한 매크로블록 프리딕션 모드에 따라 현재 매크로블록을 디코딩한다(S3820). 여기서, 본 발명에 의하면 현재 매크로블록은 현재 매크로블록을 복원하기 위한 매크로블록 타입 정보로부터 결정된 현재 매크로블록의 매크로블록 타입에 따라 디코딩될 수 있다. 또한, 매크로블록 프리딕션 모드 및 슬라이스 타입에 따라 매크로블록 타입이 결정될 수 있다.
여기서, 본 발명에 의하면, 매크로블록 프리딕션 모드가 시점 내 예측에 관한 모드인 경우에는, 시점 내 예측에 의한 슬라이스 타입에 따라 매크로블록 타입을 결정하며, 결정된 매크로블록 타입에 따라 시점 내 예측에 의해 현재 매크로블록을 디코딩한다. 또한, 매크로블록 프리딕션 모드가 시점 간 예측에 관한 모드인 경우에는, 시점 간 예측에 의한 슬라이스 타입에 따라 매크로블록 타입을 결정하며, 상기 결정된 매크로블록 타입에 따라 시점 간 예측에 의해 현재 매크로블록을 디코딩한다. 또한, 매크로블록 프리딕션 모드가 양 예측이 혼합된 예측에 의한 매크로블록인 경우에는, 시점 내 예측에 의한 슬라이스 타입 및 시점 간 예측에 의한 슬라이스 타입에 따라 매크로블록 타입을 각각 결정하며, 결정된 각각의 매크로블록 타입에 따라 양 예측이 혼합된 예측에 의해 현재 매크로블록을 디코딩한다.
여기서, 매크로블록 타입은 매크로블록 프리딕션 모드와 슬라이스 타입에 종속된다. 다시 말해, 매크로블록 프리딕션 모드에 의해 매크로블록 타입에 사용될 예측 방식을 알 수 있고, 예측 방식에 따른 슬라이스 타입에 의해 매크로블록 타입 정보로부터 매크로블록 타입이 결정된다. 예를 들어, 매크로블록 프리딕션 모드가 시점 간 예측에 관한 모드인 경우에는, 시점 간 예측에 의한 슬라이스 타입(view_slice_type)에 해당하는 슬라이스 타입(I, P, B)의 매크로블록 테이블로부터 매크로블록 타입을 결정할 수 있다. 매크로블록 프리딕션 모드와 매크로블록 타입의 관계에 대해서는 도 39, 도 40 및 도 41에서 자세히 설명하기로 한다.
도 39는 본 발명에 의한 매크로블록 프리딕션 모드의 일 실시예를 나타내는 도면이다.
도 39(a)는 본 발명에 의한 매크로블록 프리딕션 모드(mb_pred_mode)의 일 실시예에 해당하는 테이블로서, 매크로블록을 위해 단지 시점 내 예측(intra-view prediction) 즉, 시간적 예측(temporal prediction)만 사용되는 경우에는 'mb_pred_mode'의 값은 '0'이 할당되며, 매크로블록을 위해 시점 간 예측(inter- view prediction)만 사용되는 경우에는 'mb_pred_mode'의 값은 '1'이 할당되며, 시점 내 예측과 시점 간 예측이 모두 사용되는 경우에는 'mb_pred_mode'의 값은 '2'가 할당된다. 여기서, 'mb_pred_mode'의 값이 '1'인 경우, 즉, 시점 간 예측을 나타내는 경우에는, 시점 간 예측을 위한 참조 픽쳐 리스트(List)로서 시점 방향 List0(ViewList0) 또는 시점 방향 List1(ViewList1)을 정의한다.
도 39(b)는 본 발명에 의한 매크로블록 프리딕션 모드와 매크로블록 타입의 관계를 나타내는 도면으로서, 만일, 'mb_pred_mode'의 값이 '0'인 경우에는 시간상 예측만이 사용되며, 시점 내 예측에 의한 슬라이스 타입(slice_type)에 따라 매크로블록 타입이 결정된다. 'mb_pred_mode'의 값이 '1'인 경우에는 시점 간 예측만이 사용되며, 시점 간 예측에 의한 슬라이스 타입(view_slice_type)에 따라 매크로블록 타입이 결정된다. 'mb_pred_mode'의 값이 '2'인 경우에는 시간상 및 시점 내 예측이 혼합된 예측이 사용되며, 시점 내 예측에 의한 슬라이스 타입(slice_type) 및 시점 간 예측에 의한 슬라이스 타입(view_slice_type)에 의해 두 개의 매크로블록 타입이 결정된다. 다시 말해, 매크로블록 프리딕션 모드에 의해 매크로블록에 사용되는 예측 방식과 참고하는 슬라이스 타입이 결정되고, 슬라이스 타입에 따라 매크로블록 타입이 결정된다.
도 40 및 도 41은 본 발명에 의한 슬라이스 타입 및 매크로블록 프리딕션 모드가 적용된 신택스(syntax)를 나타내는 도면이다.
도 40은 슬라이스 타입으로서 'slice_type' 및 'view_slice_type'과 매크로블록 프리딕션 모드로서 'mb_pred_mode'가 적용된 신택스이다. 본 발명에 의하면, 'slice_type'은 시점 내 예측에 의한 슬라이스 타입을 의미하고, 'view_slice_type' 은 시점 간 예측에 의한 슬라이스 타입을 의미한다. 또한, 각각의 슬라이스 타입은 I 슬라이스 타입 또는 P 슬라이스 타입 또는 B 슬라이스 타입이 될 수 있다. 'mb_pred_mode'의 값이 '0' 또는'1'인 경우에는 하나의 매크로블록 타입만을 결정하나, 'mb_pred_mode'의 값이 '2'인 경우에는 매크로블록 타입을 하나 더 결정하는 것을 알 수 있다. 다시 말해, 도 40에 도시된 신택스는 기존의 슬라이스 타입(I, P, B)을 다시점 비디오 코딩에서 확대 적용하기 위해 'view_slice_type'이 추가된 것이다.
도 41은 슬라이스 타입으로서 'slice_type' 과 ' 매크로블록 프리딕션 모드로서 'mb_pred_mode'가 적용된 신택스이다. 본 발명에 의하면 'slice_type'은 시점 간 예측에 의한 슬라이스 타입(VP), 시점 간 예측에 의한 B 슬라이스 타입(VB) 및 양 예측이 혼합된 예측에 의한 믹스드 슬라이스 타입(Mixed)을 포함한다. 'mb_pred_mode'의 값이 '0' 또는 '1'인 경우에는 하나의 매크로블록 타입만을 결정하나, 'mb_pred_mode'의 값이 '2'인 경우에는 매크로블록 타입을 하나 더 결정하는 것을 알 수 있다. 이 경우, 슬라이스 타입은 슬라이스 헤더(slice header)에 존재하며, 이에 대해서는 도 42에서 상세히 설명하기로 한다. 다시 말해, 도 41에 도시된 신택스는 기존의 슬라이스 타입(slice_type)에 VP, VB, Mixed 슬라이스 타입이 추가로 포함된 것이다.
도 42는 도 41에서의 슬라이스 타입이 적용된 실시예들을 나타내는 도면이다.
도 42(a)는 시점 간 예측에 의한 슬라이스 타입(VP), 시점 간 예측에 의한 B 슬라이스 타입(VB) 및 양 예측이 혼합된 예측에 의한 믹스드 슬라이스 타입(Mixed)이 슬라이스 헤더에 존재하는 것을 의미한다. 다시 말해, 기존의 슬라이스 헤더에 존재하는 슬라이스 타입에 본 발명에 의한 슬라이스 타입(VP, VB, Mixed)이 추가된 것이다.
도 42(b)는 시점 간 예측에 의한 슬라이스 타입(VP), 시점 간 예측에 의한 B 슬라이스 타입(VB) 및 양 예측이 혼합된 예측에 의한 믹스드 슬라이스 타입(Mixed)이 다시점 비디오 코딩(multi-view video coding;MVC)을 위한 슬라이스 헤더에 존재하는 것을 의미한다. 다시 말해, 본 발명에 의한 슬라이스 타입을 다시점 비디오 코딩을 위한 슬라이스 헤더에서 새롭게 정의를 한 것이다.
도 42(c)는 시점 간 예측에 의한 슬라이스 타입(VP), 시점 간 예측에 의한 B 슬라이스 타입(VB) 및 양 예측이 혼합된 예측에 의한 믹스드 슬라이스 타입(Mixed)이 스케일러블 비디오 코딩(scalable video coding;SVC)을 위한 슬라이스 헤더에 존재하는 것을 의미한다. 다시 말해, 스케일러블 비디오 코딩을 위한 슬라이스 헤더에 존재하는 슬라이스 타입에 본 발명에 의한 슬라이스 타입이 추가된 것이다.
도 43은 도 41의 슬라이스 타입에 포함되는 슬라이스 타입의 다양한 실시예를 나타내는 도면이다.
도 43(a)는 다른 시점에 있는 하나의 픽쳐로부터 예측되는 경우이므로 시점 간 예측에 의한 슬라이스 타입(VP)이되고, 도 43(b)는 각각 다른 시점에 있는 두 개의 픽쳐로부터 예측되는 경우이므로 시점 간 예측에 의한 B 슬라이스 타입(VB)이 된다. 도 43(c) 내지 도 43(d)는 현재 시점에 있는 하나의 픽쳐 또는 두 개의 픽쳐들 및 다른 시점에 있는 하나의 픽쳐 또는 각각 다른 시점에 있는 두 개의 픽쳐들로부터 예측되는 경우이므로 양 예측이 혼합된 예측에 의한 믹스드 슬라이스 타입(Mixed)이 된다.
도 44는 도 41의 슬라이스 타입에서 허용되는 매크로블록의 일 실시예를 나타내는 도면이다. 도시된 바와 같이, 시점 간 예측에 의한 P 슬라이스 타입(VP)에는 인트라 매크로블록(I) 또는 현재 시점(current view)에 있는 하나의 픽쳐(picture)로부터 예측되는 매크로블록(P) 또는 다른 시점(different view)에 있는 하나의 픽쳐로부터 예측되는 매크로블록(VP)가 허용된다. 다음으로, 시점 간 예측에 의한 B 슬라이스 타입(VP)에는 인트라 매크로블록(I) 또는 현재 시점에 있는 하나의 픽쳐 또는 두 개의 픽쳐들로부터 예측되는 매크로블록(P or B) 또는 다른 시점에 있는 하나의 픽쳐 또는 각각 다른 시점에 있는 두 개의 픽쳐들로부터 예측되는 매크로블록(VP or VB)가 허용된다. 마지막으로, 양 예측이 혼합된 예측에 의한 믹스드 슬라이스 타입(Mixed)에는 인트라 매크로블록(I) 또는 현재 시점에 있는 하나의 픽쳐 또는 두 개의 픽쳐들로부터 예측되는 매크로블록(P or B) 또는 다른 시점에 있는 하나의 픽쳐 또는 각각 다른 시점에 있는 두 개의 픽쳐들로부터 예측되는 매크로블록(VP or VB) 또는 현재 시점에 있는 하나의 픽쳐 또는 두 개의 픽쳐들 및 다른 시점에 있는 하나의 픽쳐 또는 각각 다른 시점에 있는 두 개의 픽쳐들로부터 예측되는 매크로블록(Mixed)이 허용된다.
도 45 내지 도 47은 본 발명에 의한 양 예측이 혼합된 예측에 의한 믹스드 슬라이스(Mixed)에 존재하는 매크로블록의 매크로블록 타입의 일 실시예를 나타내는 도면이다.
특히, 도 45(a) 및 도 45(b)는 믹스드 슬라이스에 존재하는 매크로블록의 매크로블록 타입(mb_type) 및 서브 매크로블록 타입(sub_mb_type)의 구성 방식을 보여준다. 또한, 도 46 및 도 47은 믹스드 슬라이스에 존재하는 매크로블록의 예측 방향의 이진수 표현 및 실제 예측 방향을 보여준다.
본 발명에 의하면, 매크로블록 타입(mb_type)은 매크로블록 파티션의 크기(Partition_size)와 매크로블록 파티션의 예측 방향(Direction)을 모두 고려하여 만들어진다. 서브 매크로블록 타입(sub_mb_type)은 서브 매크로블록 파티션의 크기(Sub_Partition_Size)와 각 서브 매크로블록 파티션의 예측 방향(Sub_Direction)을 모두 고려하여 만들어진다.
도 45(a)에 도시된 바와 같이, Direction0 과 Direction1는 각각 첫 번째 매크로블록 파티션의 예측 방향과 두 번째 매크로블록 파티션의 예측 방향을 의미한다. 즉, 8×16 매크로블록인 경우 Direction0는 왼쪽 8×16 매크로블록 파티션에 대한 예측 방향을 의미하며, Direction1은 오른쪽 매크로블록 파티션의 예측 방향을 의미한다.
여기서, 매크로블록 타입(mb_type)의 구성 원리를 자세히 설명하면, 처음 2bit은 해당 매크로블록의 파티션 크기(Patition_Size)를 의미하며, 0∼3 사이의 값이 가능하다. 처음 2bit 다음에 붙는 4bit는 매크로블록이 파티션으로 나누어질 경우 예측방향(Direction)을 의미한다. 예를 들어, 16×16 매크로블록의 경우에는 처음 2bit 뒤에 오직 이 매크로블록의 예측 방향을 나타내는 4bit이 붙게 된다. 16×8 매크로블록의 경우에는 처음 2bit 뒤에 붙는 4bit은 첫 번째 파티션의 예측 방향(Direction0)을 의미하며, 이 4bit 뒤에 또 다른 4bit이 붙어 두 번째 파티션의 예측 방향(Direction1)을 의미한다. 8×16 매크로블록의 경우에도 마찬가지로 처음 2bit 뒤에 8bit이 붙게 되며, 처음 2bit 뒤에 붙는 4bit는 첫 번째 파티션의 예측 방향을, 제일 뒤의 4bit은 두 번째 파티션의 예측 방향을 의미한다.
도 45(b)에 도시된 바와 같이, 서브 매크로블록 파티션의 예측 방향(Sub_Direction)은 도 45(a)의 매크로블록 파티션의 예측 방향(Direction)과 같은 방식으로 사용된다.
여기서, 서브 매크로블록 타입(sub_mb_type)의 구성 원리를 자세히 설명하면, 처음 각각의 2bit는 해당 매크로블록의 파티션 크기(Partition_Size) 및 해당 매크로블록의 서브 매크로블록의 파티션 크기(Sub_Partition_Size)를 의미하며, 0∼3 사이의 값이 가능하다. 처음 각각의 2bit 다음에 붙는 4bit는 매크로블록이 서브 매크로블록 파티션으로 나누어질 경우 예측방향(Sub_Direction)을 의미한다. 예를 들어, 매크로블록의 파티션의 크기가(Partition_Size) 8×8 이며, 서브 매크로블록블록의 파티션의 크기(Sub_Partition_Size)가 4×8인 경우에는 처음 2bit는 3, 두 번째 2bit는 2의 값의 가지며, 다음 4bit는 두 개의 4×8 블록 중 왼쪽 4×8 블록에 대한 예측 방향을, 그 다음 4bit는 오른쪽 4×8 블록에 대한 예측 방향을 나타낸다.
도 46에 도시된 바와 같이, 매크로블록의 예측 방향은 4bit로 구성되어 있으 며, 현재 픽쳐의 좌(L), 상(T), 우(R) 하(B) 위치의 픽쳐를 참조하는 경우에 따라 각각 이진수 표현이 '1'이 되는 것을 알 수 있다.
도 47에 도시된 바와 같이, 예를 들어, 예측방향이 상(T)인 경우에는 현재 픽쳐의 시점 방향으로 위에 위치하는 픽쳐를 참조하며, 예측방향이 모든 방향(LTRB)인 경우에는 현재 픽쳐의 상하좌우 모든 방향의 픽쳐를 참조하는 것을 알 수 있다.
도 48은 본 발명에 의한 비디오 신호 인코딩 장치의 실시예의 블럭도로서, 매크로블록 타입 결정부(4810), 매크로블록 생성부(4820) 및 부호화부(4830)로 구성된다.
도 49는 도 48에 도시된 장치에서 수행되는 본 발명에 의한 비디오 신호 디코딩 방법을 설명하기 위한 흐름도로서, 시점 내 예측을 위한 제1매크로블록 타입과 시점 간 예측을 위한 제2매크로블록 타입을 결정하는 단계(S4910), 제1매크로블록 타입을 가지는 제1매크로블록과 제2매크로블록 타입을 가지는 제2매크로블록을 생성하는 단계(S4920), 제1매크로블록과 제2매크로블록을 이용하여 제3매크로블록을 생성하는 단계(S4930) 및 현재 매크로블록의 매크로블록 타입과 매크로블록 프리딕션 모드를 인코딩하는 단계(S4940)로 이루어진다.
본 발명에 의하면, 먼저, 매크로블록 타입 결정부(4810)은 시점 내 예측을 위한 제1매크로블록 타입과 시점 간 예측을 위한 제2매크로블록 타입을 결정한다(S4910).
다음으로, 매크로블록 생성부(4820)는 제1매크로블록 타입을 가지는 제1매크 로블록과 제2매크로블록을 가지는 제2매크로블록을 생성하며(S4920), 제1매크로블록과 제2매크로블록을 이용하여 제3매크로블록을 생성한다(S4930). 여기서, 제3매크로블록은 제1매크로블록과 제2매크로블록의 평균값에 의해 생성된다.
마지막으로, 부호화부(4830)는 제1매크로블록, 제2매크로블록 및 제3매크로블록의 부호화 효율을 비교하여 현재 매크로블록의 매크로블록 타입(mb_type)과 매크로블록 프리딕션 모드(mb_pred_mode)를 인코딩한다(S4940). 여기서, 부호화 효율을 측정하는 방법에는 여러 가지 방식을 적용할 수 있으나, RD 비용(Rate-Distortion cost)을 이용하는 방법이 있다. RD 비용이란 해당 블록을 부호화할 때 생기는 부호화 비트수와 실제영상과의 오차를 나타내는 왜곡값, 이 두 성분을 가지고 비용을 계산한다
본 발명에 의하면, 제1매크로블록 타입과 제2매크로블록 타입을 결정하는 방법은 위에서 설명한 RD 비용이 각각 최소값을 가지는 매크로블록 타입을 결정할 수 있다. 예를 들어, 시점 내 예측에 의한 매크로블록 타입들 중 RD 비용이 최소값을 가지는 매크로블록 타입이 제1매크로블록 타입이 되며, 시점 간 예측에 의한 매크로블록 타입들 중 RD 비용이 최소값을 가지는 매크로블록 타입이 제2매크로블록 타입이 된다.
또한, 매크로블록 타입과 매크로블록 프리딕션 모드를 인코딩하는 단계는, 먼저, 제1매크로블록의 RD 비용과 제2매크로블록 타입의 RD 비용을 비교하여 작은값을 구한다. 다음으로, 제3매크로블록의 RD 비용을 구한다. 마지막으로, 위에서 구한 RD 비용과 제3매크로블록의 RD 비용을 비교하여 현재 매크로블록의 매크로블 록 타입과 매크로블록 프리딕션 모드를 인코딩한다.
만일, 위에서 구한 RD 비용이 제3매크로블록의 RD 비용 이상인 경우에는 매크로블록 타입은 위에서 구한 RD 비용에 해당하는 매크로블록 타입이 된다. 예를 들어, 제1매크로블록의 RD 비용과 제2매크로블록의 RD 비용 중에서 제1매크로블록의 RD 비용이 작은 경우에는 제1매크로블록의 매크로블록 타입인 제1매크로블록 타입이 현재 매크로블록의 매크로블록 타입이 된다. 또한, 매크로블록 프리딕션 모드는 위에서 구한 RD 비용에 해당하는 매크로블록의 예측 방식이 된다. 예를 들어, 제1매크로블록의 RD 비용과 제2매크로블록의 RD 비용 중에서 제2매크로블록의 RD 비용이 작은 경우에는 제2매크로블록의 예측 방식인 시점 간 예측 방식이 현재 매크로블록의 매크로블록 프리딕션 모드가 된다.
한편, 위에서 구한 RD 비용이 제3매크로블록의 RD 비용 미만인 경우에는 매크로블록 타입은 제1매크로블록 및 제2매크로블록에 해당하는 매크로블록 타입이 된다. 다시 말해, 시점 내 예측에 의한 매크로블록의 매크로블록 타입 및 시점 간 예측에 의한 매크로블록의 매크로블록 타입인 두 가지 매크로블록 타입이 현재 매크로블록의 매크로블록 타입이 된다. 또한, 매크로블록 프리딕션 모드는 시점 내 예측과 시점 간 예측이 혼합된 예측 방식이 된다.
이상, 전술한 본 발명의 바람직한 실시예는, 예시의 목적을 위해 개시된 것으로, 당업자라면 이하 첨부된 특허청구범위에 개시된 본 발명의 기술적 사상과 그 기술적 범위 내에서, 다양한 다른 실시예들을 개량, 변경, 대체 또는 부가 등이 가능할 것이다.