상기의 과제를 이루기 위하여, 본 발명에 따른 참조 블록의 조도 보상(illumination compensation) 방법은 현재 블록의 복원된 주변 화소들의 화소값 및 참조 블록의 복원된 주변 화소들의 화소값을 입력 받는 단계와; 입력된 현재 블록의 복원된 주변 화소들의 화소값 및 참조 블록의 복원된 주변 화소들의 화소값에 기초하여, 참조 블록에 대해 조도 보상을 수행하는 단계를 포함한다.
또한, 상기 과제를 달성하기 위해, 조도 보상을 수행하는 단계는 현재 프레임의 부호화될 현재 블록의 복원된 주변 화소들의 화소값 및 참조 블록의 복원된 주변 화소들의 화소값의 상관 관계에 기초하여 참조 블록의 조도 보상을 위한 조도 보상 파라미터를 계산하는 단계와; 계산된 조도 보상 파라미터에 기초하여, 조도 보상된 참조 블록을 생성하는 단계를 포함하는 것이 바람직하다.
또한, 상기 과제를 달성하기 위해, 조도 보상을 수행하는 단계는
하기 수학식
에서, J 값을 최소로 하는 ax,y 및 bx,y를 결정하는 단계와;
상기 결정된 ax,y 및 bx,y를 이용하여 하기 수학식
에 기초하여 조도가 보상된 참조 블록을 생성하는 단계를 더 포함하며, 여기에서, ax,y 및 bx,y 는 움직임 벡터 (x,y)에 따라 값이 달라지며, 각 움직임 벡터에 대해서는 상수이이며, f`(i,-1) 및 f`(-1,j)는 현재 블록의 복원된 주변 화소들의 화소값이고, r`x,y(i,-1) 및 r`x,y(-1,j)는 움직임 보상된 참조 블록의 복원된 주변 화소들의 화소값이며, r`x,y(i,j)는 움직임 보상된 참조 블록을 나타내며, 는 조도 보상된 참조 블록인 것이 바람직하다.
또한, 상기 과제를 달성하기 위해, 조도 보상을 수행하는 단계는 현재 블록의 복원된 주변 화소들의 값 및 참조 블록의 복원된 주변 화소들의 값들 간의 차의 평균값을 이용하여 조도가 보상된 참조 블록을 생성하는 단계를 더 포함하는 것이 바람직하다.
또한, 상기 과제를 달성하기 위해, 조도 보상을 수행하는 단계는 현재 블록의 복원된 주변 화소들의 화소값의 평균값 및 참조 블록의 복원된 주변 화소들의 값의 평균값 간의 차를 이용하여 조도가 보상된 참조 블록을 생성하는 단계를 포함하는 것이 바람직하다.
또한, 상기 과제를 달성하기 위해, 참조 블록은 멀티 뷰 코딩(multi-view coding)에서의 인접한 뷰의 복원된 프레임들 중 하나의 참조 프레임내의 블록인 것이 바람직하다.
또한, 상기 과제는 현재 블록의 복원된 주변 화소들의 화소값 및 참조 블록의 복원된 주변 화소들의 화소값에 기초하여, 참조 블록에 대해 조도 보상을 수행하는 조도 보상부를 포함하는 것을 특징으로 하는 조도 보상 장치에 의해 달성될 수 있다.
또한, 상기 과제를 달성하기 위한 본 발명에 따른 조도 보상부는 현재 프레임의 부호화될 현재 블록의 복원된 주변 화소들의 화소값 및 상기 참조 블록의 복원된 주변 화소들의 화소값의 상관 관계에 기초하여 상기 참조 블록의 조도 보상을 위한 조도 보상 파라미터를 계산하는 조도 보상 파라미터 계산부와; 상기 계산된 조도 보상 파라미터에 기초하여, 조도 보상된 참조 블록을 생성하는 조도 보상된 참조 블록 생성부를 포함하는 것이 바람직하다.
또한, 상기 과제는 부호화될 현재 블록의 복원된 주변 화소들의 화소값 및 참조 블록의 복원된 주변 화소들의 화소값에 기초하여 상기 참조 블록에 대해 조도 보상을 수행하는 단계와; 조도 보상이 수행된 참조 블록에 기초하여 움직임 예측을 수행하는 단계를 포함하는 조도 보상에 기반한 동영상 부호화 방법에 의해 달성될 수 있다.
또한, 상기 과제는 부호화될 현재 블록의 복원된 주변 화소들의 화소값 및 참조 블록의 복원된 주변 화소들의 화소값에 기초하여 상기 참조 블록에 대해 조도 보상을 수행하는 조도 보상부와; 조도 보상이 수행된 참조 블록에 기초하여 움직임 예측을 수행하는 움직임 예측부를 포함하는 조도 보상에 기반한 동영상 부호화 장치에 의해 달성될 수 있다.
또한, 상기 과제는 복호화될 현재 블록의 복원된 주변 화소들의 화소값 및 참조 블록의 복원된 주변 화소들의 화소값에 기초하여 상기 참조 블록에 대해 조도 보상을 수행하는 단계와; 조도 보상이 수행된 참조 블록에 기초하여 움직임 예측을 수행하는 단계를 포함하는 조도 보상에 기반한 동영상 복호화 방법에 의해 달성될 수 있다.
또한, 상기 과제는 복호화될 현재 블록의 복원된 주변 화소들의 화소값 및 참조 블록의 복원된 주변 화소들의 화소값에 기초하여 상기 참조 블록에 대해 조도 보상을 수행하는 조도 보상부와; 조도 보상이 수행된 참조 블록에 기초하여 움직임 예측을 수행하는 움직임 예측부를 포함하는 것을 특징으로 하는 조도 보상에 기반한 동영상 복호화 장치에 의해 달성될 수 있다.
또한, 상기 과제는 현재 블록의 복원된 주변 화소들의 화소값 및 참조 블록의 복원된 주변 화소들의 화소값을 입력 받는 단계와; 입력된 현재 블록의 복원된 주변 화소들의 화소값 및 참조 블록의 복원된 주변 화소들의 화소값에 기초하여, 참조 블록에 대해 조도 보상을 수행하는 단계를 포함하는 참조 블록의 조도 보상 방법을 실행하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록 매체에 의해 달성될 수 있다.
또한, 상기 과제는 부호화될 현재 블록의 복원된 주변 화소들의 화소값 및 참조 블록의 복원된 주변 화소들의 화소값에 기초하여 상기 참조 블록에 대해 조도 보상을 수행하는 단계와; 조도 보상이 수행된 참조 블록에 기초하여 움직임 예측을 수행하는 단계를 포함하는 조도 보상에 기반한 동영상 부호화 방법을 실행하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록 매체에 의해서도 달성될 수 있다.
또한, 상기 과제는 복호화될 현재 블록의 복원된 주변 화소들의 화소값 및 참조 블록의 복원된 주변 화소들의 화소값에 기초하여 상기 참조 블록에 대해 조도 보상을 수행하는 단계와; 조도 보상이 수행된 참조 블록에 기초하여 움직임 예측을 수행하는 단계를 포함하는 조도 보상에 기반한 동영상 복호화 방법을 실행하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록 매체에 의해서도 달성될 수 있다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다.
도 1은 본 발명에 따른 조도 보상 장치를 도시하는 블록도이다.
조도 보상 장치(100)는 조도 보상 파라미터 계산부(120) 및 조도 보상된 참조 블록 생성부(140)를 포함한다.
조도 보상 파라미터 계산부(120)는 현재 블록의 복원된 주변 화소값 및 참조 블록의 복원된 주변 화소값에 기초하여, 조도 보상 파라미터를 계산하고, 이를 조도 보상된 참조 블록 생성부(140)로 출력한다. 싱글 뷰 코딩인 경우, 참조 블록은 복원된 이전 프레임의 참조 블록이다. 또한, 선택적으로 멀티 뷰 코딩인 경우에는 인접한 뷰의 복원된 프레임들 중 하나의 참조 프레임 내의 블록일 수 있다.
이하에서는, 도 2(a)(b)를 참조하여, 본 발명에 따른 조도 보상 파라미터 계산 방법을 설명한다. 이하에서는 16x16 모드, 8x8 모드, 4x4 모드, 및 적응적인 모드의 경우 각각에 대해 설명한다.
우선, 도 2(a)(b)를 참조하여 16x16 모드에서의 조도 보상 파라미터 계산 방법을 설명한다. 나머지 모드들에 따른 조도 보상 방법은 후술한다.
도 2(a)의 굵은 선 블록은 참조 프레임 내 움직임 벡터 (x,y)에 대응하는 복원된 참조 블록인 16x16 크기의 Y 블록이다. 움직임 벡터 (x,y)에 대응하는 참조 블록 내 (i,j) 위치의 복원된 화소 값은 r`x,y(i,j)로 표시된다. 여기에서, 첨자 `는 복원된 값을 의미한다. 한편, 진한 색으로 표시된 화소들은 복원된 주변 화소 값들이다. 참조 프레임은 싱글 뷰의 경우 이전 프레임이며, MVC 방식의 경우에는 인접 뷰의 복원된 프레임이다.
도 2(b)의 굵은 선 블록은 현재 블록인, 16x16 크기의 Y 블록이다. 현재 블록 내 (i,j) 위치의 원 화소 값은 f(i,j)로 표시된다. 진한 색으로 표시된 주변 화소들은 움직임 추정 보상에 이용된다. 움직임 추정 보상에 이용되는 주변 화소들은 복원된 화소들이다. 도 2(a)에서와 마찬가지로 첨자 `는 복원된 값을 의미한 다.
수학식 6과 같이, 현재 블록내 f(i,j)의 예측자 는 r`x,y(i,j)의 1차 함수로 표현될 수 있다.
수학식 6에서 얻어진 예측자들은, 8 비트 영상의 경우 [0,255]로 클리핑된다.
수학식 6에서와 같이, ax,y 및 bx,y가 결정되면, 예측자가 계산될 수 있다. 본 실시예에서는 현재 블록 내부 화소들의 조도와 현재 블록의 주변 화소들의 조도 간의 차이가 크지 않다는 점에 착안하여, 도 2(a)(b)의 주변 화소들을 이용하여, 움직임 벡터(x,y)에 대응하는 조도 보상 파라미터들인 ax,y 및 bx,y를 계산한다.
즉, 현재 블록 및 참조 블록의 주변 복원 화소들을 이용하여 ax,y 및 bx,y 를 결정할 수 있기 때문에, 인코더에서 디코더로 ax,y 및 bx,y를 신택스를 통해 전송하지 않더라도, 디코더에서는 ax,y 및 bx,y를 계산할 수 있다. 따라서, 전송 데이터를 줄일 수 있는 효과가 있다.
이하에서는, 본 발명에 따른 ax,y 및 bx,y 결정을 위한 3가지 실시예를 설명한다. 3가지 실시예는 선형 회귀(linear regression) 방식, 차 평균 기반 예측(Average of Difference based Prediction: ADP) 방식, 및 평균 차 기반 예 측(Difference of Average based Prediction: DAP) 방식이다.
우선, 아래 수학식 7 및 8을 참조하여 선형 회귀 방식을 설명한다.
선형 회귀 방식에 따르면, 아래 수학식 7의 값이 최소가 되게 하는 ax,y 및 bx,y를 결정할 수 있다.
여기에서, f`(i,-1) 및 f`(-1,j) 는 현재 블록의 주변 화소들의 화소값이다. 또한, r`x,y(i,-1) 및 f`(-1,j)는 움직임 보상된 참조 블록의 주변 화소들의 화소값이다. 또한, ax,y 및 bx,y는 움직임 벡터 (x,y)에 따라 값이 달라지고, 각각의 움직임 벡터에 대해서는 상수이다.
편미분을 통해, 수학식 7의 J를 최소화 하는 ax,y 및 bx,y를 계산하면, 아래 수학식 8과 같다.
현재 블록 및 참조 블록의 크기가 16x16인 경우, 수학식 8에서 N은 32이며, f`(n)은 현재 블록의 복원된 주변화소를 의미하며, 도 1의 f`(-1,j)와 f`(i,-1) 중 임의의 한 화소에 대응한다. 여기서 i,j는 0과 15사이의 값이다. 또한, r`x,y(n)도 r`x,y(i,-1) 및 r`x,y(-1,j) 중 임의의 한 화소에 대응한다.
아래에서는, 수학식 9를 참조하여, 차 평균 기반 예측(Average of Difference based Prediction: ADP) 방식에 따른 ax,y 및 bx,y 계산 방식을 설명한다.
차 평균 기반 예측 방식에서는 ax,y 는 1로 고정하고, bx,y 만을 구하는 방법이다. 즉, bx,y를 주변 복원 화소들 간의 차의 평균으로 결정하는 방법으로서, bx,y 는 아래 수학식 9에 의해 결정될 수 있다.
아래에서는, 수학식 10을 참조하여 평균 차 기반 예측(Difference of Average based Prediction: DAP) 방식에 따른 ax,y 및 bx,y 계산 방식을 설명한다.
평균 차 기반 예측 방식에서는 ax,y 는 1로 고정하고, bx,y 만을 구하는 방법이다. 즉, bx,y를 주변 복원 화소들 간의 평균의 차로 결정하는 방법으로서, bx,y 는 아래 수학식 10에 의해 결정될 수 있다.
이와 같이, 조도 보상 파라미터 계산부(120)에서는 선형 회귀 방식, 차 평균 기반 예측 방식, 및 평균 차 기반 예측 방식과 같은 방식으로, ax,y 및 bx,y 을 계산하고, 이를 조도 보상된 참조 블록 생성부(140)로 출력한다.
조도 보상된 참조 블록 생성부(140)에서는 입력된 조도 보상 파라미터 ax,y 및 bx,y 를 이용하여, 수학식 6에 따라 f(i,j)에 대응하는 예측자 로 이루어진 조도 보상된 참조 블록을 생성하고, 생성된 조도 보상된 참조 블록을 움직임 예측부(도시되지 않음)로 출력한다.
도 3은 도 1의 조도 보상 장치에서 수행되는 조도 보상 방법을 설명하기 위한 흐름도이다.
단계 310에서는 현재 블록의 복원된 주변 화소들의 화소값 및 참조 블록의 복원된 주변 화소들의 화소값을 입력 받는다. 싱글 뷰 코딩인 경우, 참조 블록은 복원된 이전 프레임내의 참조 블록이다. 또한, 선택적으로 멀티 뷰 코딩인 경우에는 인접한 뷰의 복원된 프레임들 중 하나의 참조 프레임 내의 블록이다.
단계 320에서는 입력된 현재 블록의 복원된 주변 화소들의 화소값 및 참조 블록의 복원된 주변 화소들의 화소값에 기초하여, 참조 블록에 대해 조도 보상을 수 행한다. 단계 320에서는, 수학식 7 내지 10과 같은, 현재 프레임의 현재 블록의 복원된 주변 화소들의 화소값 및 참조 블록의 복원된 주변 화소들의 화소값의 상관 관계에 기초하여, 조도 보상 파라미터를 생성한다. 또한, 생성된 조도 보상 파라미터를 이용하여 수학식 6에 따라 조도 보상된 참조 블록을 생성한다.
도 4는 본 발명에 따른 조도 보상 방법이 적용된 동영상 부호화 장치를 도시하는 블록도이다.
본 발명에 따른 동영상 부호화부는 변환 및 양자화부(410), 역변환 및 역양자화부(420), 프레임 저장부(430), 조도 보상부(440), ME/MC부(450), 제1 가산부(460), 제2 가산부(462), 및 엔트로피 부호화부(470)를 포함한다.
변환 및 양자화부(410)는 영상 데이터의 공간 중복성(spatial redundancy)을 없애기 위해, 입력된 영상 데이터를 변환(transform) 한다. 또한, 변환 부호화하여 얻어진 변환 계수값들을 소정 양자화 스텝에 따라 양자화하여 양자화된 변환 계수값들로 구성된 2차원 데이터인 N×M 데이터를 얻는다. 사용되는 영상 변환의 예로는 DCT(Discrete Cosine Transform)를 들 수 있다. 양자화는 미리 결정된 양자화 스텝에 따라 수행된다.
역변환 및 역양자화부(420)는 변환 및 양자화부(410)에서 양자화된 영상 데이터를 역양자화하고, 역양자화된 영상 데이터를 역 영상 변환, 예를 들어 역 DCT한다.
제2 가산부(462)는 ME/MC부(450)에서 출력된 예측 영상과 역변환 및 역양자화부(420)에서 복원된 데이터를 가산하여 복원 영상을 생성한다.
프레임 저장부(430)는 제2 가산부(462)에서 복원된 영상을 프레임 단위로 저장한다.
조도 보상부(440)는 프레임 저장부(430)로부터 입력된 현재 블록의 복원된 주변 화소값 및 참조 블록의 복원된 주변 화소값을 입력 받아, 조도 보상된 예측 블록을 생성하고, 생성된 조도 보상된 예측 블록을 ME/MC부(450)로 출력한다. 선택적으로, 입력 영상이 MVC에 기반한 영상인 경우, 참조 블록의 주변 화소값은 인접 뷰의 프레임 내에 위치한 참조 블록의 복원된 주변 화소값이며, 이 경우 참조 블록의 주변 화소값은 MVC 기반 참조 프레임 저장부(도시되지 않음)로부터 입력된다.
조도 보상부(440)는 본 발명에 따른 도 1의 조도 보상 장치(100)와 동일한 기능을 수행하므로, 설명의 간단을 위해 조도 보상부(440)에 대한 상세한 설명은 생략한다.
ME/MC부(450)는 입력되는 현재 프레임의 영상 데이터와 조도 보상부(440)로부터 출력된 조도 보상된 참조 블록에 기초하여 매크로블록당 움직임 벡터(MV)를 추정한다. 또한, 추정된 움직임 벡터에 기초하여 움직임 보상된 예측 영역 P, 예를 들어 움직임 추정에 의해 선택된 16×16 영역을 생성하여, 이를 제1 가산부(460)로 출력한다.
즉, ME/MC부(450)는 조도 보상부(440)에서 얻어진 조도 보상된 참조 블록을 이용하여, 아래 수학식 11에 따라 현재 블록에 대응하는 조도가 보상된 SAD 값, 즉 IC-SAD (illumination compensated SAD)값을 구한다. 또한, IC SAD 값들의 비교를 통해 최종적인 움직임 벡터를 탐색한다.
수학식 11에서, ax,y 및 bx,y 는 움직임 벡터 (x,y)에 따라 값이 달라지며, 각 움직임 벡터에 대해서는 상수이다.
선택적으로, ME/MC부(450)는 비교부(도시되지 않음)를 더 포함한다.
비교부는 입력되는 현재 프레임의 영상 데이터와 조도 보상부(440)로부터 출력된 조도 보상된 참조 블록에 기초한 부호화 방식과, 입력되는 현재 프레임의 영상 데이터와 프레임 저장부(430)로부터 출력된 조도 보상되지 않은 참조 블록에 기초한 부호화 방식의 효율을 비교하고, 부호화 효율이 높은 방식을 선택한다. 이때, ME/MC부는 선택된 움직임 예측 및 보상 방식에 따라 얻어진 움직임 보상된 예측 영역 P를 생성하여, 이를 제1 가산부(460)로 출력한다.
또한, 선택적으로 매크로블록 단위로 조도 보상 여부를 알리는 1 비트의 플래그 정보를 신택스를 통해 디코더로 전송할 수 있다. 또한, 선택적으로 조도 보상 방법의 성능을 GOP 단위 또는 슬라이스 단위로 평가하여, GOP 단위 또는 슬라이스 단위로 조도 보상 여부를 나타내는 플래그 정보를 전송하도록 하는 것도 가능하다.
제1 가산부(460)에서는 원 영상과 ME/MC부(40)에서 출력된 예측자의 차 정보를 소정의 블록 단위로 변환 및 양자화부(410)로 입력한다. 제1 가산부(460)에서 는 움직임 벡터 탐색 과정을 통해 결정된, 현재 블록에 대한 최종 움직임 벡터가 (p,q)라고 하면, 아래 수학식 12와 같이, 현재 블록의 잔차 (p,q)를 계산하고 이를 변환 및 양자화부(410)으로 출력한다.
수학식 12에서, ap,q 및 bp,q 는 움직임 벡터 (p,q)에 따라 값이 달라지며, 각 움직임 벡터에 대해서는 상수이다.
엔트로피 부호화부(470)는 변환 및 양자화부(410)로부터 출력되는 양자화된 변환 계수들과 움직임 예측 및 보상부로부터 출력된 움직임 벡터에 관한 정보를 입력받아 엔트로피 부호화하여 최종적으로 얻어진 부호화된 비트스트림을 출력한다.
도 5는 도 4의 본 발명에 따른 조도 보상 방법이 적용된 동영상 부호화 장치에서 수행되는 부호화 방법을 설명하기 위한 흐름도이다.
단계 510에서는 변환 및 양자화를 수행한다.
단계 520에서는 변환 및 양자화된 데이터에 대해 역변환 및 역양자화를 수행하여 복원 영상을 생성한다.
단계 530에서는 부호화될 현재 블록의 복원된 주변 화소들의 화소값 및 참조 블록의 복원된 주변 화소들의 화소값에 기초하여 참조 블록에 대해 조도 보상을 수행한다. 본 실시예에서는 참조 블록은 이전 프레임내의 블록이다. 하지만, 선택적으로 참조 블록은 입력 영상이 MVC에 기반한 영상인 경우, 참조 블록은 인접 뷰 의 프레임 내의 블록이다.
단계 540에서는 조도 보상이 수행된 참조 블록에 기초하여 움직임 예측 및 보상을 수행하여 예측 블록을 생성한다.
단계 550에서는 원 영상과 생성된 예측 블록에 기초하여 잔차 영상을 생성한다. 생성된 잔차 영상에 대해 변환 및 양자화 과정이 수행되고, 이후 변환 및 양자화된 잔차 영상은, 움직임 예측시 얻어진 움직임 벡터와 함께 엔트로피 부호화된다.
도 6은 본 발명에 따른 조도 보상 방법이 적용된 동영상 복호화 장치를 도시하는 블록도이다.
도 6에 도시된 동영상 복호화 장치는 엔트로피 복호화부(610), 역양자화 및 역변환부(620), 프레임 저장부 (630), 조도 보상부(640), ME/MC 부(650), 및 가산부(660)를 포함한다.
엔트로피 복호화부(610)는 부호화된 입력 스트림을 엔트로피 복호화하여, 영상 데이터, 움직임 벡터 등을 추출한다. 엔트로피 복호화된 영상 데이터는 역양자화 및 역변환부(620)로 입력되고, 움직임 벡터 정보는 ME/MC부 (650)로 입력된다.
역변환 및 역양자화부(620)는 엔트로피 복호화부(610)에서 추출된 영상 데이터에 대해 역변환 및 역양자화를 수행한다.
프레임 저장부(630)는 역변환 및 역양자화부(620)에서 역양자화 및 역변환된 영상 데이터를 프레임 단위로 저장한다.
조도 보상부(640)는 프레임 저장부(630)로부터 입력된 현재 블록의 복원된 주 변 화소값 및 참조 블록의 복원된 주변 화소값을 입력 받아, 조도 보상된 참조 블록을 생성하고, 생성된 조도 보상된 예측 블록을 ME/MC부(650)로 출력한다. 조도 보상부(640)는 본 발명에 따른 도 1의 조도 보상 장치와 동일한 기능을 수행하므로, 설명의 간단을 위해 조도 보상부(640)에 대한 상세한 설명은 생략한다.
선택적으로, 도 6의 동영상 복호화 장치가 MVC에 기반한 복호화 장치인 경우, 참조 블록의 주변 화소값은 인접 뷰의 프레임 내에 위치하는 참조 블록의 복원된 주변 화소값이며, 이 경우 참조 블록의 주변 화소값은 MVC 기반 프레임 저장부(도시되지 않음)로부터 입력된다.
ME/MC부(650)는 입력되는 현재 프레임의 영상 데이터와 조도 보상부(640)로부터 출력된 조도 보상된 참조 블록에 기초하여 매크로블록당 움직임 벡터(MV)를 추정한다. 또한, 추정된 움직임 벡터에 기초하여 움직임 보상된 예측 영역 P, 예를 들어 움직임 추정에 의해 선택된 16×16 영역을 생성하여, 이를 가산부(660)로 출력한다.
즉, ME/MC부(650)는 조도 보상부(640)에서 얻어진 조도 보상된 참조 블록을 이용하여, 수학식 11에 따라 현재 블록에 대응하는 조도가 보상된 SAD 값, 즉 IC-SAD 값을 구한다. 또한, IC SAD 값들의 비교를 통해 최종적인 움직임 벡터를 탐색한다.
또한, 선택적으로, ME/MC부(650)는 비교부(도시되지 않음)를 더 포함한다. 비교부는 입력되는 현재 프레임의 영상 데이터와 조도 보상부(640)로부터 출력된 조도 보상된 참조 블록에 기초한 부호화 방식과, 입력되는 현재 프레임의 영상 데 이터와 프레임 저장부(630)로부터 출력된 조도 보상되지 않은 참조 블록에 기초한 부호화 방식의 효율을 비교하고, 부호화 효율이 높은 움직임 예측 및 보상에 따른 방식을 선택한다. 이때, ME/MC부는 선택된 움직임 예측 및 보상 방식에 따라 얻어진 움직임 보상된 예측 영역 P를 생성하여, 이를 가산부(660)로 출력한다.
또한, 선택적으로, 엔트로피 복호화부(610)에서 추출된 조도 보상 여부를 나타내는 플래그 정보에 기초하여 결정되는, 조도 보상된 참조 블록에 기초한 움직임 예측 및 보상된 예측 블록 또는 조도 보상되지 않은 참조 블록에 기초한 움직임 예측 및 보상된 예측 블록을 가산부(660)로 출력한다.
가산부(660)에서는 역 변환 및 역 양자화부(620)에서 복원된 영상과 ME/MC 부(650)로부터 출력된 예측자를 가산하여 이를 디스플레이부(도시되지 않음) 및 프레임 저장부(630)로 출력한다.
본 실시예에 따르면 가산부(660)에서는 역양자화 및 역변환부(620)에서 입력된 잔차 신호 residue(p,q)를 복원한 복원된 잔차 신호인 residue`(p,q)와, ME/MC부(650)으로부터 입력된 예측 블록의 화소값을 가산하여, 현재 블록 내부의 최종 복원 화소 f`(x,y)를 아래 수학식 13에 따라 계산한다.
수학식 13에서, ap,q 및 bp,q 는 움직임 벡터 (p,q)에 따라 값이 달라지며, 각 움직임 벡터에 대해서는 상수이다.
도 7은 도 6에 도시된 본 발명에 따른 동영상 복호화 장치에서 수행되는 동영상 복호화 방법을 설명하기 위한 흐름도이다.
단계 710에서는, 부호화된 입력 스트림을 엔트로피 복호화하여 영상 데이터, 움직임 벡터들을 추출한다.
단계 720에서는 단계 710에서 추출된 영상 데이터에 대해 역변환 및 역양자화를 수행한다.
단계 730에서는 역양자화 및 역변환하여 복원된 영상 데이터를 프레임 단위로 저장한다.
단계 740에서는 복호화될 현재 블록의 복원된 주변 화소들의 화소값 및 참조 블록의 복원된 주변 화소들의 화소값에 기초하여 참조 블록에 대해 조도 보상을 수행한다. 이때, 입력된 스트림이 MVC에 기반한 것인 경우, 참조 블록의 주변 화소값은 인접 뷰의 프레임 내의 참조 블록의 복원된 주변 화소값이다.
단계 750에서는 조도 보상이 수행된 참조 블록 및 추출된 움직임 벡터에 기초하여 움직임 예측 및 보상을 수행하여 예측 블록을 생성한다.
단계 760에서는 단계 750에서 생성된 예측 블록을 이용하여 복원 영상을 생성한다. 예를 들어, 역변환 및 역양자화가 수행된 영상에 예측 블록을 부가하여 복원 영상을 생성한다.
이하에서는, 도 8을 참조하여 8x8 모드에서의 조도 보상 방법 및 움직임 보상 방법을 설명한다.
8x8 모드로 처리하는 경우, 16x16 크기의 블록에는 모두 4 개의 8x8 서브 블 록이 존재하며, 각각이 서로 다른 움직임 벡터를 가진다. 이 경우, 처리 순서의 예는 도 8에 도시되어 있다. 8x8 모드는 조도 보상을 수행하는 처리 단위만이 8x8 서브 블록으로 달라졌을 뿐, 처리 방식은 16x16 모드에서와 동일하다. 즉, ax,y 및 bx,y 은 선형 회귀 방식, ADP, DAP 방식을 통해 구해진다. 또한, 동영상 부호화 장치 및 동영상 복호화 장치에서의 움직임 보상 과정도 8x8 블록 단위라는 점을 제외하고는 16x16 모드인 경우와 동일하다.
이하에서는, 도 9를 참조하여 4x4 모드에서의 조도 보상 방법 및 움직임 보상 방법을 설명한다.
4x4 모드로 처리하는 경우, 16x16 크기의 블록에는 모두 16 개의 4x4 서브 블록이 존재하며, 각각이 서로 다른 움직임 벡터를 가진다. 이 경우, 처리 순서의 예는 도 9에 도시되어 있다. 4x4 모드는 조도 보상을 수행하는 처리 단위만이 4x4 서브 블록으로 달라졌을 뿐, 처리 방식은 16x16 모드에서와 동일하다. 즉, ax,y 및 bx,y 은 선형 회귀 방식, ADP, DAP 방식을 통해 구해진다. 또한, 동영상 부호화 장치 및 동영상 복호화 장치에서의 움직임 보상 과정도 4x4 블록 단위라는 점을 제외하고는 16x16 모드인 경우와 동일하다.
이하에서는, 적응적인 모드에서의 조도 보상 방법 및 움직임 보상 방법을 설명한다.
적응적인 모드의 경우, 동영상 부호화 장치에서는, 매크로블록 단위로 16x16 모드, 8x8 모드, 4x4 모드에 따라 조도 보상 및 부호화를 수행하고, 이들 중 하나 를 선택할 수 있다. 이때, 해당 모드에 따른 잔차(residue) 블록을 부호화하여 전송한다. 이때, 해당 모드를 나타내는 정보는 동영상 복호화 장치로 전송된다. 또한, 선택적으로, 복호화 장치에도 16x16 모드, 8x8 모드, 4x4 모드 별로 조도 보상 및 움직임 추정이 가능한 경우, 모드 정보를 전송하지 않더라도 가능하다.
본 실시예에서는 16x16 모드, 8x8 모드, 4x4 모드만을 다루었지만, 다른 임의의 형태의 블록 단위의 움직임 보상 방식에도 본 발명에 따른 조도 보상 방법을 적용할 수 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.