KR20140062453A - 픽처 경계의 부호화 단위를 부호화, 복호화 하는 방법 및 장치 - Google Patents
픽처 경계의 부호화 단위를 부호화, 복호화 하는 방법 및 장치 Download PDFInfo
- Publication number
- KR20140062453A KR20140062453A KR1020140054298A KR20140054298A KR20140062453A KR 20140062453 A KR20140062453 A KR 20140062453A KR 1020140054298 A KR1020140054298 A KR 1020140054298A KR 20140054298 A KR20140054298 A KR 20140054298A KR 20140062453 A KR20140062453 A KR 20140062453A
- Authority
- KR
- South Korea
- Prior art keywords
- unit
- encoding
- encoding unit
- boundary
- prediction
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
현재 픽처의 경계를 벗어난 영역을 포함하고 있는 영상 부호화 단위를 더 작은 부호화 단위로 분할하여, 현재 픽처의 경계를 벗어나지 않은 영역만 부호화하는 방법 및 장치, 이러한 부호화 방법에 의해 부호화된 영상 데이터를 복호화하는 방법 및 장치가 개시된다.
Description
본 발명은 영상 부호화, 복호화 방법 및 장치에 관한 것으로 보다 상세히는 픽처 경계의 영상 부호화 단위를 부호화, 복호화하는 방법 및 장치에 관한 것이다.
MPEG-1, MPEG-2, MPEG-4 H.264/MPEG-4 AVC(Advanced Video coding)와 같은 영상 압축 방식에서는 영상을 부호화하기 위해서 소정 크기의 블록으로 나눈다. 그런 다음, 인터 예측(inter prediction) 또는 인트라 예측(intra prediction)을 이용해 각각의 블록을 예측 부호화한다.
본 발명이 해결하고자 하는 기술적 과제는 픽처 경계의 부호화 단위를 부호화, 복호화하는 방법 및 장치를 제공하는데 있고, 상기 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공하는데 있다.
상기 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른 영상 부호화 방법은 제1 부호화 단위가 현재 픽처의 경계를 벗어난 영역을 포함하는지 판단하는 단계; 상기 판단 결과에 기초해 제1 부호화 단위를 적어도 하나의 제2 부호화 단위로 분할하는 단계; 및 상기 분할 결과 생성된 적어도 하나의 제2 부호화 단위 중 상기 현재 픽처의 경계를 벗어나지 않은 제2 부호화 단위만 부호화하는 단계를 포함한다.
본 발명에 따른 보다 바람직한 실시예에 따르면, 상기 현재 픽처의 경계를 벗어나지 않은 제2 부호화 단위의 부호화 시에 상기 제1 부호화 단위의 분할 여부를 나타내는 정보는 부호화하지 않는 것을 특징으로 한다.
본 발명에 따른 보다 바람직한 실시예에 따르면, 상기 제1 부호화 단위의 심도와 상기 제2 부호화 단위의 심도는 상이하며, 상기 심도는 현재 슬라이스 또는 현재 픽처의 최대 부호화 단위에서 상기 제1 부호화 단위 및 상기 제2 부호화 단위로 단계적으로 축소된 정도를 나타내는 것을 특징으로 한다.
본 발명에 따른 보다 바람직한 실시예에 따르면, 상기 판단하는 단계는 상기 제1 부호화 단위의 좌측 또는 우측 경계가 상기 현재 픽처의 좌측 또는 우측 경계를 벗어나는지 판단하는 단계를 포함한다.
본 발명에 따른 보다 바람직한 실시예에 따르면, 상기 판단하는 단계는 상기 제1 부호화 단위의 상부 또는 하부 경계가 상기 현재 픽처의 상부 또는 하부 경계를 벗어나는지 판단하는 단계를 포함한다.
상기 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른 영상 복호화 방법은 제1 부호화 단위가 현재 픽처의 경계를 벗어난 영역을 포함하는지 판단하는 단계; 상기 판단 결과에 기초해 상기 제1 부호화 단위를 분할하여 생성된 적어도 하나의 제2 부호화 단위 중 상기 현재 픽처의 경계를 벗어나지 않은 제2 부호화 단위에 대한 데이터를 파싱하는 단계; 및 상기 현재 픽처의 경계를 벗어나지 않은 제2 부호화 단위에 대한 데이터를 복호화하는 단계를 포함하는 것을 특징으로 한다.
상기 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른 영상 부호화 장치는 제1 부호화 단위가 현재 픽처의 경계를 벗어난 영역을 포함하는지 판단하는 판단부; 상기 판단 결과에 기초해 제1 부호화 단위를 적어도 하나의 제2 부호화 단위로 분할하는 제어부; 및 상기 분할 결과 생성된 적어도 하나의 제2 부호화 단위 중 상기 현재 픽처의 경계를 벗어나지 않은 제2 부호화 단위만 부호화하는 부호화부를 포함한다.
상기 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른 영상 복호화 장치는 제1 부호화 단위가 현재 픽처의 경계를 벗어난 영역을 포함하는지 판단하는 판단부; 상기 판단 결과에 기초해 상기 제1 부호화 단위를 분할하여 생성된 적어도 하나의 제2 부호화 단위 중 상기 현재 픽처의 경계를 벗어나지 않은 제2 부호화 단위에 대한 데이터를 파싱하는 파싱부; 및 상기 현재 픽처의 경계를 벗어나지 않은 제2 부호화 단위에 대한 데이터를 복호화하는 복호화부를 포함한다.
상기 기술적 과제를 해결하기 위해 본 발명의 일 실시예는 상기된 영상 부호화 방법 및 영상 복호화 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.
도 1은 본 발명의 일 실시예에 따른 영상 부호화 장치를 도시한다.
도 2는 본 발명의 일 실시예에 따른 영상 복호화 장치를 도시한다.
도 3은 본 발명의 일 실시예에 따른 계층적 부호화 단위를 도시한다.
도 4는 본 발명의 일 실시예에 따른 부호화 단위에 기초한 영상 부호화부를 도시한다.
도 5는 본 발명의 일 실시예에 따른 부호화 단위에 기초한 영상 복호화부를 도시한다.
도 6은 본 발명의 일 실시예에 따른 최대 부호화 단위, 서브 부호화 단위 및 예측 단위를 도시한다.
도 7은 본 발명의 일 실시예에 따른, 부호화 단위 및 변환 단위를 도시한다.
도 8a 및 8b는 본 발명의 일 실시예에 따른, 부호화 단위, 예측 단위 및 주파수 변환 단위의 분할 형태를 도시한다.
도 9는 본 발명의 또 다른 실시예에 따른 영상 부호화 장치를 도시한다.
도 10a 및 10b는 본 발명의 일 실시예에 따른 픽처 경계의 부호화 단위를 도시한다.
도 11a 및 11b는 본 발명의 일 실시예에 따른 픽처 경계의 부호화 단위를 분할하는 방법을 도시한다.
도 12a 및 12b는 본 발명의 또 다른 실시예에 따른 픽처 경계의 부호화 단위 및 분할 방법을 도시한다.
도 13a 및 13b는 본 발명의 일 실시예에 따른 인트라 예측 방법을 도시한다.
도 14는 본 발명의 일 실시예에 따른 최대 부호화 단위의 인덱싱(indexing)을 도시한다.
도 15는 본 발명의 일 실시예에 따른 영상 부호화 방법을 설명하기 위한 흐름도이다.
도 16은 본 발명의 일 실시예에 또 다른 영상 복호화 장치를 도시한다.
도 17은 본 발명의 일 실시예에 따른 영상 복호화 방법을 설명하기 위한 흐름도이다.
도 18a 내지 18g는 현재 픽처의 경계를 벗어난 영역을 포함하는 2Nx2N 크기의 제1 부호화 단위의 예측 모드들을 도시한다.
도 19는 본 발명의 또 다른 실시예에 따른 영상 부호화 방법을 설명하기 위한 흐름도이다.
도 20a 및 20b는 본 발명의 또 다른 실시예에 따른 픽처 경계의 부호화 단위를 부호화하는 방법을 설명하기 위한 도면이다.
도 21은 본 발명의 또 다른 실시예에 따른 영상 복호화 방법을 설명하기 위한 흐름도이다.
도 22는 본 발명의 또 다른 실시예에 따른 영상 부호화 방법을 설명하기 위한 흐름도이다.
도 23a 및 23b는 본 발명의 또 다른 실시예에 따른 픽처 경계의 부호화 단위를 부호화하는 방법을 설명하기 위한 도면이다.
도 24는 본 발명의 또 다른 실시예에 따른 영상 복호화 방법을 설명하기 위한 흐름도이다.
도 2는 본 발명의 일 실시예에 따른 영상 복호화 장치를 도시한다.
도 3은 본 발명의 일 실시예에 따른 계층적 부호화 단위를 도시한다.
도 4는 본 발명의 일 실시예에 따른 부호화 단위에 기초한 영상 부호화부를 도시한다.
도 5는 본 발명의 일 실시예에 따른 부호화 단위에 기초한 영상 복호화부를 도시한다.
도 6은 본 발명의 일 실시예에 따른 최대 부호화 단위, 서브 부호화 단위 및 예측 단위를 도시한다.
도 7은 본 발명의 일 실시예에 따른, 부호화 단위 및 변환 단위를 도시한다.
도 8a 및 8b는 본 발명의 일 실시예에 따른, 부호화 단위, 예측 단위 및 주파수 변환 단위의 분할 형태를 도시한다.
도 9는 본 발명의 또 다른 실시예에 따른 영상 부호화 장치를 도시한다.
도 10a 및 10b는 본 발명의 일 실시예에 따른 픽처 경계의 부호화 단위를 도시한다.
도 11a 및 11b는 본 발명의 일 실시예에 따른 픽처 경계의 부호화 단위를 분할하는 방법을 도시한다.
도 12a 및 12b는 본 발명의 또 다른 실시예에 따른 픽처 경계의 부호화 단위 및 분할 방법을 도시한다.
도 13a 및 13b는 본 발명의 일 실시예에 따른 인트라 예측 방법을 도시한다.
도 14는 본 발명의 일 실시예에 따른 최대 부호화 단위의 인덱싱(indexing)을 도시한다.
도 15는 본 발명의 일 실시예에 따른 영상 부호화 방법을 설명하기 위한 흐름도이다.
도 16은 본 발명의 일 실시예에 또 다른 영상 복호화 장치를 도시한다.
도 17은 본 발명의 일 실시예에 따른 영상 복호화 방법을 설명하기 위한 흐름도이다.
도 18a 내지 18g는 현재 픽처의 경계를 벗어난 영역을 포함하는 2Nx2N 크기의 제1 부호화 단위의 예측 모드들을 도시한다.
도 19는 본 발명의 또 다른 실시예에 따른 영상 부호화 방법을 설명하기 위한 흐름도이다.
도 20a 및 20b는 본 발명의 또 다른 실시예에 따른 픽처 경계의 부호화 단위를 부호화하는 방법을 설명하기 위한 도면이다.
도 21은 본 발명의 또 다른 실시예에 따른 영상 복호화 방법을 설명하기 위한 흐름도이다.
도 22는 본 발명의 또 다른 실시예에 따른 영상 부호화 방법을 설명하기 위한 흐름도이다.
도 23a 및 23b는 본 발명의 또 다른 실시예에 따른 픽처 경계의 부호화 단위를 부호화하는 방법을 설명하기 위한 도면이다.
도 24는 본 발명의 또 다른 실시예에 따른 영상 복호화 방법을 설명하기 위한 흐름도이다.
이하에서는 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다.
도 1 은 본 발명의 일 실시예에 따른 영상 부호화 장치를 도시한다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 영상 부호화 장치(100)는 최대 부호화 단위 분할부(110), 부호화 심도 결정부(120), 영상 데이터 부호화부(130) 및 부호화 정보 부호화부(140)를 포함한다.
최대 부호화 단위 분할부(110)는 최대 크기의 부호화 단위인 최대 부호화 단위에 기반하여 현재 픽처 또는 현재 슬라이스를 분할할 수 있다. 현재 픽처 또는 현재 슬라이스를 적어도 하나의 최대 부호화 단위로 분할할 수 있다.
본 발명의 일 실시예에 따르면, 최대 부호화 단위 및 심도를 이용해 부호화 단위가 표현될 수 있다. 전술한 바와 같이 최대 부호화 단위는 현재 픽처의 부호화 단위 중 크기가 가장 큰 부호화 단위를 나타내며, 심도는 부호화 단위가 계층적으로 축소된 정도를 나타낸다. 심도가 커지면서, 부호화 단위는 최대 부호화 단위로부터 최소 부호화 단위까지 축소될 수 있으며, 최대 부호화 단위의 심도는 최소 심도로 정의되고, 최소 부호화 단위의 심도는 최대 심도로 정의될 수 있다. 최대 부호화 단위는 심도가 커짐에 따라 심도별 부호화 단위의 크기는 감소하므로, k 심도의 서브 부호화 단위는 k보다 큰 심도의 복수 개의 서브 부호화 단위를 포함할 수 있다.
부호화되는 픽처의 크기가 커짐에 따라, 더 큰 단위로 영상을 부호화하면 더 높은 영상 압축률로 영상을 부호화할 수 있다. 그러나, 부호화 단위를 크게 하고, 그 크기를 고정시켜버리면, 계속해서 변하는 영상의 특성을 반영하여 효율적으로 영상을 부호화할 수 없다.
예를 들어, 바다 또는 하늘에 대한 평탄한 영역을 부호화할 때에는 부호화 단위를 크게 할수록 압축률이 향상될 수 있으나, 사람들 또는 빌딩에 대한 복잡한 영역을 부호화할 때에는 부호화 단위를 작게 할수록 압축률이 향상된다.
이를 위해 본 발명의 일 실시예는 픽처 또는 슬라이스마다 상이한 크기의 최대 영상 부호화 단위를 설정하고, 최대 심도를 설정한다. 최대 심도는 부호화 단위가 축소될 수 있는 최대 횟수를 의미하므로, 최대 심도에 따라 최대 영상 부호화 단위에 포함된 최소 부호화 단위 크기를 가변적으로 설정할 수 있게 된다.
부호화 심도 결정부(120)는 최대 심도를 결정한다. 최대 심도는 R-D 코스트(Rate-Distortion Cost) 계산에 기초해 결정될 수 있다. 최대 심도는 픽처 또는 슬라이스마다 상이하게 결정되거나, 각각의 최대 부호화 단위마다 상이하게 결정될 수도 있다. 결정된 최대 심도는 부호화 정보 부호화부(140)로 출력되고, 최대 부호화 단위별 영상 데이터는 영상 데이터 부호화부(130)로 출력된다.
최대 심도는 최대 부호화 단위에 포함될 수 있는 가장 작은 크기의 부호화 단위 즉, 최소 부호화 단위를 의미한다. 다시 말해, 최대 부호화 단위는 상이한 심도에 따라 상이한 크기의 서브 부호화 단위로 분할될 수 있다. 도 8a 및 8b를 참조하여 상세히 후술한다. 또한, 최대 부호화 단위에 포함된 상이한 크기의 서브 부호화 단위들은 상이한 크기의 처리 단위에 기초해 예측 또는 주파수 변환(픽셀 도메인의 값들을 주파수 도메인의 값들로 변환, 예를 들어, 이산 코사인 변환)될 수 있다. 다시 말해, 영상 부호화 장치(100)는 영상 부호화를 위한 복수의 처리 단계들을 다양한 크기 및 다양한 형태의 처리 단위에 기초해 수행할 수 있다. 영상 데이터의 부호화를 위해서는 예측, 주파수 변환, 엔트로피 부호화 등의 처리 단계를 거치는데, 모든 단계에 걸쳐서 동일한 크기의 처리 단위가 이용될 수도 있으며, 단계별로 상이한 크기의 처리 단위를 이용할 수 있다.
예를 들어 영상 부호화 장치(100)는 소정의 부호화 단위를 예측하기 위해, 부호화 단위와 다른 처리 단위를 선택할 수 있다.
부호화 단위의 크기가 2Nx2N(단, N은 양의 정수)인 경우, 예측을 위한 처리 단위는 2Nx2N, 2NxN, Nx2N, NxN 등일 수 있다. 다시 말해, 부호화 단위의 높이 또는 너비 중 적어도 하나를 반분하는 형태의 처리 단위를 기반으로 움직임 예측이 수행될 수도 있다. 이하, 예측의 기초가 되는 처리 단위는 '예측 단위'라 한다.
예측 모드는 인트라 모드, 인터 모드 및 스킵 모드 중 적어도 하나일 수 있으며, 특정 예측 모드는 특정 크기 또는 형태의 예측 단위에 대해서만 수행될 수 있다. 예를 들어, 인트라 모드는 정방형인 2Nx2N, NxN 크기의 예측 단위에 대해서만 수행될 수 있다. 또한, 스킵 모드는 2Nx2N 크기의 예측 단위에 대해서만 수행될 수 있다. 부호화 단위 내부에 복수의 예측 단위가 있다면, 각각의 예측 단위에 대해 예측을 수행하여 부호화 오차가 가장 작은 예측 모드가 선택될 수 있다.
또한, 영상 부호화 장치(100)는 부호화 단위와 다른 크기의 처리 단위에 기초해 영상 데이터를 주파수 변환할 수 있다. 부호화 단위의 주파수 변환을 위해서 부호화 단위보다 작거나 같은 크기의 데이터 단위를 기반으로 주파수 변환이 수행될 수 있다. 이하, 주파수 변환의 기초가 되는 처리 단위를 '변환 단위'라 한다.
부호화 심도 결정부(120)는 라그랑지 곱(Lagrangian Multiplier) 기반의 율-왜곡 최적화 기법(Rate-Distortion Optimization)을 이용해 최대 부호화 단위에 포함된 서브 부호화 단위들을 결정할 수 있다. 다시 말해, 최대 부호화 단위가 어떠한 형태의 복수의 서브 부호화 단위로 분할되는지 결정할 수 있는데, 여기서 복수의 서브 부호화 단위는 심도에 따라 크기가 상이하다. 그런 다음, 영상 데이터 부호화부(130)는 부호화 심도 결정부(120)에서 결정된 분할 형태에 기초해 최대 부호화 단위를 부호화하여 비트스트림을 출력한다.
부호화 정보 부호화부(140)는 부호화 심도 결정부(120)에서 결정된 최대 부호화 단위의 부호화 모드에 대한 정보를 부호화한다. 최대 부호화 단위의 분할 형태에 대한 정보, 최대 심도에 대한 정보 및 심도별 서브 부호화 단위의 부호화 모드에 대한 정보를 부호화하여 비트스트림을 출력한다. 서브 부호화 단위의 부호화 모드에 대한 정보는 서브 부호화 단위의 예측 단위에 대한 정보, 예측 단위별 예측 모드 정보, 서브 부호화 단위의 변환 단위에 대한 정보 등을 포함할 수 있다.
최대 부호화 단위의 분할 형태에 대한 정보는 각각의 부호화 단위에 대해 분할 여부를 나타내는 정보일 수 있다. 예를 들어, 최대 부호화 단위를 분할하여 부호화하는 경우, 최대 부호화 단위에 대해 분할 여부를 나타내는 정보를 부호화하고, 최대 부호화 단위를 분할하여 생성된 서브 부호화 단위를 다시 분할하여 부호화하는 경우에도, 각각의 서브 부호화 단위에 대해서 분할 여부를 나타내는 정보를 부호화한다. 분할 여부를 나타내는 정보는 분할 여부를 나타내는 플래그 정보일 수 있다.
최대 부호화 단위마다 상이한 크기의 서브 부호화 단위가 존재하고, 각각의 서브 부호화 단위마다 부호화 모드에 관한 정보가 결정되어야 하므로, 하나의 최대 부호화 단위에 대해서는 적어도 하나의 부호화 모드에 관한 정보가 결정될 수 있다.
영상 부호화 장치(100)는 심도가 커짐에 따라 최대 부호화 단위를 높이 및 너비를 반분하여 서브 부호화 단위를 생성할 수 있다. 즉, k 심도의 부호화 단위의 크기가 2Nx2N이라면, k+1 심도의 부호화 단위의 크기는 NxN 이다.
따라서, 일 실시예에 따른 영상 부호화 장치(100)는 영상의 특성을 고려한 최대 부호화 단위의 크기 및 최대 심도를 기반으로, 각각의 최대 부호화 단위마다 최적의 분할 형태를 결정할 수 있다. 영상 특성을 고려하여 가변적으로 최대 부호화 단위의 크기를 조절하고, 상이한 심도의 서브 부호화 단위로 최대 부호화 단위를 분할하여 영상을 부호화함으로써, 다양한 해상도의 영상을 보다 효율적으로 부호화할 수 있다.
도 2 는 본 발명의 일 실시예에 따른 영상 복호화 장치를 도시한다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 영상 복호화 장치(200)는 영상 데이터 획득부(210), 부호화 정보 추출부(220) 및 영상 데이터 복호화부(230)를 포함한다.
영상 관련 데이터 획득부(210)는 영상 복호화 장치(200)가 수신한 비트스트림을 파싱하여, 최대 부호화 단위별로 영상 데이터를 획득하여 영상 데이터 복호화부(230)로 출력한다. 영상 데이터 획득부(210)는 현재 픽처 또는 슬라이스에 대한 헤더로부터 현재 픽처 또는 슬라이스의 최대 부호화 단위에 대한 정보를 추출할 수 있다. 다시 말해, 비트스트림을 최대 부호화 단위로 분할하여, 영상 데이터 복호화부(230)가 최대 부호화 단위마다 영상 데이터를 복호화하게 한다.
부호화 정보 추출부(220)는 영상 복호화 장치(200)가 수신한 비트열을 파싱하여, 현재 픽처에 대한 헤더로부터 최대 부호화 단위, 최대 심도, 최대 부호화 단위의 분할 형태, 서브 부호화 단위의 부호화 모드에 관한 정보를 추출한다. 분할 형태 및 부호화 모드에 관한 정보는 영상 데이터 복호화부(230)로 출력된다.
최대 부호화 단위의 분할 형태에 대한 정보는 최대 부호화 단위에 포함된 심도에 따라 상이한 크기의 서브 부호화 단위에 대한 정보를 포함할 수 있다. 전술한 바와 같이 분할 형태에 대한 정보는 각각의 부호화 단위에 대해 부호화된 분할 여부를 나타내는 정보(예를 들어, 플래그 정보)일 수 있다.
부호화 모드에 관한 정보는 서브 부호화 단위별 예측 단위에 대한 정보, 예측 모드에 대한 정보 및 변환 단위에 대한 정보 등을 포함할 수 있다.
영상 데이터 복호화부(230)는 부호화 정보 추출부에서 추출된 정보에 기초하여 각각의 최대 부호화 단위의 영상 데이터를 복호화하여 현재 픽처를 복원한다.
최대 부호화 단위의 분할 형태에 대한 정보에 기초하여, 영상 데이터 복호화부(230)는 최대 부호화 단위에 포함된 서브 부호화 단위를 복호화할 수 있다. 복호화 과정은 인트라 예측 및 움직임 보상을 포함하는 움직임 예측 과정, 및 주파수 역변환 과정을 포함할 수 있다.
영상 데이터 복호화부(230)는, 서브 부호화 단위의 예측을 위해, 서브 부호화 단위별 예측 단위에 대한 정보 및 예측 모드에 대한 정보에 기초해 인트라 예측 또는 인터 예측을 수행할 수 있다. 또한, 영상 데이터 복호화부(230)는, 서브 부호화 단위의 변환 단위에 대한 정보에 기초해 서브 부호화 단위마다 주파수 역변환을 수행할 수 있다.
도 3 은 본 발명의 일 실시예에 따른 계층적 부호화 단위를 도시한다.
도 3을 참조하면, 본 발명에 따른 계층적 부호화 단위는 너비x높이가 64x64인 부호화 단위부터, 32x32, 16x16, 8x8, 및 4x4를 포함할 수 있다. 정사각형 형태의 부호화 단위 이외에도, 너비x높이가 64x32, 32x64, 32x16, 16x32, 16x8, 8x16, 8x4, 4x8인 부호화 단위들이 존재할 수 있다.
도 3을 참조하면, 해상도가 1920x1080인 영상 데이터(310)에 대해서, 최대 부호화 단위의 크기는 64x64, 최대 심도가 2로 설정되어 있다.
또 다른 해상도가 1920x1080인 영상 데이터(320)에 대해서 최대 부호화 단위의 크기는 64x64, 최대 심도가 4로 설정되어 있다. 해상도가 352x288인 비디오 데이터(330)에 대해서 최대 부호화 단위의 크기는 16x16, 최대 심도가 2로 설정되어 있다.
해상도가 높거나 데이터량이 많은 경우 압축률 향상뿐만 아니라 영상 특성을 정확히 반영하기 위해 부호화 사이즈의 최대 크기가 상대적으로 큰 것이 바람직하다. 따라서, 영상 데이터(330)에 비해, 해상도가 높은 영상 데이터(310 및 320)는 최대 부호화 단위의 크기가 64x64로 선택될 수 있다.
최대 심도는 계층적 부호화 단위에서 총 계층수를 나타낸다. 영상 데이터(310)의 최대 심도는 2이므로, 영상 데이터(310)의 부호화 단위(315)는 장축 크기가 64인 최대 부호화 단위로부터, 심도가 증가함에 따라 장축 크기가 32, 16인 서브 부호화 단위들까지 포함할 수 있다.
반면, 영상 데이터(330)의 최대 심도는 2이므로, 영상 데이터(330)의 부호화 단위(335)는 장축 크기가 16인 최대 부호화 단위들로부터, 심도가 증가함에 따라 장축 크기가 8, 4인 부호화 단위들까지 포함할 수 있다.
영상 데이터(320)의 최대 심도는 4이므로, 비디오 데이터(320)의 부호화 단위(325)는 장축 크기가 64인 최대 부호화 단위로부터, 심도가 증가함에 따라 장축 크기가 32, 16, 8, 4인 서브 부호화 단위들까지 포함할 수 있다. 심도가 증가할수록 더 작은 서브 부호화 단위에 기초해 영상을 부호화하므로 보다 세밀한 장면을 포함하고 있는 영상을 부호화하는데 적합해진다.
도 4 는 본 발명의 일 실시예에 따른 부호화 단위에 기초한 영상 부호화부를 도시한다.
인트라 예측부(410)는 현재 프레임(405) 중 인트라 모드의 예측 단위에 대해 인트라 예측을 수행하고, 움직임 추정부(420) 및 움직임 보상부(425)는 인터 모드의 예측 단위에 대해 현재 프레임(405) 및 참조 프레임(495)을 이용해 인터 예측 및 움직임 보상을 수행한다.
인트라 예측부(410), 움직임 추정부(420) 및 움직임 보상부(425)로부터 출력된 예측 단위에 기초해 레지듀얼 값들이 생성되고, 생성된 레지듀얼 값들은 주파수 변환부(430) 및 양자화부(440)를 거쳐 양자화된 변환 계수로 출력된다.
양자화된 변환 계수는 역양자화부(460), 주파수 역변환부(470)를 통해 다시 레지듀얼 값으로 복원되고, 복원된 레지듀얼 값들은 디블로킹부(480) 및 루프 필터링부(490)를 거쳐 후처리되어 참조 프레임(495)으로 출력된다. 양자화된 변환 계수는 엔트로피 부호화부(450)를 거쳐 비트스트림(455)으로 출력될 수 있다.
본 발명의 일 실시예에 따른 영상 부호화 방법에 따라 부호화하기 위해, 영상 부호화부(400)의 구성 요소들인 인트라 예측부(410), 움직임 추정부(420), 움직임 보상부(425), 주파수 변환부(430), 양자화부(440), 엔트로피 부호화부(450), 역양자화부(460), 주파수 역변환부(470), 디블로킹부(480) 및 루프 필터링부(490)는 모두 최대 부호화 단위, 심도에 따른 서브 부호화 단위, 예측 단위 및 변환 단위에 기초해 영상 부호화 과정들을 처리한다.
도 5는 본 발명의 일 실시예에 따른 부호화 단위에 기초한 영상 복호화부를 도시한다.
비트스트림(505)이 파싱부(510)를 거쳐 복호화 대상인 부호화된 영상 데이터 및 복호화를 위해 필요한 부호화 정보가 파싱된다. 부호화된 영상 데이터는 엔트로피 복호화부(520) 및 역양자화부(530)를 거쳐 역양자화된 데이터로 출력되고, 주파수 역변환부(540)를 거쳐 레지듀얼 값들로 복원된다. 레지듀얼 값들은 인트라 예측부(550)의 인트라 예측의 결과 또는 움직임 보상부(560)의 움직임 보상 결과와 가산되어 부호화 단위 별로 복원된다. 복원된 부호화 단위는 디블로킹부(570) 및 루프 필터링부(580)를 거쳐 다음 부호화 단위 또는 다음 픽처의 예측에 이용된다.
본 발명의 일 실시예에 따른 영상 복호화 방법에 따라 복호화하기 위해 영상 복호화부(400)의 구성 요소들인 파싱부(510), 엔트로피 복호화부(520), 역양자화부(530), 주파수 역변환부(540), 인트라 예측부(550), 움직임 보상부(560), 디블로킹부(570) 및 루프 필터링부(580)가 모두 최대 부호화 단위, 심도에 따른 서브 부호화 단위, 예측 단위 및 변환 단위에 기초해 영상 복호화 과정들을 처리한다.
특히, 인트라 예측부(550), 움직임 보상부(560)는 최대 부호화 단위 및 심도를 고려하여 서브 부호화 단위 내의 예측 단위 및 예측 모드를 결정하며, 주파수 역변환부(540)는 변환 단위의 크기를 고려하여 주파수 역변환을 수행한다.
도 6은 본 발명의 일 실시예에 따른 최대 부호화 단위, 서브 부호화 단위 및 예측 단위를 도시한다.
본 발명의 일 실시예에 따른 영상 부호화 장치(100) 및 영상 복호화 장치(200)는 영상 특성을 고려하여 부호화, 복호화를 수행하기 위해 계층적인 부호화 단위를 이용한다. 최대 부호화 단위 및 최대 심도는 영상의 특성에 따라 적응적으로 설정되거나, 사용자의 요구에 따라 다양하게 설정될 수 있다.
본 발명의 일 실시예에 따른 부호화 단위의 계층 구조(600)는 최대 부호화 단위(610)의 높이 및 너비가 64이며, 최대 심도가 4인 경우를 도시한다. 부호화 단위의 계층 구조(600)의 세로축을 따라서 심도가 증가하고, 심도의 증가에 따라 서브 부호화 단위(620 내지 650)의 높이 및 너비가 축소된다. 또한, 부호화 단위의 계층 구조(600)의 가로축을 따라, 최대 부호화 단위(610) 및 서브 부호화 단위(620 내지 650)의 예측 단위가 도시되어 있다.
최대 부호화 단위(610)는 심도가 0이며, 부호화 단위의 크기, 즉 높이 및 너비가 64x64이다. 세로축을 따라 심도가 증가하며, 크기 32x32인 심도 1의 서브 부호화 단위(620), 크기 16x16인 심도 2의 서브 부호화 단위(630), 크기 8x8인 심도 3의 서브 부호화 단위(640), 크기 4x4인 심도 4의 서브 부호화 단위(650)가 존재한다. 크기 4x4인 심도 4의 서브 부호화 단위(650)는 최소 부호화 단위이다.
도 6을 참조하면, 각각의 심도별로 가로축을 따라 예측 단위의 예시들이 도시되어 있다. 즉, 심도 0의 최대 부호화 단위(610)의 예측 단위는, 크기 64x64의 부호화 단위(610)와 동일하거나 작은 크기인 크기 64x64의 예측 단위(610), 크기 64x32의 예측 단위(612), 크기 32x64의 예측 단위(614), 크기 32x32의 예측 단위(616)일 수 있다.
심도 1의 크기 32x32의 부호화 단위(620)의 예측 단위는, 크기 32x32의 부호화 단위(620)와 동일하거나 작은 크기인 크기 32x32의 예측 단위(620), 크기 32x16의 예측 단위(622), 크기 16x32의 예측 단위(624), 크기 16x16의 예측 단위(626)일 수 있다.
심도 2의 크기 16x16의 부호화 단위(630)의 예측 단위는, 크기 16x16의 부호화 단위(630)와 동일하거나 작은 크기인 크기 16x16의 예측 단위(630), 크기 16x8의 예측 단위(632), 크기 8x16의 예측 단위(634), 크기 8x8의 예측 단위(636)일 수 있다.
심도 3의 크기 8x8의 부호화 단위(640)의 예측 단위는, 크기 8x8의 부호화 단위(640)와 동일하거나 작은 크기인 크기 8x8의 예측 단위(640), 크기 8x4의 예측 단위(642), 크기 4x8의 예측 단위(644), 크기 4x4의 예측 단위(646)일 수 있다.
마지막으로, 심도 4의 크기 4x4의 부호화 단위(650)는 최소 부호화 단위이며 최대 심도의 부호화 단위이고, 예측 단위는 크기 4x4의 예측 단위(650)이다.
도 7은 본 발명의 일 실시예에 따른, 부호화 단위 및 변환 단위를 도시한다.
본 발명의 일 실시예에 따른 영상 부호화 장치(100) 및 영상 복호화 장치(200)는, 최대 부호화 단위 그대로 부호화하거나, 최대 부호화 단위 보다 작거나 같은 서브 부호화 단위로 최대 부호화 단위를 분할하여 부호화한다. 부호화 과정 중 주파수 변환을 위한 변환 단위의 크기는 각각의 부호화 단위보다 크지 않은 변환 단위로 선택된다. 예를 들어, 현재 부호화 단위(710)가 64x64 크기일 때, 32x32 크기의 변환 단위(720)를 이용하여 주파수 변환이 수행될 수 있다.
도 8a 및 8b는 본 발명의 일 실시예에 따른, 부호화 단위, 예측 단위 및 주파수 변환 단위의 분할 형태를 도시한다.
도 8a는 본 발명의 일 실시예에 따른 부호화 단위 및 예측 단위를 도시한다.
도 8a의 좌측은 최대 부호화 단위(810)를 부호화하기 위해 본 발명의 일 실시예에 따른 영상 부호화 장치(100)가 선택한 분할 형태를 도시한다. 영상 부호화 장치(100)는 다양한 형태로 최대 부호화 단위(810)를 분할하고, 부호화한 다음 다양한 분할 형태의 부호화 결과를 R-D 코스트에 기초해 비교하여 최적의 분할 형태를 선택한다. 최대 부호화 단위(810)를 그대로 부호화하는 것이 최적일 경우에는 도 8a 및 8b와 같이 최대 부호화 단위(810)를 분할하지 않고 최대 부호화 단위(800)를 부호화할 수도 있다.
도 8a의 좌측을 참조하면, 심도 0인 최대 부호화 단위(810)를 심도 1 이상의 서브 부호화 단위로 분할하여 부호화한다. 최대 부호화 단위(810)를 네 개의 심도 1의 서브 부호화 단위로 분할한 다음, 전부 또는 일부의 심도 1의 서브 부호화 단위를 다시 심도 2의 서브 부호화 단위로 분할한다.
심도 1의 서브 부호화 단위 중 우측 상부에 외치한 서브 부호화 단위 및 좌측 하부에 위치한 서브 부호화 단위가 심도 2 이상의 서브 부호화 단위로 분할되었다. 심도 2 이상의 서브 부호화 단위 중 일부는 다시 심도 3 이상의 서브 부호화 단위로 분할될 수 있다.
도 8b의 우측은 최대 부호화 단위(810)에 대한 예측 단위의 분할 형태를 도시한다.
도 8a의 우측을 참조하면, 최대 부호화 단위에 대한 예측 단위(860)는 최대 부호화 단위(810)와 상이하게 분할될 수 있다. 다시 말해, 서브 부호화 단위들 각각에 대한 예측 단위는 서브 부호화 단위보다 작을 수 있다.
예를 들어, 심도 1의 서브 부호화 단위 중 우측 하부에 외치한 서브 부호화 단위(854)에 대한 예측 단위는 서브 부호화 단위(854)보다 작을 수 있다. 심도 2의 서브 부호화 단위들(814, 816, 818, 828, 850, 852) 중 일부 서브 부호화 단위(815, 816, 850, 852)에 대한 예측 단위는 서브 부호화 단위보다 작을 수 있다.
또한, 심도 3의 서브 부호화 단위(822, 832, 848)에 대한 예측 단위는 서브 부호화 단위보다 작을 수 있다. 예측 단위는 각각의 서브 부호화 단위를 높이 또는 너비 방향으로 반분한 형태일 수도 있고, 높이 및 너비 방향으로 4분한 형태일 수도 있다.
도 8b는 본 발명의 일 실시예에 따른 예측 단위 및 변환 단위를 도시한다.
도 8b의 좌측은 도 8a의 우측에 도시된 최대 부호화 단위(810)에 대한 예측 단위의 분할 형태를 도시하고, 도 8b의 우측은 최대 부호화 단위(810)의 변환 단위의 분할 형태를 도시한다.
도 8b의 우측을 참조하면, 변환 단위(870)의 분할 형태는 예측 단위(860)와 상이하게 설정될 수 있다.
예를 들어, 심도 1의 부호화 단위(854)에 대한 예측 단위가 높이를 반분한 형태로 선택되더라도, 변환 단위는 심도 1의 부호화 단위(854)의 크기와 동일한 크기로 선택될 수 있다. 마찬가지로, 심도 2의 부호화 단위(814, 850)에 대한 예측 단위가 심도 2의 부호화 단위(814, 850)의 높이를 반분한 형태로 선택되더라도 변환 단위는 심도 2의 부호화 단위(814, 850)의 원래 크기와 동일한 크기로 선택될 수 있다.
예측 단위보다 더 작은 크기로 변환 단위가 선택될 수도 있다. 예를 들어, 심도 2의 부호화 단위(852)에 대한 예측 단위가 너비를 반분한 형태로 선택된 경우에 변환 단위는 예측 단위보다 더 작은 크기인 높이 및 너비를 반분한 형태로 선택될 수 있다.
도 9는 본 발명의 또 다른 실시예에 따른 영상 부호화 장치를 도시한다.
도 9를 참조하면, 본 발명의 일 실시예에 따른 영상 부호화 장치(900)는 판단부(910), 제어부(920) 및 부호화부(930)를 포함한다. 영상 부호화 장치(900)는 전술한 심도에 따라 단계적으로 크기가 바뀌는 부호화 단위, 예측 단위 및 변환 단위에 기초해 영상 부호화하는 장치일 수 있다.
판단부(910)는 부호화를 위해 영상 부호화 장치(900)에 입력된 제1 부호화 단위가 현재 픽처의 경계를 벗어난 영역을 포함하는지 판단한다.
영상 부호화 장치(900)는 제1 부호화 단위가 현재 픽처의 경계를 벗어난 영역을 포함하지 않는 경우, 제1 부호화 단위를 그대로 부호화한다. 제1 부호화 단위를 분할하지 않고, 예측하고, 주파수 변환(예를 들어, 이산 코사인 변환)할 수도 있고, 제1 부호화 단위를 도 2, 6, 8a 및 8b와 관련하여 전술한 바와 같이 소정의 심도에 따라 복수의 부호화 단위로 분할한 다음, 예측하고, 주파수 변환할 수도 있다.
그러나, 제1 부호화 단위가 현재 픽처의 경계를 벗어난 영역을 포함하는 경우에는 제1 부호화 단위를 분할하여 적어도 하나의 제2 부호화 단위를 생성한 다음, 현재 픽처의 경계를 벗어나지 않은 제2 부호화 단위만 부호화한다.
다시 말해, 영상 부호화 장치(900)는 제1 부호화 단위가 현재 픽처의 경계를 벗어난 영역을 포함하는지 여부에 따라 상이한 부호화 방법을 이용해 제1 부호화 단위를 부호화하는 바, 판단부(910)는 우선 제1 부호화 단위가 현재 픽처의 경계를 벗어난 영역을 포함하는지 판단한다. 도 10a 및 10b를 참조하여 후술한다.
도 10a 및 10b는 본 발명의 일 실시예에 따른 픽처 경계의 부호화 단위를 도시한다.
도 10a 및 10b를 참조하면, 제1 부호화 단위(1020)는 현재 픽처의 경계(1010)에 걸쳐있다. 현재 픽처의 크기가 최대 부호화 단위의 크기의 배수가 아닌 경우, 예를 들어, 최대 부호화 단위의 크기를 32x32로 설정하여 현재 픽처를 부호화하는데 현재 픽처의 가로 또는 세로의 크기가 32의 배수가 아닌 경우에는 최대 부호화 단위가 현재 픽처의 경계(1010)를 벗어난 영역(1024)을 포함할 수 있다. 마찬가지로 도 10b와 같이 제1 부호화 단위(1040)가 현재 픽처의 경계(1030)를 벗어난 영역(1044)을 포함할 수 있다. 도 10a에서 현재 픽처의 경계(1010)의 좌측은 현재 픽처의 내부 영역이고, 우측은 현재 픽처의 외부 영역이며, 도 10b에서 현재 픽처의 경계(1030)의 상부는 현재 픽처의 내부 영역이고, 하부는 현재 픽처의 외부 영역이다.
도 10a 및 10b는 제1 부호화 단위(1020 또는 1040)가 현재 픽처의 우측 경계 및 하부 경계에 걸쳐있는 경우를 도시하였으나, 제1 부호화 단위(1020 또는 1040)가 현재 픽처의 좌측 경계 및 상부 경계에 걸쳐있는 경우도 있을 수 있다.
판단부(910)는 도 10a 및 10b에 도시된 바와 같이 제1 부호화 단위(1020 또는 1040)가 현재 픽처의 경계(1010 또는 1030)를 벗어난 영역을 포함하고 있는지 여부를 판단하기 위해 제1 부호화 단위(1020 또는 1040)의 경계를 현재 픽처의 경계와 비교한다.
제1 부호화 단위(1020)의 우측 경계가 현재 픽처의 우측 경계를 벗어나거나, 좌측 경계가 현재 픽처의 좌측 경계를 벗어나면, 제1 부호화 단위(1020)는 현재 픽처의 경계(1010)를 벗어난 영역을 포함하고 있는 것으로 판단할 수 있다. 또한, 제1 부호화 단위(1040)의 하부 경계가 현재 픽처의 하부 경계를 벗어나거나, 상부 경계가 현재 픽처의 상부 경계를 벗어나면, 제1 부호화 단위(1040)가 현재 픽처의 경계(1030)를 벗어난 영역을 포함하고 있는 것으로 판단할 수 있다.
다시 도 9를 참조하면, 판단부(910)에서 제1 부호화 단위(1020 또는 1040)가 현재 픽처의 경계를 벗어난 영역을 포함하고 있는 것으로 판단하면, 제어부(920)는 제1 부호화 단위(1020 또는 1040)를 적어도 하나의 제2 부호화 단위로 분할한다.
본원 발명의 일 실시예에 따른 영상 부호화 장치(900)는 전술한 계층적인 부호화 단위를 이용해 영상을 부호화, 복호화할 수 있다. 최대 부호화 단위를 소정 심도의 서브 부호화 단위들로 나누어 영상을 부호화, 복호화할 수 있다. 이 때 심도는 최대 부호화 단위에서 소정 서브 부호화 단위로 단계적으로 축소된 정도를 나타낸다.
제어부(920)는 이러한 심도에 따라 제1 부호화 단위(1020)를 적어도 하나의 제2 부호화 단위로 분할한다. 예를 들어, 제1 부호화 단위(1020)가 심도 0의 최대 부호화 단위인 경우, 적어도 하나의 심도 1의 부호화 단위로 제1 부호화 단위(1020)를 분할할 수 있다. 또한, 심도 1의 부호화 단위보다 심도가 큰 부호화 단위, 즉 심도가 2 이상인 부호화 단위로 제1 부호화 단위(1020)를 분할할 수도 있다. 도 11a 및 11b를 참조하여 상세히 설명한다.
도 11a 및 11b는 본 발명의 일 실시예에 따른 픽처 경계의 부호화 단위를 분할하는 방법을 도시한다.
도 11a는 도 10a에 도시된 제1 부호화 단위(1020)가 적어도 하나의 제2 부호화 단위(1110 내지 1140)로 분할되는 경우를 도시한다. 도 10a와 관련하여 전술한 바와 같이 제1 부호화 단위(1020)가 픽처 경계에 걸쳐있는 경우 제1 부호화 단위(1020)는 현재 픽처의 경계를 벗어난 영역(1024)을 포함한다.
제1 부호화 단위(1020)를 상이한 심도의 적어도 하나의 제2 부호화 단위(1110 내지 1140)로 분할하여 현재 픽처의 경계를 벗어나지 않은 영역에 대한 제2 부호화 단위(1110 내지 1120)와 현재 픽처의 경계를 벗어난 영역에 대한 제2 부호화 단위(1130 내지 1140)로 구분한다.
도 11b는 도 10b에 도시된 제1 부호화 단위(1040)가 적어도 하나의 제2 부호화 단위(1150 내지 1180)로 분할되는 경우를 도시한다.
제1 부호화 단위(1040)를 상이한 심도의 적어도 하나의 제2 부호화 단위(1150 내지 1180)로 분할하여 현재 픽처의 경계를 벗어나지 않은 영역에 대한 제2 부호화 단위(1150 내지 1160)와 현재 픽처의 경계를 벗어난 영역에 대한 제2 부호화 단위(1170 내지 1180)로 구분한다.
도 11a 및 11b는 제1 부호화 단위(1020 또는 1040)를 동일한 크기의 4개의 제2 부호화 단위로 분할하면, 경계를 벗어나지 않은 영역에 대한 제2 부호화 단위와 경계를 벗어난 영역에 대한 제2 부호화 단위를 구분할 수 있는 경우를 도시하였다. 그러나, 제1 부호화 단위(1020 또는 1040)를 동일한 크기의 4개의 제2 부호화 단위로 분할하여도, 경계를 벗어나지 않은 영역에 대한 제2 부호화 단위와 경계를 벗어난 영역에 대한 제2 부호화 단위를 구분할 수 없는 경우가 있다. 도 12a 및 12b를 참조하여 상세히 설명한다.
도 12a 및 12b는 본 발명의 또 다른 실시예에 따른 픽처 경계의 부호화 단위 및 분할 방법을 도시한다.
도 12a에 도시된 바와 같이 제1 부호화 단위(1220)가 픽처 경계에 위치하는 경우, 제1 부호화 단위(1220)를 제2 부호화 단위(1230 내지 1260)로 분할하여도 현재 픽처의 경계를 벗어난 제2 부호화 단위와 경계를 벗어나지 않은 제2 부호화 단위를 구분할 수 없다. 일부 제2 부호화 단위(1250 및 1260)가 여전히 경계를 벗어난 영역과 경계를 벗어나지 않은 영역을 포함하고 있기 때문이다.
따라서, 분할 부는 도 12a에 도시된 바와 같이 제1 부호화 단위(1220)가 경계에 위치하는 경우, 제1 부호화 단위(1220)를 반복적으로 분할한다. 도 12a에 도시된 실시예에서는 제2 부호화 단위(1250 및 1260)를 한번 더 분할하여 제3 부호화 단위(1252 내지 1258, 1262 내지 1268)를 생성한다.
제2 부호화 단위(1250 및 1260)를 더 작은 크기의 제3 부호화 단위로 한번 더 분할함으로써, 경계를 벗어나지 않은 부호화 단위(1230, 1240, 1252, 1254, 1262 및 1264)와 경계를 벗어난 부호화 단위(1256, 1258, 1266 및 1268)를 구분할 수 있다.
다시 도 9를 참조하면, 제어부(920)가 도 11a, 11b 및 12b에 도시된 바와 같이 제1 부호화 단위(1020, 1040 또는 1220)를 분할하여, 경계를 벗어난 영역과 경계를 벗어나지 않은 영역을 구분하면, 부호화부(930)는 제1 부호화 단위를 분할하여 생성된 적어도 하나의 부호화 단위 중 현재 픽처의 경계를 벗어나지 않은 부호화 단위만 부호화한다.
제1 부호화 단위가 현재 픽처의 경계를 벗어난 영역을 포함하지 않은 경우에는 제1 부호화 단위를 전부를 부호화한다. 제1 부호화 단위를 분할하지 않고, 예측하고, 주파수 변환(예를 들어, 이산 코사인 변환)할 수도 있고, 제1 부호화 단위를 도 2, 6, 8a 및 8b와 관련하여 전술한 바와 같이 소정의 심도에 따라 복수의 부호화 단위로 분할한 다음, 예측하고, 주파수 변환할 수도 있다.
그러나, 제1 부호화 단위가 현재 픽처의 경계를 벗어난 영역을 포함하는 경우에는 제어부(920)의 분할 결과에 따라, 경계를 벗어나지 않은 영역의 픽셀 값들만 부호화한다.
도 11a에 도시된 실시예에서 좌측에 위치한 제2 부호화 단위(1110 및 1120)를 부호화하고, 도 11b에 도시된 실시예에서 상부에 위치한 제2 부호화 단위(1150 및 1160)를 부호화한다. 도 12b에 도시된 예에서는 좌측에 위치한 제2 부호화 단위(1230 및 1240)와 좌측에 위치한 제3 부호화 단위(1252, 1254, 1262 및 1264)를 부호화한다. 경계를 벗어나지 않은 부호화 단위를 소정의 예측 단위에 기초해 예측하고, 예측 결과 생성되는 레지듀얼 값들을 소정의 변환 단위에 기초해 주파수 변환한다.
본원 발명의 일 실시예에 따른 영상 부호화 장치(900)는 픽처 경계에 위치한 제1 부호화 단위 중 경계를 벗어나지 않은 픽셀 값들만 부호화할 수 있으므로, 경계를 벗어난 불필요한 픽셀 값들의 부호화에 따른 압축률 저하를 방지할 수 있다.
또한, 부호화부(930)의 전술한 분할 여부에 대한 정보(예를 들어, 분할 여부를 나타내는 플래그 정보)도 선택적으로 부호화할 수 있다. 제1 부호화 단위가 픽처 경계에 걸쳐있는 경우 제1 부호화 단위는 제어부(920)에 의해 분할된다. 경계를 벗어나지 않은 영역의 픽셀 값들만 부호화하기 위해 분할은 필수적이므로, 제1 부호화 단위에 대해서는 분할 여부에 대한 정보를 부호화할 필요가 없다. 분할 여부에 대한 정보를 따로 부호화하지 않아도, 복호화하는 측에서 제1 부호화 단위가 분할되는 것을 알 수 있기 때문이다.
*그러나, 전술한 영상 부호화 방법에 따라 부호화부(930)가 현재 픽처의 경계를 벗어난 영역의 픽셀 값들을 부호화하지 않기 때문에 경계에 걸쳐있는 제1 부호화 단위가 다른 부호화 단위의 예측에 이용되지 못하는 경우가 발생할 수 있다. 도 13a 및 13b를 참조해 상세히 설명한다.
도 13a 및 13b는 본 발명의 일 실시예에 따른 인트라 예측 방법을 도시한다.
도 13a를 참조하면, 본 발명의 일 실시예에 따른 인트라 예측 방법은 소정의 예측 단위(1310)를 인트라 예측함에 있어, 이전에 부호화된 인접한 픽셀 값들(1320)을 이용할 수 있다. 특히, 본 발명의 일 실시에에 따른 인트라 예측은 예측 단위(1310)의 좌측 하부의 새로 방향으로 'PuSize'만큼의 픽셀들을 더 이용할 수도 있다.
*본 발명에 따른 영상 부호화 방법은 도 8a에 도시된 바와 같이 계층적인 부호화 단위를 이용해 영상을 부호화한다. 따라서, 예측 단위(1310)의 좌측은 물론 좌측 하부에 인접한 픽셀들을 이용해 인트라 예측을 수행할 수 있다. 예를 들어, 도 8a의 부호화 단위(830)를 인트라 예측할 때, 부호화 단위(830)의 상부 및 우측 상부에 인접한 픽셀 즉, 부호화 단위(812)에 포함된 픽셀들은 물론, 부호화 단위(830)의 좌측 및 좌측 하부에 인접한 픽셀 즉, 부호화 단위(828)에 포함된 픽셀들을 이용해 인트라 예측을 수행할 수 있다.
그런데, 우측 상부 및 좌측 하부에 인접한 픽셀들이 이용 가능하지 않은 경우가 있을 수 있다. 도 13b에 도시된 바와 같이 부호화 단위(1330)를 부호화 할 때, 우측 상부에 인접한 픽셀 값들 중 일부 픽셀 값들(1346)을 이용할 수 없다. 우측 상부에 위치한 부호화 단위(1340)를 부호화할 때, 현재 픽처의 경계(1350)를 벗어난 영역의 부호화 단위(1344)는 부호화하지 않기 때문이다. 따라서, 부호화 단위(1330)의 인트라 예측에 이용할 수 있는 인접한 픽셀들은 상부, 좌측 및 좌측 하부의 픽셀들뿐이다.
부호화부(130)는 우측 상부에 인접한 픽셀들을 이용할 수 있는지 여부를 판단하기 위해 'cux+cuSize+cuSize'가 전술한 'Frame_width'보다 큰지 판단한다. 'cux'는 부호화 단위(1330)의 좌측 경계의 X 좌표이고, 'cuSize'는 부호화 단위(1330)의 가로 및 세로 크기이며, 'Frame_width'는 혁재 픽처의 가로 크기이다.
또한, 부호화부(130)는 좌측 하부에 인접한 픽셀들을 이용할 수 있는지 여부를 판단하기 위해 'cuy+cuSize+cuSize'가 전술한 'Frame_height'보다 큰지 판단한다. 'cux'는 부호화 단위(1330)의 좌측 경계의 X 좌표이고, 'cuSize'는 부호화 단위(1330)의 가로 및 세로 크기이며, 'Frame_height'는 현재 픽처의 세로 크기이다.
부호화부(130)는 제1 부호화 단위가 경계를 벗어난 영역을 포함하는지 여부에 기초해 부호화 방법에 대한 정보, 즉 부호화 모드에 대한 정보를 보다 효율적으로 부호화할 수 있다. 제1 부호화 단위가 경계를 벗어난 영역을 포함하는 경우, 제1 부호화 모드가 다른 부호화 모드인 제2 부호화 모드를 의미하도록 부호화 모드에 대한 정보를 부호화할 수 있다.
도 18a 내지 18g를 참조하여 제1 부호화 단위의 예측 모드에 대한 정보를 부호화하는 경우를 예로 들어 설명한다.
*도 18a 내지 18g는 현재 픽처의 경계를 벗어난 영역을 포함하는 2Nx2N 크기의 제1 부호화 단위의 예측 모드들을 도시한다. 도 18a 내지 18h에서 빗금친 영역이 현재 픽처의 경계를 벗어난 영역이다.
도 18a를 참조하면, 2Nx2N의 제1 부호화 단위의 우측 Nx2N 영역이 경계를 벗어난 영역이다. 부호화부(930)가 도 18a의 제1 부호화 단위의 부호화함에 있어, 2Nx2N 크기의 예측 모드로 선택하여도 경계를 벗어난 영역은 예측을 수행하지 않으므로, Nx2N 예측 모드로 예측을 수행한다.
다시 말해, 부호화부(930)가 제1 부호화 단위의 예측 모드에 대한 정보를 2Nx2N 예측 모드로 설정하여도 Nx2N 예측 모드로 설정하는 경우와 동일하게 예측이 수행된다. 따라서, Nx2N 예측 모드를 별도로 설정할 필요가 없으며, 2Nx2N 예측 모드에 대한 정보를 Nx2N 예측 모드에 대한 정보로서 이용할 있다. 이는 예측 모드의 종류가 줄어드는 효과와 동일하며, 이에 따라 부호화부(930)가 예측 모드에 대한 정보를 부호화하기 위해 필요한 비트 수를 줄일 수 있다.
마찬가지로 도 18b에서도 부호화부(930)는 제1 부호화 단위의 예측 모드를 2Nx2N 예측 모드로 설정하는 것으로 2NxN 예측 모드를 대신할 수 있다.
도 18c에서 부호화부(930)는 제1 부호화 단위의 예측 모드를 2Nx2N 예측 모드로 설정하여 2NxN/2 예측 모드를 대신할 수 있다. 도 18b와 비교하면 도 18c에서는 예측되는 영역의 세로 크기가 1/2로 감소하였다. 그러나, 제1 부호화 단위에서 경계를 벗어나지 않은 영역만 예측하는 것은 도 18b와 동일하므로 제1 부호화 단위의 예측 모드를 2Nx2N 예측 모드로 설정하여 2NxN/2 예측 모드를 대신할 수 있다.
도 18d에서 부호화부(930)는 제1 부호화 단위의 예측 모드를 NxN 예측 모드로 설정하여 2NxN 예측 모드를 대신할 수 있다. 도 18d의 제1 부호화 단위가 2NxN 예측 모드로 예측되고, 제1 부호화 단위의 우측 반이 경계를 벗어난 영역에 포함된 경우 NxN 예측 모드와 동일하게 NxN 크기로 예측이 수행된다. 따라서, NxN 예측 모드로서 2NxN 예측 모드를 대신할 수 있다.
도 18e에서 부호화부(930)는 제1 부호화 단위의 예측 모드를 2NxN 예측 모드로 설정하여 2NxN/2 예측 모드를 대신할 수 있다. 도 18b와 비교하면 세로 크기가 1/2로 감소된 두 개의 예측 단위에 기초해 예측을 수행한다. 따라서, 도 18b에 따라 설정된 2Nx2N 예측 모드에서 세로 크기에 대한 부분만 1/2로 감소시킨 2NxN 예측 모드로 제1 부호화 단위의 예측 모드를 설정할 수 있다.
도 18f에서 부호화부(930)는 제1 부호화 단위의 예측 모드를 2Nx2N 예측 모드로 설정하여 NxN 예측 모드를 대신할 수 있다. 도 18f의 제1 부호화 단위도 도 18a, 18b 및 18c와 마찬가지로 제1 부호화 단위에서 경계를 벗어나지 않은 영역만 예측한다. 따라서, 제1 부호화 단위의 예측 모드를 2Nx2N 예측 모드로 설정하여 NxN 예측 모드를 대신할 수 있다.
도 18g에서 부호화부(930)는 제1 부호화 단위의 예측 모드를 Nx2N 예측 모드로 설정하여 N/2xN 예측 모드를 대신할 수 있다. 도 18f와 비교하면 가로 크기가 1/2로 감소된 두 개의 예측 단위에 기초해 예측을 수행한다. 따라서, 도 18b에 따라 설정된 2Nx2N 예측 모드에서 가로 부분을 1/2로 감소시킨 Nx2N 예측 모드로 제1 부호화 단위의 예측 모드를 설정할 수 있다.
도 9 내지 13와 관련하여 전술한, 영상 부호화 장치(900)의 부호화 과정은 다음과 같은 프로그래밍 코드에 의해 구현될 수 있다.
UInt uiLPelX
UInt uiRPelX
UInt uiTPelY
UInt uiBPelY
if( !(( uiRPelX < pcCU->getSlice()->getWidth() ) && ( uiBPelY < pcCU->getSlice()->getHeight() ) ))
{
go_next_depth_process();
}
상기 프로그래밍 코드를 참조하면, 함수 'UInt uiLPeLX', 'UInt uiRPeLX', 'UInt uiTPeLY' 및 'UInt uiBPeLY'를 이용해 제1 부호화 단위의 왼쪽 X 좌표, 오른쪽 X 좌표, 상부 Y 좌표 및 하부 Y 좌표를 얻고, 'pcCU->getSlice()->getWidth()' 및 'uiBPelY < pcCU->getSlice()->getHeight()'를 이용해 현재 픽처의 가로 크기 및 현재 픽처의 세로 크기를 얻는다.
그런 다음, 제1 부호화 단위의 왼쪽 X 좌표와 현재 픽처의 가로 크기를 비교하고, 제1 부호화 단위의 하부 Y 좌표와 현재 픽처의 세로 크기를 비교한다. 제1 부호화 단위의 왼쪽 X 좌표가 현재 픽처의 가로 크기보다 크거나, 제1 부호화 단위의 하부 Y 좌표가 세로 크기보다 큰 경우에는 'go_next_depth_process()' 함수를 호출하여 다음 심도 즉 제1 부호화 단위의 심도 'k'보다 큰 심도 'k+1'의 제2 부호화 단위로 제1 부호화 단위를 분할하고, 현재 픽처의 경계를 벗어나지 않은 제2 부호화 단위만 부호화한다.
그러나, 영상 부호화 장치(900)가 도 9 내지 13에 도시된 바와 같이 현재 픽처의 경계를 벗어나지 않은 영역만 부호화하는 경우에도, 최대 부호화 단위의 주소는 경계를 벗어난 영역도 부호화된 것으로 가정하여 설정된다. 도 14를 참조하여 상세히 설명한다.
도 14는 본 발명의 일 실시예에 따른 최대 부호화 단위의 인덱싱(indexing)을 도시한다.
도 14를 참조하면, 현재 픽처(1410)를 소정 크기의 최대 부호화 단위로 분할하여 부호화할 때, 현재 픽처의 넓이 'Frame_width' 및 높이 'Frame_height'가 최대 부호화 단위의 가로 크기의 배수가 아니라면, 도 14과 같이 현재 픽처(1310)의 오른쪽 경계 및 하부 경계에 최대 부호화 단위들이 걸쳐있게 된다.
도 9 내지 13에서 본원 발명의 영상 부호화 장치(900)는 경계에 걸쳐있는 최대 부호화 단위를 부호화함에 있어, 현재 픽처의 경계를 벗어나지 않은 영역만 부호화한다. 그러나, 최대 부호화 단위의 주소를 설정할 때에는 'Frame_width' 및 'Frame_height'가 아닌 'Frame_widthN' 및 'Frame_heightN'을 기준으로 최대 부호화 단위의 주소를 설정한다. 다시 말해, 현재 픽처의 오른쪽 경계 및 하부 경계에 걸쳐있는 최대 부호화 단위에도 주소를 부가하여 최대 부호화 단위의 주소를 설정한다.
예를 들어, 첫째 행의 가장 오른쪽에 위치한 최대 부호화 단위는 현재 픽처의 오른쪽 경계에 걸쳐있어, 경계를 벗어나지 않은 영역만 부호화되지만, 주소로서 'P' 부가되며, 따라서, 두 번째 행의 가장 왼쪽에 위치한 최대 부호화 단위의 주소는 'P+1'이 된다.'Frame_widthN' 및 'Frame_heightN'은 다음과 같이 계산될 수 있다.
If Frame_width%LcuSize not equal to 0,
Frame_widthN = (Frame_width/LcuSize+1)*LcuSize
If Frame_height%LcuSize not equal to 0,
Frame_heightN = (Frame_height/LcuSize+1)*LcuSize
상기 계산식에서 'Frame_width%LcuSize'는 'Frame_width'를 'LcuSize'로 나눈 나머지를 의미하고, 'Frame_height%LcuSize'는 'Frame_height'를 'LcuSize'로 나눈 나머지를 의미한다. 'Frame_width/LcuSize'는 'Frame_width'를 'LcuSize'로 나눈 몫을 의미하고, 'Frame_height/LcuSize'는 'Frame_height'를 'LcuSize'로 나눈 몫을 의미한다. 'LcuSize'는 최대 부호화 단위가 정사각형일 때, 최대 부호화 단위의 가로 및 세로의 크기를 의미한다.
도 15는 본 발명의 일 실시예에 따른 영상 부호화 방법을 설명하기 위한 흐름도이다.
도 15를 참조하면, 단계 1510에서 영상 부호화 장치(900)는 제1 부호화 단위가 현재 픽처의 경계를 벗어난 영역을 포함하는지 판단한다. 도 10a, 10b 및 12a와 같이 제1 부호화 단위가 픽처 경계에 걸쳐있어, 경계를 벗어난 영역을 포함하는지 판단한다. 경계를 벗어난 영역을 포함하는지 판단하기 위해 현재 픽처의 경계와 제1 부호화 단위의 경계를 비교한다. 제1 부호화 단위의 좌측 또는 우측 경계가 현재 픽처의 좌측 또는 우측 경계를 벗어나는지 판단하거나, 제1 부호화 단위의 상부 또는 하부 경계가 현재 픽처의 상부 또는 하부 경계를 벗어나는지 판단한다.
단계 1520에서 영상 부호화 장치(900)는 단계 1510에서의 판단 결과에 기초해 제1 부호화 단위를 적어도 하나의 제2 부호화 단위로 분할한다. 제1 부호화 단위의 심도 'k'보다 큰 심도 'k+1'의 제2 부호화 단위로 제1 부호화 단위를 분할할 수 있다. 제2 부호화 단위로 분할하였으나, 제2 부호화 단위가 또 다시 픽처 경계를 벗어난 영역을 포함하는 것으로 판단되면, 분할을 반복하여 분할 결과 생성된 부호화 단위가 픽처 경계를 벗어난 영역을 포함하지 않을 때까지 제1 부호화 단위를 분할한다.
단계 1530에서 영상 부호화 장치(900)는 단계 1520에서의 분할 결과 생성된 적어도 하나의 제2 부호화 단위 중에서 픽처 경계를 벗어나지 않은 제2 부호화 단위만 선택적으로 부호화한다. 제2 부호화 단위를 예측하여, 레지듀얼 값들을 생성하고, 생성된 레지듀얼 값들을 주파수 변환, 양자화, 엔트로피 부호화한다. 또한, 영상 부호화 장치(900)는 픽처 경계에 걸쳐있는 제1 부호화 단위의 분할은 필수적이므로, 제1 부호화 단위에 대해서는 분할 여부를 나타내는 정보를 부호화하지 않을 수 있다.
또한, 도 18a 내지 18g와 관련하여 전술한 바와 같이 영상 부호화 장치(900)는 제1 부호화 단위가 경계를 벗어난 영역을 포함하지는 여부에 기초해 부호화 모드에 대한 정보를 부호화할 수 있다.
도 16은 본 발명의 일 실시예에 또 다른 영상 복호화 장치를 도시한다.
도 16을 참조하면, 본 발명의 일 실시예에 따른 영상 복호화 장치(1600)는 판단부(1610), 파싱부(1610) 및 복호화부(1620)를 포함한다.
판단부(1610)는 복호화하려는 제1 부호화 단위가 현재 픽처의 경계를 벗어난 영역을 포함하는지 판단한다. 이전에 복호화된 부호화 단위에 기초해 복호화하려는 제1 부호화 단위가 현재 픽처의 경계를 벗어난 영역인지 판단할 수 있다. 예를 들어, 도 14에 도시된 실시예에서는 바로 이전에 복호화된 부호화 단위가 'P-1' 부호화 단위인 경우, 복호화하려는 제1 부호화 단위는 현재 픽처의 경계에 걸쳐있어, 경계를 벗어난 영역을 포함하고 있는 것으로 판단할 수 있다.
다시 말해, 현재 복호화되는 제1 부호화 단위의 좌측 또는 우측 경계가 현재 픽처의 좌측 또는 우측 경계를 벗어나는지 판단하거나, 제1 부호화 단위의 상부 또는 하부 경계가 현재 픽처의 상부 또는 하부 경계를 벗어나는지 판단하여, 복호화하려는 제1 부호화 단위가 현재 픽처의 경계에 걸쳐있는지 판단한다.
파싱부(1610)는 영상 비트스트림을 수신하고, 제1 부호화 단위가 현재 픽처의 경계를 벗어난 영역을 포함하는 것으로 판단되면, 제1 부호화 단위를 분할하여 생성된 적어도 하나의 제2 부호화 단위 중 픽처 경계를 벗어나지 않은 제2 부호화 단위에 대한 데이터만 파싱한다. 제2 부호화 단위의 심도는 제1 부호화 단위의 심도 'k'보다 큰 심도 'k+1'의 부호화 단위일 수 있다. 또한, 제1 부호화 단위가 픽처 경계를 벗어난 영역을 포함하지 않는 것으로 판단되면, 제1 부호화 단위에 대한 데이터 전부를 파싱한다.
제1 부호화 단위가 픽처 경계를 벗어난 영역을 포함하는 것으로 판단되어, 픽처 경계를 벗어나지 않은 제2 부호화 단위에 대한 데이터만 파싱하는 경우, 제1 부호화 단위의 분할 여부에 대한 정보(예를 들어, 플래그 정보)를 파싱하지 않을 수 있다. 픽처 경계에 걸쳐있는 제1 부호화 단위의 분할이 필수적이어서, 분할 여부에 대한 정보를 부호화하지 않은 경우에는 파싱할 정보도 없으나, 분할 여부에 대한 정보가 부호화된 경우에도 분할 여부에 대한 정보를 파싱하지 않을 수 있다.
또한, 분할 여부에 대한 정보를 파싱한 경우에도 제1 부호화 단위를 분할하여 생성된 제2 부호화 단위 중 픽처 경계를 벗어나지 않은 제2 부호화 단위에 대한 데이터만 파싱한다.
복호화부(1630)는 파싱부(1620)에서 파싱된 현재 픽처의 경계를 벗어나지 않은 제2 부호화 단위에 데이터를 복호화한다. 경계를 벗어나지 않은 제2 부호화 단위에 대한 데이터를 엔트로피 복호화, 역양자화, 역주파수 변환(예를 들어, 역이산 코사인 변환)하여 레지듀얼 값들을 복원하고, 제2 부호화 단위를 인트라 또는 인터 예측하여 생성된 예측 값과 복원된 레지듀얼 값들을 가산하여 제2 부호화 단위를 복원한다.
복호화 시에 이용하는 부호화 단위의 주소를 설정하는 방법은 도 14에 도시된 바와 동일하며, 복호화 과정에서 인트라 예측을 위해 이용할 수 있는 인접한 픽셀들도 도 13a 및 13b에 도시된 바와 같다.
복호화부(1630)가 복호화 시에 이용하는 제1 부호화 단위의 부호화 모드에 대한 정보는 도 18a 내지 18g와 관련하여 전술한 바와 같이 경계를 벗어난 영역을 포함하는지 여부에 기초해 부호화된 부호화 모드에 대한 정보일 수 있다.
도 17은 본 발명의 일 실시예에 따른 영상 복호화 방법을 설명하기 위한 흐름도이다.
도 17을 참조하면, 단계 1710에서 영상 복호화 장치(1600)는 복호화하려는 제1 부호화 단위가 현재 픽처의 경계를 벗어난 영역을 포함하는지 판단한다. 이전에 복호화된 부호화 단위를 참조하여 제1 부호화 단위의 우측 또는 좌측 경계가 현재 픽처의 우측 또는 좌측 경계를 벗어나는지 판단하거나, 제1 부호화 단위의 상부 또는 하부 경계가 현재 픽처의 상부 또는 하부 경계를 벗어나는지 판단한다.
단계 1720에서 영상 복호화 장치(1600)는 단계 1710의 판단 결과에 기초해 제1 부호화 단위를 분할하여 생성된 적어도 하나의 제2 부호화 단위 중 픽처 경계를 벗어나지 않은 제2 부호화 단위에 대한 데이터를 파싱한다. 단계 1710에서 제1 부호화 단위가 현재 픽처의 경계를 벗어난 영역을 포함하고 있는 것으로 판단된 경우, 제1 부호화 단위를 분할하여 생성된 제2 부호화 단위 중 픽처 경계를 벗어나지 않은 제2 부호화 단위에 대한 데이터를 파싱한다. 전술한 바와 같이 제2 부호화 단위는 제1 부호화 단위의 심도 'k'보다 큰 심도 'k+1'의 부호화 단위 일 수 있다.
단계 1730에서 영상 복호화 장치(1600)는 단계 1720에서 파싱된 현재 픽처의 경계를 벗어나지 않은 제2 부호화 단위에 대한 데이터만 복호화한다. 픽처 경계를 벗어나지 않은 제2 부호화 단위에 대한 데이터를 엔트로피 복호화, 역양자화, 역주파수 변환하여 레지듀얼 값들을 복원하고, 예측 결과 생성된 예측 값들과 가산하여 제2 부호화 단위를 복원한다.
영상 복호화 장치(1600)가 복호화 시에 이용하는 제1 부호화 단위의 부호화 모드에 대한 정보는 도 18a 내지 18g와 관련하여 전술한 바와 같이 경계를 벗어난 영역을 포함하는지 여부에 기초해 부호화된 정보일 수 있다.
도 19는 본 발명의 또 다른 실시예에 따른 영상 부호화 방법을 설명하기 위한 흐름도이다.
도 19를 참조하면, 단계 1910에서 영상 부호화 장치(900)는 제1 부호화 단위가 현재 픽처의 경계를 벗어난 영역을 포함하는지 판단한다.
단계 1920에서 영상 부호화 장치(900)는 단계 1910에서의 판단 결과에 기초해 제1 부호화 단위를 적어도 하나의 제2 부호화 단위로 분할한다. 제1 부호화 단위의 심도 'k'보다 큰 심도 'k+1'의 제2 부호화 단위로 제1 부호화 단위를 분할할 수 있다.
단계 1930에서 영상 부호화 장치는 단계 1920의 분할 결과 생성된 적어도 하나의 제2 부호화 단위의 경계를 벗어난 영역을 소정의 값들로 패딩한다. 도 20a 및 20b를 참조하여 상세히 설명한다.
도 20a 및 20b는 본 발명의 또 다른 실시예에 따른 픽처 경계의 부호화 단위를 부호화하는 방법을 설명하기 위한 도면이다.
영상 부호화 장치(900)의 판단부(910)가 제1 부호화 단위(2020)가 픽처의 경계에 걸쳐있는 것으로 판단하면, 제어부(920)는 제1 부호화 단위(2020)를 더 작은 크기 즉, 더 큰 심도의 제2 부호화 단위로 분할한다. 그러나, 제2 부호화 단위가 최소 부호화 단위인 경우에는 제어부(920)가 더 작은 크기의 부호화 단위로 제2 부호화 단위를 분할할 수 없고, 더 이상 분할할 수 없기 때문에 경계를 벗어난 영역과 벗어나지 않은 영역이 부호화 단위에 따라 구분되지 않는다.
따라서, 부호화부(930)는 제2 부호화 단위(2024 및 2028) 중 경계(2010)를 벗어난 영역을 도 20b에 도시된 바와 같이 패딩한다. 현재 픽처의 경계(2010)를 벗어난 영역의 픽셀 값들을 모두 '0'으로 설정하거나, 경계를 벗어난 영역의 픽셀 값들을 인접한 경계를 벗어나지 않은 영역의 픽셀 값들과 동일하게 설정한다.
다시 도 19를 참조하면, 단계 1940에서 영상 부호화 장치(900)는 단계 1930에서 패딩된 영역을 포함하는 적어도 하나의 제2 부호화 단위를 부호화한다.
영상 부호화 장치(900)의 부호화부(930)는 제2 부호화 단위들(2022 내지 2028)을 예측하여 레지듀얼 값들을 생성하고, 생성된 레지듀얼 값들을 주파수 변환한다. 주파수 변환하여 생성된 주파수 변환 계수들을 양자화하고 엔트로피 부호화하여 제2 부호화 단위들(2022 내지 2028)을 부호화한다.
경계(2010)에 걸친 제2 부호화 단위들(2024 및 2028)를 예측함에 있어, 제2 부호화 단위 전체를 예측할 수도 있고, 경계를 벗어나지 않은 영역만 예측할 수도 있다. 예를 들어, 경계(2010)에 걸친 제2 부호화 단위(2024)가 8x8인 경우, 경계를 벗어난 영역을 포함하는 8x8 크기로 예측할 수도 있고, 경계를 벗어난 영역을 제외한 4x8 크기로 예측할 수도 있다.
또한, 경계(2010)에 걸친 제2 부호화 단위들(2024 및 2028)을 주파수 변환함에 있어, 제2 부호화 단위 전체를 주파수 변환할 수도 있고, 경계를 벗어나지 않은 영역만 주파수 변환할 수도 있다.
예를 들어, 경계(2010)에 걸친 최소 부호화 단위(2024)가 8x8인 경우, 경계를 벗어난 영역을 포함하는 8x8 크기로 주파수 변환을 수행할 수도 있다. 주파수 경계를 벗어난 영역도 예측된 경우 경계를 벗어난 영역도 레지듀얼 값들을 포함하므로, 제2 부호화 단위의 크기로 주파수 변환을 수행할 수 있다. 경계를 벗어난 영역이 예측되지 않아 레지듀얼 값들이 없는 경우에는 경계를 벗어난 영역을 임의의 레지듀얼 값(예를 들어, ‘0’)으로 설정하고, 제2 부호화 단위의 크기로 주파수 변환을 수행할 수 있다. 예측 여부와 무관하게 경계를 벗어난 영역의 레지듀얼 값들은 의미가 없으므로, 주파수 변환에 가장 높은 효율을 보이는 임의의 값으로 경계를 벗어난 영역의 레지듀얼 값들을 설정하고 주파수 변환을 수행할 수도 있다.
또한, 부호화부(930)는 경계를 벗어난 영역을 제외한 4x8 크기로 주파수 변환을 수행할 수도 있다. 전술한 바와 같이 본원 발명에 따르면, 부호화 단위, 예측 단위 및 변환 단위의 크기가 각각 독립적으로 결정될 수 있으므로, 최소 부호화 단위보다 작은 크기의 변환 단위를 이용해 경계를 벗어나지 않은 영역만 선택적으로 주파수 변환할 수 있다.단계 1940에서 제2 부호화 단위의 부호화와 함께 부호화부(930)는 도 18a 및 18g와 관련하여 전술한 바와 같이 제2 부호화 단위가 경계를 벗어난 영역을 포함하는지 여부에 기초해 부호화 모드에 대한 정보를 부호화할 수도 있다.
도 21은 본 발명의 또 다른 실시예에 따른 영상 복호화 방법을 설명하기 위한 흐름도이다.
도 21을 참조하면, 단계 2110에서 영상 복호화 장치(1600)의 판단부(1610)는 제1 부호화 단위가 현재 픽처의 경계를 벗어난 영역을 포함하는지 판단한다.
단계 2120에서 영상 복호화 장치(1600)의 파싱부(1620)는 단계 2110의 판단 결과에 기초해 제1 부호화 단위를 분할하여 생성된 적어도 하나의 제2 부호화 단위 중 패딩된 영역을 포함하는 적어도 하나의 제2 부호화 단위에 대한 데이터를 파싱한다. 도 20a에 도시된 바와 같이 제2 부호화 단위가 최소 부호화 단위이고, 경계에 걸쳐있는 경우 제2 부호화 단위의 일부 영역은 현재 픽처의 경계를 벗어난 영역이다. 이러한 영역은 도 19와 관련하여 전술한 바와 같이 소정의 값으로 패딩될 수 있는 바, 영상 복호화 장치의 파싱부(1620)는 이러한 패딩된 영역을 포함하는 적어도 하나의 제2 부호화 단위에 대한 데이터를 파싱한다.
단계 2130에서 영상 복호화 장치(1600)의 복호화부(1630)는 단계 2120에서 파싱된 제2 부호화 단위에 대한 데이터에 기초해 제2 부호화 단위를 복호화한다. 파싱된 제2 부호화 단위에 대한 데이터를 엔트로피 복호화, 역양자화, 역주파수 변환하여 레지듀얼 값들을 복원하고, 예측 결과 생성된 예측 값들과 가산하여 제2 부호화 단위를 복원한다. 도 18a 및 18g와 관련하여 전술한 바와 같이 제2 부호화 단위가 경계를 벗어난 영역을 포함하는지 여부에 기초해 부호화된 부호화 모드에 대한 정보를 복호화하고, 복호화된 부호화 모드에 대한 정보에 따라 제2 부호화 단위를 복호화할 수 있다.
도 19와 관련하여 전술한 주파수 변환과 같이 역주파수 변환도 제2 부호화 단위 전체를 역주파수 변환할 수도 있고, 경계를 벗어나지 않은 영역만 역주파수 변환할 수도 있다. 또한, 예측을 수행함에 있어서도 제2 부호화 단위 전체를 예측할 수도 있고, 경계를 벗어나지 않은 영역만 예측할 수도 있다.
도 22는 본 발명의 또 다른 실시예에 따른 영상 부호화 방법을 설명하기 위한 흐름도이다.
도 22를 참조하면, 단계 2210에서 영상 부호화 장치(900)의 판단부(910)는 제1 부호화 단위가 현재 픽처의 경계를 벗어난 영역을 포함하는지 판단한다.
단계 2220에서 영상 부호화 장치(900)는 단계 2210에서의 판단 결과에 기초해 제1 부호화 단위의 경계를 벗어난 영역을 소정의 값으로 패딩한다. 도 23a를 참조하여 상세히 설명한다.
도 23a 및 23b는 본 발명의 또 다른 실시예에 따른 픽처 경계의 부호화 단위를 부호화하는 방법을 설명하기 위한 도면이다.
도 23a를 참조하면, 영상 부호화 장치(900)의 판단부(910)가 제1 부호화 단위(2320)가 픽처의 경계에 걸쳐있는 것으로 판단하면, 부호화부(930)는 제1 부호화 단위(2320) 중 경계(2310)를 벗어난 영역(2322)을 도 23a에 도시된 바와 같이 패딩한다. 현재 픽처의 경계(2310)를 벗어난 영역의 픽셀 값들을 모두 '0'으로 설정하거나, 경계를 벗어난 영역의 픽셀 값들을 인접한 경계를 벗어나지 않은 영역의 픽셀 값들과 동일하게 설정한다.
다시 도 22를 참조하면, 단계 2230에서 영상 부호화 장치(900)의 부호화부(930)는 단계 2220에서 경계(2310)를 벗어난 영역(2322)이 패딩된 제1 부호화 단위(2320)를 제1 부호화 단위(2320)보다 작은 크기의 제2 부호화 단위를 이용하는 부호화 모드로 부호화한다. 패딩의 방법에 대한 규칙을 부호화 측과 복호화 측이 공유한다면, 제1 부호화 단위(2320)의 패딩된 영역(2322)을 부호화하지 않아도, 복호화하는 측에서 패딩된 영역(2322)를 복원할 수 있다. 따라서, 경계(2310)를 벗어나지 않은(2324)의 선택적인 부호화를 위해 영상 부호화 장치(900)의 부호화부(930)는 제1 부호화 단위(2320)의 크기보다 작은 크기의 제2 부호화 단위를 이용하는 부호화 모드로 제1 부호화 단위(2320)를 부호화한다. 도 23b를 참조하여 상세히 설명한다.
도 23b를 참조하면, 부호화부(930)는 제1 부호화 단위(2320)의 크기보다 작은 크기의 제2 부호화 단위들(2322 내지 2328)를 이용하는 부호화 모드로 제1 부호화 단위(2320)를 부호화한다. 제2 부호화 단위를 이용하는 부호화 모드에 따라 제2 부호화 단위들 각각을 예측하고, 예측 결과 생성된 레지듀얼 값들을 주파수 변환한다. 주파수 변환 결과 생성된 주파수 변환 계수들을 양자화한 다음 엔트로피 부호화한다.
제2 부호화 단위들 각각을 부호화함에 있어서 경계를 벗어나지 않은 영역의 제2 부호화 단위(2336 및 2338)에 대해서만 예측을 수행하고, 예측 결과에 기초해 경계를 벗어나지 않은 영역의 제2 부호화 단위(2336 및 2338)를 부호화할 수 있다. 경계를 벗어난 영역의 제2 부호화 단위(2332 및 2334)는 예측을 수행하지 않고, 소정의 값(예를 들어, ‘0’)으로 레지듀얼 값을 설정할 수 있다.
또한, 경계(2310)를 벗어나지 않은 영역의 제2 부호화 단위(2336 및 2338)에 대한 움직임 벡터 및 픽셀 값에 대한 정보만 부호화하고, 경계(2310)를 벗어난 영역의 제2 부호화 단위(2332 및 2334)의 움직임 벡터 및 픽셀 값에 대한 정보는 부호화하지 않을 수 있다. 픽셀 값에 대한 정보는 제2 부호화 단위(2332 내지 2338) 각각에 포함된 픽셀 값들을 주파수 변환하여 생성된 주파수 변환 계수(예를 들어, 이산 코사인 계수)일 수 있다.
또한, 단계 2230에서 부호화부(930)는 도 18a 및 18g와 관련하여 전술한 바와 같이 제2 부호화 단위가 경계를 벗어난 영역을 포함하는지 여부에 기초해 부호화 모드에 대한 정보를 부호화할 수도 있다.
도 24는 본 발명의 또 다른 실시예에 따른 영상 복호화 방법을 설명하기 위한 흐름도이다.
도 24를 참조하면, 단계 2410에서 영상 복호화 장치(1600)의 판단부(1610)는 제1 부호화 단위가 현재 픽처의 경계를 벗어난 영역을 포함하는지 판단한다.
단계 2420에서 영상 복호화 장치(1600)의 파싱부(1620)는 단계 2410의 판단 결과에 기초해 소정의 값으로 패딩된 영역을 포함하는 제1 부호화 단위에 대한 데이터를 파싱한다.
파싱되는 데이터는 도 23b의 제1 부호화 단위(2320) 중 경계(2310)를 벗어나지 않은 영역의 제2 부호화 단위(2336 및 2338)에 대한 정보만 포함할 수 있다. 경계(2310)를 벗어나지 않은 영역의 제2 부호화 단위(2336 및 2338)에 대한 움직임 벡터 및 픽셀 값에 대한 정보만 포함할 수 있다.
단계 2430에서 영상 복호화 장치(1600)의 복호화부(1630)는 단계 1620에서 파싱된 데이터를 이용해 제1 부호화 단위를 제1 부호화 단위보다 작은 크기의 제2 부호화 단위를 이용하는 부호화 모드에 따라 복호화한다. 제2 부호화 단위를 이용하는 부호화 모드에 따라 제1 부호화 단위의 제2 부호화 단위들을 엔트로피 복호화, 역양자화, 역주파수 변환 및 예측하여 복호화한다. 도 18a 및 18g와 관련하여 전술한 바와 같이 제2 부호화 단위가 경계를 벗어난 영역을 포함하는지 여부에 기초해 부호화된 부호화 모드에 대한 정보를 복호화하고, 복호화된 부호화 모드에 대한 정보에 따라 제2 부호화 단위를 복호화할 수 있다.
파싱된 데이터가 경계(2310)를 벗어나지 않은 영역의 제2 부호화 단위(2336 및 2338)에 대한 정보만 포함하는 경우, 경계(2310)를 벗어나지 않은 영역의 제2 부호화 단위(2336 및 2338)만 제2 부호화 단위를 이용하는 부호화 모드에 따라 복호화한다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명이 상기의 실시예에 한정되는 것은 아니며, 이는 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 사상은 아래에 기재된 특허청구범위에 의해서만 파악되어야 하고, 이와 균등하거나 또는 등가적인 변형 모두는 본 발명 사상의 범주에 속한다 할 것이다. 또한, 본 발명에 따른 시스템은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다.
예를 들어, 본 발명의 예시적인 실시예에 따른 영상 부호화 장치 및 영상 복호화 장치는 도 1, 2, 4, 5, 9 및 16에 도시된 바와 같은 장치의 각각의 유닛들에 커플링된 버스, 상기 버스에 결합된 적어도 하나의 프로세서를 포함할 수 있다. 또한, 명령, 수신된 메시지 또는 생성된 메시지를 저장하기 위해 상기 버스에 결합되어, 전술한 바와 같은 명령들을 수행하기 위한 적어도 하나의 프로세서에 커플링된 메모리를 포함할 수 있다.
또한, 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
Claims (4)
- 비디오 복호화 방법에 있어서,
제1 부호화 단위가 현재영상의 경계를 벗어난 영역을 포함할 때, 상기 제1 부호화 단위를 복수의 제2 부호화 단위로 분할하는 단계;
상기 제1 부호화 단위가 상기 현재영상의 경계를 벗어난 영역을 포함하지 않을 때, 비트스트림으로부터 상기 제1 부호화 단위를 위한 분할정보를 획득하고, 상기 분할정보가 상기 제1 부호화 단위의 분할을 나타낼 때, 상기 제1 부호화 단위를 복수의 제2 부호화 단위로 분할하는 단계; 및
상기 제2 부호화 단위가 더 이상 분할되지 않는 경우, 상기 제2 부호화 단위로부터 하나 이상의 예측단위를 결정하고, 상기 제2 부호화 단위로부터 하나 이상의 변환단위를 결정하고, 상기 예측단위를 이용하여 예측을 수행하고, 상기 변환단위를 이용하여 변환을 수행하는 단계를 포함하고,
상기 현재영상은 복수의 최대부호화 단위로 분할되고,
상기 최대 부호화 단위는 상기 분할정보에 따라 현재 심도 및 하위 심도 중 적어도 하나를 포함하는 심도의 부호화 단위로 계층적으로 분할되는 것을 특징으로 하는 비디오 복호화 방법. - 제 1 항에 있어서, 상기 비디오 복호화 방법은,
상기 제1 부호화 단위의 우측 경계가 상기 현재영상의 우측 경계를 벗어나는지 판단하는 단계를 더 포함하는 것을 특징으로 하는 비디오 복호화 방법. - 제 1 항에 있어서, 상기 비디오 복호화 방법은,
상기 제1 부호화 단위의 하부 경계가 상기 현재영상의 하부 경계를 벗어나는지 판단하는 단계를 더 포함하는 것을 특징으로 하는 비디오 복호화 방법. - 비디오 복호화 장치에 있어서,
제1 부호화 단위가 현재영상의 경계를 벗어난 영역을 포함할 때, 상기 제1 부호화 단위를 복수의 제2 부호화 단위로 분할하고,
상기 제1 부호화 단위가 상기 현재영상의 경계를 벗어난 영역을 포함하지 않을 때, 비트스트림으로부터 상기 제1 부호화 단위를 위한 분할정보를 획득하고, 상기 분할정보가 상기 제1 부호화 단위의 분할을 나타낼 때, 상기 제1 부호화 단위를 복수의 제2 부호화 단위로 분할하는 부호화단위 결정부; 및
상기 제2 부호화 단위가 더 이상 분할되지 않는 경우, 상기 제2 부호화 단위로부터 하나 이상의 예측단위를 결정하고, 상기 제2 부호화 단위로부터 하나 이상의 변환단위를 결정하고, 상기 예측단위를 이용하여 예측을 수행하고, 상기 변환단위를 이용하여 변환을 수행하는 부호화단위 복호화부를 포함하고,
상기 현재영상은 복수의 최대부호화 단위로 분할되고,
상기 최대 부호화 단위는 상기 분할정보에 따라 현재 심도 및 하위 심도 중 적어도 하나를 포함하는 심도의 부호화 단위로 계층적으로 분할되는 것을 특징으로 하는 비디오 복호화 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140054298A KR101545905B1 (ko) | 2014-05-07 | 2014-05-07 | 픽처 경계의 부호화 단위를 부호화, 복호화 하는 방법 및 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140054298A KR101545905B1 (ko) | 2014-05-07 | 2014-05-07 | 픽처 경계의 부호화 단위를 부호화, 복호화 하는 방법 및 장치 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090104421A Division KR101452713B1 (ko) | 2009-10-30 | 2009-10-30 | 픽처 경계의 부호화 단위를 부호화, 복호화 하는 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140062453A true KR20140062453A (ko) | 2014-05-23 |
KR101545905B1 KR101545905B1 (ko) | 2015-08-20 |
Family
ID=50890707
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140054298A KR101545905B1 (ko) | 2014-05-07 | 2014-05-07 | 픽처 경계의 부호화 단위를 부호화, 복호화 하는 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101545905B1 (ko) |
-
2014
- 2014-05-07 KR KR1020140054298A patent/KR101545905B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR101545905B1 (ko) | 2015-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101452713B1 (ko) | 픽처 경계의 부호화 단위를 부호화, 복호화 하는 방법 및 장치 | |
KR101662739B1 (ko) | 픽처 경계의 부호화 단위를 부호화, 복호화 하는 방법 및 장치 | |
KR101608065B1 (ko) | 픽처 경계의 부호화 단위를 부호화, 복호화 하는 방법 및 장치 | |
KR101545905B1 (ko) | 픽처 경계의 부호화 단위를 부호화, 복호화 하는 방법 및 장치 | |
KR101452714B1 (ko) | 픽처 경계의 부호화 단위를 부호화, 복호화 하는 방법 및 장치 | |
KR101434208B1 (ko) | 픽처 경계의 부호화 단위를 부호화, 복호화 하는 방법 및 장치 | |
AU2014203054B2 (en) | Method and apparatus for encoding and decoding coding unit of picture boundary |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
FPAY | Annual fee payment |
Payment date: 20190730 Year of fee payment: 5 |