KR102423880B1 - 인코더의 작동방법과 상기 인코더를 포함하는 시스템 온 칩의 작동 방법 - Google Patents

인코더의 작동방법과 상기 인코더를 포함하는 시스템 온 칩의 작동 방법 Download PDF

Info

Publication number
KR102423880B1
KR102423880B1 KR1020150140111A KR20150140111A KR102423880B1 KR 102423880 B1 KR102423880 B1 KR 102423880B1 KR 1020150140111 A KR1020150140111 A KR 1020150140111A KR 20150140111 A KR20150140111 A KR 20150140111A KR 102423880 B1 KR102423880 B1 KR 102423880B1
Authority
KR
South Korea
Prior art keywords
block
band position
encoder
determining
band
Prior art date
Application number
KR1020150140111A
Other languages
English (en)
Other versions
KR20170040892A (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 KR1020150140111A priority Critical patent/KR102423880B1/ko
Priority to US15/210,122 priority patent/US10009617B2/en
Publication of KR20170040892A publication Critical patent/KR20170040892A/ko
Application granted granted Critical
Publication of KR102423880B1 publication Critical patent/KR102423880B1/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/48Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using compressed domain processing techniques other than decoding, e.g. modification of transform coefficients, variable length coding [VLC] data or run-length data
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • H04N19/198Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including smoothing of a sequence of encoding parameters, e.g. by averaging, by choice of the maximum, minimum or median value
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • 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/172Methods 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 picture, frame or field
    • 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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • 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
    • 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/182Methods 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 a pixel
    • 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/1883Methods 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 relating to sub-band structure, e.g. hierarchical level, directional tree, e.g. low-high [LH], high-low [HL], high-high [HH]
    • 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/1887Methods 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 a variable length codeword
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/57Motion estimation characterised by a search window with variable size or shape
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Abstract

본 발명은 밴드 포지션에 대한 예측을 수행하고, 가변 길이 코딩 방식을 이용하여 압축률을 최대화할 수 있는 인코더의 작동 방법과 상기 인코더를 포함하는 시스템 온 칩의 작동 방법에 관한 것으로, 비디오 프레임에 포함된 제1블록에 대한 예상 밴드 포지션을 결정하는 단계와, 상기 제1블록에 대한 제1실제 밴드 포지션을 결정하는 단계와, 상기 예상 밴드 포지션과 상기 제1실제 밴드 포지션의 차이값을 코딩하는 단계를 포함한다.

Description

인코더의 작동방법과 상기 인코더를 포함하는 시스템 온 칩의 작동 방법{METHOD FOR OPERATING OF ENCODER, AND METHOD FOR OPERATING SYSTEM ON CHIP INCLUDING ENCODER}
본 발명의 개념에 따른 실시 예는 인코더의 작동 방법에 관한 것으로, 특히 샘플 적응적 오프셋(Sample adaptive offset) 기술에서, 밴드 포지션에 대한 예측을 수행하고, 가변 길이 코딩 방식을 이용하여 압축률을 최대화할 수 있는 인코더의 작동 방법과 상기 인코더를 포함하는 시스템 온 칩의 작동 방법에 관한 것이다.
고해상도 또는 고화질 비디오 컨텐츠를 재생하고 저장할 수 있는 하드웨어의 개발 및 보급에 따라, 고해상도 또는 고화질 비디오 컨텐츠를 효과적으로 부호화하거나 복호화하는 비디오 코덱의 필요성이 증대하고 있다.
동영상 압축 표준인 HEVC(High Efficient Video Code)에서는 원본 영상과 복원 영상 산의 오차를 최소화하기 위해 샘플 적응적 오프셋(Sample Adaptive Offset(SAO)) 기술을 적용하고 있다.
SAO 기술은 밴드 오프셋 타입과 에지 오프셋 타입으로 구분될 수 있다. 이 중 밴드 오프셋 타입에서는, 오프셋 밴드의 위치를 나타내는 파라미터로서. 밴드 포지션값을 부호화하게 된다.
종래의 비디오 코덱은, 상기 밴드 포지션을 부호화할 때, 고정된 비트를 사용하고 있다. 그러나 위와 같은 종래 방법은 비디오 코덱 내의 복잡도나 압축 효율면에서 효율적이지 못한 문제가 있다.
본 발명이 이루고자 하는 기술적 과제는 밴드 포지션에 대한 예측을 수행하고, 가변 길이 코딩 방식을 이용하여 압축률을 최대화할 수 있는 인코더의 작동 방법과 상기 인코더를 포함하는 시스템 온 칩의 작동 방법을 제공하는 것이다.
본 발명의 실시 예들에 따른 인코더의 작동 방법은 비디오 프레임에 포함된 제1블록에 대한 예상 밴드 포지션을 결정하는 단계와, 상기 제1블록에 대한 제1실제 밴드 포지션을 결정하는 단계와, 상기 예상 밴드 포지션과 상기 제1실제 밴드 포지션의 차이값을 코딩하는 단계를 포함한다.
상기 예상 밴드 포지션을 결정하는 단계는, 상기 제1블록에 앞서 처리된 제2블록에 대한 제2실제 밴드 포지션을 상기 예상 밴드 포지션으로 결정할 수 있다.
상기 제2블록은 상기 제1블록에 앞서 처리된 블록들 중에서 처리 순서를 기준으로 상기 제1블록과 가장 가까운 블록일 수 있다.
상기 예상 밴드 포지션을 결정하는 단계는, 상기 제1블록에 앞서 처리된 블록들에 대한 실제 밴드 포지션들의 평균값을 이용하여 상기 예상 밴드 포지션을 결정할 수 있다.
상기 예상 밴드 포지션을 결정하는 단계는, 상기 제1블록의 픽셀값의 전체 범위를 복수의 밴드들로 분할하고, 상기 밴드들 각각에서 상기 픽셀값의 빈도수를 계산하는 단계와, 상기 밴드들 중에서 상기 픽셀값들의 빈도수가 최대인 밴드를 상기 예상 밴드 포지션으로 결정하는 단계를 포함할 수 있다.
상기 예상 밴드 포지션을 결정하는 단계는, 상기 제1블록의 픽셀 값들의 최대값, 최소값, 또는 평균값을 이용하여 상기 예상 밴드 포지션을 결정할 수 있다.
상기 코딩하는 단계는 상기 차이값에 따라 가변되는 제1비트 수로 상기 차이값을 코딩할 수 있다.
상기 인코더의 작동 방법은, 상기 제1블록에 앞서 코딩된 제2블록에 대한 제2실제 밴드 포지션이 존재하는지를 판단하는 단계와, 판단 결과에 따라, 상기 제1실제 밴드 포지션(BP1_A)을 고정된 제2비트 수로 코딩하는 단계를 더 포함할 수 있다.
본 발명의 실시 예들에 따른 인코더와 프로세서를 포함하는 시스템 온 칩의 작동 방법은, 상기 인코더가, 상기 프로세서로부터 제1블록과 제2블록을 포함하는 비디오 프레임을 수신하는 단계와, 상기 인코더가, 상기 제1블록의 제1밴드 포지션을 결정하는 단계와, 상기 인코더가, 제2블록의 제2밴드 포지션과 결정된 제1밴드 포지션과의 차이 값에 따라 가변되는 제1비트 수로 상기 차이값을 코딩하는 단계를 포함한다.
상기 시스템 온 칩의 작동 방법은 결정된 상기 제1밴드 포지션을 제2비트 수로 코딩하는 단계를 더 포함할 수 있다.
본 발명의 실시 예에 따른 인코더의 작동 방법은 밴드 포지션에 대한 예측을 수행하고, 가변 길이 코딩 방식을 이용함으로써, 보다 높은 압축률을 제공할 수 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 데이터 처리 시스템의 블록도이다.
도 2는 도 1에 도시된 인코더의 블록도이다
도 3은 도 1의 인코더에서 처리되는 비디오 프레임을 나타내는 도면이다.
도 4는 도 2에 도시된 SAO 필터와 엔트로피 부호화 유닛의 세부 구성을 나타내는 블록도이다.
도 5는 본 발명의 실시 예에 따른 비디오 프레임에 포함된 블록들 각각의 SAO 타입과 실제 밴드 포지션을 기록한 테이블이다.
도 6은 본 발명의 실시 예들에 따른 BO 타입에서 예상 밴드 포지션의 결정 과정을 설명하기 위한 도면이다.
도 7은 본 발명의 실시 예들에 따른 BO 타입에서 예상 밴드 포지션의 결정 과정을 설명하기 위한 도면이다.
도 8은 본 발명의 실시 예에 따른 SAO 파라미터의 부호화 과정을 설명하기 위한 도면이다.
도 9은 본 발명의 실시 예에 따른 인코더의 작동 방법을 나타내는 플로우 차트이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1구성 요소는 제2구성 요소로 명명될 수 있고 유사하게 제2구성 요소는 제1구성 요소로도 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
도 1은 본 발명의 실시 예에 따른 데이터 처리 시스템의 블록도이다.
도 1을 참조하면, 데이터 처리 시스템(100)은 컨트롤러(200), 이미징 장치(300), 적어도 하나의 메모리(400 및/또는 401), 및 디스플레이(500)를 포함할 수 있다. 실세 예들에 따라, 데이터 처리 시스템(100)은 터치 스크린(501)을 더 포함할 수 있다.
데이터 처리 시스템(100)은 PC(personal computer), 텔레비젼(Television) 또는 모바일 컴퓨팅 장치로 구현될 수 있다. 상기 모바일 컴퓨팅 장치는 랩탑 컴퓨터(laptop computer), 이동 전화기, 스마트 폰(smart phone), 태블릿(tablet) PC, PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PND(personal navigation device 또는 portable navigation device), 휴대용 게임 콘솔(handheld game console), 모바일 인터넷 장치(mobile internet device(MID), 웨어러블 컴퓨터, 사물 인터넷(internet of things(IoT)) 장치, 만물 인터넷(internet of everything(IoE)) 장치, 드론(drone), 또는 e-북 (e-book)으로 구현될 수 있으나 이에 한정되는 것은 아니다.
컨트롤러(200)는 이미징 장치(300), 적어도 하나의 메모리(400 및/또는 401), 및 디스플레이(500)의 작동을 제어할 수 있는 제어 장치를 의미할 수 있다. 실시 예들에 따라, 컨트롤러(200)는 터치 스크린(501)의 작동을 제어할 수 있다.
컨트롤러(200)는 집적 회로(IC), 마더보드, 시스템 온 칩(system on chip(SoC)), 애플리케이션 프로세서 (application processor(AP)) 또는 모바일 AP로 구현될 수 있으나, 이에 한정되는 것은 아니다.
컨트롤러(200)는 버스 구조(210), CPU(central processing unit; 220), 이미지 신호 프로세서(image signal processor(이미지 신호 프로세서); 230), 인코더(240), 적어도 하나의 메모리 컨트롤러(280 및/또는 281), 및 디스플레이 컨트롤러(290)를 포함할 수 있다.
버스 구조(210)는 AMBA(advanced microcontroller bus architecture) 버스, AHB(advanced high-performance bus), APB(advanced peripheral bus), AXI(advanced eXtensible interface), ACE(AXI Coherency Extensions), 또는 ASB(advanced system bus)로 구현될 수 있으나 이에 한정되는 것은 아니다.
CPU(220)는, 버스 구조(210)를 통해, 이미지 신호 프로세서(230), 인코더(240), 적어도 하나의 메모리 컨트롤러(280 및/또는 281), 및 디스플레이 컨트롤러(290)의 작동을 제어할 수 있다. CPU(220)는 하나 또는 그 이상의 코어들을 포함하는 프로세서일 수 있다.
이미지 신호 프로세서(230)는 이미징 장치(300)로부터 출력된 이미지 데이터의 포맷 변환, 상기 이미지 데이터에 대한 노이즈 감소(noise reduction), 및/또는 상기 이미지 데이터에 대한 이미지 향상(image enhancement) 등을 제어할 수 있다.
예컨대, 이미지 신호 프로세서(230)는 이미징 장치(300)로부터 출력된 제1포맷을 갖는 제1이미지 데이터를 제2포맷을 갖는 제2이미지 데이터로 변환할 수 있다. 예컨대, 제1포맷은 베이어(Bayer) 포맷을 의미할 수 있고, 제2포맷은 YUV 포맷, YCbCr 포맷, 또는 RGB 포맷을 의미할 수 있으나 이에 한정되는 것은 아니다.
비록, 도 1에서는 이미지 신호 프로세서(230)가 컨트롤러(200)의 내부에 구현된 실시 예가 도시되어 있으나, 실시 예에 따라 이미지 신호 프로세서(230)는 컨트롤러(200)와 이미징 장치(300) 사이에 배치된 독립적인 반도체 칩으로 구현될 수 있다. 다른 실시 예에 따라 이미지 신호 프로세서(220)가 이미징 장치(300)의 내부에 배치될 때, 이미징 장치(300)의 내부에 배치된 CMOS 이미지 센서 칩과 이미지 신호 프로세서(230)는 하나의 패키지, 예컨대 멀티-칩 패키지(multi-chip package(MCP))로 패키징될 수 있으나 패키지의 타입이 MCP에 한정되는 것은 아니다.
인코더(240)는 이미지 신호 프로세서(230)로부터 출력된 이미지 데이터를 수신하고, 상기 이미지 데이터를 부호화할 수 있다. 부호화된 이미지 데이터(예컨대, 부호화된 비트스트림(bitstream))는 적어도 하나의 메모리 컨트롤러(280 및/또는 281)를 통해 적어도 하나의 메모리(400 및/또는 401)에 저장될 수 있다.
본 발명의 실시 예에 따른 인코더(240)는 HEVC(High Efficiency Video Coding) 비디오 압축 표준을 지원하는 인코더일 수 있으나 이에 한정되는 것은 아니다. 인코더(240)의 구체적인 구조와 작동을 도 2부터 도 9를 참조하여 상세히 설명될 것이다.
적어도 하나의 메모리 컨트롤러(280 및/또는 281)는, CPU(220)의 제어에 따라, 적어도 하나의 메모리(400 및/또는 401)에 대한 데이터 액세스 작동을 제어할 수 있다. 상기 데이터 액세스 작동은 메모리(400)에 데이터를 라이트하는 라이트 작동과 메모리(400)로부터 데이터를 리드하는 리드 작동을 포함할 수 있다.
적어도 하나의 메모리(400 및/또는 401)는 휘발성 메모리 및/또는 불휘발성 메모리를 포함할 수 있다. 휘발성 메모리는 RAM(random access memory), DRAM (dynamic RAM), SRAM(static RAM), 또는 버퍼 메모리를 포함할 수 있다. 불휘발성 메모리는 플래시(flash) 메모리, MRAM(magnetic RAM), 스핀전달토크 MRAM(Spin-Transfer Torque MRAM), FeRAM(ferroelectric RAM), PRAM(phase change RAM), 또는 저항 메모리(resistive RAM(RRAM))로 구현될 수 있다. 플래시(flash) 메모리는 하나 또는 그 이상의 비트들을 저장하는 NAND-타입 플래시 메모리 또는 NOR-타입 플래시 메모리로 구현될 수 있다.
컨트롤러(200)와 메모리(400)는 패키지 온 패키지(package on package(PoP)) 타입 또는 시스템-인-패키지(system-in-package(SiP)) 타입으로 패키징될 수 있다.
디스플레이 컨트롤러(290)는, CPU(220)의 제어에 따라, CPU(220), 인코더(240), 또는 디스플레이 컨트롤러(290)로부터 출력된 이미지 데이터를 디스플레이(500)로 전송할 수 있다.
이미징 장치 (300)는 카메라, CMOS 이미지 센서, CMOS 이미지 센서 칩, 또는 이미지 데이터를 생성할 수 있는 모든 장치를 의미할 수 있다.
이미징 장치(300)는 이미지 데이터를 생성할 수 있는 CMOS 이미지 센서 칩을 포함할 수 있다. 상기 CMOS 이미지 센서 칩은 피사체에 대한 광학 이미지에 상응하는 이미지 데이터를 이미지 신호 프로세서(230)로 출력할 수 있다. 실시 예에 따라, 이미징 장치(300)는 제1시리얼 인터페이스, 예컨대 MIPI®(Mobile Industry Processor Interface) 카메라 시리얼 인터페이스(camera serial interface(CSI))를 통해 이미지 데이터를 이미지 신호 프로세서(230)로 출력할 수 있다.
디스플레이(500)는 디스플레이 컨트롤러(290)로부터 출력된 이미지 데이터를 디스플레이할 수 있다. 컨트롤러(200)는 제2시리얼 인터페이스, 예컨대, MIPI® 디스플레이 시리얼 인터페이스(d이미지 신호 프로세서lay serial interface(DSI))를 통해 이미지 데이터를 디스플레이(500)로 전송할 수 있다.
도 2는 도 1에 도시된 인코더의 블록도이고, 도 3은 도 1의 인코더에서 처리되는 비디오 프레임을 나타내는 도면이다.
도 2와 도 3을 참조하면, 인코더(240)는 입력된 비디오 프레임(IFR)을 블록 단위로 처리할 수 있다. 비디오 프레임(IFR)은 복수의 블록들을 포함할 수 있다. 예컨대, 도 3에서는 16개의 블록들(BL1~BL16)로 분할된 비디오 프레임(IFR)을 도시하고 있으나, 실시 예들에 따라 비디오 프레임(IFR)은 다양한 개수의 블록들로 분할될 수 있다.
비디오 프레임(IFR)은 YUV 포맷을 갖는 프레임, YCbCR 포맷을 갖는 프레임, 또는 RGB 포맷을 갖는 프레임일 수 있으나 이에 한정되는 것은 아니다. 블록은 m*n 픽셀들을 포함할 수 있다. 여기서, m과 n 각각은 2 이상의 자연수일 수 있고, m=n 또는 m≠n일 수 있다. 예컨대, 블록은 16*16 픽셀들, 32*32 픽셀들, 또는 64*64 픽셀들을 포함할 수 있으나 이에 한정되는 것은 아니다.
인코더(240)는 움직임 예측 유닛(241), 움직임 보상 유닛(242), 인트라 예측 유닛(243), 모드 결정 유닛(244), 감산기(245), 변환 유닛(246), 양자화 유닛(247), 엔트로피 부호화 유닛(248), 프레임 버퍼(249), 역양자화 유닛(251), 역변환 유닛(252), 가산기(253), 디블록킹 필터(254), 및 SAO 필터(255)를 포함할 수 있다.
인트라 예측 유닛(243)은 현재 처리 대상이 되는 현재 블록(BL7)과 재구성된 현재 블록(RBL)을 수신하고, 재구성된 현재 블록(RBL)을 이용하여 예측된 블록을 제1예측 블록(EBL1)으로서 모드 결정 유닛(244)으로 전송할 수 있다. 따라서, 제1예측 블록(EBL1)은 동일한 프레임을 참조하여 예측된 블록일 수 있다.
움직임 예측 유닛(241)은 현재 블록(BL7)을 수신하고 현재 블록에 대한 움직임 예측 정보를 움직임 보상 유닛(242)으로 전송할 수 있다. 예컨대, 상기 움직임 예측 정보는 프레임 버퍼(249)에 저장된 이전 프레임에 포함된 이전 블록들 중에서 현재 블록(BL7)과 가장 잘 매칭되는 블록에 대한 위치 정보(PI)일 수 있다.
움직임 보상 유닛(242)은 위치 정보(PI)를 수신하고, 위치 정보(PI)에 해당하는 블록을 프레임 버퍼(249)로부터 리드하고, 리드된 블록을 제2예측 블록(EBL2)으로서 모드 결정 유닛(244)으로 전송할 수 있다. 따라서, 제2예측 블록(EBL2)은 이전 프레임을 참조하여 예측된 블록일 수 있다.
모드 결정 유닛(244)은 현재 블록(BL7), 제1예측 블록(EBL1), 및 제2예측 블록(EBL2)을 수신할 수 있다. 모드 결정 유닛(244)은 제1예측 블록(EBL1)과 제2예측 블록(EBL2) 중에서 어느 하나를 예측 블록(PBL)으로서 출력할 수 있다.
감산기(245)는 현재 블록(BL7)과 모드 결정 유닛(244)으로부터 출력된 예측 블록(PBL)의 차이들을 계산하고, 계산 결과에 해당하는 잔여 블록(RESIDUAL)을 생성할 수 있다.
감산기(245)는 계산 블록 단위로 차이를 계산하고, 블록 단위로 출력할 수 있다. 예컨대, 계산 블록의 크기는 블록의 크기보다 작을 수 있다. 예컨대, 계산 블록이 4*4 픽셀들을 포함할 때, 블록은 16*16 픽셀들을 포함할 수 있으나 이에 한정되는 것은 아니다.
변환 유닛(246)는 감산기(245)로부터 출력된 잔여 블록(RESIDUAL)을 주파수 영역으로 변환하고, 변환된 잔여 블록을 양자화 유닛(246)으로 출력할 수 있다. 양자화 유닛(247)은 변환 유닛(246)으로부터 출력된 변환된 잔여 블록을 양자화하고, 양자화된 잔여 블록을 엔트로피 부호화 유닛(248)과 역양자화 유닛(251)으로 출력할 수 있다.
엔트로피 부호화 유닛(248)은 양자화 유닛(235)으로부터 출력된 양자화된 잔여 블록과 SAO 필터(255)로부터 출력된 SAO 파라미터(SAO_PARA)를 부호화하고, 부호화된 비트스트림(BS)을 출력할 수 있다.
역양자화 유닛(251)은 양자화 유닛(247)으로부터 출력된 양자화된 잔여 블록을 역양자화하고, 역양자화된 잔여 블록을 역변환 유닛(252)으로 출력할 수 있다. 역변환 유닛(252)는 역양자화된 잔여 블록을 역변환하고, 복원된 잔여 블록을 생성할 수 있다.
가산기(253)는 역양자화 유닛(251)으로부터 출력된 복원된 잔여 블록과 모드 결정 유닛(244)으로부터 출력된 예측 블록(PBL)을 더하여 재구성된 현재 블록(RBL)을 생성할 수 있다. 재구성된 현재 블록(RBL)은 디블록킹 필터(254)와 인트라 예측 유닛(243)으로 출력될 수 있다.
디블록킹 필터(254)는 가산기(253)로부터 출력된 재구성된 블록(RBL)의 경계영역에 위치하는 픽셀들에 대해 블로킹 현상을 경감시키기 위한 필터링을 수행할 수 있다.
SAO(sample adaptive offset) 필터(255)는 디블록킹이 수행된 현재 블록에 대해 원본 픽셀과 복원 픽셀 간의 오차를 최소화하기 위해 오프셋 보상을 수행할 수 있다. 오프셋 보상이 수행된 현재 블록은 프레임 버퍼에 저장될 수 있다.
도 4은 도 2에 도시된 SAO 필터와 엔트로피 부호화 유닛의 세부 구성을 나타내는 블록도이고, 도 5는 본 발명의 실시 예에 따른 비디오 프레임에 포함된 블록들 각각의 SAO 타입과 실제 밴드 포지션을 기록한 테이블이다.
도 4를 참조하면, SAO 필터(255)는 디블록킹이 수행된 현재 블록의 오프셋 조정을 위한 SAO 파라미터들, 즉 SAO 타입(TYPE), 오프셋(OFFS), 실제 밴드 포지션(BP_A)과 예상 밴드 포지션(BP_P)의 차이값(BP_DIF)을 결정하고, 결정된 SAO 파라미터들을 엔트로피 부호화 유닛(248)으로 출력할 수 있다.
SAO 필터(255)는 SAO 파라미터 결정 유닛(255-1)과 밴드 포지션 예측 유닛(255-2)을 포함할 수 있다.
SAO 파라미터 결정 유닛(255-1)는 현재 블록의 SAO 타입(TYPE)을 결정할 수 있다. 예컨대, SAO 파라미터 결정 유닛(255-1)는 현재 블록 내의 픽셀값 특징에 따라, 에지 오프셋(edge offset(EO)) 타입과 밴드 오프셋(band offset(BO) 타입 중에서 어느 하나를 현재 블록의 SAO 타입으로 결정할 수 있다.
예컨대, 도 3과 도 5를 참조하면, 이전에 처리된 블록들 중에서 제1블록, 제3블록, 제4블록, 및 제5블록은 BO 타입일 수 있고, 제2블록과 제6블록은 EO 타입일 수 있다. 또한, 현재 처리될 블록인 제7블록은 BO 타입일 수 있다.
여기서, EO 타입은 에지의 방향성에 기초하여 오프셋을 조정하는 방식을 의미할 수 있고, BO 타입은 화소값의 크기에 기초하여 오프셋을 조정하는 방식을 의미할 수 있다.
도 6은 본 발명의 실시 예들에 따른 BO 타입에서 예상 밴드 포지션의 결정 과정을 설명하기 위한 도면이다.
도 4와 도 6을 참조하면, 현재 블록에 대한 SAO 타입이 BO 타입으로 결정된 경우, SAO 파라미터 결정 유닛(255-1)은 현재 블록의 오프셋 밴드들(OB)과 상기 오프셋 밴드들 각각에 대한 오프셋값(OFFS)을 결정할 수 있다.
오프셋 밴드들(OB)은 최적의 율-왜곡(rate-distortion) 비용을 갖는 복수의 밴드들로서, 현재 블록에서 오프셋 보상이 적용될 밴드들의 집합을 의미할 수 있다. 오프셋(OFFS)은 현재 블록에 대한 원본 픽셀과 복원 픽셀들 사이의 오차들의 평균값을 의미할 수 있다.
도 6을 참조하면, 현재 블록에서 픽셀값의 총 범위는 균등 또는 비균등한 간격을 갖는 복수의 밴드들로 분할될 수 있다.
예컨대, 픽셀값이 8비트로 표현될 때, 픽셀값의 총 범위는 0부터 255까지이고 32개의 밴드들(B0~B31)로 균등하게 분할될 수 있다. 즉, 제0밴드(B0)는 0부터 7까지의 픽셀값들을 포함하고, 제1밴드(B1)는 8부터 15까지의 픽셀값들을 포함하고, 제k밴드는 8k 부터 8k+7까지의 픽셀값들을 포함할 수 있다.
이 경우, SAO 파라미터 결정 유닛(255-1)은 복수의 밴드들 중에서 일부의 밴드들을 오프셋 밴드(OB)들로 결정할 수 있다. 예컨대, SAO 파라미터 결정 유닛(255-1)은 연속된 4개의 밴드(예컨대, 제10밴드 내지 제13밴드(B10~B13))를 오프셋 밴드들(OB)로 결정할 수 있다.
SAO 파라미터 결정 유닛(255-1)은 오프셋 밴드들(OB)에 대한 오프셋들(OFFS)들을 결정할 수 있다.
예컨대, SAO 파라미터 결정 유닛(255-1)은 80부터 87까지의 픽셀값들을 포함하는 제10밴드에 대한 제1오프셋값을 결정할 수 있고, 88부터 95까지의 픽셀값을 포함하는 제11밴드에 대한 제2오프셋값을 결정할 수 있고, 96부터 103까지의 픽셀값을 포함하는 제12밴드에 대한 제3오프셋값을 결정할 수 있고, 104부터 111까지의 픽셀값을 포함하는 제13밴드에 대한 제4오프셋값을 결정할 수 있다.
SAO 파라미터 결정 유닛(255-1)은 오프셋 밴드들(OB)의 실제 위치를 나타내는 실제 밴드 포지션(BP_A)을 결정할 수 있다.
예컨대, 도 6에 도시된 바와 같이 연속된 제10밴드 내지 제13밴드(B10~B13)가 오프셋 밴드들(OB)로 결정된 경우, SAO 파라미터 결정 유닛(255-1)은 상기 오프셋 밴드들(OB) 중에서 밴드의 인덱스가 증가하는 방향을 기준으로 첫 번째 위치하는 밴드, 즉 가장 좌측 밴드인 제10밴드(B10)를 현재 블록의 실제 밴드 포지션(BP_A)으로 결정할 수 있다.
도 4 내지 도 6을 참조하면, 밴드 포지션 예측 유닛(255-2)은 현재 블록(BL7)에 대한 예상 밴드 포지션(BP_P)을 결정할 수 있다.
실시 예들에 따라, 밴드 포지션 예측 유닛(255-2)은, 밴드 포지션 테이블(255-3)을 참조하여, 현재 블록(BL7)에 앞서 처리된 이전 블록들(BL1~BL6)에 대한 실제 밴드 포지션들 중에서 어느 하나를 예상 밴드 포지션(BP_P)으로 결정할 수 있다.
예컨대, 밴드 포지션 예측 유닛(255-2)은 BO 타입으로 처리된 이전 블록들(BL1, BL3, BL4, 및 BL5) 중에서 처리 순서상으로 현재 블록과 가장 가까운 블록인 제5블록(BL5)의 실제 밴드 포지션을 현재 블록(BL7)의 예상 밴드 포지션으로 결정할 수 있다. 즉, 밴드 포지션 예측 유닛(255-2)은 제11밴드를 현재 블록(BL7)의 예상 밴드 포지션(BP_P)으로 결정할 수 있다.
실시 예들에 따라, 밴드 포지션 예측 유닛(255-2)은, 밴드 포지션 테이블(255-3)을 참조하여, 현재 블록(BL7)에 앞서 처리된 이전 블록들(BL1~BL6)에 대한 실제 밴드 포지션들의 평균값을 이용하여 예상 밴드 포지션(BP_P)을 결정할 수 있다.
예컨대, 밴드 포지션 예측 유닛(255-2)은 BO 타입으로 처리된 이전 블록들(BL1, BL3, BL4, 및 BL5)에 대한 실제 밴드 포지션의 평균값(=8)에 기초하여, 제8밴드를 현재 블록(BL7)의 예상 밴드 포지션(BP_P)으로 결정할 수 있다.
도 7은 본 발명의 실시 예들에 따른 BO 타입에서 예상 밴드 포지션의 결정 과정을 설명하기 위한 도면이다.
도 4와 도 7을 참조하면, 밴드 포지션 예측 유닛(255-2)은 현재 블록(BL7)에 포함된 픽셀값들을 이용하여 예상 밴드 포지션(BP_P)을 결정할 수 있다.
실시 예들에 따라, 밴드 포지션 예측 유닛(255-2)은 각각의 밴드들에서 픽셀값들의 빈도수를 이용하여 예상 밴드 포지션(BP_P)을 결정할 수 있다.
예컨대, 도 7을 참조하면, 픽셀값들은 도 6에서와 같이, 0부터 255까지의 값을 가질 수 있고, 32개의 밴드들로 균등하게 분할될 수 있다. 현재 블록이 16*16 픽셀들을 포함할 때, 픽셀들 각각은 픽셀값에 따라 밴드들 각각에 대응될 수 있다. 이때, 각각의 밴드에서 대응된 픽셀의 수를 계산하고, 픽셀값들의 빈도수가 최대인 제7밴드(BL7)를 예상 밴드 포지션(BP_P)으로 결정할 수 있다.
실시 예들에 따라, 밴드 포지션 예측 유닛(255-2)는 현재 블록의 픽셀값들의 최대값, 최소값, 또는 평균값을 이용하여 예상 밴드 포지션을 결정할 수 있다.
도 8은 본 발명의 실시 예에 따른 SAO 파라미터의 부호화 과정을 설명하기 위한 도면이다.
도 4 내지 도 8을 참조하면, 엔트로피 부호화 유닛(248)은 SAO 파라미터 부호화 유닛(248-1)을 포함할 수 있다.
SAO 파라미터 부호화 유닛(248-1)은 SAO 필터(255)로부터 제공된 SAO 파라미터, 즉 SAO 타입(TYPE), 오프셋(OFFS), 실제 밴드 포지션과 예상 밴드 포지션의 차이값(BP_DIF)을 부호화할 수 있다.
실시 예들에 따라, SAO 파라미터 부호화 유닛(248-1)은 상기 SAO 파라미터들과 함께 현재 블록의 실제 밴드 포지션(BP_A)을 제공받을 수 있고, 실제 밴드 포지션(BP_A)을 고정된 비트 수로 부호화할 수 있다.
예컨대, 실제 밴드 포지션(BP_A)은 제0밴드부터 제31밴드 중에서 어느 하나의 밴드일 수 있고, 5비트를 이용하여 부호화될 수 있다. 구체적으로, 현재 블록(BL7)의 실제 밴드 포지션(BP_A)이 제10밴드일 때, 실제 밴드 포지션(BP_A)은 5비트의 코드(예컨대, 01010)로 부호화될 수 있다.
실시 예들에 따라, SAO 파라미터 부호화 유닛(248-1)는 현재 블록에 대한 의 실제 밴드 포지션(BP_A)과 예상 밴드 포지션(BP_P)의 차이값(BP_DIF)을 가변 길이 코딩 방식에 따라 부호화할 수 있다.
즉, SAO 파라미터 부호화 유닛(248-1)은 현재 블록에 대한 실제 밴드 포지션(BP_A)과 예상 밴드 포지션(BP_P)의 차이값(BP_DIF)에 따라 가변되는 비트 수로 차이값((BP_DIF)을 부호화할 수 있다.
예컨대, 도 8을 참조하면, 실제 밴드 포지션(BP_A)과 예상 밴드 포지션(BP_P)의 차이값(BP_DIF)이 -1일 때, SAO 파라미터 부호화 유닛(248-1)는 상기 차이값을 2비트의 코드(예컨대, 11)로 부호화할 수 있다. 또한, 실제 밴드 포지션(BP_A)과 예상 밴드 포지션(BP_P)의 차이값(BP_DIF)이 3일 때, SAO 파라미터 부호화 유닛(248-1)은 상기 차이값을 3비트의 코드(예컨대, 110)로 부호화할 수 있다.
가변 길이 코딩 방식은 부호화될 값에 따라 가변의 비트 길이를 할당하여 부호화하는 것을 의미할 수 있다. 예컨대, 가변 길이 코딩 방식은 Huffman 코딩, Lempel-Ziv 코딩, arithmetic 코딩, Shannon-Fano 코딩, 및 Exponential golomb 코딩 중 어느 하나일 수 있으나, 이에 한정되는 것은 아니다.
도 9은 본 발명의 실시 예에 따른 인코더의 작동 방법을 나타내는 플로우 차트이다.
도 4 내지 도 9를 참조하면, SAO 필터(255)의 SAO 파라미터 결정 유닛(255-1)은 현재 블록의 오프셋 조종을 위한 SAO 타입을 결정할 수 있다.
즉, SAO 파라미터 결정 유닛(255-1)은 현재 블록의 픽섹값 특징에 따라 BO 타입과 EO 타입 중 어느 하나를 SAO 타입으로 결정할 수 있다.
SAO 타입이 BO 타입으로 결정된 경우, SAO 파라미터 결정 유닛(255-1)은 현재 블록의 오프셋 밴드들(OB)을 결정하고, 상기 오프셋 밴드들 각각에 대한 오프셋값들을 결정할 수 있다.
SAO 파라미터 결정 유닛(255-1)은 상기 오프셋 밴드들의 실제 위치와 관련된 현재 블록에 대한 실제 밴드 포지션(BP_A)을 결정할 수 있다(S110).
예컨대, 오프셋 밴드들(OB)은 복수의 밴드들 중에서 최적의 율-왜곡 비용을 갖는 밴드들로서, 연속된 밴드들일 수 있다. 이 경우, 상기 실제 밴드 포지션(BP_P)은 상기 오프셋 밴드들 중에서 인덱스가 증가하는 방향을 기준으로 첫 번째에 위치하는 밴드일 수 있다.
SAO 파라미터 결정 유닛(255-1)은 현재 블록에 앞서 처리된 블록들에 대한 실제 밴드 포지션이 존재하는지를 판단할 수 있다(S120).
판단 결과, 현재 블록에 앞서 처리된 블록들에 대한 실제 밴드 포지션이 존재하지 않는 경우, SAO 파라미터 결정 유닛(255-1)은 단계 110에서 결정된 현재 블록의 실제 밴드 포지션(BP_A)을 고정된 비트 수로 부호화할 수 있다(S150).
판단 결과, 현재 블록에 앞서 처리된 블록들에 대한 실제 밴드 포지션이 존재하는 경우, 밴드 포지션 예측 유닛(255-2)은 현재 블록에 대한 예상 밴드 포지션을 결정할 수 있다(S130).
실시 예들에 따라, 밴드 포지션 예측 유닛(255-2)은, 밴드 포지션 테이블(255-3)을 참조하여, 현재 블록(BL7)에 앞서 처리된 이전 블록들(BL1~BL6)에 대한 실제 밴드 포지션들 중에서 어느 하나를 예상 밴드 포지션(BP_P)으로 결정할 수 있다.
예컨대, 밴드 포지션 예측 유닛(255-2)은 BO 타입으로 처리된 이전 블록들(BL1, BL3, BL4, 및 BL5) 중에서 처리 순서상으로 현재 블록과 가장 가까운 블록인 제5블록(BL5)의 실제 밴드 포지션을 현재 블록(BL7)의 예상 밴드 포지션으로 결정할 수 있다. 즉, 밴드 포지션 예측 유닛(255-2)은 제11밴드를 현재 블록(BL7)의 예상 밴드 포지션(BP_P)으로 결정할 수 있다.
실시 예들에 따라, 밴드 포지션 예측 유닛(255-2)은, 밴드 포지션 테이블(255-3)을 참조하여, 현재 블록(BL7)에 앞서 처리된 이전 블록들(BL1~BL6)에 대한 실제 밴드 포지션들의 평균값을 이용하여 예상 밴드 포지션(BP_P)을 결정할 수 있다.
SAO 파라미터 부호화 유닛(248-1)은 실제 밴드 포지션(BP_A)과 예상 밴드 포지션(BP_P)의 차이값(BP_DIF)을 가변 길이 코딩 방식에 따라 부호화할 수 있다(S140).
즉, SAO 파라미터 부호화 유닛(248-1)은 현재 블록에 대한 실제 밴드 포지션(BP_A)과 예상 밴드 포지션(BP_P)의 차이값(BP_DIF)에 따라 가변되는 비트 수로 차이값((BP_DIF)을 부호화할 수 있다.
가변 길이 코딩 방식은 부호화될 값에 따라 가변의 비트 길이를 할당하여 부호화하는 것을 의미할 수 있다. 예컨대, 가변 길이 코딩 방식은 Huffman 코딩, Lempel-Ziv 코딩, arithmetic 코딩, Shannon-Fano 코딩, 및 Exponential golomb 코딩 중 어느 하나일 수 있으나, 이에 한정되는 것은 아니다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함할 수 있다.
컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 및 광 데이터 저장장치를 포함할 수 있으나, 이에 한정되지 않는다.
또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100 : 데이터 처리 시스템
200 : 컨트롤러
210 : 버스
220 : CPU
230 : 이미지 신호 프로세서
240 : 인코더
255 : SAO 필터
255-1 : SAO 파라미터 결정 유닛
255-2 : 밴드 포지션 예측 유닛
248 : 엔트로피 부호화 유닛
248-1 : SAO 파라미터 부호화 유닛
280 : 메모리 컨트롤러
290 : 디스플레이 컨트롤러
300 : 이미징 장치
400 : 메모리
500 : 디스플레이

Claims (10)

  1. 인코더의 작동 방법에 있어서,
    상기 인코더가, 비디오 프레임에 포함된 제1블록에 대한 예상 밴드 포지션을 결정하는 단계;
    상기 인코더가, 상기 제1블록에 대한 제1실제 밴드 포지션을 결정하는 단계; 및
    상기 인코더가, 상기 예상 밴드 포지션과 상기 제1실제 밴드 포지션의 차이값을 코딩하는 단계를 포함하되,
    상기 예상 밴드 포지션을 결정하는 단계는,
    상기 제1블록의 처리에 앞서 처리된 제2블록에 대한 제2실제 밴드 포지션을 상기 예상 밴드 포지션으로 결정하는 작동 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 제2블록은 상기 제1블록의 처리에 앞서 처리된 하나 이상의 블록들 중에서 처리 순서를 기준으로 상기 제1블록과 가장 가까운 블록인 작동 방법.
  4. 제1항에 있어서,
    상기 예상 밴드 포지션을 결정하는 단계는,
    상기 제1블록에 앞서 처리된 하나 이상의 블록들에 대한 실제 밴드 포지션들의 평균값을 이용하여 상기 예상 밴드 포지션을 결정하는 작동 방법.
  5. 제1항에 있어서,
    상기 예상 밴드 포지션을 결정하는 단계는,
    상기 제1블록의 픽셀값들의 전체 범위를 복수의 밴드들로 분할하는 단계;
    상기 복수의 밴드들의 각각에서 원하는 픽셀값의 빈도수를 계산하는 단계; 및
    상기 복수의 밴드들 중에서 상기 원하는 픽셀값의 빈도수가 최대인 밴드를 상기 예상 밴드 포지션으로 결정하는 단계를 포함하는 작동 방법.
  6. 제1항에 있어서,
    상기 예상 밴드 포지션을 결정하는 단계는,
    상기 제1블록과 관련된 적어도 하나의 픽셀값의 최대값, 최소값, 또는 평균값 중 하나를 이용하여 상기 예상 밴드 포지션을 결정하는 단계를 포함하는 작동 방법.
  7. 제1항에 있어서,
    상기 차이값을 코딩하는 단계는 상기 차이값에 기반하는 제1비트 수를 이용하여 상기 차이값을 코딩하는 작동 방법.
  8. 제1항에 있어서,
    상기 인코더가, 상기 제1블록에 앞서 처리된 제2블록에 대한 제2실제 밴드 포지션이 존재하는지를 판단하는 단계; 및
    상기 인코더가, 상기 제2실제 밴드 포지션에 대한 상기 판단 결과에 대응하는 제2비트 수로 상기 제1실제 밴드 포지션을 코딩하는 단계를 더 포함하는 작동 방법.
  9. 인코더와 프로세서를 포함하는 시스템 온 칩 상의 상기 인코더의 작동 방법에 있어서,
    상기 인코더가, 상기 프로세서로부터 제1블록과 제2블록을 포함하는 비디오 프레임을 수신하는 단계;
    상기 인코더가, 상기 제1 블록의 제1밴드 포지션을 결정하는 단계;
    상기 인코더가, 상기 제2블록의 제2밴드 포지션과 상기 제1밴드 포지션과의 차이값을 제1비트 수로 코딩하는 단계; 및
    상기 인코더가, 제2비트 수를 이용하여 상기 제1밴드 포지션을 코딩하는 단계를 포함하되,
    상기 제1비트 수는 상기 차이값에 따라 가변하는 작동 방법.


















  10. 삭제
KR1020150140111A 2015-10-06 2015-10-06 인코더의 작동방법과 상기 인코더를 포함하는 시스템 온 칩의 작동 방법 KR102423880B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150140111A KR102423880B1 (ko) 2015-10-06 2015-10-06 인코더의 작동방법과 상기 인코더를 포함하는 시스템 온 칩의 작동 방법
US15/210,122 US10009617B2 (en) 2015-10-06 2016-07-14 Method of operating encoder and method of operating system on chip including the encoder

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150140111A KR102423880B1 (ko) 2015-10-06 2015-10-06 인코더의 작동방법과 상기 인코더를 포함하는 시스템 온 칩의 작동 방법

Publications (2)

Publication Number Publication Date
KR20170040892A KR20170040892A (ko) 2017-04-14
KR102423880B1 true KR102423880B1 (ko) 2022-07-21

Family

ID=58447726

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150140111A KR102423880B1 (ko) 2015-10-06 2015-10-06 인코더의 작동방법과 상기 인코더를 포함하는 시스템 온 칩의 작동 방법

Country Status (2)

Country Link
US (1) US10009617B2 (ko)
KR (1) KR102423880B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019082291A1 (ja) * 2017-10-25 2019-05-02 株式会社ソシオネクスト 符号化方法、復号方法、符号化装置、復号装置、符号化プログラム及び復号プログラム
JP2021057620A (ja) * 2018-01-09 2021-04-08 シャープ株式会社 画像フィルタ装置、画像復号装置、画像符号化装置、およびデータ構造
CN111444138B (zh) * 2019-01-16 2024-03-15 深圳市茁壮网络股份有限公司 一种文件局部修改方法及系统

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9008170B2 (en) * 2011-05-10 2015-04-14 Qualcomm Incorporated Offset type and coefficients signaling method for sample adaptive offset
CN104980756A (zh) * 2011-06-28 2015-10-14 三星电子株式会社 根据像素分类使用偏移调整的视频解码方法及其设备
US10051289B2 (en) 2011-11-04 2018-08-14 Qualcomm Incorporated Adaptive center band offset filter for video coding
GB201119206D0 (en) 2011-11-07 2011-12-21 Canon Kk Method and device for providing compensation offsets for a set of reconstructed samples of an image
US9161035B2 (en) 2012-01-20 2015-10-13 Sony Corporation Flexible band offset mode in sample adaptive offset in HEVC
EP3442227B1 (en) 2012-02-29 2020-04-22 LG Electronics Inc. Inter-layer prediction method and apparatus
KR20130116832A (ko) * 2012-04-16 2013-10-24 삼성전자주식회사 트리 구조의 부호화 단위에 기초한 다시점 비디오 부호화 방법 및 그 장치, 트리 구조의 부호화 단위에 기초한 다시점 비디오 복호화 방법 및 그 장치
US9277211B2 (en) 2012-04-20 2016-03-01 Futurewei Technologies, Inc. Binarization scheme for intra prediction residuals and improved intra prediction in lossless coding in HEVC
JP2013251827A (ja) 2012-06-01 2013-12-12 Sharp Corp 画像フィルタ装置、画像復号装置、画像符号化装置、およびデータ構造
AU2012203828B2 (en) * 2012-06-28 2015-12-10 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a sample adaptive offset data of encoded video data
KR20140005099A (ko) 2012-07-02 2014-01-14 한국전자통신연구원 영상 부호화/복호화 방법 및 장치
EP2903282A4 (en) 2012-09-28 2016-05-25 Samsung Electronics Co Ltd METHOD OF SAO COMPENSATION FOR CODING INTERMEDIATE LAYER FORESIGN ERRORS AND DEVICE THEREFOR
US9596461B2 (en) * 2012-11-26 2017-03-14 Qualcomm Incorporated Loop filtering across constrained intra block boundaries in video coding
US9532057B2 (en) * 2012-12-28 2016-12-27 Qualcomm Incorporated Inter-layer prediction using sample-adaptive adjustments for bit depth scalable video coding
US20140348222A1 (en) * 2013-05-23 2014-11-27 Mediatek Inc. Method of Sample Adaptive Offset Processing for Video Coding and Inter-Layer Scalable Coding
CN105993174B (zh) 2013-12-12 2020-03-13 三星电子株式会社 用于用信号传送sao参数的视频编码方法和设备以及视频解码方法和设备
JP6253406B2 (ja) 2013-12-27 2017-12-27 キヤノン株式会社 画像符号化装置、撮像装置、画像符号化方法、及びプログラム
US10602187B2 (en) * 2015-11-30 2020-03-24 Intel Corporation Efficient, compatible, and scalable intra video/image coding using wavelets and HEVC coding

Also Published As

Publication number Publication date
US20170099492A1 (en) 2017-04-06
KR20170040892A (ko) 2017-04-14
US10009617B2 (en) 2018-06-26

Similar Documents

Publication Publication Date Title
US8433147B2 (en) Encoding apparatus and method, and decoding apparatus and method
KR102274747B1 (ko) 코덱과 이를 포함하는 시스템 온 칩, 및 상기 시스템 온 칩을 포함하는 데이터 처리 시스템
US10271050B2 (en) Methods, systems and devices including an encoder for image processing
US10645386B1 (en) Embedded codec circuitry for multiple reconstruction points based quantization
KR102423880B1 (ko) 인코더의 작동방법과 상기 인코더를 포함하는 시스템 온 칩의 작동 방법
US10506233B2 (en) Encoder for determining quantization parameter adaptively and application processor having the same
CN109672890B (zh) 视频编码器件及编码器
US10097830B2 (en) Encoding device with flicker reduction
US10694178B2 (en) Video processing device for encoding frames constituting hierarchical structure
JP2016528810A (ja) 非変換符号化のためのスキャン順序
US10798419B2 (en) Embedded codec circuitry for sub-block based encoding of quantized prediction residual levels
US10728557B2 (en) Embedded codec circuitry for sub-block based entropy coding of quantized-transformed residual levels
US8655088B2 (en) Image encoder, image decoder and method for encoding original image data
US10750182B2 (en) Embedded codec circuitry for visual quality based allocation of refinement bits
US20190124333A1 (en) Multi-codec encoder and multi-codec encoding system including the same
US10939107B2 (en) Embedded codec circuitry for sub-block based allocation of refinement bits
JP6410513B2 (ja) 画像符号化装置及び方法
US20200162746A1 (en) Embedded codec circuitry for randomized refinement of uncoded-bits
US20200092559A1 (en) Embedded codec circuitry and method for frequency-dependent coding of transform coefficients
KR20240029439A (ko) 이미지 처리 장치 및 이미지 처리 장치의 동작 방법
JP2015103969A (ja) 画像符号化装置及び画像符号化方法

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