KR20140116992A - 외부 메모리 접근의 대역폭을 감소시키는 lcu단위의 인-루프 필터링 장치 및 방법 - Google Patents

외부 메모리 접근의 대역폭을 감소시키는 lcu단위의 인-루프 필터링 장치 및 방법 Download PDF

Info

Publication number
KR20140116992A
KR20140116992A KR1020130031370A KR20130031370A KR20140116992A KR 20140116992 A KR20140116992 A KR 20140116992A KR 1020130031370 A KR1020130031370 A KR 1020130031370A KR 20130031370 A KR20130031370 A KR 20130031370A KR 20140116992 A KR20140116992 A KR 20140116992A
Authority
KR
South Korea
Prior art keywords
filtering
lcu
pixels
deblocking
coding unit
Prior art date
Application number
KR1020130031370A
Other languages
English (en)
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 KR1020130031370A priority Critical patent/KR20140116992A/ko
Priority to US14/079,071 priority patent/US20140286442A1/en
Publication of KR20140116992A publication Critical patent/KR20140116992A/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • 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
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Landscapes

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

Abstract

외부 메모리 접근의 대역폭을 감소시키는 LCU 단위의 인-루프 필터링 장치 및 방법에 관한 것으로서, 일실시예에 따른 인-루프 필터링 장치는 복호화된 프레임들을 저장하는 외부 메모리, 디블록킹 필터링 및 샘플 적응적 오프셋 필터링에 사용되는 픽셀들을 저장하는 내부 메모리, 상기 내부 메모리에 저장되는 픽셀들 중에서 LCU 및 상기 LCU에 인접하는 픽셀들을 이용하여, 상기 입력된 픽셀들에 대해서 입력된 영역 내의 수직 엣지 경계들에서 수평 방향으로 디블록킹 필터링을 수행하는 수평 디블록킹 필터, 상기 수평 방향으로 디블록킹 필터링된 픽셀들을 이용하여, 상기 입력된 영역 내의 수평 에지 경계들에서 수직 방향으로 디블록킹 필터링을 수행하는 수직 디블록킹 필터, 및 상기 입력된 영역 내에서 상기 수평 방향으로 디블록킹 필터링된 픽셀들을 이용하여, 샘플 적응적 오프셋 필터링을 수행하는 샘플 적응적 오프셋 필터를 포함할 수 있다.

Description

외부 메모리 접근의 대역폭을 감소시키는 LCU단위의 인-루프 필터링 장치 및 방법{APPARATUS AND METHOD OF IN LOOP FILTERING BASED ON LARGEST CODING UNIT FOR DECREASING BANDWIDTH OF EXTERNAL MEMORY ACCESS}
아래의 실시예들은 HEVC 비디오 복호화기에서 디블록킹 필터링과 샘플 적응적 오프셋 필터를 수행할 때 외부 메모리 접근을 최소화 시키는 기술적 사상에 관한 것이다.
HEVC(High Efficiency Video Coding)는 MPEG(moving picture experts group)과 VCEG(video coding experts group)에 의해 공동으로 구성된 JCT-VC(joint collaborative team on video coding)에 의해 표준화가 진행되고 있는 차세대 비디오 코덱이다.
HEVC는 H.264/AVC 까지의 비디오 코덱들과 달리 매크로블록 단위로 코딩을 수행하지 않는다. HEVC는 기존의 매크로블록 단위의 코딩이 고정 크기로 인하여 다양한 해상도의 영상을 효과적으로 고려하지 못하는 문제를 해결하기 위하여 CU(coding unit), TU(transform unit), PU(prediction unit) 등을 정의하고, 이 중에 CU를 기본 코딩 단위로 사용한다. 이러한 CU 중에서 가장 큰 크기의 CU를 LCU(largest coding unit)로 부르며, 입력 영상은 다수의 LCU로 분할 된 후 LCU 단위로 부호화 및 복호화가 수행된다.
HEVC 복호화기는 복원된 영상에 대하여 디블록킹 필터링을 수행 후, 샘플 적응적 오프셋 필터를 수행한다. HEVC 복호화기에서 디블록킹 필터링과 샘플 적응적 오프셋 필터링은 LCU 단위 또는 프레임 단위에서 수행이 가능하다. 프레임 단위에서 디블록킹 필터링과 샘플 적응적 오프셋 필터링을 수행하는 경우에는 프레임 단위로 영상을 복원한 후 복원된 프레임에 대하여 디블록킹 필터링과 샘플 적응적 오프셋 필터링을 수행한다.
이렇게 프레임 단위의 인-루프 필터링을 수행하는 경우에는, 복원된 LCU들을 모두 내부 메모리에 저장할 수 없어 외부 메모리에 저장한다. 따라서, 디블록킹 필터링과 샘플 적응적 오프셋 필터링을 수행하기 위하여 다시 외부 메모리에서 내부 메모리로 복원된 픽셀을 로드(load)해야 하므로 외부 메모리 접근에 따른 대역폭이 증가되어 시스템의 성능이 저하될 수 있다.
일실시예에 따른 인-루프 필터링 장치는 복호화된 프레임들을 저장하는 외부 메모리, 디블록킹 필터링 및 샘플 적응적 오프셋 필터링에 사용되는 픽셀들을 저장하는 내부 메모리, 상기 내부 메모리에 저장되는 픽셀들 중에서 LCU 및 상기 LCU에 인접하는 픽셀들을 이용하여, 상기 입력된 픽셀들에 대해서 입력된 영역 내의 수직 엣지 경계들에서 수평 방향으로 디블록킹 필터링을 수행하는 수평 디블록킹 필터, 상기 수평 방향으로 디블록킹 필터링된 픽셀들을 이용하여, 상기 입력된 영역 내의 수평 에지 경계들에서 수직 방향으로 디블록킹 필터링을 수행하는 수직 디블록킹 필터, 및 상기 입력된 영역 내에서 상기 수평 방향으로 디블록킹 필터링된 픽셀들을 이용하여, 샘플 적응적 오프셋 필터링을 수행하는 샘플 적응적 오프셋 필터를 포함할 수 있다.
일실시예에 따른 상기 수평 디블록킹 필터는, 상기 LCU에 인접하는 픽셀들 중에서 상기 LCU의 좌측, 좌상측, 및 상측에 위치하는 픽셀들을 이용하여 상기 디블록킹 필터링을 수행할 수 있다.
일실시예에 따른 상기 외부 메모리는, LCU 단위로 인-루프 필터링을 수행하는 경우에 인-루프 필터링 과정에 사용되는 참조 픽셀 값들을 저장할 수 있다.
일실시예에 따른 상기 내부 메모리는, HEVC 복호화기가 프레임 단위로 영상을 복원한 후 프레임에 단위로 디블록킹 필터링과 샘플 적응적 오프셋 필터링을 순차적으로 수행하는 경우에 상기 외부 메모리로부터 LCU 단위로 필터링에 필요한 픽셀들을 로드할 수 있다.
일실시예에 따른 상기 내부 메모리는, 다음에 위치하는 LCU의 인-루프 필터링에 사용되는 LCU 내부의 일부 픽셀들을 저장할 수 있다.
일실시예에 따른 상기 외부 메모리는, 상기 내부 메모리에 크기 제한이 있는 경우, 다음에 위치하는 LCU의 인-루프 필터링에 사용되는 LCU 내부의 일부 픽셀들을 저장할 수 있다.
일실시예에 따른 상기 내부 메모리 및 상기 외부 메모리 중에서 적어도 하나의 메모리는, 상기 디블록킹 필터링 및 상기 샘플 적응적 오프셋 필터링을 수행할 때 참조될 픽셀 영역을 저장하고, 상기 저장된 픽셀 영역을 재사용할 수 있다.
일실시예에 따른 상기 내부 메모리 및 상기 외부 메모리 중에서 적어도 하나의 메모리는, LCU높이 또는 LCU넓이를 기준을 선정된 크기의 픽셀 영역을 백업할 수 있다.
일실시예에 따른 상기 내부 메모리 및 상기 외부 메모리 중에서 적어도 하나의 메모리는, LCU의 오른쪽에 위치하고, LCU높이를 기준을 선정된 크기의 픽셀 영역을 백업하거나, LCU의 하단부에 위치하고, LCU 너비를 기준으로 선정된 크기의 픽셀 영역을 백업할 수 있다.
일실시예에 따른 상기 내부 메모리 및 상기 외부 메모리 중에서 적어도 하나의 메모리는, 더블 버퍼를 이용하여 LCU의 오른쪽에 위치하고, LCU높이를 기준을 선정된 크기의 픽셀 영역을 백업할 수 있다.
일실시예에 따른 상기 내부 메모리 및 상기 외부 메모리 중에서 적어도 하나의 메모리는, 더블 버퍼 및 삼중버퍼 중에서 적어도 하나를 이용하여 LCU의 하단부에 위치하고, LCU너비를 기준을 선정된 크기의 픽셀 영역을 백업할 수 있다.
일실시예에 따른 상기 내부 메모리 및 상기 외부 메모리 중에서 적어도 하나의 메모리는 라인버퍼를 저장하고, 상기 수평 디블록킹 필터 및 상기 수직 디블록킹 필터 중에서 적어도 하나는 상기 라인버퍼를 이용하여 LCU 단위로 디블록킹 필터링을 수행하며, 상기 샘플 적응적 오프셋 필터는 상기 LCU 단위로 샘플 적응적 오프셋 필터링을 수행할 수 있다.
일실시예에 따른 상기 내부 메모리 및 상기 외부 메모리 중에서 적어도 하나의 메모리는 상기 라인버퍼에 영상의 너비를 기준으로 선정된 크기의 영역을 저장하고, LCU의 라인 단위로 상기 라인버퍼를 업데이트할 수 있다.
일실시예에 따른 인-루프 필터링 방법은 외부 메모리에서, 복호화된 프레임들을 저장하는 단계, 내부 메모리에서, 디블록킹 필터링 및 샘플 적응적 오프셋 필터링에 사용되는 픽셀들을 저장하는 단계, 수평 디블록킹 필터에서, 상기 내부 메모리에 저장되는 픽셀들 중에서 LCU 및 상기 LCU에 인접하는 픽셀들을 이용하여, 상기 입력된 픽셀들에 대해서 입력된 영역 내의 수직 엣지 경계들에서 수평 방향으로 디블록킹 필터링을 수행하는 단계, 수직 디블록킹 필터에서, 상기 수평 방향으로 디블록킹 필터링된 픽셀들을 이용하여, 상기 입력된 영역 내의 수평 에지 경계들에서 수직 방향으로 디블록킹 필터링을 수행하는 단계, 및 샘플 적응적 오프셋 필터에서, 상기 입력된 영역 내에서 상기 수평 방향으로 디블록킹 필터링된 픽셀들을 이용하여, 샘플 적응적 오프셋 필터링을 수행하는 단계를 포함할 수 있다.
일실시예에 따른 상기 수평 방향으로 디블록킹 필터링을 수행하는 단계는, 상기 LCU에 인접하는 픽셀들 중에서 상기 LCU의 좌측, 좌상측, 및 상측에 위치하는 픽셀들을 이용하여 상기 디블록킹 필터링을 수행하는 단계를 포함할 수 있다.
일실시예에 따른 인-루프 필터링 방법은 상기 외부 메모리에서, LCU 단위로 인-루프 필터링을 수행하는 경우에 인-루프 필터링 과정에 사용되는 참조 픽셀 값들을 저장하는 단계를 더 포함할 수 있다.
일실시예에 따른 인-루프 필터링 방법은 상기 내부 메모리에서, HEVC 복호화기가 프레임 단위로 영상을 복원한 후 프레임에 단위로 디블록킹 필터링과 샘플 적응적 오프셋 필터링을 순차적으로 수행하는 경우에 상기 외부 메모리로부터 LCU 단위로 필터링에 필요한 픽셀들을 로드하는 단계를 포함할 수 있다.
도 1은 HEVC의 디블록킹 필터링을 수행하기 위하여 슬라이스 또는 프레임을 LCU 단위로 나눈 것과 각 LCU에서 디블록킹 필터링 과정에서 참조하는 인접하는 픽셀들을 나타내는 도면이다.
도 2는 HEVC의 샘플 적응적 오프셋 필터링을 수행하기 위하여 슬라이스 또는 프레임을 LCU 단위로 나눈 것과, 각 LCU에서 샘플 적응적 오프셋 필터링 과정에서 참조하는 인접하는 픽셀들을 나타내는 도면이다.
도 3은 일실시예에 따른 인-루프 필터링 장치의 블록도이다.
도 4는 도 3의 인-루프 필터링 장치가 LCU 단위에서 인-루프 필터링을 수행할 때 외부 메모리에서 내부 메모리로 로드하는 영역을 나타내는 도면이다.
도 5는 도 3의 인-루프 필터링 장치가 LCU 단위에서 인-루프 필터링을 수행할 때 내부 메모리에서 참조 픽셀 그룹을 백업하는 영역에 대한 도면이다.
도 6은 도 3의 인-루프 필터링 장치에서 내부 메모리의 구성을 나타내는 도면이다.
도 7은 도 3의 인-루프 필터링 장치에서 수평 디블록킹 필터, 수직 디블록킹 필터, 샘플 적응적 오프셋 필터에 입력으로 사용되는 픽셀들을 나타내는 도면이다.
도 8은 수평 디블록킹 필터 장치에서 입력 영역의 수직 에지 경계에 대해서 수평 방향으로 디블록킹 필터링을 수행하는 실시예를 설명하는 도면이다.
도 9는 수직 디블록킹 필터 장치에서 입력 영역의 수평 에지 경계에 대해서 수직 방향으로 디블록킹 필터링을 수행하는 실시예를 설명하는 도면이다.
도 10은 샘플 적응적 오프셋 필터에서 입력 영역에 대하여 샘플 적응적 오프셋 필터를 수행하는 예시이다.
도 11은 도 3의 인-루프 필터링 장치에서 LCU 단위로 디블록킹 필터, 샘플 적응적 오프셋 필터를 수행한 후 내부 메모리에서 외부 메모리로 저장하는 영역에 대하여 나타내는 도면이다.
도 12는 제 1실시예에 따른 디블록킹 필터링 및 샘플 적응적 오프셋 필터링 방법의 흐름도이다.
도 13은 제 2실시예에 따른 도 3의 인-루프 필터링 장치에서 내부 메모리와 외부 메모리의 구성을 나타내는 도면이다.
도 14는 제2 실시예에 따른 디블록킹 필터링 및 샘플 적응적 오프셋 필터링 방법의 흐름도이다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.
실시예들을 설명함에 있어서, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 실시예들의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고, 본 명세서에서 사용되는 용어(terminology)들은 실시예들을 적절히 표현하기 위해 사용된 용어들로서, 이는 사용자, 운용자의 의도 또는 해당 기술이 속하는 분야의 관례 등에 따라 달라질 수 있다. 따라서, 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
이하의 실시예들은 HEVC 복호화기 설계에 있어서 외부 메모리 접근의 대역폭을 감소시키는 인-루프 필터링의 기술에 관한 것이다. 좀 더 구체적으로는 LCU 단위로 영상 복원, 디블록킹 필터링, 샘플 적응적 오프셋 필터링을 연속적으로 수행함으로써 디블록킹 필터링과 샘플 적응적 오프셋 필터링 과정에서 외부 메모리 접근을 최소화하여 필터링을 수행할 수 있게 하는 기술을 개시한다.
도 1은 HEVC 비디오 복호화기에서 LCU 단위로 디블록킹 필터링을 수행할 때, 각 LCU에서 참조하는 인접하는 픽셀들을 나타내는 도면이다.
도 1을 참조하면, HEVC 비디오 복호화기는 프레임 또는 슬라이스를 LCU 단위로 분할한 후 인-루프 필터링 장치를 이용하여 각 LCU 단위로 디블록킹 필터링을 수행할 수 있다. 이때 디블록킹 필터링이 수행되는 LCU(100)는 위쪽에 위치하는 LCU의 픽셀 정보(110)와 왼쪽에 위치하는 LCU의 픽셀 정보(120)를 참조하여 LCU 내의 수직 및 수평 에지 경계에서 디블록킹 필터링을 수행할 수 있다.
도 2는 HEVC 비디오 복호화기에서 LCU 단위로 샘플 적응적 오프셋 필터링을 수행할 때, 각 LCU에서 참조하는 인접하는 픽셀들을 나타내는 도면이다.
도 2을 참조하면, HEVC 비디오 복호화기는 프레임 또는 슬라이스를 LCU 단위로 분할한 후 인-루프 필터링 장치를 이용하여 각 LCU 단위로 샘플 적응적 오프셋 필터링을 수행할 수 있다. 이때 샘플 적응적 오프셋 필터링을 수행할 LCU(200)에 인접하는 8방향의 픽셀 정보(210)를 참조할 수 있다. 특히, HEVC의 샘플 적응적 오프셋 필터 중 에지 오프셋 타입의 필터는 카테고리의 선택 과정에서 LCU(200)에 인접하는 8방향의 픽셀 정보(210)를 사용할 수 있다.
도 3은 다양한 실시예에 따른 인-루프 필터링 장치(370)의 블록도이다.
도 3을 참조하면, 일실시예에 따른 인-루프 필터링 장치(370)는 외부 메모리(300), 내부 메모리(310), 수평 디블록킹 필터(320), 수직 디블록킹 필터(330), 샘플 적응적 오프셋 필터(340)를 포함할 수 있다.
일실시예에 따른 외부 메모리(300)는 복호화기에서 복호화된 프레임들을 저장할 수 있다. 또한, 외부 메모리(300)에는 LCU 단위로 인-루프 필터링을 수행하는 경우에 인-루프 필터링 과정에 사용되는 참조 픽셀 값들이 저장될 수 있다.
일실시예에 따른 내부 메모리(310)는 디블록킹 필터링 및 샘플 적응적 오프셋 필터링에 사용되는 픽셀들을 저장할 수 있다.
일실시예에 따른 인-루프 필터링 장치(370)를 이용하는 HEVC 복호화기가 프레임 단위로 영상을 복원한 후 프레임에 단위로 디블록킹 필터링과 샘플 적응적 오프셋 필터링을 순차적으로 수행하는 경우, 외부 메모리(300)에서 내부 메모리(310)로 LCU 단위로 필터링에 필요한 픽셀들을 로드(350)할 수 있다.
일실시예에 따른 인-루프 필터링 장치(370)를 이용하는 HEVC 복호화기가 LCU 단위로 영상 복원을 수행한 후 디블록킹 필터링 및 샘플 적응적 오프셋 필터링을 순차적으로 수행하는 경우, 복원된 LCU가 내부 메모리에 이미 위치할 수도 있다. 이러한 경우에는 외부 메모리(300)에서 내부 메모리(310)로 LCU 단위로 픽셀들을 로드(350)하지 않는다.
인-루프 필터링을 수행하는 LCU 내부의 일부 픽셀들은 다음에 위치하는 LCU의 인-루프 필터링에 사용되는데 이러한 픽셀 값들은 내부 메모리(310)에 저장될 수 있다. 또한, 내부 메모리(310)의 크기 제한이 있는 경우에는 외부 메모리(300)가 상기 픽셀 값들을 저장할 수 있다.
일실시예에 따른 수평 디블록킹 필터(320)는 내부 메모리(310)에 저장되는 픽셀들 중에서 lcu 및 상기 lcu에 인접하는 픽셀들을 이용하여, 입력된 픽셀들에 대해서 입력된 영역 내의 수직 엣지 경계들에서 수평 방향으로 디블록킹 필터링을 수행할 수 있다.
예를 들어, 수평 디블록킹 필터(320)는 내부 메모리(310)에서 디블록킹 필터링을 수행할 LCU와 해당 LCU의 좌측, 좌-상측, 상측에 위치하는 픽셀들을 입력 받을 수 있다. 이에, 수평 디블록킹 필터(320)는 입력된 영역 내의 수직 에지 경계들에서 수평 방향으로 디블록킹 필터링을 수행할 수 있다.
일실시예에 따른 수직 디블록킹 필터(330)는 수평 방향으로 디블록킹 필터링된 픽셀들을 이용하여, 입력된 영역 내의 수평 에지 경계들에서 수직 방향으로 디블록킹 필터링을 수행할 수 있다.
예를 들어, 수직 디블록킹 필터(330)는 수평 디블록킹 필터(320)에 의해서 수평 방향으로 디블록킹 필터링이 적용된 픽셀들을 입력 받을 수 있다. 이에, 수직 디블록킹 필터(330)는 입력된 영역 내의 수평 에지 경계들에서 수직 방향으로 디블록킹 필터링을 수행할 수 있다.
일실시예에 따른 샘플 적응적 오프셋 필터(340)는 입력된 영역 내에서 상기 수평 방향으로 디블록킹 필터링된 픽셀들을 이용하여, 샘플 적응적 오프셋 필터링을 수행할 수 있다.
구체적으로, 샘플 적응적 오프셋 필터(340)는 수직 디블록킹 필터(330)에 의해서 수평 방향으로 디블록킹 필터링이 적용된 픽셀들을 입력으로 받을 수 있다. 수직 디블록킹 필터(330)는 입력된 영역 내의 수평 에지 경계들에서 수직 방향으로 디블록킹 필터링을 수행입력으로 받을 수 있다.
샘플 적응적 오프셋 필터(340)는 입력된 영역 내의 픽셀들에서 샘플 적응적 오프셋 필터링을 수행한다. 샘플 적응적 오프셋 필터(340)는 입력 영역에 대하여 샘플 적응적 오프셋 필터링을 적용한 후 샘플 적응적 오프셋 필터링이 적용된 영역을 외부 메모리(300)에 저장(345)할 수 있다.
결국, 일실시예에 따른 인-루프 필터링 장치(370)를 이용하면, 디블록킹 필터링 및 샘플 적응적 오프셋 필터링을 LCU 단위에서 수행할 때, 필터링을 수행하려는 LCU와 해당 LCU의 좌측, 좌-상측, 상측의 픽셀 값들을 사용하여 디블록킹 필터링 및 샘플 적응적 오프셋 필터링을 한 번에 수행할 수 있다.
또한, 인-루프 필터링 장치(370)를 이용하면, 복호화하려는 LCU의 주변의 픽셀 값들이 복호화 순서로 인하여 준비가 되지 못해서 발생하는 문제는 "(LCU 높이+4) ×(LCU 너비+4)"크기의 블록을 저장하는 방법을 사용함으로써 인접하는 LCU의 필터링 과정에서 자동으로 보정할 수 있다.
이러한 인-루프 필터링 장치(370)는 LCU 단위로 영상 복원, 디블록킹 필터링, 샘플 적응적 오프셋 필터링을 수행할 수 있게 하며 이를 통하여 외부 메모리 접근의 대역폭을 감소시키고, 시스템의 성능을 향상 시킬 수 있다.
도 4는 도 3의 인-루프 필터링 장치(370)가 LCU 단위에서 인-루프 필터링을 수행할 때 외부 메모리(300)에서 내부 메모리(310)로 로드(350)하는 픽셀 영역을 나타내는 도면이다.
인-루프 필터링 장치를 이용하는 HEVC 복호화기는 프레임 단위로 영상 복원을 수행한 후, 다시 외부 메모리에 저장된 픽셀들에 대해서 디블록킹 필터링, 샘플 적응적 오프셋 필터링을 순차적으로 수행할 수 있다. 이렇게 프레임 단위로 영상 복원을 수행하는 경우 내부 메모리에 프레임의 모든 픽셀들을 저장할 수 없기 때문에, 일반적으로 복원된 픽셀들을 외부 메모리에 저장할 수 있다. 따라서, 프레임 단위로 영상 복원을 수행한 경우에는 디블록킹 필터링 및 샘플 적응적 오프셋 필터링 수행을 위해 먼저 필터링을 수행할 LCU(400)를 내부 메모리(310)로 로드할 수 있다.
또한, LCU(400)에 대한 디블록킹 필터링 및 샘플 적응적 오프셋 필터링 과정에서 필요한 인접 픽셀들이 외부 메모리에 저장되어 있는 경우에는 필터링을 수행할 LCU 내부의 픽셀 값(400)뿐만 아니라 인-루프 필터링이 수행되지 않은 인접 참조 픽셀 값들도 로드(350)된다.
도 5는 도 3의 인-루프 필터링 장치(370)가 LCU 단위에서 디블록킹 필터링 및 샘플 적응적 오프셋 필터링을 수행할 때 내부 메모리(310) 상에서 참조 픽셀 영역을 백업하는 것에 대한 도면이다.
도 5을 참조하면, HEVC의 디블록킹 필터는 에지 경계를 기준으로 필터링을 수행하기 때문에, 디블록킹 필터링을 수행할 LCU의 내부 픽셀 중 SIDE_R과 BOTTOM_R영역은 현재 LCU의 오른쪽과 아래쪽에 위치하는 LCU의 인-루프 필터링 과정에서 사용된다. 따라서, LCU에 HEVC의 디블록킹 필터링을 수행하기에 앞서서 해당 영역의 픽셀에 대하여 내부 메모리 또는 외부 메모리로 백업을 하는 것이 필요하다.
도 3의 인-루프 필터링 장치(370)는 LCU 단위로 인-루프 필터링을 수행하려는 LCU에 대한 픽셀 값들을 외부 메모리에서 내부 메모리 로드 했거나, 이미 내부 메모리에 LCU의 픽셀 값을 유지하고 있다. 해당 픽셀 값들을 사용하여 디블록킹 필터링 및 샘플 적응적 오프셋 필터링을 수행하기에 앞서서 현재 LCU 내에서 향후 참조가 될 픽셀 영역(SIDE_R, BOTTOM_R)를 내부 메모리의 버퍼에 백업을 한다. SIDE_R은 현재 LCU에서 가장 오른쪽에 위치하는 영역으로 "LCU 높이×5"의 크기이다. BOTTOM_R은 현재 LCU에서 가장 아래쪽에 위치하는 영역으로 "5×LCU 너비"의 크기이다.
입력 영상의 크기가 커짐에 따라 각 LCU 라인에 위치하는 BOTTOM_R 들을 내부 메모리에 저장할 수 없는 경우에는, 해당 영역은 내부 메모리에서 외부 메모리의 버퍼로 저장(380)될 수 있다.
도 6은 일실시예에 따른 내부 메모리(310)의 구성을 나타내는 도면이다.
도 6을 참조하면, 내부 메모리(310)는 LCU 단위로 디블록킹 필터링 및 샘플 적응적 오프셋 필터링을 수행할 때, 필터링을 수행할 LCU 내의 픽셀들을 저장하는 버퍼(650)를 포함할 수 있다. 디블록킹 필터링 및 샘플 적응적 오프셋 필터링을 수행하기 전에 도 5의 SIDE_R을 저장하기 위한 버퍼(640)와 도 5의 BOTTOM_R를 저장하기 위한 버퍼(630)도 포함한다. 추가적으로 필터링을 수행하려는 LCU의 왼쪽에 위치하는 LCU의 SIDE_R 영역을 저장하는 버퍼(600)도 포함한다.
HEVC의 디블록킹 필터링 연산 중 수직 방향으로 필터링을 수행하는 경우, 각 LCU의 위쪽에 위치하는 LCU의 일부 픽셀 정보를 사용한다. 따라서, LCU 단위로 디블록킹 필터링 및 샘플 적응적 오프셋 필터링을 수행하기 위해서는 최소 한 라인의 LCU들에서 위치하는 모든 BOTTOM_R 들을 저장해야 한다. 그러므로 프레임의 너비 방향으로 존재하는 LCU의 개수(620)만큼의 BOTTOM_R을 저장할 수 있는 라인버퍼(660)가 내부 메모리에 존재해야 한다. 예를 들어, 1920×1080 해상도의 영상을 64×64 LCU로 분할하여 처리하는 경우, 최소 30(=1920/64)개의 BOTTOM_R을 저장할 수 있는 라인버퍼(660)가 존재해야 한다.
입력된 LCU에 대하여 인-루프 필터링 과정, 즉 수평 디블록킹 필터링, 수직 디블록킹 필터링, 및 샘플 적응적 오프셋 필터링의 과정을 수행한 후 메모리 간의 값이 이동 과정이 수행될 수 있다. 인-루프 필터링을 수행하려는 LCU(650)에서 필터링 수행 전 백업되었던 픽셀 버퍼(640)는 다음 LCU에 대한 인-루프 필터링을 수행하기 전에 버퍼(600)로 복사될 수 있다.
또한, 버퍼(630)에 저장된 픽셀 값들은 라인버퍼(660)로 복사될 수 있다. 이때 라인버퍼(660)에서 복사되는 위치는 필터링을 수행한 LCU(650)의 X축 (가로방향) 방향으로의 인덱스와 동일한 버퍼에 저장될 수 있다.
도 7은 도 3의 인-루프 필터링 장치(370)에서 수평 디블록킹 필터(320), 수직 디블록킹 필터(330), 샘플 적응적 오프셋 필터(340)에 입력으로 사용되는 픽셀 영역을 나타내는 도면이다.
도 7을 참조하면, 수평 디블록킹 필터(320)의 입력 값으로 내부 메모리(310)의 LCU 버퍼(650)가 입력으로 사용되며, 추가적으로 필터링을 수행하려는 LCU를 기준으로 좌측 영역의 픽셀들(L_R), 좌-상측 영역의 픽셀 들(LT_R), 상측 영역의 픽셀들(T_R)이 입력으로 사용될 수 있다. 좌측 영역의 픽셀들(L_R)은 "LCU 높이×5"의 크기를 가지며, 좌-상측 영역의 픽셀들은 (LT_R)은 "5×5"의 크기를 가지며, 상측 영역의 픽셀들(T_R)은 "5×LCU 너비"의 크기를 갖는다.
좌측 영역의 픽셀들(L_R)은 도 6에서 600 버퍼에 저장된 픽셀들에 해당하며, 복원 프레임 또는 슬라이스에서 현재 LCU의 좌측에 위치하였던 복원 "LCU 높이×5" 크기의 픽셀 영역이다.
상측 영역의 픽셀들(T_R)은 도 6의 라인버퍼(660)에서 현재 LCU와 X축 (가로방향) 방향으로 인덱스가 동일한 버퍼에 저장된 픽셀들에 해당한다. 해당 픽셀들은 복원 프레임 또는 슬라이스에서 현재 LCU의 상측에 위치하였던 복원 "5×LCU 너비" 크기의 픽셀 영역이다.
좌-상측 영역의 픽셀들(LT_R)은 도 6에서 라인버퍼(660)에서 현재 LCU의 "x축 인덱스-1"에 위치하는 버퍼에 저장된 픽셀들에 해당한다. 해당 픽셀 영역은 복원 프레임 또는 슬라이스에서 현재 LCU의 좌-상측에 위치하였던 "5×5"크기의 픽셀 영역이다.
도 8은 도 3의 수평 디블록킹 필터(320) 장치에서 수직 에지 경계에 대해서 수평 방향으로 디블록킹 필터링을 수행하는 예시이다.
도 8을 참조하면, 수평 디블록킹 필터(320) 장치는 "(LCU 높이+5) ×(LCU 너비+5)" 크기의 픽셀 영역을 입력으로 받을 수 있다.
HEVC의 디블록킹 필터는 8×8 블록 경계에서 필터링을 수행하며 에지 경계를 기준으로 좌/우 또는 상/하 방향으로 최대 3픽셀에 대해서 필터링을 수행할 수 있다.
수평 디블록킹 필터(320) 장치는 입력된 LCU(800)의 수직 에지 경계(810, 820)들에서 필터링을 수행하는데, 이때 LCU의 가장 오른쪽에 위치하는 수직 에지 경계(830)에 대해서는 오른쪽에 위치하는 픽셀들이 없으므로 현재 LCU에 대한 디블록킹 필터링 과정에서는 이 영역에 대해서는 필터링을 수행하지 않는다. 도 8에서 수직 에지 경계(810, 820)들 주변으로 진하게 표시된 픽셀들은 에지 경계를 기준으로 수평 방향으로 디블록킹 필터링이 수행될 수 있는 픽셀을 나타낸다.
도 9는 도 3의 수직 디블록킹 필터(330) 장치에서 수평 에지 경계에 대해서 수직 방향으로 디블록킹 필터링을 수행하는 예시이다.
도 9를 참조하면, 수직 디블록킹 필터(330) 장치는 수평 디블록킹 필터(320) 장치에 의해 수평 방향으로 필터링이 된 "(LCU 높이+5) ×(LCU 너비+5)" 크기의 픽셀 영역을 입력으로 받는다. HEVC의 디블록킹 필터는 수평 에지에 대해서도 8×8 블록 경계에서 필터링을 수행하며, 에지 경계를 기준으로 상/하 방향으로 최대 3픽셀씩 필터링을 수행할 수 있다. 수직 디블록킹 필터(330) 장치는 입력된 LCU(900)의 수평 에지 경계(910, 920)들에서 필터링을 수행하는데, 이때 LCU의 가장 아래쪽에 위치하는 수평 에지 경계(930)에 대해서는 아래쪽에 위치하는 픽셀 영역이 없으므로 필터링을 수행하지 않는다.
수직 디블록킹 필터(330) 장치는 수평 디블록킹 필터(320)에 의하여 수평 방향으로 필터링 된 "(LCU 높이+5) ×(LCU 너비+5)"입력 픽셀에 대해서 필터링을 수행할 수 있다. 해당 영역에 대해 수직 디블록킹 필터링을 수행한 후의 결과 값들은 살펴보면, 디블록킹 필터링이 수행되지 않는 픽셀(FIL_1), 수평 디블록킹 필터링만 수행된 픽셀(FIL_2), 수직 디블록킹 필터링만 수행된 픽셀(FIL_3), 수평 및 수직 디블록킹 필터링이 수행된 픽셀(FIL_4)들로 구성될 수 있다.
도 10은 도 3의 샘플 적응적 오프셋 필터(340) 장치에서 입력 영역에 대하여 샘플 적응적 오프셋 필터를 수행하는 예시이다.
도 10을 참조하면, 샘플 적응적 오프셋 필터(340) 장치는 수직 디블록킹 필터(330) 장치에 의해 수직 방향으로 필터링이 된 "(LCU 높이+5) ×(LCU 너비+5)" 크기의 픽셀 영역을 입력으로 받을 수 있다.
샘플 적응적 오프셋 필터(340) 장치는 필터링을 수행하려는 LCU(1000) 내부에 위치하는 픽셀뿐만 아니라 "(LCU 높이+4) ×(LCU 너비+4)"영역(1010)내의 모든 픽셀에 대하여 샘플 적응적 오프셋 필터링을 수행할 수 있다. 이때, 해당 영역(1010)의 좌측과 상측 경계에 위치하는 픽셀들에서는 인접하는 영역의 픽셀값(1020)들을 참조하여 샘플 적응적 오프셋 필터링을 수행할 수 있다. 샘플 적응적 오프셋 필터링을 수행하는 영역(1010)의 오른쪽과 아래쪽 블록 경계에서는 인접하는 영역의 픽셀 값들의 참조가 불가능하다고 가정하고 필터링을 수행할 수 있다. 즉, 해당 블록 경계에 위치하는 픽셀에 대해서는 샘플 적응적 오프셋 필터를 적용하지 않는다.
따라서, 필터링을 수행하는 영역(1010)의 일부 픽셀들에서는 HEVC의 샘플 적응적 오프셋 필터링과 다른 값이 발생할 수 있지만, 이러한 픽셀 값들은 인접하는 LCU에 대한 샘플 적응적 오프셋 필터링 과정에 의하여 정상적인 픽셀 값으로 대체될 수 있다.
도 11은 도 3의 인-루프 필터링 장치(370)에서 샘플 적응적 오프셋 필터(340)를 수행한 후 결과 값을 외부 메모리(300)로 저장(345)하는 영역에 대하여 나타내는 도면이다.
도 11을 참조하면, 샘플 적응적 오프셋 필터(340)는 필터링을 수행하는 LCU(1100)를 포함하여 "(LCU 높이+4) ×(LCU 너비+4)" 크기의 픽셀 영역에 대하여 샘플 적응적 오프셋 필터를 수행하고, 현재 LCU(1100)를 포함하여 좌측에 위치하는 "LCU 높이×4", 좌-상측에 위치하는 "4×4", 상측에 위치하는 "4×LCU 너비" 크기의 픽셀들도 외부 메모리(300)에 저장한다.
또한, 도 3의 인-루프 필터링 장치(370)는 디블록킹 필터링 및 샘플 적응적 오프셋 필터링 과정에서 발생한 오류 값들은 인접하는 LCU에서 인-루프 필터링이 수행된 값을 외부 메모리(300)로 저장(345)하는 과정에서 정상적인 픽셀 값으로 대체될 수 있다.
도 12는 일실시예에 따른 디블록킹 필터링 및 샘플 적응적 오프셋 필터링 방법의 흐름도이다.
도 12를 참조하면, 실시예에 따른 인-루프 필터링 장치(370)는 LCU 단위로 디블록킹 필터링 및 샘플 적응적 오프셋 필터링을 수행할 때 먼저 프레임 단위의 디블록킹 필터링인지를 판단하는 과정(1200)을 거친다. 프레임 단위의 필터링이란 HEVC 부호화기 및 복호화기가 프레임 단위로 영상을 복원하는 과정을 거친 후, 다시 외부 메모리에 저장된 복원 픽셀 값을 로드하여 디블록킹 필터링 및 샘플 적응적 오프셋 필터링을 수행하는 방법을 의미한다. 프레임 단위의 디블록킹 필터링을 수행하는 경우에는 일반적으로 복원된 영상들이 외부 메모리에 저장되므로 디블록킹 필터링과 샘플 적응적 오프셋 필터링을 수행하기 위하여 필터링을 수행할 LCU를 내부 메모리로 로드(1210)한다.
프레임 단위로 디블록킹 필터링을 수행하지 않는 경우에는 일반적으로 외부 메모리 접근을 최소화하기 위하여 LCU 단위로 영상 복원 과정, 디블록킹 필터링 과정, 샘플 적응적 오프셋 과정을 거친 후 외부 메모리에 LCU 단위로 영상을 저장한다. 이 경우, 복원된 LCU를 내부 메모리에 저장하고 있으므로 LCU 내의 픽셀들을 외부 메모리에서 로드하여 내부 메모리로 로드(1210)하는 과정을 수행하지 않는다.
내부 메모리에 필터링을 수행할 LCU의 픽셀들을 로드한 후에는, 필터링에 앞서 향후 인접하는 LCU에 대한 디블록킹 필터 및 샘플 적응적 오프셋 필터링 과정에서 참조되는 픽셀 영역을 내부 메모리로 백업(1220)하는 과정을 거친다.
필터링을 수행할 LCU 내의 일부 픽셀들을 내부 메모리에 백업한 후, 내부 메모리를 통해서 준비된 "(LCU 높이+5) ×(LCU 너비+5)" 크기의 영역에 대해 수평 디블록킹 필터링을 수행(1230)한다. 예를 들어, 프레임이 64×64 크기의 LCU로 분할된 경우 "69×69"크기의 픽셀 영역을 입력으로 받아, 수평 디블록킹 필터링을 수행(1230)한다. 수평 디블록킹 필터링을 수행(1230)한 후, 동일 영역에 대하여 다시 수직 디블록킹 필터링을 수행(1240)한다.
수직 디블록킹 필터링이 수행(1240)된 픽셀들을 사용하여 "(LCU 높이+4) ×(LCU 너비+4)" 크기의 영역에 대하여 샘플 적응적 오프셋 필터링을 수행(1250)한다. 샘플 적응적 오프셋 필터링이 수행(1250)된 후에는 현재 LCU에 대해서 필터링을 수행하기 전 내부 메모리 상에서 백업했던 참조 픽셀 영역 (BOTTOM_R)을 현재 LCU의 인덱스 정보를 참조하여 향후 참조될 수 있도록 내부 메모리의 라인버퍼(660)로 업데이트 하는 것과, SIDE_R을 업데이트하는 과정(680)을 수행(1260)한다.
이렇게 디블록킹 필터링 및 샘플 적응적 오프셋 필터링이 수행된 픽셀 값들에 대하여 최종적으로 "(LCU 높이+4)×(LCU 너비+4)" 크기의 영역에 대하여 외부 메모리로 저장(1270)한다. 이러한 외부 메모리 저장(1270)과정을 통해, LCU의 오른쪽과 아래쪽에 위치하는 일부 픽셀들에서 발생하는 필터링 오류가 정상적인 픽셀 값으로 대체된다.
도 13은 2 실시예에 따른 도 3의 인-루프 필터링 장치(370)에서 내부 메모리(310)와 외부 메모리(300)의 구성을 나타내는 도면이다.
도 13을 참조하면, 입력 영상의 해상도에 따라 라인버퍼(1350)를 내부 메모리에 저장할 수 없는 경우 라인버퍼(1350)가 외부 메모리(300)에 저장될 수 있다.
라인버퍼(1350)가 외부 메모리에 저장된 경우 인-루프 필터링을 수행할 LCU 내의 픽셀(1300)을 로드(350)할 때 인-루프 필터링 과정에서 사용되는 인접 픽셀 영역(1340)도 외부 메모리에서 같이 로드(1345)한다. 해당 영역의 픽셀(1340) 값들을 내부 메모리에 위치시킴으로써 현재 LCU(1300)에 대한 필터링 수행 시 고속으로 접근할 수 있게 된다.
현재 LCU(1300)에 대한 인-루프 필터링을 수행하는 경우, LCU 내부의 픽셀 값들이 다음에 위치하는 LCU의 필터링 과정에서 사용되기 때문에 필터링이 수행되기 전의 복원된 픽셀 값들을 백업해두어야 한다. 이를 위해, 현재 LCU의 SIDE_R을 내부 메모리에 위치하는 버퍼(1310)에 백업(1305)하며, 현재 LCU의 BOTTOM_R은 내부 메모리에 위치하는 버퍼(1320)에 백업(1315)한다.
입력된 LCU(1300)에 대하여 인-루프 필터링 과정을 수행하는 경우 좌측 LCU의 필터링 전의 픽셀 영역을 저장하는 버퍼(1330)와 좌/상측 LCU의 필터링 전의 픽셀 영역을 저장하는 버퍼(1340)를 사용하여 인-루프 필터링을 수행할 수 있다.
입력된 LCU(1300)에 대한 인-루프 필터링이 모두 수행된 후에는 현재 LCU에서 백업된 SIDE_R과 BOTTOM_R을 버퍼에 업데이트하는 과정이 수행될 수 있다.
SIDE_R 버퍼의 업데이트 과정에서는 내부 메모리에 위치하는 버퍼(1310)의 값이 내부 메모리에 위치하는 버퍼(1330)로 저장(1380)될 수 있다. 현재 LCU(1300)의 BOTTOM_R 버퍼(1320)는 라인버퍼(1350)에 저장되어야 한다. 입력 영상의 해상도가 큰 경우 라인버퍼(1350)가 외부 메모리에 위치할 수 있으며 이 경우에는 내부 메모리에 위치하는 버퍼(1320)의 값들을 외부 메모리에 위치하는 라인버퍼(1350)로 저장(380, 1370)할 수 있다. 이때 라인버퍼(1350)에서 저장되는 위치는 필터링을 수행한 LCU(1300)의 X축 (가로방향) 방향으로의 인덱스와 동일한 버퍼에 저장될 수 있다.
도 14는 일실시예에 따른 디블록킹 필터링 및 샘플 적응적 오프셋 필터링 방법의 흐름도이다.
도 14를 참조하면, 일실시예에 따른 인-루프 필터링 장치(370)는 LCU 단위로 디블록킹 필터링 및 샘플 적응적 오프셋 필터링을 수행할 때 먼저 프레임 단위의 디블록킹 필터링인지를 판단할 수 있다(1400).
프레임 단위의 필터링이란 HEVC 부호화기 및 복호화기가 프레임 단위로 영상을 복원하는 과정을 거친 후, 다시 외부 메모리에 저장된 복원 픽셀 값을 로드하여 디블록킹 필터링 및 샘플 적응적 오프셋 필터링을 수행하는 것으로 해석될 수 있다. 프레임 단위의 디블록킹 필터링을 수행하는 경우에는 일반적으로 복원된 영상들이 외부 메모리에 저장되므로 디블록킹 필터링과 샘플 적응적 오프셋 필터링을 수행하기 위하여 필터링을 수행할 LCU 내부의 픽셀 영역 및 인-루프 필터링 과정에서 필요한 참조 픽셀 영역을 내부 메모리로 로드(1410)할 수 있다.
프레임 단위로 디블록킹 필터링을 수행하지 않는 경우에는 일반적으로 외부 메모리 접근을 최소화하기 위하여 LCU 단위로 영상 복원 과정, 디블록킹 필터링 과정, 샘플 적응적 오프셋 과정을 거친 후 외부 메모리에 LCU 단위로 영상을 저장할 수 있다. 이 경우, 복원된 LCU를 내부 메모리에 저장하고 있으므로 LCU 내의 픽셀들을 외부 메모리에서 로드하지 않는다. 그러나 LCU 단위로 인-루프 필터링을 수행할 때 필요한 참조 픽셀 영역(1340)을 외부 메모리의 라인버퍼(1350)에서 내부 메모리로 로드(1415)할 수 있다. 외부 메모리에 위치하는 라인버퍼(1350)에서 참조 픽셀 영역을 로드하는 경우 필터링을 수행할 LCU의 X축 (가로방향) 방향으로의 인덱스와 동일한 버퍼와 "X 축 인덱스-1"로부터 픽셀 값을 로드할 수 있다.
내부 메모리에 필터링을 수행할 LCU의 픽셀들과 참조 픽셀 영역을 로드한 후에는, 필터링에 앞서 향후 인접하는 LCU에 대한 디블록킹 필터 및 샘플 적응적 오프셋 필터링 과정에서 참조되는 픽셀 영역을 내부 메모리로 백업(1420)할 수 있다.
필터링을 수행할 LCU 내의 일부 픽셀들을 내부 메모리에 백업한 후, 내부 메모리를 통해서 준비된 "(LCU 높이+5) ×(LCU 너비+5)" 크기의 영역에 대해 수평 디블록킹 필터링을 수행(1430)할 수 있다. 예를 들어, 프레임이 64×64 크기의 LCU로 분할된 경우 "69×69"크기의 픽셀 영역을 입력으로 받아, 수평 디블록킹 필터링을 수행(1430)할 수 있다. 수평 디블록킹 필터링이 수행된 픽셀 영역은 다시 수직 디블록킹 필터링이 수행(1440)될 수 있다.
수직 디블록킹 필터링이 수행(1440)된 픽셀들을 사용하여 "(LCU 높이+4) ×(LCU 너비+4)" 크기의 영역에 대하여 샘플 적응적 오프셋 필터링을 수행(1450)한다. 샘플 적응적 오프셋 필터링이 수행(1450)된 후에는 현재 LCU에 대해서 필터링을 수행하기 전 내부 메모리 상에서 백업했던 참조 픽셀 영역 (BOTTOM_R)을 현재 LCU의 인덱스 정보를 참조하여 향후 참조될 수 있도록 외부 메모리의 라인버퍼(1350)로 업데이트 하는 것과, SIDE_R을 업데이트하는 과정(1380)을 수행(1460)한다.
이렇게 디블록킹 필터링 및 샘플 적응적 오프셋 필터링이 수행된 픽셀 값들에 대하여 최종적으로 "(LCU 높이+4) ×(LCU 너비+4)" 크기의 영역에 대하여 외부 메모리로 저장(1470)한다. 이러한 외부 메모리 저장(1470)과정을 통해, LCU의 오른쪽과 아래쪽에 위치하는 일부 픽셀들에서 발생하는 필터링 오류가 정상적인 픽셀 값으로 대체된다.
일실시예에 따른 인-루프 필터링 장치는 디블록킹 필터링과 샘플 적응적 오프셋 필터에 대하여 LCU 단위에서 한 번에 동시에 수행할 수 있다.
일실시예에 따른 인-루프 필터링 장치를 이용하면 LCU 단위로 영상 복원, 디블록킹 필터링, 샘플 적응적 오프셋 필터링을 수행할 수 있게 함으로써 영상 복원 과정에서 내부 메모리에 저장된 픽셀 값들을 인-루프 필터링 과정에서도 그대로 사용할 수 있다.
일실시예에 따른 인-루프 필터링 장치는 LCU 단위로 영상을 복원하면서 동시에 해당 LCU에 대하여 연속적으로 디블록킹 필터링 및 샘플 적응적 오프셋 필터를 적용함으로써 외부 메모리 접근의 대역폭을 감소시킬 수 있다. 특히, LCU 단위로 영상 복원, 디블록킹 필터링, 샘플 적응적 오프셋 필터링을 수행하므로 복원된 LCU을 내부 메모리에 저장할 수 있어 외부 메모리 접근을 최소화 시킨다. 또한, 인-루프 필터링 단계에서 필터링을 수행할 LCU의 일부 영역을 버퍼에 저장하여 추후 필터링을 수행하는 경우의 외부 메모리 접근을 감소시킬 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
300: 외부 메모리 310: 내부 메모리
320: 수평 디블록킹 필터 330: 수직 디블록킹 필터
340: 샘플 적응적 오프셋 필터

Claims (18)

  1. 복호화된 프레임들을 저장하는 외부 메모리;
    디블록킹 필터링 및 샘플 적응적 오프셋 필터링에 사용되는 픽셀들을 저장하는 내부 메모리;
    상기 내부 메모리에 저장되는 픽셀들 중에서 LCU(largest coding unit) 및 상기 LCU(largest coding unit)에 인접하는 픽셀들을 이용하여, 상기 입력된 픽셀들에 대해서 입력된 영역 내의 수직 엣지 경계들에서 수평 방향으로 디블록킹 필터링을 수행하는 수평 디블록킹 필터;
    상기 수평 방향으로 디블록킹 필터링된 픽셀들을 이용하여, 상기 입력된 영역 내의 수평 에지 경계들에서 수직 방향으로 디블록킹 필터링을 수행하는 수직 디블록킹 필터; 및
    상기 입력된 영역 내에서 상기 수평 방향으로 디블록킹 필터링된 픽셀들을 이용하여, 샘플 적응적 오프셋 필터링을 수행하는 샘플 적응적 오프셋 필터
    를 포함하는 인-루프 필터링 장치.
  2. 제1항에 있어서,
    상기 수평 디블록킹 필터는,
    상기 LCU(largest coding unit)에 인접하는 픽셀들 중에서 상기 LCU(largest coding unit)의 좌측, 좌상측, 및 상측에 위치하는 픽셀들을 이용하여 상기 디블록킹 필터링을 수행하는 인-루프 필터링 장치.
  3. 제1항에 있어서,
    상기 외부 메모리는,
    LCU(largest coding unit) 단위로 인-루프 필터링을 수행하는 경우에 인-루프 필터링 과정에 사용되는 참조 픽셀 값들을 저장하는 인-루프 필터링 장치.
  4. 제1항에 있어서,
    상기 내부 메모리는,
    HEVC(High Efficiency Video Coding) 복호화기가 프레임 단위로 영상을 복원한 후 프레임에 단위로 디블록킹 필터링과 샘플 적응적 오프셋 필터링을 순차적으로 수행하는 경우에 상기 외부 메모리로부터 LCU 단위로 필터링에 필요한 픽셀들을 로드하는 인-루프 필터링 장치.
  5. 제1항에 있어서,
    상기 내부 메모리는,
    다음에 위치하는 LCU(largest coding unit)의 인-루프 필터링에 사용되는 LCU(largest coding unit) 내부의 일부 픽셀들을 저장하는 인-루프 필터링 장치.
  6. 제1항에 있어서,
    상기 외부 메모리는,
    상기 내부 메모리에 크기 제한이 있는 경우, 다음에 위치하는 LCU(largest coding unit)의 인-루프 필터링에 사용되는 LCU(largest coding unit) 내부의 일부 픽셀들을 저장하는 인-루프 필터링 장치.
  7. 제1항에 있어서,
    상기 내부 메모리 및 상기 외부 메모리 중에서 적어도 하나의 메모리는,
    상기 디블록킹 필터링 및 상기 샘플 적응적 오프셋 필터링을 수행할 때 참조될 픽셀 영역을 저장하고, 상기 저장된 픽셀 영역을 재사용하는 인-루프 필터링 장치.
  8. 제7항에 있어서,
    상기 내부 메모리 및 상기 외부 메모리 중에서 적어도 하나의 메모리는,
    LCU(largest coding unit)높이 또는 LCU(largest coding unit)넓이를 기준을 선정된 크기의 픽셀 영역을 백업하는 인-루프 필터링 장치.
  9. 제8항에 있어서,
    상기 내부 메모리 및 상기 외부 메모리 중에서 적어도 하나의 메모리는,
    LCU(largest coding unit)의 오른쪽에 위치하고, LCU(largest coding unit)높이를 기준을 선정된 크기의 픽셀 영역을 백업하거나,
    LCU(largest coding unit)의 하단부에 위치하고, LCU(largest coding unit) 너비를 기준으로 선정된 크기의 픽셀 영역을 백업하는 인-루프 필터링 장치.
  10. 제9항에 있어서,
    상기 내부 메모리 및 상기 외부 메모리 중에서 적어도 하나의 메모리는,
    더블 버퍼를 이용하여 LCU(largest coding unit)의 오른쪽에 위치하고, LCU(largest coding unit)높이를 기준을 선정된 크기의 픽셀 영역을 백업하는 인-루프 필터링 장치.
  11. 제9항에 있어서,
    상기 내부 메모리 및 상기 외부 메모리 중에서 적어도 하나의 메모리는,
    더블 버퍼 및 삼중버퍼 중에서 적어도 하나를 이용하여 LCU(largest coding unit)의 하단부에 위치하고, LCU(largest coding unit)너비를 기준을 선정된 크기의 픽셀 영역을 백업하는 인-루프 필터링 장치.
  12. 제1항에 있어서,
    상기 내부 메모리 및 상기 외부 메모리 중에서 적어도 하나의 메모리는 라인버퍼를 저장하고,
    상기 수평 디블록킹 필터 및 상기 수직 디블록킹 필터 중에서 적어도 하나는 상기 라인버퍼를 이용하여 LCU(largest coding unit) 단위로 디블록킹 필터링을 수행하며,
    상기 샘플 적응적 오프셋 필터는 상기 LCU(largest coding unit) 단위로 샘플 적응적 오프셋 필터링을 수행하는 인-루프 필터링 장치.
  13. 제12항에 있어서,
    상기 내부 메모리 및 상기 외부 메모리 중에서 적어도 하나의 메모리는 상기 라인버퍼에 영상의 너비를 기준으로 선정된 크기의 영역을 저장하고, LCU(largest coding unit)의 라인 단위로 상기 라인버퍼를 업데이트하는 인-루프 필터링 장치.
  14. 외부 메모리에서, 복호화된 프레임들을 저장하는 단계;
    내부 메모리에서, 디블록킹 필터링 및 샘플 적응적 오프셋 필터링에 사용되는 픽셀들을 저장하는 단계;
    수평 디블록킹 필터에서, 상기 내부 메모리에 저장되는 픽셀들 중에서 LCU(largest coding unit) 및 상기 LCU(largest coding unit)에 인접하는 픽셀들을 이용하여, 상기 입력된 픽셀들에 대해서 입력된 영역 내의 수직 엣지 경계들에서 수평 방향으로 디블록킹 필터링을 수행하는 단계;
    수직 디블록킹 필터에서, 상기 수평 방향으로 디블록킹 필터링된 픽셀들을 이용하여, 상기 입력된 영역 내의 수평 에지 경계들에서 수직 방향으로 디블록킹 필터링을 수행하는 단계; 및
    샘플 적응적 오프셋 필터에서, 상기 입력된 영역 내에서 상기 수평 방향으로 디블록킹 필터링된 픽셀들을 이용하여, 샘플 적응적 오프셋 필터링을 수행하는 단계
    를 포함하는 인-루프 필터링 방법.
  15. 제14항에 있어서,
    상기 수평 방향으로 디블록킹 필터링을 수행하는 단계는,
    상기 LCU(largest coding unit)에 인접하는 픽셀들 중에서 상기 LCU(largest coding unit)의 좌측, 좌상측, 및 상측에 위치하는 픽셀들을 이용하여 상기 디블록킹 필터링을 수행하는 단계
    를 포함하는 인-루프 필터링 방법.
  16. 제14항에 있어서,
    상기 외부 메모리에서, LCU(largest coding unit) 단위로 인-루프 필터링을 수행하는 경우에 인-루프 필터링 과정에 사용되는 참조 픽셀 값들을 저장하는 단계
    를 더 포함하는 인-루프 필터링 방법.
  17. 제14항에 있어서,
    상기 내부 메모리에서, HEVC(High Efficiency Video Coding) 복호화기가 프레임 단위로 영상을 복원한 후 프레임에 단위로 디블록킹 필터링과 샘플 적응적 오프셋 필터링을 순차적으로 수행하는 경우에 상기 외부 메모리로부터 LCU(largest coding unit) 단위로 필터링에 필요한 픽셀들을 로드하는 단계
    를 포함하는 인-루프 필터링 방법.
  18. 제14항 내지 제17항 중에서 어느 한 항의 방법을 수행하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.
KR1020130031370A 2013-03-25 2013-03-25 외부 메모리 접근의 대역폭을 감소시키는 lcu단위의 인-루프 필터링 장치 및 방법 KR20140116992A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130031370A KR20140116992A (ko) 2013-03-25 2013-03-25 외부 메모리 접근의 대역폭을 감소시키는 lcu단위의 인-루프 필터링 장치 및 방법
US14/079,071 US20140286442A1 (en) 2013-03-25 2013-11-13 Apparatus and method for in-loop filtering based on largest coding unit for reducing external memory access bandwidth

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130031370A KR20140116992A (ko) 2013-03-25 2013-03-25 외부 메모리 접근의 대역폭을 감소시키는 lcu단위의 인-루프 필터링 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20140116992A true KR20140116992A (ko) 2014-10-07

Family

ID=51569139

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130031370A KR20140116992A (ko) 2013-03-25 2013-03-25 외부 메모리 접근의 대역폭을 감소시키는 lcu단위의 인-루프 필터링 장치 및 방법

Country Status (2)

Country Link
US (1) US20140286442A1 (ko)
KR (1) KR20140116992A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016204374A1 (ko) * 2015-06-18 2016-12-22 엘지전자 주식회사 영상 코딩 시스템에서 영상 필터링 방법 및 장치
WO2019199151A1 (ko) * 2018-04-13 2019-10-17 엘지전자 주식회사 영상 부호화/복호화 방법 및 이를 위한 장치
WO2022098207A1 (ko) * 2020-11-09 2022-05-12 삼성전자 주식회사 인공지능 부호화 및 인공지능 복호화를 수행하기 위한 방법 및 장치

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140056363A1 (en) * 2012-08-23 2014-02-27 Yedong He Method and system for deblock filtering coded macroblocks
US20160165238A1 (en) * 2014-12-09 2016-06-09 Vixs Systems Inc. Neighbor tile buffering for deblock filtering across tile boundaries
EP3295660A4 (en) * 2015-06-03 2019-05-29 MediaTek Inc. METHOD FOR PALLET CODING OF IMAGE AND VIDEO DATA
CN106470341B (zh) 2015-08-17 2020-10-02 恩智浦美国有限公司 媒体显示***
KR20180048735A (ko) * 2015-09-29 2018-05-10 엘지전자 주식회사 영상 코딩 시스템에서 영상 필터링 방법 및 장치
KR20190093343A (ko) * 2018-02-01 2019-08-09 삼성전자주식회사 이미지 처리 방법 및 그 전자 장치
CN109600611B (zh) * 2018-11-09 2021-07-13 北京达佳互联信息技术有限公司 环路滤波方法、环路滤波装置、电子设备和可读介质
CA3134075A1 (en) * 2019-03-24 2020-10-01 Beijing Bytedance Network Technology Co., Ltd. Nonlinear adaptive loop filtering in video processing
CN110855973B (zh) * 2019-11-15 2021-10-26 北方工业大学 基于区域方向性离差和的视频帧内快速算法
CN113489998A (zh) * 2021-05-27 2021-10-08 杭州博雅鸿图视频技术有限公司 一种去块效应滤波方法、装置、电子设备及介质
CN116567231B (zh) * 2023-07-03 2023-12-08 福州时芯科技有限公司 一种用于hevc去方块滤波的***

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5183664B2 (ja) * 2009-10-29 2013-04-17 財團法人工業技術研究院 ビデオ圧縮のためのデブロッキング装置及び方法
US8913656B2 (en) * 2011-10-14 2014-12-16 Mediatek Inc. Method and apparatus for in-loop filtering

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016204374A1 (ko) * 2015-06-18 2016-12-22 엘지전자 주식회사 영상 코딩 시스템에서 영상 필터링 방법 및 장치
US10750170B2 (en) 2015-06-18 2020-08-18 Lg Electronics Inc. Image filtering method and device in image coding system
WO2019199151A1 (ko) * 2018-04-13 2019-10-17 엘지전자 주식회사 영상 부호화/복호화 방법 및 이를 위한 장치
WO2022098207A1 (ko) * 2020-11-09 2022-05-12 삼성전자 주식회사 인공지능 부호화 및 인공지능 복호화를 수행하기 위한 방법 및 장치

Also Published As

Publication number Publication date
US20140286442A1 (en) 2014-09-25

Similar Documents

Publication Publication Date Title
KR20140116992A (ko) 외부 메모리 접근의 대역폭을 감소시키는 lcu단위의 인-루프 필터링 장치 및 방법
US11284117B2 (en) Deblocking filtering
EP3057320A1 (en) Method and apparatus of loop filters for efficient hardware implementation
US10306246B2 (en) Method and apparatus of loop filters for efficient hardware implementation
AU2012327672B2 (en) Method and apparatus for non-cross-tile loop filtering
US11303900B2 (en) Method and apparatus for motion boundary processing
US9967563B2 (en) Method and apparatus for loop filtering cross tile or slice boundaries
US10003798B2 (en) Method and apparatus for reduction of deblocking filter
WO2015070772A1 (en) Method of filter control for block-based adaptive loop filtering
WO2020083108A1 (en) Method and apparatus for reduction of in-loop filter buffer
US8913656B2 (en) Method and apparatus for in-loop filtering
US20110261880A1 (en) Boundary adaptive intra prediction for improving subjective video quality
US11375199B2 (en) Interpolation filter for an inter prediction apparatus and method for video coding
US9344717B2 (en) Method and apparatus for sample adaptive offset in a video decoder
US20160165238A1 (en) Neighbor tile buffering for deblock filtering across tile boundaries
KR102164698B1 (ko) 입력 버퍼를 재사용하는 샘플 적응적 오프셋 처리 장치 및 샘플 적응적 오프셋 처리 장치의 동작 방법
KR20130070191A (ko) 최대코딩유닛 단위의 병렬 인-루프 필터링 방법 및 장치
US11228780B2 (en) Inter prediction apparatus and method for video coding
KR101971012B1 (ko) 영상 처리 장치 및 방법
WO2021061748A1 (en) Video compression with in-loop sub-image level controllable noise generation

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid