본 출원은 미국 임시 특허출원 제60/663,161호[발명의 명칭: "Extended spatial scalability with picture-level adaptation", 출원일: 2005, 3월 18일, 발명자: 순 시준(Shijun Sun)]; 미국 임시 특허출원 제60/683,060호[발명의 명칭: "Direct interpolation for up-sampling in extended spatial scalability", 출원일: 2005, 5월 20일, 발명자: 순 시준]; 및 미국 임시 특허출원 제60/686,676호[발명의 명칭: "Deblocking Filter Method with Reduced Complexity for spatial scalable Video Coding", 출원일: 2005, 6월 1일, 발명자: 순 시준(Shijun Sun)]의 우선권을 주장한다. 또한, 본 출원은 미국 특허출원 제09/817,701호[발명의 명칭: "Method and Apparatus for Controlling Loop Filtering or Post Filtering in Block Based Motion Compensationed Video Coding", 출원일: 2001, 3월 26일, 발명자: 순 시준 등]의 계속출원인 미국 특허출원 제10/112,683호[발명의 명칭: "Method and Apparatus for Controlling Loop Filtering or Post Filtering in Block Based Motion Compensationed Video Coding", 출원일: 2002, 3월 29일, 발명자: 순 시준 및 라이 쇼민(Shawmin Lei)]; 및 PCT 특허출원 PCT/JP02/09306[출원 일: 2002, 9월 11일, 발명자: 순 시준 등]의 계속출원인 미국 특허출원 제10/799,384호[발명의 명칭: "Adaptive Filtering Based Upon Boundary Strength", 출원일: 2004, 3월 11일, 발명자: 순 시준]의 일부 계속출원이며, 미국 특허출원 제09/953,329호[발명의 명칭: "Adaptive Filtering Based Upon Boundary Strength", 출원일: 2001, 9월 14일, 발명자: 순 시준 및 라이 쇼민]의 계속출원이다.
본 발명의 실시예들은 도면을 참조로 가장 잘 이해될 것이다. 도면에서 동일 참조 부호는 동일 구성 요소를 나타낸다. 도면의 도들은 본 명에서의 일부로 포한된다.
본 발명의 구성 요소들은 도면에서 보는 바와 같이 다양한 구성으로 배치 및 설계되어 있다. 따라서, 본 발명의 방법과 시스템의 실시예에 대한 이하의 상세한 설명은 본 발명의 범위를 한정하려는 것이 아니라 단지 본 발명의 바람직한 실시예를 나타내는 것일 뿐이다.
본 발명의 실시예는 하드웨어, 펌웨어 및/또는 소프트웨어로 구체화될 수 있다. 여기서 설명된 예시적인 실시예는 이들 형태들 중 하나 만을 설명하지만, 본 기술 분야의 통상의 전문가라면 본 발명의 범위로부터 벗어남이 없이 본 발명의 구성 요소를 이들 형태 중 어느 것으로도 실시할 수 있음을 잘 알 것이다.
종래의 필터링 프로세스는 하나의 재구성된 영상 프레임을 동시에 고려한다. 블록 방식 비디오 인코딩 기법은 동작 벡터를 이용하여 픽셀 블록의 움직임을 추정할 수 있다. 동작 벡터 정보는 인코더 및 디코더 모두에 유용하지만, 종래의 필터링 프로세스와는 함께 이용되지는 않는다. 예컨대, 두 개의 인접한 블록이 동일 기준 영상 프레임에 대해 동일 동작 벡터를 공유하고 있다면, (다중 기준 프레임 시스템에 있어서) 각 블록의 영상 잔상들 간에 큰 차이가 없고, 따라서 이들 잔상들은 필터링되어서는 않된다. 본질적으로는 영상의 인접 부분들은 동일 기준 프레임에 대해 같은 동작을 가지며, 따라서 영상 잔상들 간에 큰 차이가 없을 걸로 예상할 수 있다. 두 개의 인접 블록의 블록 경계가 필터링되어 있을 수가 있고 따라서 현재 프레임에 대해 다시 필터링되어서는 않되는 경우가 많이 있다. 이와 같은 동작 벡터 정보를 고려하지 않고 디블록 필터를 이용하는 경우에는, 종래의 필터링 프로세스는 프레임마다 반복해서 동일 경계를 필터링했을 수도 있다. 이와 같은 불필요한 필터링은 불필요한 블러링을 초래할 뿐만 아니라 추가적인 필터 계산을 필요로 한다.
도 1은 영상 블록들 간의 유사도에 따라서 블록킹 아티팩트를 선택적으로 필터링하는 영상(12)을 나타낸다. 이 영상은 비정방형(non-square) 블록 또는 임의의 픽셀 세트도 이용할 수 있다. 일부 블록들(14) 간의 경계는 블록킹 아티팩트(18)를 포함한다. 일반적으로, 블록킹 아티팩트는 인코딩 및/또는 디코딩 프로세스의 결과로서 생길 수 있는 블록(14) 간 영상 불연속을 말한다. 저역 통과 필터나 기타 다른 필터를 이용하여 인접 영상 블록들의 경계에 존재하는 블록킹 아티팩트를 줄일 수가 있다.
예컨대, 블록들(20, 22) 간에는 블록킹 아트팩트(24)가 존재한다. 이 블록들(20, 22) 간의 경계에서 저역 통과 필터를 이용하여 블록킹 아티팩트(24)를 제거 또는 감소시킬 수 있다. 저역 통과 필터는 예컨대 경계(26)의 양측으로부터 픽셀 그룹(28)을 선택한다. 이 픽셀 그룹(28)으로부터 평균 픽셀값 또는 임의의 다른 통계적 측정값이 도출된다. 그 다음, 각 픽셀은 평균 픽셀값과 비교된다. 소정 범위의 평균 픽셀값을 벗어나는 픽셀 그룹(28) 내의 픽셀은 평균 픽셀값으로 대체된다.
전술한 바와 같이, 인접 픽셀들 간에 블록킹 아티팩트(24)가 적거나 없는 경우에는 픽셀 그룹(28)은 불필요하게 필터링되어 영상 내에 블러링을 초래할 수 있다. 스킵 모드 필터링 방식은 선택적으로 필터링할 기준으로서 인접 영상 블록을 위해 동작 추정 및/또는 보상 정보를 이용할 수 있다. 동작 추정 및 보상 정보가 충분히 유사하면, 필터링은 스킵될 수 있다. 이에 따라 불필요한 영상 블러링을 피할 수 있으며, 필터링 동작 횟수 또는 임의의 기타 다른 적당한 값을 상당히 많이 감소시킬 수 있다.
예컨대, 인코딩 프로세스 중에 인접 영상 블록들(30, 32)이 유사한 코딩 파라미터를 갖는다고 판단될 수 있다. 따라서, 인접 영상 블록들(30, 32) 간의 경계(31)를 따라 늘어져 있는 픽셀 그룹(34)에 대해 디블록 필터링은 스킵될 수 있다. 영상(12) 내의 인접 블록들 간의 수평 위치, 수직 위치 또는 경계에 대해서 스킵 모드 필터링을 이용할 수 있다.
도 2는 기준 프레임(42), 기준 프레임(48), 및 현재 인코딩 또는 디코딩되고 있는 현재 프레임(40)을 나타낸다. 두 개의 인접 블록들(44, 46) 간에 디블록 필터링이 스킵되어야 할지 여부를 판단하기 위해 블록(44, 46)에 대한 코딩 파라미터들이 서로 비교된다. 비교될 수 있는 인코딩 파라미터들 중 하나는 블록(44, 46)에 대한 동작 벡터(MV)이다.
동작 벡터(MV1)는 현재 영상 프레임(40) 내의 블록(44)으로부터 기준 영상(42) 내의 관련 블록(44')으로 지시한다. 동작 벡터(MV2)는 현재 영상 프레임(40) 내의 블록(46)으로부터 기준 영상(42) 내의 관련 블록(46')으로 지시한다. 스킵 모드 필터링은 동작 벡터(MV1, MV2)가 동일 기준 프레임(42) 내의 인접 블록들을 지시하는지 여부를 검사한다. 동작 벡터가 동일 기준 프레임(42) 내의 인접 블록들을 지시하면(MV1 = MV2), 디블록 필터링은 스킵될 수 있다. 이 동작 벡터 정보를 다른 코딩 정보와 함께 이용하여 두 개의 영상 블록(44, 46) 간의 디블록 필터링을 스킵할지 여부를 결정할 수 있다.
인코딩 및 디코딩 프로세스 중에는 하나 이상의 기준 프레임이 이용될 수 있다. 예컨대, 다른 기준 프레임(48)이 있을 수 있다. 인접 블록들(44, 46)은 다른 기준 프레임을 지시하는 동작 벡터를 가질 수 있다. 일 예로서, 디블록 필터링을 스킵하는 결정은 두 개의 인접한 블록들에 대한 동작 벡터가 동일 기준 프레임을 지시하는지 여부에 따라 달라진다. 예컨대, 영상 블록(44)은 기준 프레임(48)을 지시하는 동작 벡터(49)를 가질 수 있고, 영상 블록(46)은 기준 프레임(42)을 지시하는 동작 벡터(MV2)를 가질 수 있다. 이 예에서는 동작 벡터(49, MV2)가 서로 다른 기준 프레임을 지시하기 때문에 디블록 필터링은 스킵되지 않는다.
도 3은 디블록 필터링을 스킵할지 여부를 결정하는데 이용될 수 있는 코딩 파라미터의 다른 예를 나타낸다. 영상 프레임(40)으로부터의 영상 블록(44)은, 도 2에서 보는 바와 같이, 동작 벡터(MV1)가 지시하는 기준 프레임(42)으로부터의 기준 블록(44')과 비교된다. 영상 블록(44)과 기준 블록(44') 간의 비교로부터 레지규얼(residual) 블록(44'')이 출력된다. 변환 계수의 변환 블록(44''')을 생성하는 레지듀얼 블록(44'')에 대해서 변환(50)이 실시된다. 일 예로서, 변환(50)은 이산 코사인 변환이다. 변환 블록(44''')은 D.C. 성분(52)과 A.C. 성분(53)을 포함한다.
D.C. 성분(52)은 영상 블록(44) 내의 최저 주파수 변환 계수를 말한다. 예컨대, 이 계수는 영상 블록(44)에서의 평균 에너지를 나타낸다. A.C. 성분(53)은 영상 블록(44) 내의 최고 주파수 성분을 나타내는 변환 계수를 말한다. 예컨대, 이 변환 계수는 영상 블록(44) 내의 픽셀들 간의 큰 에너지 차를 나타낸다.
도 4는 변환된 레지듀얼 블록(44''', 46''')을 나타낸다. 두 개의 변환 블록(44''', 46''')으로부터의 D.C. 성분(52)은 프로세서(54)에서 서로 비교된다. D.C. 성분들이 동일하거나 특정 범위 내에 있는 경우에는, 프로세서(54)는 두 개의 인접 블록들(44, 46)의 경계들 간에 디블록 필터링을 스킵하는 디블록 필터 동작(56)을 통지한다. D.C. 성분들(52)이 유사하지 않으면, 스킵 불가가 통지되고, 블록들(44, 46) 간의 경계는 디블록 필터링된다.
일 예로서, 스킵 모드 필터링은 ITU-T(Telecommunication Sector of the Internaltional Telecommunication Union) 제안 H.26L 인코딩 방식에 포함될 수 있 다. H.26L 방식은 4×4 정수 이산 코사인 변환(DCT) 블록을 이용한다. 필요에 따라, 두 개의 인접 블록들 중 D.C. 성분만을 검사해도 된다. 그러나, 9×9이나 16×16 블록과 같이 영상 블록의 크기가 큰 경우에는 제한된 저주파 A.C. 계수를 검사해도 된다. 예컨대, 블록(44''')에 대한 상위 D.C. 성분(52)과 3개의 저주파 A.C. 변환 계수(53)는 블록(46''')에 대한 상위 D.C. 성분(52)과 3개의 저주파 A.C. 변환 계수(53)와 비교될 될 수 있다. D.C. 및/또는 임의의 A.C. 변환 계수의 여러 가지 조합을 이용하여 두 개의 인접 블록(44, 46) 간의 상대적 유사도를 알아낼 수 있다.
프로세서(54)는 코딩 프로세스 중에 발생된 다른 코딩 파라미터들(55)을 수신할 수 있다. 이들 코딩 파라미터들은 전술한 바와 같은 인접 블록(44, 46)에 대한 동작 벡터와 기준 프레임 정보를 포함한다. 프로세서(54)는 이들 코딩 파라미터의 일부 또는 전부를 이용하여 인접 영상 블록들(44, 46) 간의 디블록 필터링을 스킵할지 여부를 판단할 수 있다. 동일 프로세서(54) 또는 다른 처리 회로에서 영상에 대해 다른 코딩 및 변환 기능을 실시할 수 있다. 동일 프로세서에서 코딩의 전부 또는 대부분이 행해지는 경우에는, 필터링 루틴에서 스킵 파라미터를 설정함으로써 간단히 스킵 모드가 작동된다.
도 5는 블록 방식 동작 보상 코더-디코더(코덱)(60)에서 이용되는 스킵 모드 필터링을 나타낸다. 코덱(60)은 프레임간 코딩에 이용된다. 현재 프레임으로부터의 입력 비디오 블록은 박스(62)로부터 비교기(64)로 공급된다. 프레임 버퍼링 박스(80)의 출력은 추정된 동작 벡터(및 가능한 기준 프레임 번호)에 따라서 기준 블 록(81)을 발생한다. 입력 비디오 블록과 기준 블록(81) 간의 차이는 박스(66)에서 변환된 다음에 박스(68)에서 양자화된다. 양자화된 변환 블록은 박스(70) 내의 가변길이 코더(VLC)에 의해 코딩된 다음에, 전송, 저장 등이 된다.
코덱(60)의 코딩부는 박스(72)에서 제1 역양자화(IQ)를 이용하여 상기 변환 및 양자화된 영상을 재구성한다. 그 다음, 역양자화된 영상은 박스(74)에서 역변환되어 재구성된 레지듀얼 영상을 발생한다. 그 다음, 이 재구성된 레지듀얼 블록은 박스(76)에서 기준 블록(81)에 합쳐져 재구성된 영상 블록을 발생한다. 일반적으로 재구성된 영상은 박스(78)에서 루프 필터링되어, 양자화 및 변환 프로세스에 의해 야기된 블록킹 아티팩트를 감소시킨다. 그 다음, 필터링된 영상은 박스(80)에 버퍼링되어 기준 프레임을 구성한다. 박스(80)에 버퍼링된 프레임은 동작 추정 및 보상을 위해 재구성된 기준 프레임을 이용한다. 기준 블록(81)은 비교기(64)에서 입력 비디오 블록과 비교된다. 인코딩된 영상은 인코딩부로부터 노드(71)에서 출력된 다음에 저장 또는 전송된다.
코덱(60)의 디코더부에서 기변길이 디코더(VLD)는 박스(82)에서 상기 인코딩된 영상을 디코딩한다. 디코딩된 영상은 박스(84)에서 역양자화되고 박스(86)에서 역변환된다. 박스(86)로부터의 재구성된 레지듀얼 영상은 합산 박스(88)에서 기준 블록(91)과 합쳐진 다음에, 박스(90)에서 루프 필터링되어 블록킹 아티팩트를 감소시키고, 박스(92)에서 기준 프레임으로서 버퍼링된다. 기분 블록(91)은 수신된 동작 벡터 정보에 따라서 박스(92)로부터 발생된다. 박스(90)로부터의 루프 필터링된 출력은 박스(94)에서 선택적으로 포스트 필터링되어 영상 아티팩트를 더 감소시 킨 다음에, 박스(96)에서 비디오 영상으로서 디스플레이될 수 있다. 스킵 모드 필터링 방식은 박스(78, 90, 94)에서 필터링 기능들의 조합으로서 실시될 수 있다.
비디오 코딩 중에 이용될 수 있는 동작 추정 및 보상 정보는 박스(78, 90 및/또는 94)에서 디블록 필터링을 스킵할 때를 판단하는데 이용된다. 이들 코딩 파라미터들은 인코딩 및 디코딩 프로세스 중에 이미 발생되었기 때문에 스킵 모드 필터링을 위해 특별히 발생 또는 전송되어야 할 추가적인 코딩 파라미터는 없다.
도 6은 스킵 모드 필터링이 도 5에서 인코더 및 디코더에서의 필터들(78, 90 및/또는 94)에서 어떻게 이용될 수 있는가에 대해 더 자세히 나타낸다. 먼저 단계(100)에서 임의의 두 개의 인접 블록("i", "k") 간의 블록간 경계가 식별된다. 이 두 개의 블록은 영상 프레임 내에서 수평적 또는 수직적으로 인접해 있을 수 있다. 판단 단계(102)는 블록(j)에 대한 동작 벡터(mv(j))를 블록(k)에 대한 동작 벡터(mv(k))와 비교한다. 먼저 두 개의 인접한 블록(j, k)이 동일한 기준 프레임을 지시하는 동일한 동작 벡터를 갖고 있는지 여부가 판단된다. 즉, 인접 블록들에 대한 동작 벡터들(mv(j)=mv(k))은 동일 기준 프레임(ref(j)=ref(k))에서 인접 블록을 지시한다.
그 다음, 두 개의 인접 블록들에 대한 레지듀얼 계수들이 유사한지 여부가 판단된다. 인접 블록들의 영상 잔상들 간에 큰 차이가 없다면, 예컨대 두 개의 블록(j, k)은 동일한 D.C. 성분(dc(j), dc(k))을 갖게 되고, 따라서 단계(104)에서의 디블록 필터링 프로세스는 스킵된다. 그 다음, 스킵 모드 필터링은 단계(106)에서 다음 번 블록간 경계로 이동하고, 판단 단계(102)에서 다음 번 비교를 행한다. 스 킵 모드 필터링은 수평 인접 블록과 수직 인접 블록들 모두에 대해 실시될 수 있다.
일 실시예에서, 인접 영상 블록들에 대한 기준 프레임과 동작 벡터 정보만을 이용하여 블록 스킵을 판단한다. 다른 실시예에서는 D.C. 및/또는 A.C. 레지듀얼 계수만을 이용하여 블록 스킵을 판단한다. 또 다른 실시에에서는 동작 벡터, 기준 프레임 및 레지듀얼 계수 모두를 이용하여 블록 스킵을 판단한다.
스킵 모드 필터링 방식은 공간적으로 서브샘플링된 색도 채널에 적용될 수 있다. 예컨대, 4:2:0 컬러 포맷 시퀀스의 경우에는 블록 경계에 대한 스킵 모드 필터링은 영상의 휘도 성분에 대한 동작 벡터 및 D.C. 성분의 동일성에만 의존할 있다. 동작 벡터와 D.C. 성분이 같은 경우에는, 인접한 영상 블록의 휘도 성분과 색도 성분 모두에 대해 디블록 필터링이 스킵된다. 다른 실시예에서, 동작 벡터와 D.C. 성분은 인접한 블록의 휘도 성분과 색도 성분 각각에 대해 독립적으로 고려된다. 이 경우, 인접한 블록에 대한 휘도 성분이나 색도 성분은 디블록 필터링되고, 그 인접 블록에 대한 타 휘도 성분이나 색도 성분은 디블록 필터링되지 않는다.
도 7을 참조로 설명하면, 몇 가지 공지 기법은 루프 필터에 대한 "블록 세기(strength)" 프로세스를 정의하여 루프 필터링 프로세스를 제어한다. 영상의 각 블록은 그 블록과 연관하여 그 블록의 4개의 블록 경계 모두에 대해 실시된 필터링을 제어하는 세기값을 갖는다. 블록 세기값은 비트스트림에서 이용될 수 있는 동작 벡터와 변환 계수에 따라서 도출된다. 그러나, 블록의 4개 에지 모두에 대한 블록 세기값의 이용을 고려하여, 본 발명자들은 이것이 일부 에지에서는 일부 블록 킹 아티팩트를 제거하고 다른 에지를 따라서는 불필요하게 블러링을 발생한다는 것을 알았다.
블록 방식 필터링과 달리, 본 발명자들은 필터링 판단은 다른 정보와 함께 에지 방식으로 행해져야 함을 알았다. 다른 정보로는, 예컨대 블록의 블록내 인코딩, 레지듀얼 정보를 가진 블록의 동작 추정, 레지듀얼 정보를 갖지 않은 블록의 동작 추정, 및 충분한 차를 가진 레지듀얼이 없는 블록의 동작 추정이 있다. 이들 정보 특성들 일부 또는 전부를 이용하여 에지 방식 필터링 능력을 개선할 수 있다. 서로 다른 특성 세트에 따라서, 필요에 따라서 필터링을 변형시킬 수 있다.
각 블록 경계에 대해서는 바람직하게는 제어 파라미터, 즉 경계 세기(Bs)가 정의된다. 도 8을 참조로 설명하면, 공통의 경계를 공유하는 한 쌍의 파라미터를 j 및 k라고 한다. 제1 블록(110)은 두 개의 블록 중 어느 하나가 인트라코딩된(intra-coded)지 여부를 검사한다. 그 블록이 인트라코딩된 것이라면, 단계(112)에서 경계 세기가 3으로 설정된다. 단계(110)에서는 블록 모두가 동작 예측되는지 여부를 판단한다. 동작 예측의 이용이 없다면, 블록은 프레임 그 자체로부터 도출되고, 따라서 경계에서 필터링이 실시되어야 한다. 이것은 인트라코딩된 블록 경계가 통상적으로 블록킹 아티팩트를 포함하고 있기 때문에 통상적으로는 적당한 것이다. 블록(i, j) 모두가 이전 또는 이후 프레임으로부터 적어도 부분적으로 예측되는 경우에는, 단계(114)에서 블록(j, k)을 검사하여, 계수가 코딩되어 있는지 여부를 판단한다. 계수는 예컨대 이산 코사인 변환 계수일 수 있다. 블록들(j, k) 중 어느 하나가 비영(non-zero) 계수를 포함하고 있다면, 블록들 중 적어 도 하나는, 일반적으로 레지듀얼이라고 불리는 계수를 이용한 블록에 대한 변경과 함께 이전 또는 이후 프레임으로부터의 예측을 나타낸다. 블록들(j, k) 중 어느 하나가 비영 계수(및 예측된 동작)를 포함하고 있다면, 단계(116)에서 경계 세기는 2로 설정된다. 이것은 영상이 예측되고 그 예측은 레지듀얼을 이용하여 보정된다는 것을 나타낸다. 따라서, 영상은 블록킹 아티팩트를 포함할 가능성이 크다.
블록들(j, k) 모두가 동작 예측되고, 일반적으로 레지듀얼이라고 불리는 비영 계수를 포함하고 있지 않다면, 단계(118)에서 경계의 양측 상의 픽셀들이 다른 픽셀과 충분히 다른지 여부를 판단한다. 이것은 마찬가지로 레지듀얼이 충분히 작은지 여부를 판단하는데도 이용될 수 있다. 충분한 차이가 있다면, 블록킹 아티팩트가 존재할 가능성이 크다. 초기에는 두 개의 블록이 서로 다른 기준 프레임(즉, R(j)≠R(k))을 이용하는 여부를 판단한다. 블록(j, k)이 서로 다른 기준 프레임으로부터 나온 것이라면, 단계(120)에서 경계 세기는 1로 설정된다. 대안으로서, 두 개의 영상 블록의 동작 벡터의 절대차를 검사하여 이들이 수직 또는 수평 방향에서에 1 픽셀보다 크거나 같은지(즉, |V(j,x)-V(k,x)|≥ 1 픽셀 또는 |V(j,y)-V(k,y)|≥ 1 픽셀) 여부를 판단한다. 필요한 경우, 테스트에 따라 더 크거나 작은 다른 임계치도 마찬가지로 이용될 수 있다. 동작 벡터의 절대차가 1보다 크거나 같은 경우에는 경계 세기는 1로 설정된다.
두 개의 블록(j, k)가 레지듀얼없이 동작 예측되고, 동일한 프레임에 기초하고, 그 차이가 별로 크지 않다면, 경계 세기값은 0으로 설정된다. 경계 세기값이 0으로 설정되면, 그 경계는 필터링되지 않거나 그 경계 세기값에 따라서 적응적으 로 필터링된다. 경계 세기가 0인 경우 필요하다면 시스템은 약간만 필터링할 수 있다.
1, 2 및 3과 같은 경계 세기값을 이용하여 루프 필터에서의 픽셀값 적응 범위를 제어한다. 필요한 경우, 각각의 상이한 경계 세기는 상이한 필터링의 기초가 될 수 있다. 예컨대, 일부 실시예에서, Bs=1인 경우에는 제1 필터, Bs=2인 경우에는 제2 필터, Bs=3인 경우에는 제3 필터와 같이 3종류의 필터를 이용할 수 있다. 다른 필터링과 비교해서 더 큰 차이를 발생시키는 최소 필터링에 의한 논필터링(non-filtering)이 실시될 수도 있다. 도 8에 도시된 본 예에서, Bs의 값이 클수록 필터링은 더 크다. 필터링은, ISO/IEC MPEG 및 ITU-T VCEG(JVT-C167)의 Joint Video Team(VJT)의 Joint Committee Draft(CD)에 기재된 방법이나 기타 공지의 영상 아티팩트 필터링 방법과 같은 임의의 적당한 기법으로 실시될 수 있다.
스킵 모드 필터링은 다중 영상 프레임을 인코딩 또는 디코딩하는 시스템에서 이용될 수 있다. 예컨대, DVD 플레이어, 비디오 레코더, 또는 텔레비젼 채널이나 인터넷과 같은 통신 채널을 통해 영상 데이터를 전송하는 시스템에서 이용될 수 있다. 이런 시스템은 코딩 파라미터와 같은 양자화 파라미터를 단독으로 또는 다른 코딩 파라미터와 조합하여 이용할 수 있다. 또한, 시스템은 양자화 파라미터만을 이용하지 않거나 필터링 목적으로 전혀 이용하지 않을 수도 있다.
전술한 스킵 모드 필터링은 전용 프로세서 시스템, 마이크로 컨트롤러, 프로그래머블 로직 디바이스, 또는 동작의 일부 또는 전부를 실행하는 마이크로프로세서로 구현될 수 있다. 전술한 동작의 일부는 소프트웨어로, 나머지는 하드웨어로 구현될 수 있다.
편의상, 동작들은 서로 연결된 여러 가지 기능블록이나 별도의 소프트웨어 모듈로 설명된다. 이것은 필수적인 것은 아니며, 이들 기능 블록이나 모듈이 단일의 로직 디바이스, 불명한 경계를 가진 프로그램이나 동작으로 등가적으로 통합된 경우가 있을 수 있다. 어쨌든, 기능 블록과 소프트웨어 모듈, 또는 설명된 특징들은 독립적으로, 또는 다른 동작과 조합하여 하드웨어나 소프트웨어 형태로 구현될 수 있다.
도 9에 도시된 본 발명의 일부 실시예에서, 영상 데이터(902)는 본 발명의 일부 실시예로서 전술한 적응성 필터링부를 포함하는 영상 데이터 인코딩 장치(904)에 입력될 수 있다. 영상 데이터 인코딩 장치(904)로부터의 출력은 인코딩된 영상 데이터이며, 컴퓨터 판독 저장 매체(906)에 저장될 수 있다. 저장 매체로는 디스크 매체, 메모리 카드 매체나 디지털 테이프 매체가 있을 수 있으나, 이에 한정되는 것은 아니다. 저장 매체(906)는 단기 저장 장치로서 기능할 수도 있다. 인코딩된 영상 데이터는 저장 매체(906)로부터 독출되어, 본 발명의 일부 실시예에서 전술한 적응성 필터링부를 포함하는 영상 데이터 디코딩 장치(908)에 의해 디코딩될 수 있다. 디코딩된 영상 데이터는 출력 디코딩된 영상 데이터(910)로서 디스플레이 기타 다른 장치로 제공될 수 있다.
본 발명의 일부 실시예에서, 도 10에 도시된 비와 같이, 영상 데이터(1002)는 인코딩되고, 이 인코딩된 영상 데이터는 저장 매체(1006)에 저장될 수 있으며, 영상 데이터 디코딩 장치(1008)는 도 9에 도시된 것과 동일하다. 도 10에서, B's 데이터 인코딩부(1012)는, 각 블록 경계에 대해 DPCM, 다중치 실행 길이 코딩, 무손실 변환 코딩 등과 같은 임의의 데이터 코딩법으로 인코딩된 경계 세기(B's)의 값을 수신한다. 경계 세기(B's)는 도 8에 도시된 대로 발생될 수 있다. 그 다음, 인코딩된 경계 세기는 저장 매체(1006)에 저장될 수 있다. 일 예로서, 인코딩된 경계 세기는 인코딩된 영상 데이터와는 별도로 저장될 수 있다. 다른 예로서, 인코딩된 경계 세기와 인코딩된 영상 데이터는 저장 매체(1006)에 저장되기 전에 멀티플렉싱될 수 있다.
인코딩된 경계 세기는 저장 매체(1006)로부터 독출되어, B's 데이터 디코딩부(1014)에 의해 디코딩된 다음에 영상 데이터 디코딩 장치(1008)로 입력될 수 있다. 영상 데이터 디코딩 장치(1008)에서 상기 디코딩된 경계 세기를 이용하여 본 발명의 적응성 필터링을 수행할 때에는, 도 8에 도시된 프로세스를 반복하여 경계 세기를 발생시킬 필요는 없다. 이는 적응성 필터링을 위한 처리 전력을 절감할 수 있다.
본 발명의 일부 실시예에서, 도 11에 도시된 바와 같이, 영상 데이터(1102)는, 본 발명의 일부 실시예로서 전술한 바와 같은 적응성 필터링부를 포함하는 영상 데이터 인코딩 장치(1104)에 입력될 수 있다. 영상 데이터 인코딩 장치(1104)로부터의 출력은 인코딩된 영상 데이터로서 LAN, WAN 또는 인터넷과 같은 네트워크(1106)를 통해 전송될 수 있다. 인코딩된 영상 데이터는, 네트워크(1106)와 통신하는 영상 디코딩 장치(1108)에서 수신되어 디코딩될 수 있다. 영상 데이터 디코딩 장치(1108)는 본 발명의 일부 실시예로서 전술한 적응성 필터링부를 포함한 다. 디코딩된 영상 데이터는 출력 디코딩된 영상 데이터(1110)로서 디스플레이 기타 다른 장치로 제공될 수 있다.
본 발명의 일부 실시예에서, 도 12에 도시된 바와 같이, 영상 데이터(1202)는 인코딩되고, 이 인코딩된 영상 데이터는 LAN, WAN 또는 인터넷과 같은 네트워크(1206)를 통해 전송될 수 있다. 영상 데이터 인코딩 장치(1204)와 영상 데이터 디코딩 장치(1208)의 기본 절차는 도 11에 도시된 것과 같다. 도 12에서, B's 데이터 인코딩부(1212)는, 각 블록에 대해 DPCM, 다중치 실행 길이 코딩, 무손실 변환 코딩 등과 같은 임의의 데이터 코딩법으로 인코딩된 경계 세기(B's)의 값을 수신한다. 경계 세기(B's)는 도 11에 도시된 대로 발생될 수 있다. 그 다음, 인코딩된 경계 세기는 네트워크(1206)를 통해 전송될 수 있다. 일 예로서, 인코딩된 경계 세기는 인코딩된 영상 데이터와는 별도로 전송될 수 있다. 다른 예로서, 인코딩된 경계 세기와 인코딩된 영상 데이터는 네트워크(2006)를 통해 전송되기 전에 멀티플렉싱될 수 있다.
인코딩된 경계 세기는 네트워크(1206)로부터 수신되어, B's 데이터 디코딩부(1214)에 의해 디코딩된 다음에, 본 발명의 적응성 필터링을 수행하는 영상 데이터 디코딩 장치(1208)로 입력될 수 있다. 이 경우에도, 도 11에 도시된 프로세스를 반복하여 경계 세기를 발생시킬 필요는 없다. 이 또한 적응성 필터링을 위한 처리 전력을 절감할 수 있다.
도 13을 참조로 본 발명의 일부 실시예를 설명한다. 이들 시스템과 방법에서, 비디오 프레임 내의 인접 블록들(150)이 식별되고, 이들 인접 블록들의 코딩 파라미터들이 식별된다. 그 다음, 인접 블록들의 코딩 파라미터들은 서로 비교되어 그들 간의 유사도를 판단한다(154). 코딩 파라미터들이 유사하지 않으면, 인접 블록들 간의 경계를 따라 디블록 필터(156)가 적용된다. 코딩 파라미터들이 유사하면, 디블록 필터링은 스킵되고, 프로세스는 다음 단계(158)로 진행한다. 마찬가지로, 디블록 필터링이 수행될 때에는 프로세스는 필터링 후의 다음 단계(158)로 진행한다.
본 발명의 일부 실시예에서, 도 14에 도시된 바와 같이, 코딩 파라미터는 동작 벡터이다. 이들 실시예에서, 비디오 프레임 내의 인접 블록들이 식별되고(160), 동작 벡터를 포함하는 코딩 파라미터들(162)이 식별된다. 그 다음, 이들 동작 벡터들은 서로 비교되어 그들 간의 유사도를 판단한다(164). 동작 벡터들이 유사하지 않으면, 인접 블록들 간에 디블록 필터링이 수행되고(166), 프로세스는 다음 단계(168)로 진행할 수 있다. 동작 벡터들이 유사하면, 디블록 필터링은 스킵되고, 다음 단계(168)가 바로 실행된다.
본 발명의 다른 실시예들은, 도 15에 도시된 바와 같이, 복수의 코딩 파라미터를 이용하여 필터링을 스킵할지 여부를 판단할 수 있다. 이들 실시예에서, 인접 블록들이 식별되고(170), 인접 블록들에 대한 코딩 파라미터들이 결정된다. 이들 코딩 파라미터들은 동작 벡터의 타겟 프레임을 포함하는 동작 벡터 속성을 포함할 수 있다. 인접 블록들의 동작 벡터들이 유사하지 않으면(174), 인접 블록들 간에 디블록 필터링이 수행될 수 있다(176). 동작 벡터들이 유사하면(174), 다른 파라미터들을 이용하여 필터링 프로세스를 더 한정시킬 수 있다. 이 예에서, 동작 벡 터들은 서로 비교되어 이들 벡터가 동일한 기준 프레임을 지시하는지 여부를 판단할 수 있다(178). 이들 벡터들이 동일한 기준 프레임을 지시하지 않는 경우에는 블록들 간에 디블록 필터링이 수행될 수 있다(176). 이들 벡터들이 동일한 기준 프레임을 지시하는 경우에는, 필터링은 스킵되고, 프로세스는 다음 단계(179)로 진행할 수 있다.
다른 동작 벡터 파라미터를 이용하여 필터링을 결정할 수 있다. 도 16에 도시된 실시예에서, 벡터들이 지시하는 블록들의 위치는 필터링 옵션을 결정하는데 이용될 수 있는 파라미터이다. 이들 실시예에서, 인접 블록들이 식별되고(200), 이들 인접 블록들에 대한 코딩 파라미터들이 식별된다(202). 그 다음, 동작 벡터들이 서로 비교되어 그들 간의 유사도를 결정한다(204). 동작 벡터들이 유사하지 않으면, 디블록 필터링이 수행될 수 있다(208). 동작 벡터들이 유사하면, 인접 블록들의 동작 벡터들이 동일한 기준 프레임을 지시하는지 여부를 판단하는 비교 동작을 행할 수 있다. 동작 벡터들이 동일한 기준 프레임을 지시하지 않는 경우에는, 디블록 필터링이 수행될 수 있다(208). 동작 벡터들이 동일한 기준 프레임을 지시하는 경우에는, 그 벡터들이 지시하는 블록들이 서로 비교될 수 있다(210). 동작 벡터들이 동일 기준 프레임 내의 인접 블록들을 지시하지 않는 경우에는, 디블록 필터링이 수행될 수 있다(208). 동작 벡터들이 동일 기준 프레임 내의 인접 블록들을 지시하는 경우에는, 디블록 필터링은 스킵되고, 다음 단계(212)가 실행될 수 있다. 이런 식으로, 기준 프레임 내의 인접 블록들을 참조하며 큰 아티펙트를 가질 것 같지 않은 인접 블록들은 디블록 필터링되지 않는다. 이와 같은 디블록 필터링 스킵은 필터링 프로세스가 초래하는 블러링이나 영상 열화를 방지한다. 불필요한 필터링을 피할 수 있기 때문에 처리 시간도 절약될 수 있다. 따라서, 영상 품질이 향상되고 프로세스의 계산도 줄어든다. 이들 동작 벡터 파라미터들의 여러 가지 조합을 이용하여 필터링 스킵을 판단할 수 있다. 이런 여러 가지 파라미터 조합은 구체적으로 설명하지는 않지만 본 기술분야의 통상의 전문가라면 쉽게 실시할 수 있는 것으로 첨부된 청구범위에 포함되는 것이다.
본 발명의 다른 실시예들은 변환 계수를 이용하여 디블록 필터링의 수행여부를 판단할 수 있다. 도 17을 참조로 설명하면, 프레임 내의 인접 블록들이 식별되고(180), 이들 인접 블록들에 대한 코딩 파라미터들이 식별된다(182). 이들 코딩 파라미터들은 변환 계수는 물론 동작 벡터 파라미터도 포함할 수 있다.
그 다음, 동작 벡터들을 서로 비교하여 그 유사도를 결정한다(184). 동작 벡터들이 유사하지 않으면, 디블록 필터링이 수행될 수 있다(186). 동작 벡터들이 유사하면, 동작 벡터를 분석하여 그 동작 벡터들이 동일 기준 프레임을 지시하는지 여부를 판단한다. 동작 벡터들이 동일 기준 프레임을 지시하지 않으면(185), 필터링이 수행될 수 있다(186).
동작 벡터가 동일 기준 프레임을 지시하면(185), 변환 계수를 비교하여 필터링 프로세스를 더 한정할 수 있다. 이 예에서는, 인접 블록들에 대해서, 이산 코사인 변환법(DCT)이나 기타 다른 방법을 통해 얻어진 DC 변환 계수들을 비교할 수 있다. DC 변환 계수들이 유사하지 않으면(187), 디블록 필터링이 수행될 수 있다(186). DC 변환 계수들이 유사하면, 필터링이 스킵될 수 있으며, 프로세스는 다 음 단계(188)로 진행할 수 있다.
본 발명의 또 다른 실시예들은 AC 변환 계수를 이용하여 필터링 옵션을 결정한다. 도 18은 도 17을 참조로 설명한 것과 유사한 실시예에 AC 변환 계수를 평가하는 단계를 추가한 것을 도시한다. 이들 실시예에서, 인접 블록들이 식별되고(190), 그들의 코딩 파라미터들이 식별된다(191). 동작 벡터(192), 동작 벡터 타겟 프레임(193) 및 DC 변환 계수들의 유사도가 비교된다(196). 이들 파라미터들이 유사하면, AC 변환 계수가 비교된다(196). 이들 AC 변환 계수들이 유사하면, 디블록 필터링이 스킵되고, 프로세스의 다음 단계(197)가 실행된다. AC 변환 계수들이 유사하지 않으면, 인접 블록들 간에 필터링이 수행되고, 프로세스는 다음 단계(197)로 진행한다.
AC 변환 계수는 블록이 클수록 그 중요성이 더 클 가능성이 있지만 4×4 블록과 같은 작은 블록을 이용하는 방법에서 이용될 수도 있다.
본 발명의 일부 실시예에서, 영상은 영상 포맷과 이용된 컬러 공간에 따라서 여러 가지 휘도와 색도 채널로 분리될 수 있다. 다음의 예에서는 YUV 컬러 공간이 설명되지만, 이들 실시예에서는 다른 포맷과 컬러 공간이 이용될 수도 있다. 예컨대, CieLAB, YcrCb 기타 다른 컬러 공간이 이용될 수 있다. 다른 실시예에서는 RGB와 같은 컬러 공간이 이용될 수 있다.
본 발명의 일부 실시예는 도 19과 관련하여 설명될 수 있다. 이들 실시예에서 휘도 데이터는 영상으로부터 추출되어 휘도 영상이 생성된다(220). 그 다음, 그 휘도 영상에서 인접 블록들이 식별되고(222), 그 인접 블록들에 대한 코딩 파라 미터들도 식별된다(224). 다른 실시예에서처럼, 인접 블록들의 동작 벡터들을 비교하여 그 유사도를 결정한다(226). 동작 벡터들이 유사하지 않으면, 디블록 필터링이 수행되고(230), 동작 벡터들이 유사하면, 그 벡터들이 동일한 기준 프레임을 지시하는지 여부를 판단하기 위한 추가적인 분석이 행해진다(228). 동작 벡터들이 서로 다른 기준 프레임을 지시하는 경우에는, 그 휘도 영상 내의 인접 블록들에 대응하는 원래 영상의 인접 블록들 간에 디블록 필터링이 수행된다(230). 동작 벡터들이 동일 기준 프레임을 지시하는 경우에는, 디블록 필터링은 스킵되고, 종전의 필터링없이 다음 단계(232)가 실행된다. 필터링 수행시, 필터링 프로세스 후에 다음 단계(232)가 실행된다. 따라서 휘도 채널에서의 데이터 분석을 이용하여 휘도 데이터와 색도 데이터 모두를 포함하는 원래 영상에서 필터링 프로세스를 결정한다.
다른 관련 실시예에서는, 도 20에 도시된 바와 같이, 휘도 영상이 생성되고(240), 그 휘도 영상과 원래 영상에서 대응하는 인접 블록들이 식별된다(242). 그 휘도 영상 블록에 대한 코딩 파라미터들도 식별된다. 이어서, 동작 벡터들을 비교하여 그 유사도를 결정한다(246). 유사도가 존재하지 않으면, 원래 영상 내의 인접 블록들 간에 필터링이 수행된다(252). 동작 벡터들이 유사하면, 동작 벡터의 타겟 프레임들을 비교하여 그 동작 벡터들이 동일 기준 프레임을 지시하는지 여부를 판단한다. 동작 벡터가 동일 기준 프레임을 지시하지 않는 경우에는 필터링이 수행된다. 동작 벡터가 동일 기준 프레임을 지시하는 경우에는 휘도(Y) 영상의 변환 계수들이 비교된다. Y 변환 계수들이 유사하지 않은 경우에는 필터링이 수행된 다. 변환 계수들이 유사한 경우에는 필터링은 스킵되고 다음 단계(254)가 실행된다. 마찬가지로 다음 단계(254)는 필터링 동작 후에 실행된다.
영상은 일반적으로 휘도 채널과 색도 채널에 대응하는 성분 채널로 더 분할될 수 있다. 본 발명의 일부 실시예에서, 각 채널은 그 채널의 고유 파라미터에 따라서 필터링될 수 있다.
일 예로서, 도 21을 참조로, 영상이 휘도 채널(Y)과 복수의 색도(U, V) 채널로 분리될 수 있는(260) 실시예들을 설명한다. 이들 실시예에서, 각 채널에 대응하는 영상들에서 인접 블록들이 식별된다(262, 272, 282). 각 채널에서의 이들 블록들에 대해 동작 벡터 데이터와 같은 코딩 파라미터들도 식별된다(264, 274, 284). 이들 코딩 파라미터들을 서로 비교하여 다른 실시에들에서처럼 그 유사도를 결정한다. 이들 예시적인 실시예들에서, 채널 특정 동작 벡터들에 대한 동작 벡터 유사도를 이용하여 각 채널에서의 필터링 옵션을 결정할 수 있다. 채널 영상에 대한 동작 벡터들이 유사하지 않으면(266, 276, 286), 그 특정 채널에서 인접 블록들 간에 필터링이 수행된다(270, 280, 290). 동작 벡터들이 유사하면, 타겟 기준 프레임들이 비교된다(268, 278, 288). 특정 채널에서의 인접 블록들에 대한 동작 벡터들이 동일 기준 프레임을 지시하는 경우에는 필터링이 스킵된다. 동작 벡터들이 서로 다른 기준 프레임을 지시하는 경우에는 필터링이 수행된다(270, 280, 290).
다른 실시예들에서처럼, 이들 채널화된 실시예들은 변환 계수를 이용하여 필터링 옵션을 한정할 수 있다. 도 22에 도시된 바와 같이, 도 21을 참조로 설명된 방법과 시스템은 채널 변환 계수들을 더 비교할 수 있다(310, 322, 334). 이들 계 수들이 유사하지 않으면, 필터링이 수행된다(312, 324, 336). 계수들이 유사하면 필터링은 스킵된다.
각 채널에서의 필터링 동작을 한정하는데는 여러 가지 파라미터 조합을 이용할 수 있다. 이들 실시예들에서는 DC 및 AC 변환 계수가 이용될 수 있다. 더욱이, 여러 가지 채널 및 채널 조합을 이용하여 필터링 동작을 결정하여 필터링을 수행할 수 있다. 예컨대, 일부 실시예에서는 색도 채널들을 조합하여 분석할 수 있다. 한 채널로부터의 데이터와 파라미터를 이용하여 다른 채널에서의 필터링 옵션을 결정할 수도 있다. 예컨대, U 색도 채널로부터의 파라미터들을 비교하여 V 색도 채널에서의 필터링 옵션을 결정할 수 있으며, 그 반대의 경우도 가능하다.
본 발명의 일부 실시예는 H.264/AVS의 계위 비디오 코딩 확장에 관한 것이다. 일부 실시예는 공간 계위 비디오 코딩에 대한 화상 업샘플링 문제를 다루는 필터링에 관한 것이다. 더 구체적으로 설명하면, 본 발명의 일부 실시예는 H.264/MPEG-4 AVC의 계위 비디오 코딩 확장, 특히 JVT(MPEG 및 VCEG의 Joint Video Team)에 의해 2005년 4월에 채택된 확장형 공간 계위(ESS) 비디오 코딩 특성용으로 설계된 업샘플링 절차를 제공한다.
현재, JSVAM WD-1.0[MPEG Doc. N6901](본 명세서에 인용으로서 포함됨)은 이분법적인 공간 계위, 즉 두 개의 연속한 공간 계층의 (픽셀의 수로 나타낸) 화상 폭 대 높이의 비가 2인 구성만을 다룬다. 이것은 방송을 위한 SD-HD 계위와 같은 더 일반적인 응용을 제한하게 될 것이다.
확장된 공간 계위를 제공하는, 즉 두 개의 연속한 공간 계층의 화상 폭 대 높이의 비가 반드시 2의 제곱은 아니고 높은 레벨의 화상이 낮은 레벨의 대응 화상에는 존재하지 않는 (통상적으로 화상 경계 부근의) 영역을 포함할 수 있는 구성을 관리하는 [MPEG Doc.m11669]와 같은 도구(본 명세서에 인용으로 포함됨)가 제안되어 있다. 이 같은 제안 [MPEG Doc.m11669]는 상위 계층과 하위 계층 화상 치수간의 비가 2의 제곱이 아닌 더 일반적인 경우에 대해서 WD-1.0[MPEG Doc.N6901]의 계층간 예측을 확장시킨다.
본 발명의 실시예들은 확장 공간 계위, 즉 크로핑 윈도우를 가진 비이분법적 스케일링을 더 일반적인 응용의 필요에 더 잘 맞는 화상 레벨에 적용하는 방법을 제공한다. 공간 계위의 화상 레벨 적응을 지원하기 위해서 본 발명의 실시예들은 전술한 계층간 예측법을 더 계량한 방법을 제공한다. 추가로 이들 실시예들은 종래의 제안에서 다루지 못했던 몇 가지 문제도 다루게 된다.
본 명세서와 청구 범위에서, 용어 "화상"은 픽셀 어레이, 디지털 영상, 디지털 영상의 세분, 디지털 영상의 데이터 채널, 또는 영상 데이터의 다른 표현을 포함할 수 있다.
도 23은 어떤 영상 화상에 대응하는 두 개의 화상을 도시한 것이다.
본 발명의 실시예들은 두 개 또는 그 이상의 연속한 공간 계층, 예컨대 하위 계층(기초 계층)(253)과 상위 계층(강화 계층)(251)에 관한 것이다. 이들 계층은 이하의 기하학적 관계(도 1에 도시됨)에 의해 연계될 수 있다. 강화 계층 화상의 폭(250)과 높이(252)는 각각 wenh와 henh로 정의될 수 있다. 마찬가지로 기초 계층 화상의 폭과 높이는 각각 wbase(254)와 hbase(256)로 정의될 수 있다. 기초 계층(253)은 강화 계층 화상 좌표계에서 좌표(262)(xorig, yorig)에 위치한, 치수 wextract(258)와 hextract(260)의 강화 계층 화상(251)의 서브 영역의 업셈플링(264) 버전일 수 있다. 파라미터들(xorig, yorig, wextract, hextract, wbase 및 hbase)은 상위 계층 화상(251)과 하위 계층 화상(253) 간의 기하학적 관계를 정의한다.
본 발명의 실시예들이 다루는 문제는 디코딩된 기초 계층을 알고 있는 강화 계층의 마크로블록의 인코딩/디코딩이다. 강화 계층의 마크로블록은, 도 24에 도시된 바와 같이, (강화 계층 화상의 경계상의) 기초 계층 대응 블록을 갖지 않거나 하나 내지 수 개의 기초 계층 대응 마크로블록을 가질 수 있다. 결과적으로, WD-1.0[MPEG Doc.N6901]에서와는 다르게 계층간 예측을 다룰 필요가 있다. 도 24는 업샘플링된 기초 계층 화상(272)(그 마크로블록 경계들은 점선(274)으로 표시됨) 강화 계층 화상(270)(그 마크로블록 경계들은 실선(276)으로 표시됨) 간에 오버랩된 마크로블록을 도시한다.
[MPEG Doc.m1669]에서는 wextract와 hextract를 16의 배수로 한정하는 것을 제안하였다. 이러한 한정은 화상 레벨 적응을 제한하게 된다. 이와 달리, 본 발명의 실시예들은 wextract와 hextract를 16의 배수로 한정한다. 더욱이, 본 발명의 실시예들에서는, 색도 업/다운 샘플링에서 단계 시프트를 조정하는데 있어 복잡성을 피하기 위해 xorig와 yorig는 2의 배수가 된다. 종전에는 색도-단계 시프트 문제를 다루지 않았다.
도 23에 도시된 치수와 기타 다른 파라미터들은 하기의 기호나 변수명으로 표현할 수 있다.
- scaled_base_left_offset = xorig
- scaled_base_top_offset = yorig
- scaled_base_right_offset = wenh-xorig-wextract
- scaled_base_bottom_offset = henh-yorig-hextract
- scaled_base_width = wextract
- scaled_base_height = hextract
계층간 동작 예측
주어진 상위 계층 마크로블록은 "BASE_LAYER_MODE"나 "QPEL_REFINEMENT_MODE"를 이용하는 스케일링된 기초 계층 동작 데이터를 이용하는 계층간 예측을 이용할 수 있다. WD-1.0[MPEG Doc.N6901]에서와 같이, 이들 마크로블록 모드는 마크로블록 위치 설정을 포함하는 동작/예측 정보가 기초 계층으로부터 바로 도출됨을 나타낸다. 예측 마크로블록 MB_pred는 기초 계층으로부터 동작 데이터를 인계받음으로써 구성될 수 있다. "BASE_LAYER_MODE" 이용시에, 기준 인덱스와 동작 벡터는 물론 마크로블록 위치 설정은 예측 마크로블록 MB_pred의 것들이다. "QPEL_REFINEMENT_MODE"도 마찬가지이지만, 이것은 쿼터 샘플 동작 벡터 재 조정(refinement)을 받는다.
MB_pred를 하기의 4 단계로 도출하는 것을 제안되어 있다.
- MB_pred의 4×4 블록 각각에 대해 동작 데이터를 기초 계층 동작 데이터로부터 계승하는 단계,
- MB_pred의 8×8 블록 각각에 대한 분할 선택 단계,
- MB_pred에 대한 모드 선택 단계, 및
- 동작 벡터 스케일링 단계
그러나, 본 발명의 실시예들은 화상 레벨 적응을 지원하는 몇 가지 수학식을 변형한 것이다.
4×4 블록 계승
도 25는 4개의 코너(281, 282, 283, 284)를 가진 4×4 블록 b(280)를 도시한다. 프로세스는 이들 4개의 코너(281, 282, 283, 284) 각각을 체크하는 것으로 이루어져 있다. (x, y)를 상위 계층 좌표계에서 코너 픽셀(c)의 위치라고 하고, (xbase, ybase)를 기초 계층 좌표계에서의 대응 위치라고 하면, 다음과 같이 정의된다.
그러면, 픽셀(x, y)의 동일 위치 마크로블록은 픽셀(xbase, ybase)를 포함하는 기초 계층 마크로블록이다. 마찬가지로, 픽셀(x, y)의 동일 위치 8×8 블록은 픽 셀(xbase, ybase)를 포함하는 기초 계층 8×8 블록이고, 픽셀(x, y)의 동일 위치 4×4 블록은 픽셀(xbase, ybase)를 포함하는 기초 계층 4×4 블록이다.
b에 대한 동작 데이터 계승 프로세스는 다음과 같다.
- 각 코너 c에 대해서, 각 리스트 listx(listx=list0 또는 list1)의 기준 인덱스 r(c, listx)와 동작 벡터 mv(c, listx)가 동일 위치 기초 계층 4×4 블록의 것들로 설정된다
- 각 코너에 대해, 동일 위치 마크로블록이 존재하지 않거나 인트라 모드 내에 있는 경우, b는 인트라 블록으로서 설정된다
- 그 밖에, 각 리스트 listx에 대해,
○ 코너들 중 어느 것도 이 리스트를 이용하지 않는 경우, 이 리스트에 대한 어떤 기준 인덱스와 동작 벡터는 b로 설정되지 않는다
○ 그 밖에,
■ b에 대해 설정된 기준 인덱스 rb(listx)는 4개의 코너의 기존의 기준 인덱스의 최소이다:
■ b에 대해 설정된 동작 벡터 mv(listx)는 기준 인덱스 rb(listx) 를 가진 4개의 코너의 기존의 동작 벡터의 평균이다.
8×8 분할 선택
일단 각 4×4 블록 동작 데이터가 설정되고 나면, 이것이 속하는 8×8 블록의 실제 분할을 결정하고, 금지된 구성을 피하기 위하여 병합(merging) 프로세스가 필요하다. 다음에는 8×8 블록의 4×4 블록이 도 26에 도시된 바와 같이 식별된다.
각 8×8 블록 B에 대해서, 다음의 프로세스가 적용될 수 있다.
- 4개의 4×4 블록이 인트라 블록으로 분류되면, B는 인트라 블록으로
간주된다.
- 그 밖에, B 분할 선택이 실행된다:
○ 동일 기준 인덱스를 각 4×4 블록에 할당하는 다음의 프로세스가 적용된다:
각 리스트 listx에 대해
■ 어떤 4×4 블록도 이 리스트를 이용하지 않으면, 이 리스트의
어떤 기준 인덱스와 동작 벡터도 B로 설정되지 않는다
■ 그 밖에
● B에 대한 기준 인덱스 rB(listx)는 4개의 4×4 블록의 기존의
기준 인덱스의 최소로 계산된다:
● 동일한 기준 인덱스 rB(listx)를 가진 4×4 블록의 평균 동작
벡터 mvmean(listx)가 계산된다
● (1) 인트라 블록으로 분류되거나, (2) 이 리스트를
이용하지 않거나, (3) rB(listx)와 다른 기준 인덱그 rb(listx)
를 가진 4×4 블록은 rB(listx)와 mvmean(listx)를 기준
인덱스와 동작 벡터로서 갖게 된다.
○ 그러면, B에 대한 분할 모드의 선택이 수행된다. 두 개의 4×4
블록은 그들의 동작 벡터가 동일한 경우에 동일한 것으로 간주된다.
병합 프로세스는 다음과 같이 적용된다.
■ b1이 b2와 같고, b3이 b4와 같은 경우,
● b1이 b3와 같은 경우, BLK_8×8이 선택된다
● 그러지 않으면, BLK_8×4가 선택된다
■ 그러지 않고, b1이 b3과 같고, b2가 b4와 같은 경우, BLK_4×8 이 선택된다
■ 그러지 않으면, BLK_4×4가 선택된다
예측 마크로블록 모드 선택
일부 실시예에서, MB_pred 모드를 결정하는 프로세스를 수행할 수 있다. 이하에서는 마크로블록(300)의 8×8 블록들이 도 27에 도시된 바와 같이 식별된다.
두 개의 8×8 블록은 다음과 같은 경우에 동일한 블록으로 간주된다.
- 두 개의 8×8 블록 중 어느 하나 또는 둘 다 인트라 블록으로 분류되는 경우, 또는
- 블록 모두의 분할 모드가 BLK_8×8이고, 각 8×8 블록의 list0과 list1의 기준 인덱스와 동작 벡터(이들이 존재 하는 경우)는 동일하다.
모드 선택은 다음의 프로세스를 이용하여 행해진다:
- 8×8 블록이 모두 인트라 블록으로 분류되면, MB_pred는 인트라 마크로블록으로 분류된다
- 그러지 않으면, MB_pred는 인터 마크로블록이다. 그 모드 선택은 다음과 같이 수행된다:
○ 인트라 블록으로 분류된 8×8 블록은 BLK_8×8 분할된다.
그들의 기준 인덱스와 동작 벡터는 다음과 같이 계산된다. BINTRA를
그와 같은 8×8 블록이라고 한다.
각 리스트 listx에 대해
■ 이 리스트를 이용하는 8×8 블록이 없는 경우, 이 리스트의
기준 인덱스 및 동작 벡터는 BINTRA로 할당된다.
■ 그러지 않으면, 다음의 단계가 적용된다:
● 기준 인덱스 rmin(listx)가 8×8 블록의 기존의 기준
인덱스의 최소로서 계산된다:
● 동일한 기준 인덱스 rmin(listx)를 가진 4×4 블록의 평균
동작 벡터 mvmean(listx)가 계산된다
● rmin(listx)는 BINTRA로 할당되고, BINTRA의 각 4×4 블록은
rmin(listx)와 mvmean(listx)를 기준 인덱스와 동작
벡터로서 갖게 된다.
○ 그러면, B에 대한 분할 모드의 선택이 수행된다. 두 개의 8×8
블록은 그들의 분할 모드가 BLK_8×8인 경우에 동일한 것으로
간주되고, 각 8×8 블록의 list0과 list1의 기준 인덱스와 동작
벡터(이들이 존재 하는 경우)는 동일하다. 병합 프로세스는 다음과
같이 적용된다:
■ B1이 B2와 같고, B3이 B4와 같은 경우,
● B1이 B3와 같은 경우, MODE_16×16이 선택된다.
● 그러지 않으면, MODE_16×8이 선택된다.
■ 그러지 않고, B1이 B3와 같고, B2가 B4와 같은 경우,
MODE_8×16이 선택된다.
■ 그러지 않으면, MODE_8×8이 선택된다.
동작 벡터 스케일링
상기와 같이 도출된 예측 마크로블록 MB_pred의 모든 기존의 동작 벡터에는 동작 벡터 리스케일링(rescaling)이 적용될 수 있다. 동작 벡터 mv=(dx, dy)는 다음의 수학식을 이용하여 벡터 mvs=(dsx, dsy)로 스케일링될 수 있다.
여기서, sign[x]는 x가 양수이면 1이고, x가 음수이면 -1이고, x가 0이면 0이다. 첨자 "r"이 붙은 기호는 해당 기준 화상의 기하학적 파라미터를 나타낸다.
계층간 텍스쳐 예측
텍스쳐 업샘플링
본 발명의 일부 실시예에서, 계층간 텍스쳐 예측은 계층간 동작 예측과 동일한 원리에 기초할 수 있다. 기초 계층 텍스쳐 업샘플링은 투-로브드(two-lobed) 또는 쓰리-로브드 랜크조스-윈도우드(Lanczos-windowed) 싱크(sinc) 함수를 적용하여 달성될 수 있다. 이러한 필터는 얼라이어싱의 저감, 첨예도 및 최소 링잉(ringing)의 면에서 최상의 절충을 제공한다. 투-로브드 랜크조스-윈도우드 싱크 함수는 다음과 같이 정의될 수 있다:
이 업샘플링 단계는 전체 프레임에 대해 또는 블록 단위로 처리될 수 있다. 인프라 텍스쳐 예측에 대해서는, 프레임 경계에서 반복 패딩(padding)이 이용된다. 레지듀얼 예측에 대해서는, 블록 경계에서 (변환에 따라 4×4 또는 8×8) 반복 패딩이 이용된다.
예시적인 실시예에서, 랜크조스2 함수에 따라, 기초 계층 화상에서 해당 성분의 샘플 그리드에 대한 1/16 샘플 간격 단위로 16개의 상이한 보간 단계에 대해 다음의 표 1에서 다음의 16개의 4-탭 업샘플링 필터가 정의된다.
위치(x, y)에 있는 현재 계층에서 루마 샘플에 대해서, 기초 계층 화상에서의 해당 샘플에 대한 단계 변동은 다음과 같이 도출될 것이다:
표 1: 업샘플링을 위한 4-탭 보간 필터
단계 |
(4-탭) 보간 필터 계수 |
e[-1] |
e[0] |
e[1] |
e[2] |
0 |
0 |
128 |
0 |
0 |
1 |
-4 |
127 |
5 |
0 |
2 |
-8 |
124 |
13 |
-1 |
3 |
-10 |
118 |
21 |
-1 |
4 |
-11 |
111 |
30 |
-2 |
5 |
-11 |
103 |
40 |
-4 |
6 |
-10 |
93 |
50 |
-5 |
7 |
-9 |
82 |
61 |
-6 |
8 |
-8 |
72 |
72 |
-8 |
9 |
-6 |
61 |
82 |
-9 |
10 |
-5 |
50 |
93 |
-10 |
11 |
-4 |
40 |
103 |
-11 |
12 |
-2 |
30 |
111 |
-11 |
13 |
-1 |
21 |
118 |
-10 |
14 |
-1 |
13 |
124 |
-8 |
15 |
0 |
5 |
127 |
-4 |
색도 샘플 좌표계에서 위치(xc, yc)에 있는 현재 계층에서의 색도 샘플에 대해서는 기초 계층 화상 내의 해당 샘플에 대한 단계 변동은 다음과 같이 도출될 수 있다.
여기서,
wbase ,c = wbaseㆍBASEPicMbWidthC/16 (9)
wextract ,c = wextractㆍMbWidthC/16 (10)
hbase ,c = hbaseㆍBASEPicMbHeightC/16 (11)
hextract ,c = hextractㆍMbHeightC/16 (12)
xorig ,c = xorigㆍMbWidthC/16 (13)
yrig ,c = yorigㆍMbHeightC/16 (14)
도출된 단계 변동 각각에 따라서, 보간을 위해 표 1에서 4-탭 필터가 선택될 수 있다.
계층간 인트라 텍스쳐 예측
WD-1.0[MPEG Doc.N6901]에서, I_BL 모드는 인트라 코딩될 해당 기초 계층 마크로블록 모두를 필요로 한다. 본 발명의 실시예들에서는 이 요건은 완화되어 해단 기초 계층 마크로블록은 인터 코딩되거나 존재하지 않을 수가 있다.
I_BL 모드에서 코딩된 마크로블록에 대한 인트라 예측 신호를 발생하기 위해서는, 기초 계층 신호의 동일 위치 블록(있는 경우)은 바로 디블록화되어 보간된다. 4개의 입력 샘플(X[n-1], X[n], X[n+1], X[n+2])에 대해서, 4-탭 보간 필터의 출력값 Y는 다음과 같이 도출될 것이다:
Y = Clip1Y((e[-1]X[n-1]+ e[0]X[n]+e[1]X[n+1]+e[2]X[n+2]+64)/128) (15)
여기서, Clip1Y(x) = min(max(0,x), (1 <<BitDepthY)-1),
BitDepthY는 루마 샘플에 대한 루마 채널 데이터의 비트 깊이를 나타내고, 또는
Y = Clip1C((e[-1]X[n-1]+ e[0]X[n]+e[1]X[n+1]+e[2]X[n+2]+64)/128) (16)
여기서, Clip1C(x) = min(max(0,x), (1 <<BitDepthC)-1),
BitDepthC는 크로마 샘플에 대한 크로마 채널 데이터의 비트 깊이를 나타낸다.
수학식 15 및 16에서는 라운딩 연산이 적용되기 때문에 수평 우선 또는 수직 우선과 같이 필터링 순서가 정해질 수 있다. 필터 동작은 수평 방향에서 먼저 수행되고, 이어서 수직 방향으로 수행되는 것이 좋다. 이와 같은 업샘플링 프로세스는 아래에 정의된 extended_spatial-scalability가 작용될 때에만 수행된다.
업샘플링 필터 동작 후에는 상수 값을 이용하여 크로핑 윈도우 밖의 영상 영역을 채울 것이다. 상수 값은 루마에 대해서는 (1<<(BitDepthY-1)이고, 크로마에 대해서는 (1<<(BitDepthC-1)이 될 것이다.
계층간 레지듀얼 예측
계층간 인트라 텍스쳐 예측과 유사하게, 기초 계층 레지듀얼을 샘플링할 때에 동일한 4-탭 필터 또는 다른 필터를 적용할 수 있으나, 수학식 15와 16과는 다른 라운딩 및 클리핑 함수를 이용하게 된다.
4개의 입력 레지듀얼 샘플(X[n-1], X[n], X[n+1], X[n+2])에 대해서, 필터의 출력값 Y는 다음과 같이 도출될 것이다:
루마 레지듀얼 샘플에 대해서는,
Y = Clip1Y ,r((e[-1]X[n-1]+ e[0]X[n]+e[1]X[n+1]+e[2]X[n+2])/128) (17)
또는, 크로마 레지듀얼 샘플에 대해서는,
Y = Clip1C ,r((e[-1]X[n-1]+ e[0]X[n]+e[1]X[n+1]+e[2]X[n+2]/128) (18)
레지듀얼 업샘플링에 대한 클리핑 함수는 다음과 같이 정의된다:
Clip1Y ,r(x) = Clip3(1-(1<<BitDepthY),(1<<BitDepthY)-1, x) (19)
Clip1Y ,r(x) = Clip3(1-(1<<BitDepthC),(1<<BitDepthC)-1, x) (20)
여기서, Clip3(a,b,c) = min(max(a,x),b)
마찬가지로, 업샘플링 필터 동작 후에는 상수 값을 이용하여 크로핑 윈도우 밖의 영상 영역을 포함하여, 레지듀얼 예측이 이용될 없는 픽셀 위치를 채울 것이다. 상수 값은 모든 컬러 성분에 대해서 0이 될 것이다.
구문(syntax)과 의미(semantics)의 변경
표 형태의 구문
본 발명의 실시예들은 볼드체 텍스트로 아래에 나타낸 다음의 변경을 이용할 수 있다. 주요 변경은 어떤 기호, extended_spatial_scalability의 계열 파라 세트에서의 부가로서, 따라서, 기초 계층 업샘플링 프로세스에서 적용될 기하학적 변환에 관련된 계열 파마미터 세트와 slice_data_in_scalable-extension()에서 다음의 4가지 파라미터로서 표현된다:
scaled_base_left_offset_divided_by_two,
scaled_base_top_offset_divided_by_two,
scaled_base_right_offset_divided_by_two,
scaled_base_bottom_offset_divided_by_two
계위 확장 시의 계열 파라미터 세트 구문
seq_parameter_set_rbsp(){ |
C |
Descriptor |
…… |
… |
… |
extended_spatial_scalability |
0 |
u(2) |
if(extended_spatial_scalability 〓 1){ |
|
|
scaled_base_left_offset_divided_by_two |
0 |
ue(v) |
scaled_base_top_offset_divided_by_two |
0 |
ue(v) |
scaled_base_right_offset_divided_by_two |
0 |
ue(v) |
scaled_base_bottom_offset_divided_by_two |
0 |
ue(v) |
} |
|
|
…… |
… |
… |
rbsp_tailing_bits() |
0 |
|
} |
|
|
계위 확장 시의 슬라이스 데이터 구문
slice_data_in_scalable_extension(){ |
C |
Descriptor |
if(extended_spatial_scalability 〓 2){ |
|
|
scaled_base_left_offset_divided_by_two |
2 |
ue(v) |
scaled_base_top_offset_divided_by_two |
2 |
ue(v) |
scaled_base_right_offset_divided_by_two |
2 |
ue(v) |
scaled_base_bottom_offset_divided_by_two |
2 |
ue(v) |
} |
|
|
if(extended_spatial_scalability) |
|
… |
HalfSpatResBaseFlg = 0 |
|
|
else |
|
|
HalfSpatResBaseFlg = half_spat_res_base_pic() |
|
|
…… |
… |
… |
} |
|
|
계위 확장 시의 마크로블록 계층 구문
macroblock_layer_in_scalable_extension(){ |
C |
Descriptor |
if(base_id_plus !=0 && adaptive_prediction_flag){ |
|
|
base_mode_flag |
2 |
ae(v) |
if(base_id_plus !=0 && (HalfSpatResBaseFlg ∥extended-spatial_scalability) && ! intra_base_mb(CurrMbAddr)) |
|
|
base_mode_refinement_flag |
2 |
ae(v) |
} |
|
|
…… |
… |
… |
} |
|
|
의미
계위 확장 시의 계열 파라미터 세트 구문
extended - spatial _ scalability는 기초 계층 업샘플링에 대한 기하학적 파라미터에 관련된 구문 요소의 존재를 규정한다. extended-spatial_scalability가 0이면, 비트스트림에 기하학적 파라미터가 존재하지 않는다. extended-spatial_scalability가 1이면, 계열 파라미터 세트에 기하학적 파라미터가 존재한다. extended-spatial_scalability가 2이면, slice_data_in_scalable_extension에 slice_data_in_scalable_extension에 기하학적 파라미터가 존재한다. 값 3은 extended-spatial_scalability용으로 남겨둔다. extended-spatial_scalability가 존재하지 않으면, 이것은 0으로 추단된다.
scaled _ base _ left _ offset _ divided _ by _ two는 업샘플링된 기초 계층 화상의 상부 좌측 픽셀과 현재 화상의 상부 좌측 픽셀 간의 수평 오프셋의 절반을 규정한다. scaled_base_left_offset_divided_by_two가 존재하지 않으면, 이것은 0으로 추단된다.
scaled _ base _ top _ offset _ divided _ by _ two는 업샘플링된 기초 계층 화상의 상부 좌측 픽셀과 현재 화상의 상부 좌측 픽셀 간의 수직 오프셋의 절반을 규정한다. scaled_base_top_offset_divided_by_two가 존재하지 않으면, 이것은 0으로 추단된다.
scaled _ base _ right _ offset _ divided _ by _ two는 업샘플링된 기초 계층 화상의 하부 우측 픽셀과 현재 화상의 하부 우측 픽셀 간의 수평 오프셋의 절반을 규정한다. scaled_base_right_offset_divided_by_two가 존재하지 않으면, 이것은 0으로 추단된다.
scaled _ base _ bottom _ offset _ divided _ by _ two는 업샘플링된 기초 계층 화상의 하부 우측 픽셀과 현재 화상의 하부 우측 픽셀 간의 수직 오프셋의 절반을 규정한다. scaled_base_bottom_offset_divided_by_two가 존재하지 않으면, 이것은 0으로 추단된다.
모든 기하학적 파라미터는 현재 계층에서 루마 샘플링에 대한 일 샘플 간격의 단위로 미부호 정부로서 규정된다. 그러면, 이 기하학적 파라미터에 기초하여 몇 가지 추가적인 기호(scaled_base_left_offset, scaled_base_top_offset, scaled_base_right_offset, scaled_bottom_left_offset, scaled_base_width, scaled_base_height)가 다음과 같이 정의된다:
scaled_base_left_offset = 2ㆍscaled_base_left_offset_divided_by_two
scaled_base_top_offset = 2ㆍscaled_base_top_offset_divided_by_two
scaled_base_right_offset = 2ㆍscaled_base_right_offset_divided_by_two
scaled_base_bottom_offset = 2ㆍscaled_base_bottom_offset_divided_by_two
scaled_base_width = PicWidthInMbsㆍ16-scaled_base_left_offset-
scaled_base_right_offset
scaled_base_height = PicHeightInMapUnitsㆍ16-scaled_base_top_offset-
scaled_base_bottom_offset
계위 확장 시의 슬라이스 데이터 구문
슬라이스 데이터에서의 구문 요소의 의미는 계열 파라미터 세트에서의 구문 요소와 동일하다.
디코딩 프로세스
예측 데이터에 대한 디코딩 프로세스
WD-1.0[MPEG Doc.N6901]과 비교해 다음의 프로세스들이 추가된다. 각 마크로블록에 대해 다음이 적용된다:
- extended_spatial_scalability가 1 또는 2이고 base_layer_mode_flag가 1이면, 마크로블록 분할을 포함하는 동작 벡터 필드는 제 3절에서 설명된 프로세스를 이용하여 도출된다.
WD-1.0[MPEG Doc.N6901]에서처럼, 해당 기초 계층 마크로블록 전부가 인트라토딩되면, 현재 마크로블록 모드는 I_BL로 설정된다.
- 그러지 않고, extended_spatial_scalability가 1 또는 2이고 base_layer_mode_flag가 0이나 base_layer_refinement가 1이면, 기초 계층 재조정 모드가 발생된다. 기초 계층 재조정 모드는 기초 계층 예측 모드와 비슷하다. 기준 인덱스와 동작 벡터는 물론 마크로블록 분할은 제 3절에 따라서 도출된다. 그러나, 각 동작 벡터에 대해서 쿼터 샘플 동작 벡터 재조정 mv_ref_1X(각 동작 벡터 성분에 대해 -1, 0 또는 +1)는 추가적으로 전송되어 상기 도출된 동작 벡터에 부가 된다.
프로세스의 나머지는 WD-1.0[MPEG Doc.N6901]과 동일하다.
부대역(subband) 화상에 대한 디코딩 프로세스
WD-1.0[MPEG Doc.N6901]과 비교해 다음의 프로세스들이 추가되어야 한다.
- extended_spatial_scalability가 1 또는 2이고 I_BL에서 MB에 대한 인트라 예측 신호가 다음의 프로세스에 의해 발생된다.
- 나란히 배열된 기초 계층 블록/마크로블록이 필터링된다.
- 디블록된 것을 보간함으로써 인트라 예측 신호가 발생된다. 이 보간은 제4절에서 설명된 프로세스를 이용하여 수행된다.
프로세스의 나머지는 WD-1.0[MPEG Doc.N6901]과 동일하다.
그러지 않고, extended_spatial_scalability가 1 또는 2이고 residual_prediction_flag가 1이면, 다음이 적용된다.
- 기초 계층의 레지듀얼 신호가 업샘플링되어 현재 마크로블록의 레지듀얼 신호에 부가된다. 보간은 제4절에서 설명된 프로세스를 이용하여 수행된다.
루프 필터의 변경
extended_spatial_scalability가 1 또는 2이면, I_BL 모드에서 블록에 대한 필터 강도 결정 중에 루프 필터에 약간의 변경이 가해져야 한다.
- 인접한 블록이 인트라 코딩되나 I_BL 모드에 있지 않은 경우, Bs는 4이다 (이 초반부는 WD-1.0[MPEG Doc.N6901]에서와 동일하다).
- 그러지 않고, 인접 블록들 중 어느 것이 계수를 갖는다면, Bs는 2이다.
- 그러지 않고, 인접 블록이 I_BL 모드에 있지 않으면, Bs는 1이다.
- 그러지 않으면, Bs는 0이다.
6-탭 필터 실시예
본 발명의 일부 실시예는 H.264/MPEG-4 AVC의 계위 비디오 코딩 확장, 특히 JVT(MPEG 및 VCEG의 Joint Video Team)에 의해 2005년 4월에 채택된 확장형 공간 계위(ESS) 비디오 코딩 특성용으로 설계된다.
현재의 SVC 설계에서는 업샘플링 프로세스는 인터프리딕션(inter prediction)을 위해 H.264에 규정된 쿼터 루마 샘플 보간 절차에 기초한다. 이 방법은 공간 계위 코딩에 적용될 때에 (1) 보간 해상도가 쿼터 샘플로 제한되고, (2) 쿼터 샘플 위치를 얻기 위해서는 하프 샘플 보간이 실시되어야 한다는 두 가지 결점을 갖고 있다.
본 발명의 일부 실시예는 (1) 더 정교한 보간 해상도와 (2) 직접 보간을 통해 이들 결점을 제거한다. 결과적으로, 이들 실시예는 업샘플링된 화상의 품질을 향상시키면서 계산상의 복잡성을 감소시킨다.
본 발명의 예시적인 실시예들의 업샘플링 기법은 16개의 6-탭 필터를 이용한 직접 보간에 기초한다. 필터 선택은 16/1 화상 샘플 단위로 0에서 15 범위의 보간 위치 또는 단계에 따른다. SVC의 하프 샘플 보간 프로세스와 H.264의 하프 샘플 루마 인터프리딕션과 역방향 호환(backward compatible)되도록 필터 세트가 설계된다. 그러므로, 이들 실시예들의 기법은 하드웨어/소프트웨어 구현 관점에서 H.264의 자연스러운 확장일 수 있다.
종래의 공간 계위 비디오 코딩 시스템은 통상적으로 공간 또는 해상도 스케일링 팩터(scaling-factor)가 2 또는 2의 제곱인 경우를 다룬다. 공간 스케일링 팩터가 2의 제곱에 한정되지 않는 더 일반적인 경우를 다루기 위해 2005년 4월에 SVC 조인트 스케일러블 비디오 모델(JSVM)에 확장형 공간 계위가 채택되었다. 그러나, 계층간 텍스쳐 예측에 대한 업샘플링 절차는 아직도 개발중인 기술이다. 2005년 4월의 JVT 미팅에서 텍스쳐 업샘플링을 위해 H.264에서 규정한 쿼터 루마 샘플 보간 프로세스를 임시로 채택하기로 결정하였다.
본 발명의 이들 실시예에서는 도 23과 관련하여 상기 실시예들에서 설명된 기하학적 관계도 마찬가지로 적용된다.
상기 실시예들에서는 기초 계층 화상에서 해당 성분의 정수 샘플 그리드에 대한 1/16 샘플 간격 단위로 16개의 상이한 보간 단계에 대해 16개의 4-탭 업샘플링 필터 세트가 정의된다. 그러나, 4-탭 필터는 이전의 H.264 설계와는 역방향 호환이 되지 않는다. 결과적으로 이들 실시예들은 16개의 새로운 6-탭 필터 세트와 이와 대응하는 필터링 절차를 갖게 된다. 예시적인 실시예에서 표 2에 기재된 6-탭 필터들이 이용될 수 있다. 다른 예시적인 실시예에서는 표 3에 기재된 6-탭 필터들이 이용될 수 있다.
표 2 첫 번째 예시적 16-단계 보간 필터
단계 |
(6-탭) 보간 필터 계수 |
e[-2] |
e[-1] |
e[0] |
e[1] |
e[2] |
e[3] |
0 |
0 |
0 |
32 |
0 |
0 |
0 |
1 |
0 |
-2 |
32 |
2 |
0 |
0 |
2 |
1 |
-3 |
31 |
4 |
-1 |
0 |
3 |
1 |
-4 |
30 |
7 |
-2 |
0 |
4 |
1 |
-4 |
28 |
9 |
-2 |
0 |
5 |
1 |
-5 |
27 |
11 |
-3 |
1 |
6 |
1 |
-5 |
25 |
14 |
-3 |
0 |
7 |
1 |
-5 |
22 |
17 |
-4 |
1 |
8 |
1 |
-5 |
20 |
20 |
-5 |
1 |
9 |
1 |
-4 |
17 |
22 |
-5 |
1 |
10 |
0 |
-3 |
14 |
25 |
-5 |
1 |
11 |
1 |
-3 |
11 |
27 |
-5 |
1 |
12 |
0 |
-2 |
9 |
28 |
-4 |
1 |
13 |
0 |
-2 |
7 |
30 |
-4 |
1 |
14 |
0 |
-1 |
4 |
31 |
-3 |
1 |
15 |
0 |
0 |
2 |
32 |
-2 |
0 |
표 3 두 번째 예시적 16-단계 보간 필터
단계 |
(6-탭) 보간 필터 계수 |
e[-2] |
e[-1] |
e[0] |
e[1] |
e[2] |
e[3] |
0 |
0 |
0 |
32 |
0 |
0 |
0 |
1 |
0 |
-2 |
32 |
2 |
0 |
0 |
2 |
1 |
-3 |
31 |
4 |
-1 |
0 |
3 |
1 |
-4 |
30 |
6 |
-1 |
0 |
4 |
1 |
-4 |
28 |
9 |
-2 |
0 |
5 |
1 |
-4 |
27 |
11 |
-3 |
0 |
6 |
1 |
-5 |
25 |
14 |
-3 |
0 |
7 |
1 |
-5 |
22 |
17 |
-4 |
1 |
8 |
1 |
-5 |
20 |
20 |
-5 |
1 |
9 |
1 |
-4 |
17 |
22 |
-5 |
1 |
10 |
0 |
-3 |
14 |
25 |
-5 |
1 |
11 |
0 |
-3 |
11 |
27 |
-4 |
1 |
12 |
0 |
-2 |
9 |
28 |
-4 |
1 |
13 |
0 |
-1 |
6 |
30 |
-4 |
1 |
14 |
0 |
-1 |
4 |
31 |
-3 |
1 |
15 |
0 |
0 |
2 |
32 |
-2 |
0 |
정수 루마 샘플 단위의 강화 화상에서 루마 샘플 위치(x, y)가 주어지면, 16/1 루마 샘플 단위의 기초 화상(px ,L, py ,L)에서의 대응 위치는 다음과 같이 도출된다.
여기서, (16/1 샘플 해상도 보간에 대해) RL=16, 도 23에 도시된 바와 같이, (xorig, yorig)는 단일 루마 샘플 단위의 현재 화상에서 크로핑 윈도우의 상부 좌측 코너의 위치를 나타내고, (wbase, hbase)는 단일 루마 샘플 단위의 기초 화상의 해상도이고, (wextract, hextract)는 현재 화상의 단일 루마 샘플 단위의 크로핑 윈도우의 해상도이고, "//"는 간략화된 나눗셈 연산자를 나타낸다.
마찬가지로, 단일 크로마 샘플 단위의 강화 화상에서 크로마 샘플 위치(xc, yc)가 주어지면, 16/1 크로마 샘플 단위의 기초 화상(px ,C, py ,C)에서의 대응 위치는 다음과 같이 도출된다.
여기서, RC=16, (xorig ,c, yorig ,c)는 단일 크로마 샘플 단위의 현재 화상에서 크로핑 윈도우의 상부 좌측 코너의 위치를 나타내고, (wbase ,c, hbase ,c)는 단일 크로마 샘플 단위의 기초 화상의 해상도이고, (wextract ,c, hextract ,c)는 현재 화상의 단일 크로 마 샘플 단위의 크로핑 윈도우의 해상도이고, (pbase ,x, pbase ,y)는 쿼터 크로마 샘플 단위의 기초 화상의 상대적 크로마 단계 변동을 나타내고, (penh ,x, penh ,y)는 쿼터 크로마 샘플 단위의 현재 화상의 상대적 크로마 단계 변동을 나타낸다.
6-탭 필터는 수학식 21과 22에 의해 도출된 보간 위치에 기초하여 표 2 또는 표 3에서 선택될 수 있다. 일부 실시예에서, 보간 위치가 하프 샘플 위치인 경우, 그 필터는 H.264에서 하프 루마 샘플 보간에 대해 정의된 필터와 동일하다. 그러므로, 본 발명의 이들 실시예들의 기법을 위해서는 유사한 하드웨어/소프트웨어 모듈이 적용될 수 있다.
계층간 레지듀얼 업샘플링에 대해서는 유사한 직접 보간법이 이용될 수 있으나, 이 경우에는 전술한 텍스쳐 샘플링용 6-탭 필터나 4-탭 필터 대신에 양선형(bilinear) 보간 필터를 이용한다.
일부 예시적인 실시예에서 보간 프로세스는 다음과 같다.
1. 강화 화상에서 마크로블록의 상부 좌측 루마 샘플에 대한 위치(xP, yP)를 정의한다. chroma_format_idc가 0이 아니면, 즉 크로마 채널이 존재하면, 그 마크로블록의 상부 좌측 크로마 샘플에 대한 위치(xC, yC)를 정의한다.
2. 기초 계층 화상에서 그 마크로블록의 상대 위치를 도출한다.
chroma_format_idc가 0이 아니면,
여기서, MbWidthC 및 MbHeightC는 각각 수평 및 수직 방향에서의 MB당 크로마 샘플의 수를 나타낸다.
3. 텍스쳐 보간 프로세스
이 프로세스에의 입력은 다음을 포함한다.
● 기초 화상 (xB, yB) 및 (xB1, yB1)에서의 정수 루마 샘플 위치
● 기초 화상 baseL[x, y](여기서, x=-2+xB..(xB1+2), y=-2+yB..(yB1+2))에
대한 루마 샘플 어레이
● chroma_format_idc가 0이 아닌 경우,
○ 기초 화상 (xCB, yCB) 및 (xCB1, yCB1)에서의 정수 크로마 샘플 위치
○ 기초 화상 baseCb[x, y] 및 baseCr[x, y] (여기서, x=-2+CB..(xCB1+2),
y=-2+yCB..(yCB1+2))에 대한 두 개의 크로마 샘플 어레이
이 프로세스에의 출력은 다음을 포함한다.
● 루마 샘플 마크로블록 어레이 predL[x, y](여기서, x=0..15, y=0..15)
● chroma_format_idc가 0이 아닌 경우, 두 개의 크로마 샘플 마크로블록
어레이 predCb[x, y] 및 predCr[x, y] (여기서, x=0..MbWidthC-1,
y=0..MbHeightC-1)
루마 샘플 predL[x, y](여기서, x=0..15, y=0..15)는 다음과 같이 도출된다.
● tempL[x, y](여기서, x=-2+xB..(xB1+2), y=0..15)를 임시 루마 샘플
어레이라 한다.
● 각 tempL[x, y](여기서, x=-2+xB..(xB1+2), y=0..15)는 다음과 같이 도출된다.
○ 기초 계층에서의 대응 분수(fractional) 샘플 위치 yf는
다음과 같이 도출된다.
yf = py ,L(y+yP)
○ yLnt와 yFrac는 다음과 같이 정의된다.
yInt = (yf>>4)
yFrac = yf%16
○ yFrac을 단계로서 이용하여 표 2에서 6-탭 필터 e[j](j=-2..3)를
선택하고, tempL[x, y]를 다음과 같이 도출한다.
tempL[x, y] = baseL[x, yInt-2]*e[-2] +
baseL[x, yInt-1]*e[-1] + baseL[x, yInt]*e[0] +
baseL[x, yInt+1]*e[1] + baseL[x, yInt+2]*e[2] +
baseL[x, yInt+3]*e[3]
● 각 샘플 predL[x, y](여기서, x=0..15, y=0..15)는 다음과 같이 도출된다.
○ 기초 계층에서의 대응 분수 샘플 위치 xf는
다음과 같이 도출된다.
xf = px ,L(x+xP)
○ xLnt와 xFrac는 다음과 같이 정의된다.
xInt = (xf>>4)
xFrac = xf%16
○ xFrac을 단계로서 이용하여 표 2에서 6-탭 필터 e[j](j=-2..3)를
선택하고, predL[x, y]를 다음과 같이 도출한다.
predL[x, y] = Clip1Y((tempL[xInt-2,y]*e[-2] +
tempL[xInt-1,y]*e[-1] + tempL[xInt,y]*e[0] +
tempL[xInt+1,y]*e[1] + tempL[xInt+2,y]*e[2] +
tempL[xInt+3,y]*e[3] +512)/1024)
chroma_format_idc가 0이 아닌 경우, 크로마 샘플 predC[x, y]( x=0..MbWidthC-1, y=0..MbHeightC-1)는 다음과 같이 도출된다.
● tmp1Cb[x, y] 및 tmp1Cr[x, y](x=-2+xCB..(xCB1+2), y=0..MbHeightC-1)를
임시 크로마 샘플 어레이라 한다.
● C가 Cb와 Cr인 각 tempC[x, y](x=-2+xCB..(xCB1+2), y=0..MbHeightC-1)는 다음과 같이 도출된다.
○ 기초 계층에서의 대응 분수 샘플 위치 yfC는
다음과 같이 도출된다.
yfC = py ,C(y+yC)
○ yLntC와 yFracC는 다음과 같이 정의된다.
yIntC = (yfC>>4)
yFracC = yfC%16
● yFracC를 단계로서 이용하여 표 2에서 6-탭 필터 e[j](j=-2..3)를
선택하고, tempC[x, y]를 다음과 같이 도출한다.
tempC[x, y] = baseC[x, yIntC-2]*e[-2] +
baseC[x, yIntC-1]*e[-1] + baseC[x, yIntC]*e[0] +
baseC[x, yIntC+1]*e[1] + baseC[x, yIntC+2]*e[2] +
baseC[x, yIntC+3]*e[3]
● C가 Cb와 Cr인 각 샘플 predC[x, y](x=0..MbWidthC-1,
y=0..MbHeightC-1)는 다음과 같이 도출된다.
○ 기초 계층에서의 대응 분수 샘플 위치 xfC는
다음과 같이 도출된다.
xfC = pX ,C(x+xC)
○ xLntC와 xFracC는 다음과 같이 정의된다.
xIntC = (xfC>>4)
xFracC = xfC%16
○ xFracC를 단계로서 이용하여 표 2에서 6-탭 필터 e[j](j=-2..3)를
선택하고, predC[x, y]를 다음과 같이 도출한다.
predC[x, y] = Clip1C((tempC[xIntC-2,y]*e[-2] +
tempC[xIntC-1,y]*e[-1] + tempC[xIntC,y]*e[0] +
tempC[xIntC+1,y]*e[1] + tempC[xIntC+2,y]*e[2] +
tempC[xIntC+3,y]*e[3] +512)/1024)
4. 텍스쳐 보간 프로세스
이 프로세스에의 입력은 다음을 포함한다.
● basicPic(xB, yB) 및 (xB1, yB1)에서의 정수 루마 샘플 위치
● 루마 레지듀얼 샘플 어레이 resBaseL[x, y](x=-xB..xB1, y=-yB..yB1)
● chroma_format_idc가 0이 아닌 경우,
○ basePic (xCB, yCB) 및 (xCB1, yCB1)에서의 정수 크로마 샘플 위치
○ 두 개의 크로마 레지듀얼 샘플 어레이 resBaseCb[x, y] 및
resBaseCr[x, y](x=xCB..xCB1, y=yCB..yCB1)
이 프로세스에의 출력은 다음을 포함한다.
● 루마 샘플 마크로블록 어레이 resPredL[x, y](x=0..15, y=0..15)
● chroma_format_idc가 0이 아닌 경우, 두 개의 크로마 샘플 어레이
resPredCb[x, y] 및 resPredCr[x, y](x=0..MbWidthC-1, y=0..MbHeightC-1)
루마 레지듀얼 샘플 resPredL[x, y](x=0..15, y=0..15)는 다음과 같이 도출된다.
● tempL[x, y](x=xB..xB1, y=0..15)를 임시 루마 샘플 어레이라 한다.
● 각 tempL[x, y](x=-xB..xB1, y=0..15)는 다음과 같이 도출된다.
○ 기초 계층에서의 대응 분수 샘플 위치 yf는
다음과 같이 도출된다.
yf = py ,L(y+yP)
○ yLnt와 yFrac는 다음과 같이 정의된다.
yInt = (yf>>4)
yFrac = yf%16
○ tempL[x, y]를 다음과 같이 도출한다.
tempL[x, y] = resBaseL[x, yInt]*(16-yFrac) +
resBaseL[x, yInt+1]*yFrac
● 각 레지듀얼 샘플 resPredL[x, y](x=0..15, y=0..15)는 다음과 같이 도출된다.
○ 기초 계층에서의 대응 분수 샘플 위치 xf는 다음과 같이 도출된다.
xf = px ,L(x+xP)
○ xLnt와 xFrac는 다음과 같이 정의된다.
xInt = (xf>>4)
xFrac = xf%16
○ resPredL[x, y]를 다음과 같이 도출한다.
resPredL[x, y] = Clip1Y ,r((tempL[xInt,y]*(16-xFrac) +
tempL[xInt+1,y]*xFrac)/256)
여기서, Clip1Y ,r(x) = Clip3(1-(1<<BitDepthY), (1<<BitDepthY)-1,
x)이며, BitDepthY는 루마 채널 데이터의 비트 깊이를 나타낸다.
chroma_format_idc가 0이 아닌 경우, 크로마 레지듀얼 샘플 resPredC[x, y](C는 Cb 또는 Cr이고, x=0..MbWidthC-1, y=0..MbHeightC-1)는 다음과 같이 도출된다.
● tmp1Cb[x, y] 및 tmp1Cr[x, y](x=xCB..xCB1, y=0..MbHeightC-1)를
임시 크로마 샘플 어레이라 한다.
● C가 Cb와 Cr인 각 tempC[x, y](x=-xCB..xCB1, y=0..MbHeightC-1)는 다음과 같이 도출된다.
○ 기초 계층에서의 대응 분수 샘플 위치 yfC는
다음과 같이 도출된다.
yfC = py ,C(y+yC)
○ yLntC와 yFracC는 다음과 같이 정의된다.
yIntC = (yfC>>4)
yFracC = yfC%16
● tempC[x, y]를 다음과 같이 도출한다.
tempC[x, y] = resBaseC[x, yIntC]*(16-yFracC) +
resBaseC[x, yIntC+1]*yFracC
● C가 Cb와 Cr인 각 샘플 resPredC[x, y](x=0..MbWidthC-1,
y=0..MbHeight-1)는 다음과 같이 도출된다.
○ 기초 계층에서의 대응 분수 샘플 위치 xfC는
다음과 같이 도출된다.
xfC = pX ,C(x+xC)
○ xLntC와 xFracC는 다음과 같이 정의된다.
xIntC = (xfC>>4)
xFracC = xfC%16
○ resPredC[x, y]를 다음과 같이 도출한다.
resPredC[x, y] = Clip1C ,r((tempC[xIntC,y]*(16-xFracC) +
tempC[xIntC+1,y]*xFracC)/256)
여기서, Clip1C ,r(x) = Clip3(1-(1<<BitDepthC), (1<<BitDepthC)-1,
x)이며, BitDepthC는 크로마 채널 데이터의 비트 깊이를 나타낸다.
본 발명의 일부 실시예는 공간 계위 비디오 코딩을 위한 디블록킹 필터를 포 함한다. 이들 실시예에서, 필터링 방법은 H.264/MPEG-4 AVC의 계위 비디오 코딩(SVC) 확장, 특히 JVT(MPEG 및 VCEG의 Joint Video Team)에 의해 2005년 4월에 채택된 확장형 공간 계위(ESS) 비디오 코딩 특성용으로 설계된다.
종래 방법에서는 필터링 방법은 여러 가지 공간 해상도를 갖는 계층 모두에 대해 동일하였다. 계층간 텍스쳐 예측을 이용하여 코딩된 블록은 필터링 프로세스 중에 인트라 코딩 블록으로 간주되었다. 이와 같은 종래의 방법은 공간 계위 코딩에 적용될 때에 (1) 저 해상도 계층으로부터의 예측은 불필요하게 흐려질 수 있고, 따라서 (2) 프로세스가 불필요하게 많은 계산 사이클을 소모한다는 두 가지 결점을 갖고 있다.
본 발명의 실시예들은 일부 블록 경계들에 대한 필터링 동작을 스킵하고, 상이한 블록 경계에 대해 상이한 필터를 적용하고, 상이한 블록 경계에 대한 필터의 적용을 변화시키거나 특정 블록 경계에 대한 필터 특성을 조정함으로써 상기 두 가지 결점을 극복할 수 있다. 결과적으로, 이들 실시예들은 계산상의 복잡성을 줄이고 업샘플링 화상의 품질을 향상시킬 수 있다.
이들 실시예에서는, 계층간 텍스쳐 예측을 이용하여 코딩된 블록을 인터 블록으로 간주하므로, 인터 블록에 대한 기존의 AVC 설계에서의 필터링 결정이 그대로 적용된다. 일부 실시예에서, 비공간 계위 코딩을 가지고서 인접 블록들과 관련하여 전술한 적응성 블록 경계 필터링은 공간 계위 코딩에 적용될 수 있다. H.264에 채택된 이러한 방법은 공간 계위 비디오 코딩에 적용될 수 있다.
본 발명의 일부 실시예에서, 영상 블록 경계를 위한 디블록킹 필터는 0 내지 4 범위 또는 이와 다른 범위의 값을 가질 수 있는 제어 파라미터 경계 세기(Bs)에 의해 특징지울 수가 있다. Bs 값이 클수록 해당 경계에 적용되는 필터링 동작의 세기는 커진다. Bs가 0이면 필터링 동작은 스킵 또는 최소화될 수 있다.
현재 SVC 설계에서는, 계층간 텍스쳐 예측에 기초한 마크로블록 예측 모드를 I_BL 모드라 부른다. 종래의 방법을 이용하면, I_BL 마크로블록에 관련된 모든 블록 경계는 Bs>0이므로 모두 필터링되어야 한다.
본 발명의 실시예들은 공간 계위 코딩에 대한 I_BL 모드에서, 즉 SVC 공간 계위형에서 기호가 0이 아닌 경우에 대한 필터 세기 결정 방법을 포함한다. 이 방법의 목적은 계산상의 복잡성을 감소시키고 기초 계층으로부터의 예측을 흐리게 만드는 것을 방지하는 것이다.
일부 실시예에서, I_BL 모드의 블록에 대해서 그 블록과 인접 블록 간의 경계의 Bs는 다음과 같이 도출될 수 있다:
1. 인접 블록이 인트라 코딩되나 I_BL 모드에 있지 않은 경우, Bs는 4이다.
2. 그러지 않고, 인접 블록들 중 어느 것이 비영 계수를 갖는다면, Bs는 2이다.
3. 그러지 않고, 인접 블록이 동일 기초 계층 화상에 기초하는 I_BL 모드에 있지 않으면, Bs는 1이다.
4. 그러지 않으면, Bs는 0이다.
JVT의 SVC 확장과 관련된 본 발명의 실시예들에서, 공간 계위형이 0이 아니 고, 루마 샘플 p0 또는 q0가 I_BL 마크로블록 예측 모드를 이용하여 코딩된 마크로블록 내에 있는 경우에는 변수 bS는 다음과 같이 도출된다.
● 루마 샘플 p0 또는 q0가 I_BL 모드가 아닌 다른 인트라프리딕션 모드를 이용하여 코딩된 마크로블록 내에 있는 경우에는 bS 값 4가 출력된다.
● 그러지 않고, 다음의 조건들 중 하나가 참이면, bS 값 2가 출력된다.
i. 샘플 p0를 포함하는 루마 블록 또는 샘플 q0를 포함하는 루마 블록은
비영 변환 계수 레벨을 포함한다.
ii. 구문 요소 nal_unit_type이 20이고, 샘플 p0를 포함하는 루마 블록
또는 샘플 q0를 포함하는 루마 블록에 대해 residual_prediction_flag
가 1이고, 하위절 S.8.5.14에서 도출된 예측 어레이 resPredX(X는
적용 성분 L, Cb 또는 Cr을 표시함)가 비영 샘플을 포함한다.
● 그러지 않고, 다음의 조건들 중 하나가 참이면, bS 값 1이 출력된다.
i. 루마 샘플 p0 또는 q0가 인터프리딕션 모드를 이용하여 코딩된
마크로블록 내에 있다.
i. 루마 샘플 p0 또는 q0가 base_id_plus1이 다른 두 개의 독립적인
슬라이스 내에 있다.
● 그러지 않으면, Bs 값 0이 출력된다.
● 그러지 않고, 샘플 p0 및 q0 모두가 I_BL 마크로블록 예측 모드를 이용하 여 코딩된 마크로블록 내에 있다면, Bs 값 1이 출력된다.
도 28을 참조로 본 발명의 일부 실시예를 설명한다. 이들 실시예에서, 공간 계위 강화 계층 내의 인접한 블록들 간의 경계는 여러 가지 필터링 방법의 적용에 의해 특징지워진다. 이들 필터링 방법은 여러 가지 필터링 방법을 실시하는, 즉 필터링 파라미터를 조정하는데 이용될 수 있는 경계 세기 표시자(312, 316, 320)와 연관될 수 있다.
이들 실시예에서, 블록 경계에 의해 분리된 두 개의 인접 블록의 특성을 분석하여 이들 블록에 인접한 블록 경계를 특징짓는다. 일부 실시예에서는 블록간 경계가 특징지워진다.
예시적인 실시예에서, 먼저 블록 특성을 분석하여, 계층간 텍스쳐 예측을 이용하여 어느 한 블록을 인코딩할 것인지 여부를 판단한다(310). 계층간 텍스쳐 예측을 이용하여 인접 블록들 중 적어도 하나가 인코딩되는 경우에는, 그 블록들을 분석하여 계층간 텍스쳐 예측이 아닌 인트라프리딕션 방법을 이용하여 인코딩된 블록이 있는지 여부를 판단한다(311). 계층간 텍스쳐 예측이 아닌 인트라프리딕션 방법을 이용하여 어느 하나의 블록이 인코딩되어 있다면, 제1 경계 세기 표시자를 이용하여 타겟 경계를 특징짓는다(312).
계층간 텍스쳐 예측이 아닌 인트라프리딕션 방법을 이용하여 인코딩되지 않은 블록이 있다면, 블록 특성을 분석하여, 인접 블록들이나 이 인접 블록들 중 어느 하나가 예측된 블록이 비영 변환 계수를 갖고 있는지 여부를 판단한다(314). 인접 블록들이나 이 인접 블록들 중 어느 하나가 예측된 블록이 비영 변환 계수를 갖고 있다면, 제2 경계 세기 표시자를 이용하여 타겟 경계를 특징짓는다(316).
계층간 텍스쳐 예측이 아닌 인트라프리딕션 방법을 이용하여 인코딩되지 않은 블록이 있고(311) 그리고 인접 블록들과 이 인접 블록들 중 어느 하나가 예측된 블록 어느 것도 비영 변환 계수를 갖고 있지 않다면(314), 인접 블록들이 상이한 기준 블록을 참조로 예측되는지 여부를 판단한다(318), 인접 블록들이 상이한 기준 블록을 참조로 예측된다면(318), 제3 경계 세기 표시자를 이용하여 타겟 경계를 특징짓는다(320).
계층간 텍스쳐 예측이 아닌 인트라프리딕션 방법을 이용하여 인코딩되지 않은 블록이 있고(311), 인접 블록들과 이 인접 블록들 중 어느 하나가 예측된 블록 어느 것도 비영 변환 계수를 갖고 있지 않고(314), 그리고 인접 블록들이 상이한 기준 블록을 참조로 예측되지 않는다면(318), 제4 경계 세기 표시자를 이용하여 타겟 경계를 특징짓는다(320).
일부 실시예에서, 경계 세기 표시자는 특정의 경계 필터링 옵션을 수행하는데 이용될 수 있다. 일부 실시예에서, 각 표시자에 대해서는 상이한 필터링 방법이 이용될 수 있다. 일부 실시예에서, 필터링 방법 파라미터는 표시자와 관련하여 조정될 수 있다. 일부 실시예에서, 표시자는 경계 필터링을 강력하게 수행하게 한다. 일부 예시적인 실시예에서, 제1 경계 세기 표시자는 경계 필터링을 가장 강력하게 수행하게 하고, 제2, 3 및 4 경계 세기 표시자는 이 순서대로 점차 그 강도가 약하게 필터링을 수행하게 한다. 일부 실시예에서, 제4 경계 세기 표시자나 그 외 의 다른 표시자는 관련 경계에 대해 필터링을 전혀 수행하지 못하게 한다.
도 29을 참조로 본 발명의 일부 실시예를 설명한다. 이들 실시예에서, 공간 계위 강화 계층 내의 인접한 블록들 간의 경계는 여러 가지 필터링 방법의 적용에 의해 특징지워진다. 이들 필터링 방법은 여러 가지 필터링 방법을 실시하는, 즉 필터링 파라미터를 조정하는데 이용될 수 있는 경계 세기 표시자(336, 340, 344, 348, 352)와 연관될 수 있다.
이들 실시예에서, 블록 경계에 의해 분리된 두 개의 인접 블록의 특성을 분석하여 이들 블록에 인접한 블록 경계를 특징짓는다. 일부 실시예에서는 블록간 경계가 특징지워진다.
예시적인 실시예에서, 먼저 블록 특성을 분석하여, 블록이 공간 계위 계층 내에 있는지 여부를 판단한다(330). 그 다음, 계층간 텍스쳐 예측을 이용하여 어느 한 블록을 인코딩할 것인지 여부를 판단한다(332). 계층간 텍스쳐 예측을 이용하여 인접 블록들 중 적어도 하나가 인코딩되는 경우에는, 그 블록들을 분석하여 계층간 텍스쳐 예측이 아닌 인트라프리딕션 방법을 이용하여 인코딩된 블록이 있는지 여부를 판단한다(334). 계층간 텍스쳐 예측이 아닌 인트라프리딕션 방법을 이용하여 어느 하나의 블록이 인코딩되어 있다면, 제1 경계 세기 표시자를 이용하여 타겟 경계를 특징짓는다(336).
계층간 텍스쳐 예측이 아닌 인트라프리딕션 방법을 이용하여 인코딩되지 않은 블록이 있다면, 블록 특성을 분석하여, 인접 블록들 중 어느 것이 비영 변환 계수를 갖고 있는지 여부를 판단한다(338). 인접 블록들 중 어느 것이 비영 변환 계 수를 갖고 있다면, 제2 경계 세기 표시자를 이용하여 타겟 경계를 특징짓는다(340).
계층간 텍스쳐 예측이 아닌 인트라프리딕션 방법을 이용하여 인코딩되지 않은 블록이 있다면, 블록 특성을 분석하여, 인접 블록들 중 어느 하나가 예측된 블록이 비영 변환 계수를 갖고 있는지 여부를 판단한다(342). 인접 블록들 중 어느 하나가 예측된 블록이 비영 변환 계수를 갖고 있다면, 제3 경계 세기 표시자를 이용하여 타겟 경계를 특징짓는다(344).
계층간 텍스쳐 예측이 아닌 인트라프리딕션 방법을 이용하여 인코딩되지 않은 블록이 있고(334) 그리고 인접 블록들과 이 인접 블록들 중 어느 하나가 예측된 블록 어느 것도 비영 변환 계수를 갖고 있지 않다면(338, 342), 인접 블록들 중 어느 하나가 인터프리딕션 모드를 이용하여 인코딩되는지 여부를 판단한다(346). 인접 블록들 중 어느 하나가 인터프리딕션 모드를 이용하여 인코딩된다면(346), 제4 경계 세기 표시자를 이용하여 타겟 경계를 특징짓는다(348).
계층간 텍스쳐 예측이 아닌 인트라프리딕션 방법을 이용하여 인코딩되지 않은 블록이 있고(334) 그리고 인접 블록들과 이 인접 블록들 중 어느 하나가 예측된 블록 어느 것도 비영 변환 계수를 갖고 있지 않다면(338, 342), 인접 블록들이 상이한 기준 블록들을 참조로 예측되는지 여부를 판단한다(350). 인접 블록들이 상이한 기준 블록들을 참조로 예측된다면(350), 제5 경계 세기 표시자를 이용하여 타겟 경계를 특징짓는다(352).
계층간 텍스쳐 예측이 아닌 인트라프리딕션 방법을 이용하여 인코딩되지 않 은 블록이 있고(334) 그리고 인접 블록들과 이 인접 블록들 중 어느 하나가 예측된 블록 어느 것도 비영 변환 계수를 갖고 있지 않다면(338, 342), 블록들은 인터프리딕션 모드에서 인코딩되지 않고(346), 인접 블록들은 상이한 기준 블록들을 참조로 예측되지 않고(350), 제6 경계 세기 표시자를 이용하여 타겟 경계를 특징짓는다(354).
도 30을 참조로 본 발명의 일부 실시예를 설명한다. 이들 실시예에서, 공간 계위 강화 계층 내의 인접한 블록들 간의 경계는 여러 가지 필터링 방법의 적용에 의해 특징지워진다. 이들 필터링 방법은 여러 가지 필터링 방법을 실시하는, 즉 필터링 파라미터를 조정하는데 이용될 수 있는 경계 세기 표시자(365, 367, 371, 373)와 연관될 수 있다. 일부 실시예에서, 경계 세기 표시자 0은 필터 동작 스킵을 나타낸다.
이들 실시예에서, 블록 경계에 의해 분리된 두 개의 인접 블록의 특성을 분석하여 이들 블록에 인접한 블록 경계를 특징짓는다. 일부 실시예에서는 블록간 경계가 특징지워진다.
이들 실시예에서, 공간 계위형은 비영이어야 한다(360). 계층간 텍스쳐 예측(I_BL)을 이용하여 어느 한 블록으로부터의 루마 샘플을 인코딩할 것인지 여부를 판단한다(362). I_BL을 이용하여 인접 블록들 중 적어도 하나가 인코딩되는 경우에는, 그 블록들을 분석하여 I_BL이 아닌 인트라프리딕션 방법을 이용하여 인코딩된 블록이 있는지 여부를 판단한다(364). I_BL이 아닌 인트라프리딕션 방법을 이용하여 어느 하나의 블록이 인코딩되어 있다면, 제1 경계 세기 표시자를 이용하여 타겟 경계를 특징짓는다(365). 일부 실시예에서, 제1 경계 세기 표시자는 가장 강력한 디블록킹 필터링 동작을 수행하게 할 것이다. 일부 실시예에서, 이 제1 표시자는 4일 것이다.
I_BL이 아닌 인트라프리딕션 방법을 이용하여 인코딩되지 않은 블록이 있다면, 블록 특성을 분석하여, 인접 블록들 중 어느 것의 루마 샘플이 비영 변환 계수를 갖고 있는지 여부를 판단한다(366). 인접 블록들 중 어느 것의 루마 샘플이 비영 변환 계수를 갖고 있다면, 제2 경계 세기 표시자를 이용하여 타겟 경계를 특징짓는다(367). 일부 실시예에서, 제2 경계 세기 표시자는 중간 정도의 두 번 째로 강력한 디블록킹 필터링 동작을 수행하게 할 것이다. 일부 실시예에서, 이 제2 표시자는 2일 것이다.
I_BL이 아닌 인트라프리딕션 방법을 이용하여 인코딩되지 않은 블록이 있고(364) 그리고 어느 블록으로부터의 루마 샘플들 중 어느 것도 비영 변환 계수를 갖고 있지 않다면, 인접 블록들 중 어느 하나가 예측된 블록이 비영 변환 계수를 갖고 있는지 여부를 판단한다(368). 인접 블록들 중 어느 하나가 예측된 블록이 비영 변환 계수를 갖고 있다면, 다시 제2 경계 세기 표시자를 이용하여 타겟 경계를 특징짓는다(367).
I_BL이 아닌 인트라프리딕션 방법을 이용하여 인코딩되지 않은 블록이 있고(364) 그리고 인접 블록들과 이 인접 블록들 중 어느 하나가 예측된 블록 어느 것도 비영 변환 계수를 갖고 있지 않다면(366, 368), 인접 블록들 중 어느 하나의 루마 샘플이 인터프리딕션 모드를 이용하여 인코딩되는지 여부를 판단한다(370). 인접 블록들 중 어느 하나의 루마 샘플이 인터프리딕션 모드를 이용하여 인코딩된다면(370), 제3 경계 세기 표시자를 이용하여 타겟 경계를 특징짓는다(371). 일부 실시예에서, 제3 경계 세기 표시자는 다소 약한 정도의 세 번째로 강력한 디블록킹 필터링 동작을 수행하게 할 것이다. 일부 실시예에서, 이 제3 표시자는 1일 것이다.
I_BL이 아닌 인트라프리딕션 방법을 이용하여 인코딩되지 않은 블록이 있고(334), 인접 블록들과 이 인접 블록들 중 어느 하나가 예측된 블록 어느 것도 비영 변환 계수를 갖고 있지 않고(366, 368), 그리고 인접 블록들의 루마 샘플이 인터프리딕션 모드에서 인코딩되지 않는다면(370), 인접 블록들 중 어느 것으로부터의 루마 샘플이 상이한 기준 블록들로부터 예측되는지 여부를 판단한다(372). 인접 블록들 중 어느 것으로부터의 루마 샘플이 상이한 기준 블록들로부터 예측된다면(370), 다시 제3 경계 세기 표시자를 이용하여 타겟 경계를 특징짓는다(371).
I_BL이 아닌 인트라프리딕션 방법을 이용하여 인코딩되지 않은 블록이 있고(334), 인접 블록들과 이 인접 블록들 중 어느 하나가 예측된 블록 어느 것도 비영 변환 계수를 갖고 있지 않고(366, 368), 인접 블록들의 루마 샘플이 인터프리딕션 모드에서 인코딩되지 않고(370), 그리고 인접 블록들로부터의 루마 샘플이 상이한 기준 블록들로부터 예측되지 않는다면(372), 제4 경계 세기 표시자를 이용하여 타겟 경계를 특징짓는다(373). 일부 실시예에서, 제4 경계 세기 표시자는 가장 약한 정도의 네 번째로 강력한 디블록킹 필터링 동작을 수행하게 할 것이다. 일부 실시예에서, 제4 표시자는 필터링 동작이 수행되지 않음을 나타낸다. 일부 실시예 에서, 이 제4 표시자는 0일 것이다.
편의상, 동작들은 서로 연결된 여러 가지 기능블록이나 별도의 소프트웨어 모듈로 설명하였다. 이것은 필수적인 것은 아니며, 이들 기능 블록이나 모듈이 단일의 로직 디바이스, 불명한 경계를 가진 프로그램이나 동작으로 등가적으로 통합된 경우가 있을 수 있다. 어쨌든, 기능 블록과 소프트웨어 모듈, 또는 설명된 특징들은 독립적으로, 또는 다른 동작과 조합하여 하드웨어나 소프트웨어 형태로 구현될 수 있다.
본 명세서에서 사용된 용어와 표현들은 발명의 설명을 위한 것으로 본 발명을 한정하려는 것이 아니다. 본 발명은 그와 같은 용어와 표현들은 물론 그 등가물들도 포함하는 것이며, 본 발명의 범위는 청구 범위에 따라 정해짐을 밝혀둔다.