KR101063421B1 - 영상 디코더 및 영상 디코딩 방법 - Google Patents

영상 디코더 및 영상 디코딩 방법 Download PDF

Info

Publication number
KR101063421B1
KR101063421B1 KR1020090018350A KR20090018350A KR101063421B1 KR 101063421 B1 KR101063421 B1 KR 101063421B1 KR 1020090018350 A KR1020090018350 A KR 1020090018350A KR 20090018350 A KR20090018350 A KR 20090018350A KR 101063421 B1 KR101063421 B1 KR 101063421B1
Authority
KR
South Korea
Prior art keywords
overlap
pixels
macroblock
data
filtering
Prior art date
Application number
KR1020090018350A
Other languages
English (en)
Other versions
KR20100099824A (ko
Inventor
조용호
Original Assignee
주식회사 코아로직
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 코아로직 filed Critical 주식회사 코아로직
Priority to KR1020090018350A priority Critical patent/KR101063421B1/ko
Publication of KR20100099824A publication Critical patent/KR20100099824A/ko
Application granted granted Critical
Publication of KR101063421B1 publication Critical patent/KR101063421B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명의 일 실시예에 따른 영상 디코더는 매크로블록에 대한 데이터를 저장하는 내부메모리; 및 상기 내부메모리에 저장된 데이터에 대해 오버랩 변환 및 디블록 필터링 중 적어도 하나를 처리하는 오버랩 및 디블록 필터부를 포함하되, 상기 오버랩 및 디블록 필터부는 외부메모리에서 처리하고자 하는 매크로블록의 일부화소 및 상기 매크로블록 이전에 디코딩된 매크로블록들의 일부화소를 포함하는 데이터를 상기 내부메모리로 로딩하여 처리하는 것을 특징으로 한다. 본 발명에 따르면 영상의 디코딩 과정에서 요구되는 내부메모리의 용량을 감소시킬 수 있고, 외부메모리 액세스에 필요한 대역폭 및 외부메모리 액세스 횟수를 감소시킬 수 있다.

Description

영상 디코더 및 영상 디코딩 방법 {Video decoder and video decoding method}
본 발명은 영상 처리에 관한 것으로 보다 상세하게는 영상 디코더 및 영상의 디코딩 방법에 관한 것이다.
영상 디코더(video decoder)는 압축 인코딩된 영상을 디코딩하는 장치다. 영상을 압축 및 복원하는 방법은 다양한 방법이 있는데, 국제 표준으로 널리 알려진 것은 MPEG계열, H.264, VC-1 등이 있다. 이 중에서 VC-1표준은 현재 널리 사용되는 H.264에 근접한 압축효율을 보이면서도 복잡도 측면에서 H.264에 비해 60%수준으로 낮기 때문에 복잡도 대비 성능이 뛰어난 것으로 평가된다. VC-1 표준은 SMPTE(The Society of Motion Picture and Television Engineers)에서 제안한 표준으로 SMPTE에서 발간한 “VC-1 Compressed Video Bitstream Format and Decoding Process, SMPTE 421M-2006, 2006.02.24”를 참조할 수 있다. 이하에서 VC-1표준에 따라 압축 인코딩된 영상데이터를 디코딩하는 디코더를 VC-1디코더라고 칭한다.
도 1은 일반적인 VC-1디코더의 블록도이다. 도 1에 도시된 바와 같이 VC-1디코더(100)는 가변길이 복호화부(110), 역양자화/역변환부(120), 인트라/인터 블록 디코딩부(130), 오버랩 변환부(140), 디블록 필터부(150)와 같은 다양한 기능부를 포함한다. 각 기능부들은 시스템 버스(160)를 통해 외부메모리(170)에서 내부메모리(미도시)로 영상데이터를 로딩하여 처리한 후, 다시 외부메모리(170)에 저장한다.
VC-1디코더(100)는 블록 또는 매크로블록 단위로 영상데이터를 처리한다. 여기서, 블록은 8개의 행(row)과 8개의 열(column)을 형성하는 8x8블록 즉, 64개의 화소들의 데이터를 의미할 수 있다. 블록은 서브블록들 예컨대, 8x4서브블록, 4x8서브블록, 4x4서브블록으로 분할될 수 있다. 그리고 매크로블록은 16개의 행과 16개의 열을 형성하는 256개의 화소들의 데이터를 의미하며, 8x8블록 또는 상술한 서브블록들을 포함하여 구성될 수 있다. 매크로블록은 16x16 화소들의 휘도성분값과 휘도성분값에 대응하는 색차성분값을 가질 수 있다.
그런데, VC-1디코더(100)의 기능부 중에서 가변길이 복호화부(110), 역양자화/역변환부(120), 인트라/인터 블록 디코딩부(130)는 매크로블록 단위의 처리가 용이하나, 오버랩 변환부(140)나 디블록 필터부(150)는 처리하고자 하는 매크로블록 주변에 위치한 매크로블록에 대한 데이터도 필요로 하기 때문에 매크로블록 단위의 처리가 용이하지 않다.
오버랩 변환부(140)는 오버랩 변환(즉, 오버랩 스무딩(overlap smoothing))을 수행한다. 여기서, 오버랩 변환이란 인트라/인터 블록 디코딩부(130)를 통해 디코딩된 프레임 상에서 이웃하는 인트라 블록(Intra Block)들의 경계영역에 수행되는 필터링을 의미한다. 오버랩 변환은 인트라 블록간에 발생하는 블록킹 아티팩 트(blocking artifact)를 줄일 수 있다. 이러한 오버랩 변환이 수행되는 영역을 살펴본다.
도 2는 오버랩 변환부가 오버랩 변환을 수행하는 영역을 개념적으로 나타낸 예시도이다.
도 2를 참조하면, 오버랩 변환부(140)가 오버랩 변환하는 영역은 영역A 및 영역B이다. 영역A 및 영역B는 인접하는 2개의 인트라 블록의 경계를 기준으로 2개씩의 화소라인 즉 총 4개의 화소라인을 포함하는 영역이다. 오버랩 변환은 수직 방향 경계(210)를 기준으로 한 영역A에 대해 먼저 수행되고, 그 후에 수평 방향 경계(220)를 기준으로 한 영역B에 대해 수행된다. 그런데, 도 2에 도시된 바와 같이 영역A는 현재 처리하고자 하는 매크로블록 N의 데이터 외에 매크로블록 N-1의 데이터를 포함한다.
디블록 필터부(150)는 디블록 필터링(Deblock filtering)을 수행한다. 디블록 필터링은 블록간의 양자화 오류를 줄이기 위해 수행되는 필터링이다. 디블록 필터링은 8x8블록 또는 서브블록들의 수직 방향 경계 또는 수평 방향 경계를 기준으로 대칭되는 위치에 존재하는 1개씩의 화소라인 즉 총 2개의 화소라인을 포함하는 영역에 수행된다. 디블록 필터링은 오버랩 변환과 달리 수평 방향 경계를 기준으로 한 영역에 먼저 수행되고, 그 후에 수직 방향 경계를 기준으로 한 영역에 수행된다. 디블록 필터링도 오버랩 변환과 마찬가지로 현재 처리하고자 하는 매크로블록의 데이터 외에 상기 매크로블록에 인접한 매크로블록의 데이터가 필요한 경우가 있다.
상술한 바와 같이, 오버랩 변환부(140)나 디블록 필터부(150)에서 임의의 매크로블록을 처리하고자 할 때, 상기 매크로블록에 인접한 매크로블록의 데이터도 외부메모리(170)에서 내부메모리로 로딩하여야 하는 경우가 있다. 따라서, 내부메모리의 용량이 커지고 외부메모리(170) 액세스에 필요한 대역폭이 커지는 문제가 있다.
또한, 종래 VC-1디코더(100)에서는 오버랩 변환부(140)가 먼저 외부메모리(170)에 액세스하여 데이터를 내부메모리로 로딩하여 처리하고 외부메모리(170)에 저장한 후, 다시 디블록 필터부(150)가 외부메모리(170)에 액세스하여 오버랩 변환부(140)가 처리한 데이터를 로딩하여 처리하고 외부메모리(170)에 저장하는 방식을 사용하였다. 이러한 방식은 외부메모리(170)에 대한 접근 빈도가 높아 VC-1디코더(100) 전체의 처리 속도를 저하시키는 요인이 되었다.
본 발명이 이루고자 하는 기술적 과제는 영상 디코딩 과정에서 요구되는 내부메모리의 용량을 감소시키고, 외부메모리 액세스에 필요한 대역폭 및 외부메모리 액세스 횟수를 감소시킬 수 있는 영상 디코더 및 영상 디코딩 방법을 제공하는 것이다.
이러한 기술적 과제를 해결하기 위하여 본 발명은 일 측면(Aspect)에서 영상 디코더를 제공한다. 상기 영상 디코더는 매크로블록에 대한 데이터를 저장하는 내부메모리; 및 상기 내부메모리에 저장된 데이터에 대해 오버랩 변환 및 디블록 필터링 중 적어도 하나를 처리하는 오버랩 및 디블록 필터부를 포함하되, 상기 오버랩 및 디블록 필터부는 외부메모리에서 처리하고자 하는 매크로블록의 일부화소 및 상기 매크로블록 이전에 디코딩된 매크로블록들의 일부화소에 대한 데이터를 상기 내부메모리로 로딩하여 처리하는 것을 특징으로 한다.
상술한 기술적 과제를 해결하기 위하여 본 발명은 다른 측면에서 영상 디코딩 방법을 제공한다. 상기 영상 디코딩 방법은 매크로블록에 대한 오버랩 변환 및 디블록 필터링의 처리여부를 판단하는 단계; 상기 판단단계에서 상기 매크로블록에 대해 오버랩 변환 및 디블록 필터링 중 적어도 하나를 처리하는 것으로 판단한 경우 외부메모리에서 상기 매크로블록의 일부화소 및 상기 매크로블록 이전에 디코딩된 매크로블록들의 일부화소를 포함하는 영역을 내부메모리로 로딩하는 단계; 및 상기 로딩된 영역에 대해 오버랩 변환 및 디블록 필터링 중 적어도 하나를 처리하는 단계를 포함한다.
이상 설명한 바와 같이, 본 발명에 따른 영상 디코더 및 영상 디코딩 방법은영상의 디코딩 과정에서 요구되는 내부메모리의 용량을 감소시킬 수 있고, 외부메모리 액세스에 필요한 대역폭 및 외부메모리 액세스 횟수를 감소시킬 수 있다.
이하에서는 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명한다. 본 발명에 따른 영상 디코더는 VC-1디코더로 사용될 수 있다. 상술한 바와 같이 VC-1디코더는 VC-1표준에 따라 압축 인코딩된 영상데이터를 디코딩할 수 있는 디코더를 의미한다.
도 3은 본 실시예에 따른 영상 디코더 즉, VC-1디코더의 구성을 나타내는 블록도이다.
도 3에 도시된 바와 같이, 본 실시예에 따른 VC-1디코더(300)는 가변길이 복호화부(310), 역양자화/역변환(Inverse Quantization/ Inverse Transform)부(320), 인트라/인터 블록 디코딩부(330), 오버랩 및 디블록 필터(Overlap & Deblock filter)부(340)를 포함할 수 있다.
가변길이 복호화부(310)는 VLC(Variable-Length Coding)에 의해 부호화된 입 력스트림을 복호화하는 유닛이다. 상기 입력스트림에는 프레임 헤더정보, 디코딩 파라미터 등을 포함한다. 가변길이 복호화부(310)를 통해 복호화된 정보는 역양자화/역변환부(320)로 입력된다.
역양자화/역변환부(320)는 상기 복호화된 정보를 제공받아 역양자화한다. 이때, 부호화시에 사용된 양자화값을 이용하여 역양자화한다. 역양자화된 정보는 역변환 과정을 통해 예컨대, 참조 프레임과 현재 프레임 간의 차이값에 관한 정보를 생성한다.
인트라/인터 블록 디코딩부(330)는 상기 참조 프레임과 현재 프레임 간의 차이값에 관한 정보를 이용하여 인트라 블록 및 인터 블록을 디코딩한다. 이러한 디코딩을 통해 현재 프레임을 재구성한다. 이 때, 인트라/인터 블록 디코딩부(330)는 매크로블록 단위로 데이터를 처리하며, 처리한 매크로블록은 외부메모리(360)에 저장한다. 좀 더 구체적으로는 외부메모리(360) 중에서 필터링 메모리에 저장한다.
오버랩 및 디블록 필터부(340)는 필터링 메모리에서 재구성된 현재 프레임에 포함되는 매크로블록에 관한 데이터를 로딩한 후, 오버랩 변환 및 디블록 필터링 중 적어도 하나를 수행한다. 오버랩 및 디블록 필터부(340)는 재구성된 현재 프레임의 종류에 따라 오버랩 변환 및 디블록 필터링 중 어느 하나만을 수행하거나 오버랩 변환 및 디블록 필터링을 모두 수행할 수 있다. 오버랩 및 디블록 필터부(340)는 오버랩 변환 및 디블록 필터링 중 적어도 어느 하나를 수행한 데이터를 외부메모리(360) 중에서 프레임 메모리에 저장한다.
외부메모리(360)는 필터링 메모리와 프레임 메모리를 포함한다. 필터링 메모 리에는 인트라/인터 블록 디코딩부(330)에서 재구성된 프레임이 저장되고, 프레임 메모리에는 오버랩 및 디블록 필터부(340)에서 처리된 매크로블록들이 저장된다.
도 4는 본 실시예에 따른 영상 디코딩 방법을 나타내는 순서도이다.
도 4를 참조하면, 영상 디코딩 방법은 매크로블록에 대한 오버랩 변환 및 디블록 필터링의 처리여부를 판단하는 단계(S41); 상기 판단단계에서 상기 매크로블록에 대해 오버랩 변환 및 디블록 필터링 중 적어도 하나를 처리하는 것으로 판단한 경우 외부메모리에서 상기 매크로블록의 일부화소 및 상기 매크로블록 이전에 디코딩된 매크로블록들의 일부화소를 포함하는 영역을 내부메모리로 로딩하는 단계(S42); 및 상기 로딩된 영역에 대해 오버랩 변환 및 디블록 필터링 중 적어도 하나를 처리하는 단계(S43)를 포함할 수 있다. 또한, 처리된 데이터를 외부메모리에 저장하는 단계(S44)를 더 포함할 수 있다.
매크로블록에 대한 오버랩 변환 및 디블록 필터링의 처리여부를 판단하는 단계(S41)는 오버랩 및 디블록 필터부(340)가 예를 들어, 프레임 헤더정보로부터 현재 프레임에 포함된 매크로블록에 대한 오버랩 변환 및 디블록 필터링의 적용여부를 판단하는 단계이다. 프레임 헤더정보는 예컨대, 프로파일 정보 또는 현재 프레임이 I프레임, B프레임, BI프레임, P프레임 중 어떤 종류의 프레임인지에 대한 정보 및 현재 프레임에 적용된 역변환 정보를 포함할 수 있다.
오버랩 및 디블록 필터부(340)는 프레임 헤더 정보를 통해 현재 프레임이 I프레임 및 BI프레임으로 판단되면, 모든 인접한 8x8블록의 경계에서 오버랩 변환을 수행하고, P프레임에 대해서는 인접하는 2개의 블록이 모두 인트라 블록인 경우 그 경계에서 오버랩 변환을 수행한다. B프레임에 대해서는 오버랩 변환을 수행하지 않는다.
오버랩 및 디블록 필터부(340)는 프레임 헤더 정보를 통해 현재 프레임이 I프레임, B프레임 및 BI프레임의 경우 모든 인접한 8x8블록의 경계에서 디블록 필터링을 수행하고, P프레임의 경우 인접하는 2개의 블록이 모두 인터 블록인 경우를 제외하고 디블록 필터링을 수행할 수 있다.
오버랩 및 디블록 필터부(340)는 매크로블록에 대해 오버랩 변환 및 디블록 필터링 중 적어도 하나를 수행하는 경우, 필터링 메모리에서 상기 매크로블록의 일부화소 및 상기 매크로블록 이전에 디코딩된 매크로블록들의 일부화소를 포함하는 영역을 내부메모리로 로딩한다(S42).
도 5는 필터링 메모리에 저장된 프레임과 내부메모리로 로딩하는 영역을 개념적으로 나타낸 예시도이다.
도 5를 참조하면, 필터링 메모리에는 인트라/인터 블록 디코딩부(330)에 의해 디코딩된 프레임(500)의 매크로블록이 저장되어 있다. 오버랩 및 디블록 필터부(340)는 필터링 메모리에서 매크로블록과 같은 화소 개수에 대한 데이터를 로딩하되, 처리하고자 하는 매크로블록 이전에 디코딩된 매크로블록의 일부화소를 포함하는 영역을 로딩한다. 여기서 상기 이전에 디코딩된 매크로블록이란 처리하고자 하는 매크로블록의 좌측에 인접한 매크로블록, 상측에 인접한 매크로블록, 좌상측에 인접한 매크로블록을 의미할 수 있다.
예를 들어, 처리하고자 하는 매크로블록이 도 5에 도시된 MB(n,m)인 경우, MB(n,m)에 대한 데이터만을 로딩하는 것이 아니라, MB(n,m)의 일부화소와 좌측에 인접한 MB(n-1, m), 좌상측에 인접한 MB(n-1, m-1), 상측에 인접한 MB(n,m-1)에 포함되는 일부화소에 대한 데이터를 포함하여 로딩한다. 여기서, MB는 매크로블록을 의미하며, n은 매크로블록의 열(column)을 나타내고, m은 매크로블록의 행(row)을 나타내며, n, m은 0이상의 정수이다.
이하에서는 오버랩 및 디블록 필터부(340)가 오버랩 변환만을 수행하는 경우, 디블록 필터링만을 수행하는 경우, 오버랩 및 디블록 필터링을 모두 수행하는 경우 각각에 대해 내부메모리로 로딩하는 영역 및 오버랩 변환 및 디블록 필터링이 수행되는 화소에 대해 상세히 설명한다.
도 6은 오버랩 및 디블록 필터부가 오버랩 변환만을 수행하는 경우, 필터링 메모리에서 내부메모리로 로딩하는 영역을 개념적으로 나타낸 예시도이다.
도 6을 참조하면, 오버랩 및 디블록 필터부(340)는 예컨대, 처리할 매크로블록을 기준으로 x축으로 -2화소, y축으로 -2화소만큼 이동한 화소를 기준으로 매크로블록과 동일한 개수의 화소를 포함하는 영역에 대한 데이터만을 내부메모리로 로딩할 수 있다. 오버랩 및 디블록 필터부(340)는 로딩된 데이터에 대해 수평방향 오버랩 변환 및 수직방향 오버랩 변환을 수행한다(S43).
도 7은 오버랩 및 디블록 필터부가 수행하는 수직방향 오버랩 변환 및 수평방향 오버랩 변환을 수행하는 화소를 나타낸 개념도이다.
도 7에서 V를 포함하는 사각형은 수직방향 오버랩 변환이 수행되는 화소이며, H를 포함하는 사각형은 수평방향 오버랩 변환이 수행되는 화소이다. VH를 포함 하는 사각형은 수직방향 오버랩 변환이 수행된 후 수평방향 오버랩 변환이 수행되는 화소이다.
오버랩 및 디블록 필터부(340)는 내부메모리에 로딩된 영역에 대해 먼저 수직방향 오버랩 변환을 수행한 후 다시 내부메모리에 로딩된 영역에 대해 수평방향 오버랩 변환을 수행하는 방식으로 오버랩 변환을 할 수 있다.
또는 이와 달리, 오버랩 및 디블록 필터부(340)는 병렬적으로 오버랩 변환을 할 수도 있다. 도 7에 도시된 바와 같이, 오버랩 변환하는 영역은 3가지 종류의 영역으로 구분할 수 있다. 즉, 수직방향으로만 오버랩 변환하는 부분(710), 수평방향으로만 오버랩 변환하는 부분(720), 수직방향 및 수평방향으로 오버랩 변환하는 부분(730)이다. 상기 3가지 종류의 영역은 서로 영향을 미치지 않으므로 병렬적으로 처리할 수 있다. 단. 수직방향 및 수평방향으로 오버랩 변환하는 부분(730)은 VC-1표준에 있는 제한사항 때문에 먼저 수직방향 오버랩 변환을 한 후, 수평방향 오버랩 변환을 한다.
도 8은 오버랩 및 디블록 필터부가 디블록 필터링만을 수행하는 경우, 필터링 메모리에서 내부메모리로 로딩하는 영역을 개념적으로 나타낸 예시도이다.
도 8을 참조하면, 오버랩 및 디블록 필터부(340)는 예컨대, 처리할 매크로블록을 기준으로 x축으로 -4화소, y축으로 -4화소만큼 이동한 화소를 기준으로 매크로블록과 동일한 개수의 화소를 포함하는 영역에 대한 데이터를 로딩할 수 있다(S42). 로딩된 데이터에 대해 오버랩 및 디블록 필터부(340)는 수평방향 디블록 필터링 및 수직방향 디블록 필터링을 수행한다(S43).
도 9는 오버랩 및 디블록 필터부가 디블록 필터링을 수행하는 화소를 나타낸 개념도이다.
도 9에서, V*를 포함하는 사각형은 수직방향 디블록 필터링이 수행되는 화소이며, H*를 포함하는 사각형은 수평방향 디블록 필터링이 수행되는 화소이다. H*V*를 포함하는 사각형은 수평방향 디블록 필터링이 수행된 후 수직방향 디블록 필터링이 수행되는 화소이다.
오버랩 및 디블록 필터부(340)는 수평방향 디블록 필터링을 먼저 수행한 후 ,다시 수직방향 디블록 필터링을 수행하는 방식으로 디블록 필터링을 할 수 있다. 또한, 수평방향으로만 디블록 필터링하는 부분, 수직방향으로만 디블록 필터링하는 부분, 수평방향 및 수직방향으로 디블록 필터링하는 부분을 병렬적으로 처리할 수도 있다.
오버랩 및 디블록 필터부(340)가 오버랩 변환 및 디블록 필터링을 모두 수행하는 경우에는 오버랩 및 디블록 필터부(340)는 도 8에 도시된 바와 같은 영역을 필터링 메모리에서 내부메모리로 로딩한다(S42). 오버랩 및 디블록 필터부(340)는 로딩된 영역에 대해 먼저 오버랩 변환을 수행한다.
도 10은 오버랩 및 디블록 필터부가 오버랩 변환 및 디블록 필터링을 모두수행하는 경우에 오버랩 변환을 수행하는 화소들을 나타낸 예시도이다.
도 10을 참조하면, 오버랩 및 디블록 필터부(340)는 처리할 매크로블록을 기준으로 x축으로 -4화소, y축으로 -4화소만큼 이동한 화소를 기준으로 매크로블록과 동일한 개수의 화소를 포함하는 영역에 대해 수평방향 오버랩 변환 및 수직방향 오 버랩 변환을 수행한다. 오버랩 및 디블록 필터부(340)가 오버랩 변환만을 수행하는 경우와 달리, 디블록 필터링 수행시에 로딩되는 영역과 동일한 영역을 로딩하여 오버랩 변환을 수행한다. 그 이유는 동일한 영역에 대해 오버랩 변환과 디블록 필터링을 모두 수행할 수 있도록 하기 위해서이다. 오버랩 변환이 완료되면, 오버랩 및 디블록 필터부(340)는 프레임 메모리에 저장하지 않고, 다시 디블록 필터링을 수행한다. 오버랩 및 디블록 필터부(340)는 도 9에 도시된 바와 같이 디블록 필터링을 수행한다(S43). 오버랩 및 디블록 필터부(340)가 디블록 필터링을 수행하는 영역이 도 10에 도시된 오버랩 변환이 수행되는 영역과 동일하므로 다시 외부메모리에 접근하여 로딩할 필요가 없다.
도 11은 오버랩 및 디블록 필터부가 오버랩 변환 및 디블록 필터링을 모두 수행하는 경우 병렬적으로 처리하는 과정을 나타낸 순서도이다.
도 11에 도시된 바와 같이, 오버랩 및 디블록 필터부(340)는 먼저, 수직방향으로만 오버랩 변환하는 부분에 대해 수직방향 오버랩 변환(S110), 수평방향으로만 오버랩 변환하는 부분에 대해 수평방향 오버랩 변환(S130), 수직방향 및 수평방향으로 오버랩 변환하는 부분에 대해 수직방향 및 수평방향 오버랩 변환(S120)을 병렬적으로 수행한다. 이러한 과정은 도 7을 참조하여 상술한 바 있다.
그 후, 오버랩 및 디블록 필터부(340)는 수평방향으로만 디블록 필터링하는 부분에 대해 수평방향 디블록 필터링(S230), 수직방향으로만 디블록 필터링하는 부분에 대해 수직방향 디블록 필터링(S210), 수평방향 및 수직방향으로 디블록 필터링하는 부분에 대해 수평방향 및 수직방향 디블록 필터링(S220)을 병렬적으로 처 리한다. 이러한 병렬처리를 통해 오버랩 변환 및 디블록 필터링 과정의 수행속도를 높일 수 있는 효과가 있다.
오버랩 및 디블록 필터부(340)는 상술한 바와 같이 오버랩 변환 또는/및 디블록 필터링을 수행한 후, 수행된 데이터를 프레임 메모리에 저장한다(S44). 그리고, 다음으로 처리할 매크로블록 데이터를 필터링 메모리에서 로딩하여 상술한 오버랩 변환 또는/및 디블록 필터링 과정을 반복한다.
본 실시예에 따르면 필터링 메모리에서 하나의 매크로블록과 동일한 화소 개수에 대한 데이터만을 로딩하여 오버랩 변환과 디블록 필터링을 수행할 수 있다. 따라서, 속도는 빠르지만 비싼 내부메모리의 용량을 줄일 수 있어 영상 디코더의 제조 비용을 낮출 수 있다. 또한, 영상 디코더가 필요한 경우, 한번의 외부메모리 접근으로 로딩한 영역에 대해 오버랩 변환과 디블록 필터링을 모두 할 수 있으므로 영상 디코딩 속도를 높일 수 있다.
지금까지, 본 발명을 도면에 표시된 실시예를 참고로 설명하였으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
도 1은 일반적인 VC-1디코더의 블록도이다.
도 2는 오버랩 변환부가 오버랩 변환을 수행하는 영역을 개념적으로 나타낸 예시도이다.
도 3은 본 실시예에 따른 영상 디코더 즉, VC-1디코더의 구성을 나타내는 블록도이다.
도 4는 본 실시예에 따른 영상 디코딩 방법을 나타내는 순서도이다.
도 5는 필터링 메모리에 저장된 프레임과 내부메모리로 로딩하는 영역을 개념적으로 나타낸 예시도이다.
도 6은 오버랩 및 디블록 필터부가 오버랩 변환만을 수행하는 경우, 필터링 메모리에서 내부메모리로 로딩하는 영역을 개념적으로 나타낸 예시도이다.
도 7은 오버랩 및 디블록 필터부가 수행하는 수직방향 오버랩 변환 및 수평방향 오버랩 변환을 수행하는 화소를 나타낸 개념도이다.
도 8은 오버랩 및 디블록 필터부가 디블록 필터링만을 수행하는 경우, 필터링 메모리에서 내부메모리로 로딩하는 영역을 개념적으로 나타낸 예시도이다.
도 9는 오버랩 및 디블록 필터부가 디블록 필터링을 수행하는 화소를 나타낸 개념도이다.
도 10은 오버랩 및 디블록 필터부가 오버랩 변환 및 디블록 필터링을 모두수행하는 경우에 오버랩 변환을 수행하는 화소들을 나타낸 예시도이다.
도 11은 오버랩 및 디블록 필터부가 오버랩 변환 및 디블록 필터링을 모두 수행하는 경우 병렬적으로 처리하는 과정을 나타낸 순서도이다.

Claims (10)

  1. 영상 디코더에서 오버랩 변환 및 디블록 필터링 중 적어도 하나를 처리하는 방법에 있어서,
    매크로블록에 대한 오버랩 변환 및 디블록 필터링 중 적어도 하나의 처리 여부를 판단하는 단계;
    상기 판단단계에서 상기 매크로블록에 대해 오버랩 변환 및 디블록 필터링 중 적어도 하나를 처리하는 것으로 판단한 경우, 외부메모리에서 상기 매크로블록의 일부 화소 및 상기 매크로블록 이전에 디코딩된 매크로블록들의 일부 화소를 포함하는 영역에 대한 데이터를 내부메모리로 로딩하는 단계; 및
    상기 로딩된 데이터에 대해 상기 판단단계에서 판단한 오버랩 변환 및 디블록 필터링 중 적어도 하나를 처리하는 단계를 포함하되,
    상기 내부메모리로 로딩된 데이터는 상기 매크로 블록의 화소 개수와 같은 개수의 화소에 대한 데이터이며, 상기 판단단계에서 판단한 처리 과정이 1. 오버랩 변환, 2. 디블록 필터링 또는 3. 오버랩 변환 및 디블록 필터링의 동시 처리 중 어느 것인지에 따라 결정되는 것을 특징으로 하는 영상 디코딩 방법.
  2. 제 1 항에 있어서, 상기 판단단계에서 상기 1. 오버랩 변환을 수행하는 것으로 판단한 경우,
    상기 로딩된 데이터는 상기 매크로 블록의 최좌측 및 최상측 화소를 기준으로 좌측으로 2 화소 및 상측으로 2 화소만큼 이동한 화소를 기준으로 상기 매크로 블록과 동일한 개수의 화소에 대한 데이터인 것을 특징으로 하는 영상 디코딩 방법.
  3. 제 1 항에 있어서, 상기 판단단계에서 상기 2. 디블록 필터링 또는 상기 3. 오버랩 변환 및 디블록 필터링의 동시 처리를 수행하는 것으로 판단한 경우,
    상기 로딩된 데이터는 상기 매크로 블록의 최좌측 및 최상측 화소를 기준으로 좌측으로 4 화소 및 상측으로 4 화소만큼 이동한 화소를 기준으로 상기 매크로 블록과 동일한 개수의 화소에 대한 데이터인 것을 특징으로 하는 영상 디코딩 방법.
  4. 영상 디코더에 있어서,
    외부메모리에서 처리하고자 하는 매크로블록의 일부 화소 및 상기 매크로블록 이전에 디코딩된 매크로블록들의 일부 화소를 포함하는 영역에 대한 데이터를 로딩하여 저장하는 내부메모리; 및
    상기 내부메모리에 저장된 데이터에 대해 오버랩 변환 및 디블록 필터링 중 적어도 하나를 처리하는 오버랩 및 디블록 필터부를 포함하되,
    상기 내부메모리로 로딩된 데이터는 상기 매크로 블록의 화소 개수와 같은 개수의 화소에 대한 데이터이며, 상기 오버랩 및 디블록 필터부가 처리하는 과정이 1. 오버랩 변환, 2. 디블록 필터링 또는 3. 오버랩 변환 및 디블록 필터링의 동시 처리 중 어느 것인지에 따라 결정되는 것을 특징으로 하는 영상 디코딩 장치.
  5. 제 4 항에 있어서, 상기 오버랩 및 디블록 필터부가 상기 1. 오버랩 변환을 수행하는 경우,
    상기 로딩된 데이터는 상기 매크로 블록의 최좌측 및 최상측 화소를 기준으로 좌측으로 2 화소 및 상측으로 2 화소만큼 이동한 화소를 기준으로 상기 매크로 블록과 동일한 개수의 화소에 대한 데이터인 것을 특징으로 하는 영상 디코딩 장치.
  6. 제 4 항에 있어서, 상기 오버랩 및 디블록 필터부가 상기 2. 디블록 필터링 또는 상기 3. 오버랩 변환 및 디블록 필터링의 동시 처리를 수행하는 경우,
    상기 로딩된 데이터는 상기 매크로 블록의 최좌측 및 최상측 화소를 기준으로 좌측으로 4 화소 및 상측으로 4 화소만큼 이동한 화소를 기준으로 상기 매크로 블록과 동일한 개수의 화소에 대한 데이터인 것을 특징으로 하는 영상 디코딩 장치.
  7. 제 4 항에 있어서, 상기 오버랩 및 디블록 필터가 오버랩 변환을 처리하는 경우, 상기 내부메모리에 로딩된 데이터에서 수직방향으로만 오버랩 변환하는 부분, 수평방향으로만 오버랩 변환하는 부분, 수직방향 및 수평방향으로 오버랩 변환하는 부분을 병렬적으로 처리하는 것을 특징으로 하는 영상 디코딩 장치.
  8. 제 4 항에 있어서, 상기 오버랩 및 디블록 필터가 디블록 필터링을 처리하는 경우, 상기 내부메모리에 로딩된 데이터에서 수평방향으로만 디블록 필터링하는 부분, 수직방향으로만 디블록 필터링하는 부분, 수평방향 및 수직방향으로 디블록 필터링하는 부분을 병렬적으로 처리하는 것을 특징으로 하는 영상 디코딩 장치.
  9. 삭제
  10. 삭제
KR1020090018350A 2009-03-04 2009-03-04 영상 디코더 및 영상 디코딩 방법 KR101063421B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090018350A KR101063421B1 (ko) 2009-03-04 2009-03-04 영상 디코더 및 영상 디코딩 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090018350A KR101063421B1 (ko) 2009-03-04 2009-03-04 영상 디코더 및 영상 디코딩 방법

Publications (2)

Publication Number Publication Date
KR20100099824A KR20100099824A (ko) 2010-09-15
KR101063421B1 true KR101063421B1 (ko) 2011-09-07

Family

ID=43005974

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090018350A KR101063421B1 (ko) 2009-03-04 2009-03-04 영상 디코더 및 영상 디코딩 방법

Country Status (1)

Country Link
KR (1) KR101063421B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112312139B (zh) * 2019-08-02 2024-05-24 扬智科技股份有限公司 视频解码的环路滤波方法与解码装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100753504B1 (ko) * 2005-12-20 2007-08-31 엘지전자 주식회사 비디오 디코더의 인-루프 디블럭킹 필터 시스템 및 그의필터링 방법
KR100771879B1 (ko) 2006-08-17 2007-11-01 삼성전자주식회사 내부 메모리 용량을 감소시키는 디블록킹 필터링 방법 및그 방법을 이용하는 영상 처리 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100753504B1 (ko) * 2005-12-20 2007-08-31 엘지전자 주식회사 비디오 디코더의 인-루프 디블럭킹 필터 시스템 및 그의필터링 방법
KR100771879B1 (ko) 2006-08-17 2007-11-01 삼성전자주식회사 내부 메모리 용량을 감소시키는 디블록킹 필터링 방법 및그 방법을 이용하는 영상 처리 장치

Also Published As

Publication number Publication date
KR20100099824A (ko) 2010-09-15

Similar Documents

Publication Publication Date Title
JP6574010B2 (ja) 映像復号化方法、映像符号化方法および記録媒体
TWI382764B (zh) 用於儲存中間迴路過濾資料之暫存記憶體(scratch pad)
US8711950B2 (en) Apparatus and method for adapted deblocking filtering strength
KR100771879B1 (ko) 내부 메모리 용량을 감소시키는 디블록킹 필터링 방법 및그 방법을 이용하는 영상 처리 장치
CN107277539B (zh) 减少用于上下文自适应熵解码中的行缓存的方法及装置
CN107071485B (zh) 具有样本自适应偏移处理的视频编码方法及装置
US9154808B2 (en) Method and apparatus for INTRA prediction for RRU
RU2589341C2 (ru) Размер элемента мозаичного изображения при кодировании видео
CN103947208B (zh) 减少解块滤波器的方法及装置
US20050281339A1 (en) Filtering method of audio-visual codec and filtering apparatus
US20060013315A1 (en) Filtering method, apparatus, and medium used in audio-video codec
US20060133504A1 (en) Deblocking filters for performing horizontal and vertical filtering of video data simultaneously and methods of operating the same
CN103503456A (zh) 用于减少环内滤波缓冲区的方法及其装置
US20150326886A1 (en) Method and apparatus for loop filtering
KR100614647B1 (ko) 디블록킹 필터에서의 효과적인 에지 필터링 연산을 위한레지스터 어레이 구조
US20150016518A1 (en) Video Decoding with Reduced Complexity Deblocking
US20090279611A1 (en) Video edge filtering
EP2880861B1 (en) Method and apparatus for video processing incorporating deblocking and sample adaptive offset
JP2007221697A (ja) 画像復号化装置及び画像復号化方法
KR20050121627A (ko) 동영상 코덱의 필터링 방법 및 필터링 장치
KR101063421B1 (ko) 영상 디코더 및 영상 디코딩 방법
US20060245501A1 (en) Combined filter processing for video compression
JP2007258882A (ja) 画像復号装置
US20100014597A1 (en) Efficient apparatus for fast video edge filtering
US20070223591A1 (en) Frame Deblocking in Video Processing Systems

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140703

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151207

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160701

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170703

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee