KR100617086B1 - 비디오 디코더의 인트라 예측 장치 - Google Patents

비디오 디코더의 인트라 예측 장치 Download PDF

Info

Publication number
KR100617086B1
KR100617086B1 KR1020050014552A KR20050014552A KR100617086B1 KR 100617086 B1 KR100617086 B1 KR 100617086B1 KR 1020050014552 A KR1020050014552 A KR 1020050014552A KR 20050014552 A KR20050014552 A KR 20050014552A KR 100617086 B1 KR100617086 B1 KR 100617086B1
Authority
KR
South Korea
Prior art keywords
data
intra
mode
output
mux
Prior art date
Application number
KR1020050014552A
Other languages
English (en)
Other versions
KR20060093806A (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 KR1020050014552A priority Critical patent/KR100617086B1/ko
Publication of KR20060093806A publication Critical patent/KR20060093806A/ko
Application granted granted Critical
Publication of KR100617086B1 publication Critical patent/KR100617086B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03BAPPARATUS OR ARRANGEMENTS FOR TAKING PHOTOGRAPHS OR FOR PROJECTING OR VIEWING THEM; APPARATUS OR ARRANGEMENTS EMPLOYING ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ACCESSORIES THEREFOR
    • G03B21/00Projectors or projection-type viewers; Accessories therefor
    • G03B21/54Accessories
    • G03B21/56Projection screens
    • G03B21/60Projection screens characterised by the nature of the surface
    • G03B21/62Translucent screens
    • G03B21/625Lenticular translucent screens
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/48Laser speckle optics
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B5/00Optical elements other than lenses
    • G02B5/02Diffusing elements; Afocal elements
    • G02B5/0205Diffusing elements; Afocal elements characterised by the diffusing properties
    • G02B5/021Diffusing elements; Afocal elements characterised by the diffusing properties the diffusion taking place at the element's surface, e.g. by means of surface roughening or microprismatic structures
    • G02B5/0231Diffusing elements; Afocal elements characterised by the diffusing properties the diffusion taking place at the element's surface, e.g. by means of surface roughening or microprismatic structures the surface having microprismatic or micropyramidal shape
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B5/00Optical elements other than lenses
    • G02B5/02Diffusing elements; Afocal elements
    • G02B5/0273Diffusing elements; Afocal elements characterized by the use
    • G02B5/0284Diffusing elements; Afocal elements characterized by the use used in reflection
    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03BAPPARATUS OR ARRANGEMENTS FOR TAKING PHOTOGRAPHS OR FOR PROJECTING OR VIEWING THEM; APPARATUS OR ARRANGEMENTS EMPLOYING ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ACCESSORIES THEREFOR
    • G03B21/00Projectors or projection-type viewers; Accessories therefor
    • G03B21/54Accessories
    • G03B21/56Projection screens
    • G03B21/60Projection screens characterised by the nature of the surface
    • G03B21/602Lenticular screens

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Optics & Photonics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명은 이동형 방송 수신기의 비디오 디코딩을 위한 인트라 예측 장치에 관한 것이다. 특히 본 발명은 Intra_Luma_plane 모드와 Intra_chroma_plane 모드의 일부 구성 요소와 데이터 패스 자원(Data-path Resource)을 공유(Sharing)함으로써, 하드웨어 면적을 줄이는 효과가 있다. 특히 상기 Intra_Luma_plane 모드와 Intra_chroma_plane 모드일 때 수식을 간소화함으로써, 데이터 패스를 더 단순하게 구성하여 하드웨어 면적을 더 작게 하고 소모되는 전력을 더욱 줄일 수 있다. 그리고 상기 Intra_Luma_plane 모드와 Intra_chroma_plane 모드를 제외한 나머지 필터링 모드(Filtering Mode)의 데이터 패스 자원을 공유함으로써, 하드웨어 면적을 더욱 줄일 수 있고 더불어 전력 소모도 더욱 줄일 수 있다. 이와 같이 본 발명은 다양한 인트라 예측 모드에서 데이터 패스의 일부 자원을 공유하고, 모든 연산을 파이프라인시킴으로써, 하드웨어 면적을 줄이고, 고 성능, 저 전력화가 가능한 이동형 방송 수신기를 구현할 수 있다.
H.264, 인트라 예측

Description

비디오 디코더의 인트라 예측 장치{Intra predictor of video decoder}
도 1a, 도 1b는 다양한 인트라 예측 모드 및 그에 대한 간략한 설명을 표로 보인 도면
도 2는 본 발명에 따른 인트라 예측 장치의 일 실시예를 보인 구성 블록도
도 3은 도 2의 제2 데이터 처리부의 일 실시예를 보인 상세 블록도
도 4 내지 도 7은 제2 데이터 처리부에서 사용되는 해당 인트라 예측 모드를 위한 데이터 패스의 예를 보인 도면
도 8은 도 2의 제3 데이터 처리부에서 수행되는 플레인 모드를 간소화한 수학식을 표로 보인 도면
도 9는 도 8의 수학식을 하드웨어로 구현한 제3 데이터 처리부의 상세 블록도
도 10a 내지 도 10c는 도 9의 제3 데이터 처리부에서 사용되는 플레인 모드를 위한 데이터 패스의 예를 보인 도면
도면의 주요부분에 대한 부호의 설명
110 : 데이터 입력부
111~113 : 제1 내지 제3 데이터 처리부
114 : 선택부 115 : 데이터 합성부
310,410 : 제1,제2 레지스터부 320,420 : 제1,제2 가산 연산부
330,430 : 제1,제2 누산부 500,600 : 제1,제2 플레인 연산부
본 발명은 이동형 방송 수신기의 동영상 디코더에 관한 것으로 특히 인트라 예측(Intra Prediction)을 위한 비디오 디코더에 관한 것이다.
일반적으로 이동형 방송 예를 들어, 디지털 멀티미디어 방송(Digital Multimedia Broadcasting : DMB)은 크게 지상파 DMB와 위성 DMB로 나눌 수 있다.
그리고 상기 지상파, 위성 DMB의 비디오 디코딩(Video Decoding) 알고리즘으로 H.264 디코딩 알고리즘이 채택되었다.
상기 H.264는 차세대 MPEG-4 표준기술로서 통상 AVC(advanced Video Coding)이라고 하며 MPEG-4 Part 10 또는 MPEG-4 AVC라고도 한다.
상기 H.264는 향후 실시간 대화형 응용, 이동망 상에서의 A/V 통신, 주문형 비디오 서비스, 인터넷 상의 비디오 응용서비스, DVD와 같은 저장매체 서비스 등 광범위한 활용이 예상되고 있다.
상기 H.264의 인트라 코딩(Intra coding)은 I/SI 프레임 내에서 공간 중복성을 줄이는 과정이며, H.264는 변환(Transform) 이전 단계에서 예측(Prediction) 과정을 거치게 하여 인트라 프레임의 압축효율을 높일 수 있도록 하였다. 이는 인접한 매크로 블록들이 유사한 특성을 가지고 있다는데 기초를 두고 있다.
상기 인트라 예측(Intra Prediction)은 도 1a, 도 1b와 같이 다양한 모드를 지원한다. 크게는 16x16 휘도 블록(luma block) 모드, 4x4 휘도 블록 모드, 색차 블록(chroma block) 모드가 지원된다.
상기 16x16 휘도 블록 모드는 다시 4가지 인트라 예측 모드 즉, DC 모드, Vertical 모드, Horizontal 모드, 그리고 Plane 모드가 지원된다. 그리고 색차 블록 모드에도 4가지 인트라 예측 모드 즉, DC 모드, Vertical 모드, Horizontal 모드, 그리고 Plane 모드가 지원된다.
상기 4x4 휘도 블록 모드는 9가지 인트라 예측 모드 즉, Vertical 모드, Horizontal 모드, DC 모드, Diagonal Down Left 모드, Vertical Right 모드, Horizontal Down 모드, Vertical Left 모드, 및 Horizontal Up 모드가 지원된다.
그리고 코딩시에 상기 도 1의 다양한 인트라 예측 모드들 중 최적의 예측 모드를 선택하게 된다.
이때, 도 1의 인트라 예측을 포함한 H.264 디코딩을 소프트웨어로 처리할 시에는 높은 클럭 주파수를 필요로 하여 성능이 떨어지게 되고, 잦은 외부 메모리의 접근으로 인해 높은 전력을 요구하게 된다. 이것은 밧데리를 전원으로 사용하는 이동(Mobile) 환경에서는 적합하지 않다.
그래서 상기된 도 1을 하드웨어로 구현할 경우, 다양한 예측 모드별로 각각의 데이터 패스(Data-Path)를 가지기 때문에 그 면적이 너무 커지는 문제가 발생한다.
본 발명은 상기와 같은 문제점을 해결하기 위한 것으로서, 본 발명의 목적은 인트라 예측을 하드웨어로 구현시 일부 하드웨어 리소스를 공유하도록 함으로써, 작은 면적을 가질 수 있도록 하는 인트라 예측 장치를 제공함에 있다.
상기 목적을 달성하기 위하여, 본 발명에 따른 인트라 예측 장치는, 다수개의 인트라 예측 모드 중 어느 하나의 모드로 인트라 예측을 수행하기 위해 주변 매크로 블록의 인접 데이터를 입력받는 데이터 입력부; 설정된 인트라 예측 모드가 데이터 복사(data copy)를 의미하는 모드이면 상기 데이터 입력부에서 출력되는 데이터를 그대로 바이패스하는 제1 데이터 처리부; 설정된 인트라 예측 모드가 상기 제1 데이터 처리부에서 사용되는 모드와 플레인 모드를 제외한 어느 하나의 모드이면 일부 구성 요소 및 데이터 패스를 공유하여 상기 데이터 입력부에서 출력되는 데이터에 대해 설정된 인트라 예측 모드로 인트라 예측을 수행하는 제2 데이터 처리부; 설정된 인트라 예측 모드가 Intra_Luma_Plane 모드, Intra_Chroma_Plane 모드 중 어느 하나이면 일부 구성 요소 및 데이터 패스를 공유하여 상기 데이터 입력부에서 출력되는 데이터에 대해 설정된 인트라 예측 모드로 인트라 예측을 수행하는 제3 데이터 처리부; 및 상기 제1 내지 제3 데이터 처리부 중 어느 하나로부터 인트라 예측된 데이터를 입력받아 Resudial 데이터와 더하여 출력하는 데이터 합성부를 포함하여 구성되는 것을 특징으로 한다.
상기 제1 데이터 처리부는 Intra_16x16_Ver 모드, Intra_16x16_Hor 모드, Intra_Chroma_Ver 모드, Intra_Chroma_Hor 모드, Intra_4x4_Ver 모드, Intra_4x4_Hor 모드 중 어느 하나의 모드로 설정되면 상기 데이터 입력부에서 출력되는 데이터를 그대로 데이터 합성부로 바이패스하는 것을 특징으로 한다.
상기 제2 데이터 처리부는 Intra_16x16_DC 모드, Intra_Chroma_DC 모드, Intra_4x4_DC 모드, Intra_4x4_Diagonal_Down_Left 모드, Intra_4x4_Diagonal_Down_Right 모드, Intra_4x4_Vertical_Right 모드, Intra_4x4_Horizontal_Down 모드, Intra_4x4_Vertical_Left 모드, Intra_4x4_Horizontal_Up 모드 중 어느 하나의 모드로 설정되면, 일부 구성 요소 및 데이터 패스를 공유하여 설정된 모드로 인트라 예측을 수행하는 것을 특징으로 한다.
상기 제2 데이터 처리부는 상기 데이터 입력부를 통해 제공되는 데이터를 일시 저장하는 제1 내지 제4 레지스터가 병렬 구성되는 제1 레지스터부; 상기 데이터 입력부를 통해 제공되는 데이터를 일시 저장하는 제1 내지 제4 레지스터가 병렬 구성되는 제2 레지스터부; 설정된 인트라 예측 모드에 따라 상기 제1 레지스터부의 출력에 대해 가산 연산을 수행하는 제1 가산 연산부; 설정된 인트라 예측 모드에 따라 상기 제2 레지스터부의 출력에 대해 가산 연산을 수행하는 제2 가산 연산부; 설정된 인트라 예측 모드에 따라 상기 제1 가산 연산부의 출력을 누산하는 제1 누산부; 및 설정된 인트라 예측 모드에 따라 상기 제2 가산 연산부의 출력을 누산하는 제2 누산부를 포함하여 구성되는 것을 특징으로 한다.
상기 제3 데이터 처리부는 Intra_Luma_Plane 모드이면서 입력 데이터의 x 좌표가 이븐이거나 Intra_Chroma_Plane 모드이면서 입력 데이터가 Cb 신호이면, 초기 값을 설정하고 입력 데이터에 대해 인트라 예측을 수행하는 제1 플레인 연산부; 및 Intra_Luma_Plane 모드이면서 입력 데이터의 x 좌표가 오드이거나 Intra_Chroma_Plane 모드이면서 입력 데이터가 Cr 신호이면, 초기 값을 설정하고 입력 데이터에 대해 인트라 예측을 수행하는 제2 플레인 연산부로 구성되는 것을 특징으로 한다.
본 발명의 다른 목적, 특징 및 잇점들은 첨부한 도면을 참조한 실시예들의 상세한 설명을 통해 명백해질 것이다.
이하 상기의 목적을 구체적으로 실현할 수 있는 본 발명의 바람직한 실시예를 첨부한 도면을 참조하여 설명한다. 이때 도면에 도시되고 또 이것에 의해서 설명되는 본 발명의 구성과 작용은 적어도 하나의 실시예로서 설명되는 것이며, 이것에 의해서 상기한 본 발명의 기술적 사상과 그 핵심 구성 및 작용이 제한되지는 않는다.
도 2는 본 발명에 따른 비디오 디코더 중 인트라 예측에 관련된 부분의 구성 블록도로서, 인접 데이터 입력부(110), 제1 내지 제3 데이터 처리부(111~113), 선택부(114), 및 데이터 합성부(115)로 구성된다.
상기 인접 데이터 입력부(110)는 현재 인트라 예측할 인접 데이터(Neighbor Data)를 SRAM으로부터 입력받아 내부 레지스터에 일시 저장한 후 제1 내지 제3 데이터 처리부(111~113)로 출력한다.
상기 제1 데이터 처리부(111)는 다음의 인트라 예측 모드에서 사용되며, 별도의 처리없이 입력 데이터를 데이터 합성부(115)로 바이패스한다. 즉, 상기 제1 데이터 처리부(111)는 수직 필터링(Vertical Filtering)과 수평 필터링(Horizontal Filtering)의 특성상 그냥 주변 매크로 블록(MB)의 인접한 데이터를 데이터 합성부(115)로 전달하기만 하면 된다. 상기 제1 데이터 처리부(111)에서 사용되는 모드는 Intra_16x16_Ver 모드, Intra_16x16_Hor 모드, Intra_Chroma_Ver 모드, Intra_Chroma_Hor 모드, Intra_4x4_Ver 모드, Intra_4x4_Hor 모드이다.
상기 제 2 데이터 처리부(112)는 다음의 인트라 예측 모드에서 사용된다. 즉, Intra_16x16_DC 모드, Intra_Chroma_DC 모드, Intra_4x4_DC 모드, Intra_4x4_Diagonal_Down_Left 모드, Intra_4x4_Diagonal_Down_Right 모드, Intra_4x4_Vertical_Right 모드, Intra_4x4_Horizontal_Down 모드, Intra_4x4_Vertical_Left 모드, 및 Intra_4x4_Horizontal_Up 모드이다.
상기 제3 데이터 처리부(113)는 다음의 인트라 예측 모드에서 사용된다. 즉, Intra_Luma_Plane 모드, Intra_Chroma_Plane 모드이다.
이때, 자원 공유(Resource Sharing)는 제2,제3 데이터 처리부(112,113)에서 이루어지며, 제1 데이터 처리부(111)에서는 별도의 연산을 수행하지 않는다.
그리고 상기 데이터 합성부(115)는 제1 내지 제3 데이터 처리부(111~113)를 통해 출력되는 인트라 예측된 데이터와 SRAM으로부터 입력되는 Residual 데이터를 더하여 다시 SRAM으로 출력한다. 즉 상기 데이터 합성부(115)는 제1 내지 제 3 데이터 처리부(111~113)에서 한 클럭에 두 개씩 예측되어 입력되는 값들을 Residual 입력 두개씩과 더해서 한 클럭에 두개의 합성(Composition)된 값을 출력한다.
도 3은 제2 데이터 처리부(112)의 상세 블록도로서, 휘도(Luma)나 색차 (Chroma) 값을 단번에 2개씩 처리를 하며 각 레지스터(register) 별로 파이프라인(Pipeline) 되어서 동작한다.
도 3은 크게 제1 레지스터부(310), 제1 가산 연산부(320), 제1 누산부(330), 제2 레지스터부(410), 제2 가산 연산부(420), 및 제2 누산부(430)로 구성된다.
상기 제1 레지스터부(310)는 제1 내지 제4 레지스터(adder0in0~adder0in3)가 병렬 구성된다. 마찬가지로 상기 제2 레지스터부(410)도 제1 내지 제4 레지스터(adder1in0~adder1in3)가 병렬 구성된다.
상기 제1 가산 연산부(320)는 제1 내지 제4 가산기(321,324,325,326), 쉬프터(322), 제1, 제2 먹스(323,327), 및 버퍼(328)로 구성되어, 제1 레지스터부(310)의 제1 내지 제4 레지스터(adder0in0~adder0in3)의 출력에 대해 가산 연산을 수행한다.
즉, 제1 가산기(321)는 제1,제2 레지스터(adder0in0,adder0in1)의 각 출력과 상수 1을 더하여 제3 가산기(325)로 출력한다. 상기 쉬프터(322)는 상기 제3 레지스터(adder0in2)의 출력을 1비트 왼쪽으로 쉬프트시켜 제1 먹스(323)로 출력한다.
상기 제1 먹스(323)는 상기 제3 레지스터(adder0in2)의 출력과 쉬프터(322)의 출력 중 하나를 adder0inx2 신호에 따라 선택하여 제2 가산기(324)로 출력한다.
상기 제2 가산기(324)는 상기 제1 먹스(323)의 출력과 제4 레지스터(adder0in3)의 출력 그리고, 상수 1을 더하여 제3 가산기(325)로 출력한다.
상기 제3 가산기(325)는 상기 제1, 제2 가산기(321,324)의 출력을 더하여 제2 먹스(327)와 제4 가산기(326)로 출력한다. 상기 제4 가산기(326)는 상기 제3 가 산기(325)의 출력과 상기 제2 가산 연산부(420)의 중간 출력을 더하여 제2 먹스(327)로 출력한다. 상기 제2 먹스(327)는 상기 제1, 제3, 제4 가산기(321,325,326)의 출력 중 하나를 adder0outmux 신호에 따라 선택하여 버퍼(328)로 출력한다. 상기 버퍼(328)는 상기 제2 먹스(327)의 출력을 인에이블 신호 Enadder0out에 따라 제1 누산부(330) 또는 선택부(114)를 거쳐 데이터 합성부(115)로 출력한다.
그리고 상기 제2 레지스터부(410)의 제1 내지 제4 레지스터(adder1in0~adder1in3)의 출력에 대해 가산 연산을 수행하는 제2 가산 연산부(420)는 상기 제1 가산 연산부(320)의 구성과 동일하며 단지 부호만 다를 뿐이며, 제4 가산기가 없다. 그러므로 제2 먹스(426)는 상기 제1, 제3 가산기(421,425)의 출력 중 하나를 선택하여 버퍼(427)로 출력한다. 즉, 상기 제2 가산 연산부(420)는 제1 내지 제3 가산기(421,424,425), 쉬프터(422), 제1, 제2 먹스(423,426), 및 버퍼(427)로 구성된다.
상기 제1 누산부(330)는 먹스(331), 가산기(332), 및 버퍼(333)로 구성되어, 상기 제1 가산 연산부(320)의 출력에 대해 가산 및 누산을 수행한다. 즉 상기 먹스(331)는 상수 0과 피드백되는 값 중 하나를 accum0mux 신호에 따라 선택하여 가산기(332)로 출력한다. 상기 가산기(332)는 상기 제1 가산 연산부(320)의 출력과 상기 먹스(331)의 출력을 더하여 버퍼(333)로 출력한다. 상기 버퍼(333)는 상기 가산기(332)의 출력을 인에이블 신호 Enaccum0에 따라 상기 먹스(331)로 피드백시킴과 동시에 선택부(114)를 거쳐 데이터 합성부(115)로 출력한다.
상기 제2 가산 연산부(420)의 출력에 대해 가산 및 누산하는 제2 누산부 (430)는 상기 제1 누산부(330)의 구성과 동일하며, 단지 부호만 다르다.
이와 같이 구성된 본 발명에서 제1 레지스터부(310)의 제1 내지 제4 레지스터(adder0in0 ~ adder0in3)에는 첫번째 예측 데이터를 계산하기 위한 데이터들이 입력되고, 동시에 제2 레지스터부(410)의 제1 내지 제4 레지스터(adder1in0~adder1in3)에는 두번째 예측 데이터를 계산하기 위한 데이터들이 입력된다. 이 값들이 한 클럭 사이클(Clock Cycle) 뒤에 버퍼(328)와 버퍼(427)에 각각 가산 연산되어 입력되고, 동시에 다음 예측 데이터를 위한 데이터들이 제1 레지스터부(310)의 제1 내지 제4 레지스터(adder0in0~adder0in3)와 제2 레지스터부(410)의 제1 내지 제4 레지스터(adder1in0~adder1in3)에 입력되는 형식으로 파이프라인(Pipeline)되어 진행된다.
상기 제 2 데이터 처리부(112)는 주변 매크로 블록의 인접 데이터를 입력받아 Intra_16x16_DC 모드, Intra_Chroma_DC 모드, Intra_4x4_DC 모드, Intra_4x4_Diagonal_Down_Left 모드, Intra_4x4_Diagonal_Down_Right 모드, Intra_4x4_Vertical_Right 모드, Intra_4x4_Horizontal_Down 모드, Intra_4x4_Vertical_Left 모드, 및 Intra_4x4_Horizontal_Up 모드 중 어느 하나의 모드로 인트라 예측을 수행하고, 그 결과를 선택부(114)를 통해 데이터 합성부(115)로 출력한다.
상기 제3 데이터 처리부(113)는 주변 매크로 블록의 인접 데이터를 입력받아 Intra_Luma_Plane 모드와 Intra_Chroma_Plane 모드 중 어느 하나의 모드로 인트라 예측을 수행하고, 그 결과를 선택부(114)를 통해 데이터 합성부(115)로 출력한다.
이때 상기 도 1의 Intra_4x4에서 수식을 따져보면 DC 모드를 제외하고 다음의 수학식1 내지 3과 같이 세 가지 형식으로 정리할 수 있다.
Predicted Value = (Input0 + 2 x Input1 + Input2 + 2) >> 2
= ((Input0 + (Input1 << 1) + 1) + (Input2 + 0 + 1)) >> 2
Predicted Value = (Input0 + 3 x Input1 + 2) >> 2
= ((Input0 + (Input1 << 1) + 1) + (Input1 + 0 + 1)) >> 2
Predicted Value = (Input0 + Input1 + 1) >> 1
도 4는 제2 데이터 처리부(112)에서 상기 수학식 1과 수학식 2를 그대로 적용한 데이터 패스를 굵은 선으로 표시한 것이고, 도 5는 상기 제2 데이터 처리부(112)에서 상기 수학식 3을 그대로 적용한 데이터 패스를 굵은 선으로 표시한 것이다.
상기 도 4, 도 5의 경우 버퍼(328,427)의 출력이 최종 출력이 된다. 그리고 상기 도 4, 도 5의 데이터 패스를 제어하면 Intra_4x4_Diagonal_Down_Left 모드, Intra_4x4_Diagonal_Down_Right 모드, Intra_4x4_Vertical_Right 모드, Intra_4x4_Horizontal_Down 모드, Intra_4x4_Vertical_Left 모드, Intra_4x4_Horizontal_Up 모드 중 어느 하나의 모드로 인트라 예측이 이루어진다.
그리고 상기 수학식 1 내지 3에서, 오른쪽 쉬프트 연산은 데이터 합성부 (115)의 합성 단계에서 Residual 값과 더하기 전에 수행된다.
한편 인트라 4x4 DC 모드에서는 최대 8개의 값을 더한다.
도 6a는 인트라 4x4 DC 모드에서 8개의 입력을 더할 때의 데이터 패스를 보이고 있고, 도 6b는 인트라 4x4 DC 모드에서 4개의 입력을 더할 때의 데이터 패스를 보이고 있다.
그리고 인트라 16x16 DC 모드에서는 최대 32개, 최소 16개의 입력을 더한다. 이때는 도 7과 같이 제1,제2 누산부(330,430)를 사용하여 계산한다.
도 7에서 32개의 입력 데이터들을 더하려면 제1 누산부(330)에서 4번의 누산(Add-and-Accumulation)을 해야 하고, 16개의 입력 데이터들을 더하려면 2번의 누산을 하면 된다. 이 역시 DC 예측을 위한 최종 오른쪽 쉬프트 연산은 합성 단계에서 행한다.
그리고 인트라 Chroma DC 모드에 대한 연산은 도 7과 같이 수행한다.
그러면 인트라 예측 모드에서 남는 모드는 Intra_Luma_Plane 모드, Intra_Chroma_Plane 모드이며, 이 모드의 인트라 예측은 제3 데이터 처리부(113)에서 이루어진다.
상기 Plane 모드에서는 H, V, a, b, c 변수를 계산하고 이를 이용해 다음의 수학식 4, 5와 같이 예측 값을 계산한다.
predL[x,y] = Clip1((a+b*(x-7)+c*(y-7)+16) >> 5), with x, y = 0,...,15
predC[x,y] = Clip1((a+b*(x-3)+c*(y-3)+16) >> 5 ), with x, y = 0,...,7
그런데 상기 수학식 4,5는 곱셈(Multiplication)이 각각 두개씩 들어가므로 하드웨어 면적(Area)과 전력(Power)을 많이 소모한다. 따라서 이를 더 간단한 식으로 만들 필요가 있다. 즉, 5bit만큼 오른쪽 쉬프트 하기 전의 수학식4,5를 간소화한 것이 도 8에 표로 도시되어 있다.
도 9는 제3 데이터 처리부(113)의 상세 블록도로서, 도 8의 식을 하드웨어로 구현한 것이다.
도 9를 보면, 제1 플레인 연산부(500), 제2 플레인 연산부(600)로 구성된다.
상기 제1 플레인 연산부(500)는 x 좌표값이 이븐(even)일때의 휘도 신호에 대해 Intra_Luma_Plane 모드로 인트라 예측을 수행하거나, Cb 색차 신호에 대해 Intra_Chroma_Plane 모드로 인트라 예측을 수행한다.
이를 위해 상기 제1 플레인 연산부(500)는 제1 먹스(511), 제1 쉬프터(512), 제2 먹스(513), 제3 먹스(514), 가산기(515), 및 제2 쉬프터(516)로 구성된다. 즉, 상기 제1 먹스(511)는 휘도 신호 초기값(또는 Cb 신호 초기값)과 피드백되는 이전 값 중 하나를 선택하여 제1 쉬프터(512)로 출력한다. 상기 제1 쉬프터(512)는 상기 제1 먹스(511)의 출력을 지정된 비트만큼 왼쪽으로 쉬프트시켜 제2 먹스(513)로 출력한다. 상기 제2 먹스(513)는 상기 제1 쉬프터(512)의 출력과 피드백되는 이전 값 중 하나를 선택하여 가산기(515)로 출력한다. 그리고 상기 제3 먹스(514)는 다수개 의 기 설정된 상수 2b, b, c, 0 중 하나를 선택하여 상기 가산기(515)로 출력한다. 상기 가산기(515)는 상기 제2,제3 먹스(513,514)의 출력을 더하여 제2 쉬프터(516)로 출력한다. 상기 제2 쉬프터(516)는 상기 가산기(515)의 출력을 왼쪽으로 쉬프트시켜 상기 제1,제2 먹스(511,513)로 피드백함과 동시에 선택부(114)를 거쳐 데이터 합성부(115)로 출력한다.
상기 제2 플레인 연산부(600)는 x 좌표값이 오드(odd)일때의 휘도 신호에 대해 Intra_Luma_Plane 모드로 인트라 예측을 수행하거나, Cr 색차 신호에 대해 Intra_Chroma_Plane 모드로 인트라 예측을 수행한다.
이를 위해 상기 제2 플레인 연산부(600)는 제1 먹스(611), 제1 쉬프터(612), 제2 먹스(613), 제3 먹스(614), 가산기(615), 및 제2 쉬프터(616)로 구성된다. 즉, 상기 제1 먹스(611)는 Cr 신호 초기값과 피드백되는 이전 값 중 하나를 선택하여 제1 쉬프터(612)로 출력한다. 상기 제1 쉬프터(612)는 상기 제1 먹스(611)의 출력을 지정된 비트만큼 오른쪽으로 쉬프트시켜 제2 먹스(613)로 출력한다. 상기 제2 먹스(613)는 상기 제1 쉬프터(612)의 출력과 피드백되는 이전 값 그리고, 상기 제1 플레인 연산부(500)의 가산기(515)의 출력 중 하나를 선택하여 가산기(615)로 출력한다. 그리고 제3 먹스(614)는 다수개의 기 설정된 상수 2b, b, bCr, cCr, 0 중 하나를 선택하여 가산기(615)로 출력한다. 상기 가산기(615)는 상기 제2,제3 먹스(613,614)의 출력을 더하여 제2 쉬프터(616)로 출력한다. 상기 제2 쉬프터(616)는 상기 가산기(615)의 출력을 오른쪽으로 쉬프트시켜 상기 제1,제2 먹스(611,613)로 피드백함과 동시에 선택부(114)를 거쳐 데이터 합성부(115)로 출력한다.
이와 같이 상기된 수학식 4,5를 도 8과 같이 간략화하여 도 9와 같이 구현함으로써, 작은 하드웨어 면적(low area), 높은 성능(High performance), 저전력(low power)화가 가능하게 된다.
도 10a 내지 도 10c는 Intra_Luma_Plane 모드로 인트라 예측을 수행하는 과정을 도시한 것이다.
도 10a는 Intra_Luma_Plane 모드에서 초기값 할당시의 데이터 패스를 보인 것으로서, 제1 플레인 연산부(500)에서는 도 8의 (1)에 해당되는 동작을 수행하고, 제2 플레인 연산부(600)에서는 도 8의 (2)에 해당되는 동작을 수행한다. 즉, 계산된 휘도 신호 초기값은 제1 플레인 연산부(500)의 제1 먹스(511), 제1 쉬프트(512), 제2 먹스(513)를 거쳐 가산기(515)로 입력된다. 상기 가산기(515)는 제2 먹스(513)의 출력과 제3 먹스(514)에서 선택 출력되는 상수 0을 더하여 제2 쉬프터(516)와 제2 플레인 연산부(600)의 제2 먹스(613)로 출력한다. 상기 제2 먹스(613)는 제1 플레인 연산부(500)의 가산기(515)의 출력을 선택하여 가산기(615)로 출력하고, 제3 먹스(614)는 상수 b를 선택하여 가산기(615)로 출력한다. 상기 가산기(615)는 두 출력을 더하여 제2 쉬프터(616)로 출력한다.
도 10b는 x 좌표가 증가할 때의 데이터 패스를 보인 것으로서, 제1 플레인 연산부(500)는 도 8의 (3)에 해당되는 동작을 수행하고, 제2 플레인 연산부(600)는 도 8의 (4)에 해당되는 동작을 수행한다.
도 10c는 y 좌표가 증가할 때의 데이터 패스를 보인 것으로서, 제1 플레인 연산부(500)는 도 8의 (5)에 해당되는 동작을 수행하고, 제2 플레인 연산부(600)는 도 8의 (6)에 해당되는 동작을 수행한다. 이때 제1 플레인 연산부(500)의 제2 쉬프터(516)의 출력은 다음 y 좌표 초기값을 위해 저장한다.
또한 Intra_Chroma_Plane 모드인 경우, Cb는 도 9의 제1 플레인 연산부(500)를 이용하고, Cr일때는 제2 플레인 연산부(600)를 이용한다. 그리고 동작은 상기 도 10a 내지 도 10c와 유사하다.
한편, 본 발명에서 사용되는 용어(terminology)들은 본 발명에서의 기능을 고려하여 정의 내려진 용어들로써 이는 당분야에 종사하는 기술자의 의도 또는 관례 등에 따라 달라질 수 있으므로 그 정의는 본 발명의 전반에 걸친 내용을 토대로 내려져야 할 것이다.
본 발명은 상술한 실시예에 한정되지 않으며, 첨부된 청구범위에서 알 수 있는 바와 같이 본 발명이 속한 분야의 통상의 지식을 가진 자에 의해 변형이 가능하고 이러한 변형은 본 발명의 범위에 속한다.
상기에서 설명한 본 발명에 따른 인트라 예측 장치의 효과를 설명하면 다음과 같다.
첫째, 본 발명은 Intra_Luma_plane 모드와 Intra_chroma_plane 모드의 데이터 패스 자원(Data-path Resource)을 공유(Sharing)함으로써, 하드웨어 면적을 줄이는 효과가 있다.
둘째, 상기 Intra_Luma_plane 모드와 Intra_chroma_plane 모드일 때 수식을 간소화함으로써, 데이터 패스를 더 단순하게 구성하여 하드웨어 면적을 더 작게 하 고 소모되는 전력을 더욱 줄일 수 있다.
셋째, 상기 Intra_Luma_plane 모드와 Intra_chroma_plane 모드를 제외한 나머지 필터링 모드(Filtering Mode)의 데이터 패스 자원을 공유함으로써, 하드웨어 면적을 더욱 줄일 수 있고 더불어 전력 소모도 더욱 줄일 수 있다.
넷째, 다양한 인트라 예측 모드에서 데이터 패스의 일부 자원을 공유하고, 모든 연산을 파이프라인시킴으로써, 하드웨어 면적을 줄이고, 고 성능, 저 전력화가 가능한 이동형 방송 수신기를 구현할 수 있다.
다섯째, 최종 출력단에서 예측된 값과 Residual 값을 합성(Composition)함으로써, 별도의 데이터 합성을 위한 클럭 소모를 없앨 수 있으므로 전체 시스템 클럭 주파수를 낮출 수 있다. 이것이 저 전력화를 가능하게 한다.
이상 설명한 내용을 통해 당업자라면 본 발명의 기술 사상을 일탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다.
따라서, 본 발명의 기술적 범위는 실시예에 기재된 내용으로 한정되는 것이 아니라 특허 청구의 범위에 의하여 정해져야 한다.

Claims (10)

  1. 다수개의 인트라 예측 모드 중 어느 하나의 모드로 인트라 예측을 수행하기 위해 주변 매크로 블록의 인접 데이터를 입력받는 데이터 입력부;
    설정된 인트라 예측 모드가 데이터 복사(data copy)를 의미하는 모드이면 상기 데이터 입력부에서 출력되는 데이터를 그대로 바이패스하는 제1 데이터 처리부;
    설정된 인트라 예측 모드가 상기 제1 데이터 처리부에서 사용되는 모드와 플레인 모드를 제외한 어느 하나의 모드이면 일부 구성 요소 및 데이터 패스를 공유하여 상기 데이터 입력부에서 출력되는 데이터에 대해 설정된 인트라 예측 모드로 인트라 예측을 수행하는 제2 데이터 처리부;
    설정된 인트라 예측 모드가 플레인 모드이면 일부 구성 요소 및 데이터 패스를 공유하여 상기 데이터 입력부에서 출력되는 데이터에 대해 설정된 인트라 예측 모드로 인트라 예측을 수행하는 제3 데이터 처리부; 및
    상기 제1 내지 제3 데이터 처리부 중 어느 하나로부터 인트라 예측된 데이터를 입력받아 Resudial 데이터와 더하여 출력하는 데이터 합성부를 포함하여 구성되는 것을 특징으로 하는 인트라 예측 장치.
  2. 제 1 항에 있어서, 상기 제1 데이터 처리부는
    Intra_16x16_Ver 모드, Intra_16x16_Hor 모드, Intra_Chroma_Ver 모드, Intra_Chroma_Hor 모드, Intra_4x4_Ver 모드, Intra_4x4_Hor 모드 중 어느 하나의 모드로 설정되면 상기 데이터 입력부에서 출력되는 데이터를 그대로 데이터 합성부로 바이패스하는 것을 특징으로 하는 인트라 예측 장치.
  3. 제 1 항에 있어서, 상기 제2 데이터 처리부는
    Intra_16x16_DC 모드, Intra_Chroma_DC 모드, Intra_4x4_DC 모드, Intra_4x4_Diagonal_Down_Left 모드, Intra_4x4_Diagonal_Down_Right 모드, Intra_4x4_Vertical_Right 모드, Intra_4x4_Horizontal_Down 모드, Intra_4x4_Vertical_Left 모드, Intra_4x4_Horizontal_Up 모드 중 어느 하나의 모드로 설정되면, 일부 구성 요소 및 데이터 패스를 공유하여 설정된 모드로 인트라 예측을 수행하는 것을 특징으로 하는 인트라 예측 장치.
  4. 제 1 항에 있어서, 상기 제2 데이터 처리부는
    상기 데이터 입력부를 통해 제공되는 데이터를 일시 저장하는 제1 내지 제4 레지스터가 병렬 구성되는 제1 레지스터부;
    상기 데이터 입력부를 통해 제공되는 데이터를 일시 저장하는 제1 내지 제4 레지스터가 병렬 구성되는 제2 레지스터부;
    설정된 인트라 예측 모드에 따라 상기 제1 레지스터부의 출력에 대해 가산 연산을 수행하는 제1 가산 연산부;
    설정된 인트라 예측 모드에 따라 상기 제2 레지스터부의 출력에 대해 가산 연산을 수행하는 제2 가산 연산부;
    설정된 인트라 예측 모드에 따라 상기 제1 가산 연산부의 출력을 누산하는 제1 누산부; 및
    설정된 인트라 예측 모드에 따라 상기 제2 가산 연산부의 출력을 누산하는 제2 누산부를 포함하여 구성되는 것을 특징으로 하는 인트라 예측 장치.
  5. 제 4 항에 있어서, 상기 제2 데이터 처리부는
    상기 제1 레지스터부의 제1 내지 제4 레지스터에는 첫번째 예측 데이터를 계산하기 위한 데이터들이 입력되고, 동시에 제2 레지스터부의 제1 내지 제4 레지스터에는 두번째 예측 데이터를 계산하기 위한 데이터들이 입력되며, 이 값들이 한 클럭 사이클 뒤에 제1,제2 가산 연산부의 마지막 출력단으로 입력됨과 동시에 다음 예측을 위한 데이터들이 제1 레지스터부의 제1 내지 제4 레지스터와 제2 레지스터부의 제1 내지 제4 레지스터에 각각 입력되는 파이프라인 구조인 것을 특징으로 하는 인트라 예측 장치.
  6. 제 4 항에 있어서, 상기 제1 가산 연산부는
    상기 제1 레지스터부의 제1,제2 레지스터의 각 출력과 상수 1을 더하여 출력하는 제1 가산기;
    상기 제1 레지스터부의 제3 레지스터의 출력을 1비트 왼쪽으로 쉬프트시켜 출력하는 쉬프터;
    상기 제1 레지스터부의 제3 레지스터의 출력과 쉬프터의 출력 중 하나를 선 택 신호에 따라 선택하여 출력하는 제1 먹스;
    상기 제1 먹스의 출력과 상기 제1 레지스터부의 제4 레지스터의 출력 그리고, 상수 1을 더하여 출력하는 제2 가산기;
    상기 제1, 제2 가산기의 덧셈 결과를 다시 더하여 출력하는 제3 가산기;
    상기 제3 가산기의 출력과 상기 제2 가산 연산부의 중간 출력을 더하여 출력하는 제4 가산기;
    제1, 제3, 제4 가산기의 출력 중 하나를 선택 신호에 따라 선택하여 출력하는 제2 먹스; 및
    상기 제2 먹스의 출력을 일시 저장한 후 인에이블 신호에 따라 출력하는 버퍼로 구성되는 것을 특징으로 하는 인트라 예측 장치.
  7. 제 1 항에 있어서, 상기 제3 데이터 처리부는
    Intra_Luma_Plane 모드이면서 입력 데이터의 x 좌표가 이븐이거나 Intra_Chroma_Plane 모드이면서 입력 데이터가 Cb 신호이면, 초기 값을 설정하고 입력 데이터에 대해 인트라 예측을 수행하는 제1 플레인 연산부; 및
    Intra_Luma_Plane 모드이면서 입력 데이터의 x 좌표가 오드이거나 Intra_Chroma_Plane 모드이면서 입력 데이터가 Cr 신호이면, 초기 값을 설정하고 입력 데이터에 대해 인트라 예측을 수행하는 제2 플레인 연산부로 구성되는 것을 특징으로 하는 인트라 예측 장치.
  8. 제 7 항에 있어서, 상기 제1 플레인 연산부는
    휘도 신호 초기값 또는 Cb 신호 초기값과 피드백되는 이전 값 중 하나를 선택하여 출력하는 제1 먹스;
    상기 제1 먹스의 출력을 지정된 비트만큼 왼쪽으로 쉬프트시켜 출력하는 제1 쉬프터;
    상기 제1 쉬프터의 출력과 피드백되는 이전 값 중 하나를 선택하여 출력하는 제2 먹스;
    다수개의 기 설정된 상수 2b, b, c, 0 중 하나를 선택하여 출력하는 제3 먹스;
    상기 제2,제3 먹스를 통해 출력되는 값을 더하여 출력하는 가산기; 및
    상기 가산기의 출력을 왼쪽으로 쉬프트시켜 출력하는 제2 쉬프터로 구성되는 것을 특징으로 하는 인트라 예측 장치.
  9. 제 8 항에 있어서, 상기 제2 플레인 연산부는
    Cr 신호 초기값과 피드백되는 이전 값 중 하나를 선택하여 출력하는 제1 먹스;
    상기 제1 먹스의 출력을 지정된 비트만큼 오른쪽으로 쉬프트시켜 출력하는 제1 쉬프터;
    상기 제1 쉬프터의 출력, 상기 제1 플레인 연산부의 가산기 출력, 그리고 피드백되는 이전 값 중 하나를 선택하여 출력하는 제2 먹스;
    다수개의 기 설정된 상수 2b, b, bCr, cCr, 0 중 하나를 선택하여 출력하는 제3 먹스;
    상기 제2,제3 먹스를 통해 출력되는 값을 더하여 출력하는 가산기; 및
    상기 가산기의 출력을 오른쪽으로 쉬프트시켜 출력하는 제2 쉬프터로 구성되는 것을 특징으로 하는 인트라 예측 장치.
  10. 제 1 항에 있어서, 상기 데이터 합성부는
    상기 제1 내지 제3 데이터 처리부에서 한 클럭에 두 개씩 예측되어 출력되는 값들을 Residual 값과 두 개씩 더해서 한 클럭에 두 개의 합성된 값을 출력하는 것을 특징으로 하는 인트라 예측 장치.
KR1020050014552A 2005-02-22 2005-02-22 비디오 디코더의 인트라 예측 장치 KR100617086B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050014552A KR100617086B1 (ko) 2005-02-22 2005-02-22 비디오 디코더의 인트라 예측 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050014552A KR100617086B1 (ko) 2005-02-22 2005-02-22 비디오 디코더의 인트라 예측 장치

Publications (2)

Publication Number Publication Date
KR20060093806A KR20060093806A (ko) 2006-08-28
KR100617086B1 true KR100617086B1 (ko) 2006-08-31

Family

ID=37601789

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050014552A KR100617086B1 (ko) 2005-02-22 2005-02-22 비디오 디코더의 인트라 예측 장치

Country Status (1)

Country Link
KR (1) KR100617086B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100928701B1 (ko) * 2007-12-17 2009-11-27 한국전자통신연구원 화면 내 예측 부호화 가속 방법 및 장치
KR101383515B1 (ko) * 2013-02-15 2014-04-08 숭실대학교산학협력단 영상의 역변환 장치

Also Published As

Publication number Publication date
KR20060093806A (ko) 2006-08-28

Similar Documents

Publication Publication Date Title
US8537895B2 (en) Method and apparatus for parallel processing of in-loop deblocking filter for H.264 video compression standard
JPH08237662A (ja) ビデオ・デコンプレッション・プロセッサのための画素内挿フィルタ
Khurana et al. A pipelined hardware implementation of in-loop deblocking filter in H. 264/AVC
Cheng et al. An in-place architecture for the deblocking filter in H. 264/AVC
US20220038681A1 (en) Video encoding or decoding using block extension for overlapped block motion compensation
US8260075B2 (en) Two-dimensional filter arithmetic device and method
WO2020086421A1 (en) Video encoding and decoding using block-based in-loop reshaping
Pastuszak et al. Architecture design of the high-throughput compensator and interpolator for the H. 265/HEVC encoder
EP2850834A1 (en) Unified fractional search and motion compensation architecture across multiple video standards
Wen et al. Novel RD-optimized VBSME with matching highly data re-usable hardware architecture
Medhat et al. High-throughput hardware implementation for motion estimation in HEVC encoder
US8090019B2 (en) Intra prediction circuit device applied to the H.264 video coding standard
Pastuszak et al. Optimization of the adaptive computationally-scalable motion estimation and compensation for the hardware H. 264/AVC encoder
Peesapati et al. Design of streaming deblocking filter for HEVC decoder
KR100617086B1 (ko) 비디오 디코더의 인트라 예측 장치
Silva et al. Approximate hardware architecture for interpolation filter of versatile video coding
Ding et al. Real‐time H. 265/HEVC intra encoding with a configurable architecture on FPGA platform
KR100686141B1 (ko) 이동형 방송 수신기의 디블로킹 필터 및 필터링 방법
Abdelrasoul et al. Scalable integer DCT architecture for HEVC encoder
US20110107390A1 (en) Image deblocking filter and image processing device utilizing the same
US6668087B1 (en) Filter arithmetic device
Neto et al. Exploring operation sharing in directional intra frame prediction of av1 video coding
Azevedo et al. MoCHA: A bi-predictive motion compensation hardware for H. 264/AVC decoder targeting HDTV
Neto et al. Configurable Power/Quality-Aware Hardware Design for the AV1 Directional Intra Frame Prediction
Poola et al. An efficient parallel-pipelined intra prediction architecture to support DCT/DST engine of HEVC encoder

Legal Events

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

Payment date: 20120727

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20130724

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140724

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150724

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160722

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee