일반적으로 움직임 예측을 통한 움직임 보상방법이 적용되는 동영상 부호화기는 다음의 도 1에서와 같이,
입력되는 영상과 움직임 보상된 영상신호와의 차신호를 구하기 위한 감산 기(10)와, 상기 감산기(10)에서 구해진 차신호를 소정의 정해진 함수에 따라 변환시키는 변환부(transform)(20)와, 변환부(20)에서 변환된 영상신호를 양자화시키는 양자화부(Quantization)(30)와, 양자화부(30)에서 양자화된 영상정보를 부호화하는 부호화부(entropy coding)(40)와, 양자화부(30)에서 양자화된 영상신호를 역으로 신호처리하여 움직임 보상을 수행하는 움직임 보상수단으로 구성되며,
움직임보상수단은 양자화부(30)에서 양자화된 영상신호를 역양자화하는 역양자화부(Inverse Quantization)(50)와 변환부(20)에서 변환된 신호를 역으로 되돌리는 변환을 수행하는 역변환부(60)와, 움직임 보상된 영상을 가산하여 역변환부(60)에서 변환된 영상으로부터 복원된 영상을 생성하기 위한 가산기(70)와, 프레임메모리(80)와, 이전 영상 또는 입력되는 미래영상과의 참조영상으로부터 움직임을 예측하여 모션벡터(mosion vector)를 생성하는 움직임예측부(90)와, 움직임예측부(90)로부터 생성된 모션벡터를 이용하여 움직임을 보상하기 위한 움직임 보상부(100)를 포함하여 구성된다.
일반적인 동영상 부호화 방법은 영상 한 장 단위로 인트라프레임(Intra-frame)과 인터프레임(Inter-frame)으로 분류 되고, 인트라 프레임에서는 인트라 매크로 블록 코딩을 하고, 인터 프레임에서는 인트라 매크로 블록과 인터 매크로 블록 중 더 좋은 효율의 매크로 블록을 선택하게 된다.
인터매크로블록 코딩은 현재 입력된 영상의 이전 또는 이후 영상에서 움직임 검색영역을 가져와서 움직임 예측(motion estimation)을 수행하여 그 차영상(residual frame)을 변환(transform) 및 양자화(Quantization), 엔트로피 코딩의 순서대로 부호화함으로써, 압축효율을 높인다.
다음 영상이 참조영상을 필요로 할 경우에는 엔트로피 코딩 전 역양자화(Inverse Quantization)및 역변환(Inverse Transform)을 통해 복원영상(Recontructed frame)을 생성하고, 이를 참조영상으로 활용한다.
그리고 H.264인 경우에는 역변환부(60)의 이후로 디블로킹 필터(deblocking filter)를 구성하여 보다 선명한 참조영상을 구할 수 있도록 한다.
여기서, 변환부(20)는 MPEG4 part2 의 경우 변환에 DCT(Discrete Cosine Transform)가 사용 되며 부호화부(40)의 엔트로피 코딩으로는 VLC(Variable Length Coding)를 사용한다.
H.264/AVC의 경우 변환에 Integer Transform이 사용되며 엔트로피 코딩으로 CAVLC 또는 CABAC을 사용한다. 또한 Deblocking filter를 사용하기도 한다.
일반적으로 동영상기기로 촬영한 결과영상의 각 프레임은 카메라의 초당 프레임수(FPS) 및 셔터스피드와 촬영기기의 움직임 또는 손떨림등 외부적인 요인 또는 촬영하는 사물의 움직임 등으로 인해 상당수의 프레임에 일정한 방향의 모션 블러(Motion-Blur)이 영상 전체에 대해 모션블러링이 발생할 수도 있고, 어떠한 특정 부분에만 생길 수도 있는 바, 이러한 현상에 대한 대처방안이 없기 때문에 동영상 압축 효율은 떨어지게 된다.
먼저 본 발명 선택적 참조영상을 이용한 움직임 보상기법을 적용한 동영상 압축 부호화장치를 첨부된 도 2에 도시된 실시 예를 참조하여 중복되는 부분에 대해서는 동일부호로 처리하여 설명하면 다음과 같다.
입력되는 영상과 움직임 보상된 영상신호와의 차신호를 구하기 위한 감산 기(10)와, 상기 감산기(10)에서 구해진 차신호를 소정의 정해진 함수에 따라 변환시키는 변환부(transform)(20)와, 변환부(20)에서 변환된 영상신호를 양자화시키는 양자화부(Quantization)(30)와, 양자화부(30)에서 양자화된 영상정보를 부호화하는 부호화부(entropy coding)(40)와, 양자화부(30)에서 양자화된 영상신호를 역으로 신호처리하여 움직임 보상을 수행하는 움직임 보상수단으로 구성되며,
움직임보상수단은 양자화부(30)에서 양자화된 영상신호를 역양자화하는 역양자화부(Inverse Quantization)(50)와 변환부(20)에서 변환된 신호를 역으로 되돌리는 변환을 수행하는 역변환부(60)와, 움직임 보상된 영상을 가산시켜 역변환부(60)로부터 변환된 영상으로부터 복원영상을 생성시키기 위한 가산기(70)와, 프레임메모리(80)와, 역변환부(60)를 통해 역변환된 본래 참조영상의 블록단위 움직임 검색영역에 대해 움직임 정도 및 각도에 따라 추가적인 움직임 검색영역을 생성하기 위한 하나 이상의 다수개로 구성되는 모션블러 필터(110) 및 모션 디블러 필터(120)와, 상기 모션블러 필터(110) 및 모션 디블러필터(120) 각각에 대해 구성되는 블러프레임메모리(130) 및 디블러프레임메모리(140)와, 정해진 블러모드에 따라서 모션블러 필터(110) 및 모션 디블러필터(120)를 선택하여 움직임 검색영역을 생성하는 움직임 검색영역 생성제어부(150)와, 블러프레임메모리(130) 및 디블러프레임메모리(140)로부터 받아들인 생성된 움직임 검색영역들과 프레임메모리(80)로 부터 받아들인 본래 참조영상의 움직임 검색영역들 모두에 대해 움직임 예측을 수행하고 그 움직임 예측과정의 비용을 산출하여 움직임 보상에 적용될 모드를 선택하는 움직임예측 및 모드선택제어부(90')와, 움직임예측 및 모드선택제어부(90')로부터 선 택된 모드에 따라 움직임 보상을 수행하는 움직임 보상부(100')부를 포함하여 구성된다.
이와 같은 본 발명의 동작과정을 상세히 설명하면 다음과 같다.
종래 배경기술에서도 밝힌 바와 같이,
영상 한 장 단위로 인트라프레임과 인터프레임으로 분류되고 인트라 프레임에서는 인트라 매크로 블록 코딩을 하고, 인터프레임에서는 인트라 매크로 블록과 인터매크로블록 중 더 좋은 효율의 매크로 블록을 선택하게 된다.
인터매크로블록 코딩은 현재 입력된 영상의 이전 또는 이후 영상에서 참조영상으로 하여, 참조영상으로 부터 움직임 검색영역을 가져와서 움직임 예측을 수행하여 그 차영상(Residual Frame)을 변환(Transform) 및 양자화(Quantization), 엔트로피 코딩의 순서대로 부호화함으로써 압축효율을 높인다.
이때, 본 발명에서는 움직임을 예측하고 움직임을 보상하는 과정에서, 참조영상 에서 나타날 수 있는 모션 블러링에 의해 압축효율이 떨어질 수 있는 점을 감안하여 참조영상의 블록단위로 움직임 검색영역에 대하여 고의적인 모션블러와 모션디블러필터링을 수행하여 추가적인 블록단위로 여러개의 추가적인 움직임 검색영역을 만들어 주어 본래의 움직임 검색영역을 포함하여 움직임을 예측하여 차 영상 데이터가 적은 움직임 검색영역에 대한 움직임 예측값을 통해 움직임 보상이 이루어질 수 있도록 한 것이다.
이는 모션 블러링이 전체 영상에서 나타나거나 또한 어떠한 특정한 부분에서만 발생할 수 있는 점을 감안하여 참조영상 전체가 아닌 동영상 부호화 단위인 블 록단위의 움직임 검색영역에 대해서 모션 블러와 모션 디블러 필터링을 수행 하도록 하여 압축 효율을 높일 수 있도록 한 것이다.
움직임 검색영역 생성제어부(150)에서는 내부에 설정된 프로그램 모드에 따라서 모션블러필터(110) 및 모션 디블러필터(120)를 선택하여 블러모드를 생성하게 된다.
블러모드 정보에는 움직임 크기(길이,강도), 움직임 방향, 필터의 종류정보로 구성되어 있고, n개의 모션블러필터(110)와 m개의 모션디블러필터(120)를 선택하여 (n+m)개의 블러모드를 생성하게 된다.
상기 움직임 크기(길이, 강도)는 필터에 사용될 필터 탭 개수를 정하는 것이고, 움직임 방향은 가로인지 세로인지 대각선인지 등의 필터탭의 방향을 말하며(360도 전방향 지원가능), 필터의 종류정보는 필터탭에 따른 uniform 필터를 사용할이지 PSF(Point Spread Function)필터를 사용할 지 등의 정보를 나타내는 것입니다.
역변환부(60)를 거쳐 복원된 영상은 프레임메모리(80)를 통해 모션 블러필터(110) 및 모션디블러필터(120)에 전달되고, 상기에서와 같이 선택된 모션블러필터(110) 및 모션 디블러필터(120)를 통해 필터링되어 복원된 영상의 블록단위 움직임 검색영역에 대하여 다수개의 움직임 검색영상이 만들어지게 된다.
이후, 움직임 예측 및 모드선택부(90')에서는 프레임 메모리(80), 모션블러필터(110) 및 모션디블러필터(120)에 의해 필터링되어 저장된 블러프레임메모리(130) 및 디블러프레임메모리(140)으로부터 전달되는 각 움직임 검색영역에 대하여 움직임을 예측하고, 각 수행단계의 비용(cost)을 산출하여 최적의 모드를 선택하도록 한다.
도 3은 상기와 같은 참조영상을 이용한 움직임 예측과정을 나타낸 것이다.
본래 참조영상의 움직임 검색영역에 대해 움직임의 크기(길이,강도), 움직임의 방향에 따라 추가적인 움직임 검색영역을 생성하기 위한 모션 블러 필터 및 모션 디블러 필터를 선택하는 블러 모드 선택과정과, 선택된 블러 모드에 따른 모션 블러 필터 및 모션 디블러 필터에 의한 움직임 검색영역들을 생성하는 필터링 과정과, 본래 움직임 검색영역과 상기 필터링 과정을 통해 생성된 움직임 검색영역들에 대해 움직임을 예측하는 과정과, 움직임 예측 후에 발생하는 비용을 비교하여 최소값을 가지는 블러모드를 선택하여 움직임을 보상하는 움직임 보상과정을 포함하여 이루어진다.
블러모드생성에 있어서, 움직임 검색영역 생성제어부(150)에서는 본래 움직임 검색영역에 대하여 움직임 크기(강도, 길이), 움직임방향, 필터의 종류를 설정하여 모션블러필터(100)에는 n개의 모드를 설정하고, 모션디블러필터(120)에는 m개의 모드를 설정한다.
설정된 n개의 모드로 각각 모드별 블러가 첨가된 움직임 검색영역을 만들어내고, m개의 모드로 각각 모드별 블러가 제거된 움직임 검색영역을 만든다.
움직임 예측 및 모드선택제어부(90')에서는 기존의 움직임 검색영역과 함께 n+m+1개의 움직임 예측을 수행하고, 각 수행단계의 비용(cost)을 산출하여 적은 비 용의 모드를 최적의 모드로 선택하도록 한다.
도 4는 본 발명 선택적 참조영상을 이용한 움직임 보상기법을 적용한 동영상 압축복호화 장치의 구성을 나타낸 것이다.
입력된 스트림에 대하여 엔트로피 디코딩(entropy decoding)을 수행하는 복호화부(200)와, 복호화부(200)로부터 복호화된 영상신호에 대하여 역양자화를 수행하는 역양자화부(210)와, 역양자화된 영상신호에 대하여 부호화과정에서의 변환과정을 역으로 수행하는 역변환부(220)와, 움직임 보상된 영상을 가산시켜 복원영상을 생성시키는 가산기(230)와, 복호화부(200)를 통해 복호화된 영상신호로부터 블러모드 정보를 추출하고, 그 추출된 정보를 이용하여 모션블러필터(250) 또는 모션디블러필터(260)를 선택 제어하여 움직임 검색영역을 생성하는 필터 선택제어부(240)와, 움직임 검색영역을 생성하기 위한 하나 이상의 다수개로 구성되는 모션블러 필터(250) 및 모션 디블러 필터(260)와, 모션블러 필터(250) 및 모션 디블러필터(260) 각각에 대한 다수개의 프레임메모리(270)와, 각 프레임메모리(270)로부터 전달되는 움직임 검색영역으로 움직임을 보상하는 움직임보상부(280)를 포함하여 구성된다.
이와 같은 본 발명 복호화기는 본 발명 부호화기로부터 부호화된 영상신호에 대하여 부호화과정을 통해 입력된 블러모드 정보를 추출하여 그 추출된 정보를 통해 참조영상을 생성하여 움직임 보상이 이루어질 수 있도록 하는 것을 특징으로 한다.
그 과정은, 복호화된 영상신호로부터 블러모드를 추출하는 과정과, 추출된 블러모드 정보에 따라서 모션 블러 필터 또는 디블러 필터를 통해 움직임 검색영역을 생성하는 과정과, 생성된 움직임 검색영역에 따라서 움직임을 보상하는 과정을 포함하여 이루어진다.
복호화기는 입력된 스트림을 복호화부(200)에서 엔트로피 디코딩을 수행하여 복호화시키고, 이를 역양자화, 역변환시켜 움직임 보상된 영상으로부터 복원영상을 구성시킨다.
이때, 필터 선택제어부(240)에서는 복호화된 영상신호로부터 입력되어있는 블러모드정보를 추출한다.
블러모드정보는 부호화기와 약속된 형태로 북호화기 내부에 존재하고, 추출된 블러모드정보로부터 모션 블러 필터링을 할지 모션 디블러필터링을 수행할 지를 선택하고, 움직임의 크기(길이,강도), 방향(각도), 필터의 종류에 대한 정보를 얻는다.
이의 정보로부터 필터 선택제어부(240)에서는 복호화된 참조영상의 움직임 검색영역에 대해 모션블러필터링 또는 모션 디블러필터링을 수행하여 모션블러잡음이 첨가되거나, 제거되는 새로운 참조영상을 얻어 움직임 보상부(280)에 제공한다.
움직임 보상부(280)에서는 이러한 참조영상을 이용하여 움직임 보상을 수행한다.