3 research outputs found

    HEVC์˜ ์†Œ์ˆ˜ ๋‹จ์œ„ ์›€์ง์ž„ ์ถ”์ •์„ ์œ„ํ•œ ๋ณด๊ฐ„ ํ•„ํ„ฐ ์ค‘๋ณต ์—ฐ์‚ฐ ๊ฐ์†Œ ๋ฐฉ๋ฒ•

    Get PDF
    ํ•™์œ„๋…ผ๋ฌธ (์„์‚ฌ)-- ์„œ์šธ๋Œ€ํ•™๊ต ๋Œ€ํ•™์› : ์ „๊ธฐยท์ปดํ“จํ„ฐ๊ณตํ•™๋ถ€, 2016. 8. ์ดํ˜์žฌ.High-Efficiency Video Coding (HEVC) [1] is the latest video coding standard established by Joint Collaborative Team on Video Coding (JCT-VC) aiming to achieve twice encoding efficiency with comparatively high video quality compared to its predecessor, the H.264 standard. Motion Estimation (ME) which consists of integer motion estimation (IME) and fractional motion estimation (FME) is the bottleneck of HEVC computation. In the execution of the HM reference software, ME alone accounts for about 50 % of the execution time in which IME contributes to about 20 % and FME does around 30% [2].The FMEs enormous computational complexity can be explained by two following reasons: โ€ข A large number of FME refinements processed: In HEVC, a frame is divided into CTU, whose size is usually 64x64 pixels. One 64x64 CTU consists of 85 CUs including one 64x64 CU at depth 0, four 32x32 CUs at depth 1, 16 16x16 CUs at depth 2, and 64 8x8 CUs at depth 3. Each CU can be partitioned into PUs according to a set of 8 allowable partition types. An HEVC encoder processes FME refinement for all possible PUs with usually 4 reference frames before deciding the best configuration for a CTU. As a result, typically in HEVCs reference software, HM, for one CTU, it has to process 2,372 FME refinements, which consumes a lot of computational resources. โ€ข A complicated and redundant interpolation process: Conventionally, FME refinement, which consists of interpolation and sum of absolute transformed difference (SATD), is processed for every PU in 4 reference frames. As a result, for a 64x64 CTU, in order to process fractional pixel refinement, FME needs to interpolate 6,232,900 fractional pixels. In addition, In HEVC, fractional pixels which consist half fractional pixels and quarter fractional pixels, are interpolated by 8-tap filters and 7-tap filters instead of 6-tap filters and bilinear filters as previous standards. As a result, interpolation process in FME imposes an extreme computational burden on HEVC encoders. This work proposes two algorithms which tackle each one of the two above reasons. The first algorithm, Advanced Decision of PU Partitions and CU Depths for FME, estimates the cost of IMEs and selects the PU partition types at the CU level and the CU depths at the coding tree unit (CTU) level for FME. Experimental results show that the algorithm effectively reduces the complexity by 67.47% with a BD-BR degrade of 1.08%. The second algorithm, A Reduction of the Interpolation Redundancy for FME, reduces up to 86.46% interpolation computation without any encoding performance decrease. The combination of the two algorithms forms a coherent solution to reduce the complexity of FME. Considering interpolation is a half of the complexity of an FME refinement, then the complexity of FME could be reduced more than 85% with a BD-BR increase of 1.66%Chapter 1. Introduction 1 1. Introduction to Video Coding 1 1.1. Definition of Video Coding 1 1.2. The Need of Video Coding 1 1.3. Basics of Video Coding 2 1.4. Video Coding Standard 2 2. Introduction to HEVC 6 2.1. HEVC Background and Development 6 2.2. Block Partitioning Structure in HEVC 9 Chapter 2. Fractional Motion Estimation in HEVC and Related Works on Complexity Reduction 21 1. Motion Estimation 21 2. Fractional Motion Estimation 22 2.1. Interpolation 22 2.2. Sum of Absolute Transformed Difference Calculation 27 2.3. Fractional Motion Estimation Procedure 28 Chapter 3. Complexity Reduction for FME 31 1. Problem Statement and Previous Studies 31 1.1. Problem Statement 31 1.2. Previous Studies 32 2. Proposed Algorithms 34 2.1. Advanced Decision of PU Partitions and CU Depths for Fractional Motion Estimation in HEVC 34 2.2. Range-based interpolation algorithm 40 Chapter 4. Experiment Results 43 1. Advanced Decision of PU Partitions and CU Depths for Fractional Motion Estimation in HEVC Algorithms 43 1.1. Advanced Decision of PU Partitions 43 1.2. Advanced Decision of CU Partitions 47 1.3. Combination of Advanced PU Partition and CU Depth Decision 47 1.4. Comparison with Other Similar Works 48 2. Range-based Algorithm 49 2.1. Software Implementation 49 2.2. Hardware Implementation of the Algorithm 50 Chapter 5. Conclusion 61 Bibliography 64 Abstract in Korean 66Maste

    Hardware based High Accuracy Integer Motion Estimation and Merge Mode Estimation

    Get PDF
    ํ•™์œ„๋…ผ๋ฌธ (๋ฐ•์‚ฌ)-- ์„œ์šธ๋Œ€ํ•™๊ต ๋Œ€ํ•™์› ๊ณต๊ณผ๋Œ€ํ•™ ์ „๊ธฐยท์ปดํ“จํ„ฐ๊ณตํ•™๋ถ€, 2017. 8. ์ดํ˜์žฌ.HEVC๋Š” H.264/AVC ๋Œ€๋น„ 2๋ฐฐ์˜ ๋›ฐ์–ด๋‚œ ์••์ถ• ํšจ์œจ์„ ๊ฐ€์ง€์ง€๋งŒ, ๋งŽ์€ ์••์ถ• ๊ธฐ์ˆ ์ด ์‚ฌ์šฉ๋จ์œผ๋กœ์จ, ์ธ์ฝ”๋” ์ธก์˜ ๊ณ„์‚ฐ ๋ณต์žก๋„๋ฅผ ํฌ๊ฒŒ ์ฆ๊ฐ€์‹œ์ผฐ๋‹ค. HEVC์˜ ๋†’์€ ๊ณ„์‚ฐ ๋ณต์žก๋„๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•œ ๋งŽ์€ ์—ฐ๊ตฌ๋“ค์ด ์ด๋ฃจ์–ด์กŒ์ง€๋งŒ, ๋Œ€๋ถ€๋ถ„์˜ ์—ฐ๊ตฌ๋“ค์€ H.264/AVC๋ฅผ ์œ„ํ•œ ๊ณ„์‚ฐ ๋ณต์žก๋„ ๊ฐ์†Œ ๋ฐฉ๋ฒ•์„ ํ™•์žฅ ์ ์šฉํ•˜๋Š” ๋ฐ์— ๊ทธ์ณ, ๋งŒ์กฑ์Šค๋Ÿฝ์ง€ ์•Š์€ ๊ณ„์‚ฐ ๋ณต์žก๋„ ๊ฐ์†Œ ์„ฑ๋Šฅ์„ ๋ณด์ด๊ฑฐ๋‚˜, ์ง€๋‚˜์น˜๊ฒŒ ํฐ ์••์ถ• ํšจ์œจ ์†์‹ค์„ ๋™๋ฐ˜ํ•˜์—ฌ HEVC์˜ ์ตœ๋Œ€ ์••์ถ• ์„ฑ๋Šฅ์„ ๋Œ์–ด๋‚ด์ง€ ๋ชปํ–ˆ๋‹ค. ํŠนํžˆ ์•ž์„œ ์—ฐ๊ตฌ๋œ ํ•˜๋“œ์›จ์–ด ๊ธฐ๋ฐ˜์˜ ์ธ์ฝ”๋”๋Š” ์‹ค์‹œ๊ฐ„ ์ธ์ฝ”๋”์˜ ์‹คํ˜„์ด ์šฐ์„ ๋˜์–ด ์••์ถ• ํšจ์œจ์˜ ํฌ์ƒ์ด ๋งค์šฐ ํฌ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ, ๋ณธ ์—ฐ๊ตฌ์—์„œ๋Š” ํ•˜๋“œ์›จ์–ด ๊ธฐ๋ฐ˜ Inter prediction์˜ ๊ณ ์†ํ™”๋ฅผ ์ด๋ฃธ๊ณผ ๋™์‹œ์— HEVC๊ฐ€ ๊ฐ€์ง„ ์••์ถ• ์„ฑ๋Šฅ์˜ ์†์‹ค์„ ์ตœ์†Œํ™”ํ•˜๊ณ , ์‹ค์‹œ๊ฐ„ ์ฝ”๋”ฉ์ด ๊ฐ€๋Šฅํ•œ ํ•˜๋“œ์›จ์–ด ๊ตฌ์กฐ๋ฅผ ์ œ์•ˆํ•˜์˜€๋‹ค. ๋ณธ ์—ฐ๊ตฌ์—์„œ ์ œ์•ˆํ•œ bottom-up MV ์˜ˆ์ธก ๋ฐฉ๋ฒ•์€ ๊ธฐ์กด์˜ ๊ณต๊ฐ„์ , ์‹œ๊ฐ„์ ์œผ๋กœ ์ธ์ ‘ํ•œ PU๋กœ๋ถ€ํ„ฐ MV๋ฅผ ์˜ˆ์ธกํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์•„๋‹Œ, HEVC์˜ ๊ณ„์ธต์ ์œผ๋กœ ์ธ์ ‘ํ•œ PU๋กœ๋ถ€ํ„ฐ MV๋ฅผ ์˜ˆ์ธกํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ์•ˆํ•˜์—ฌ MV ์˜ˆ์ธก์˜ ์ •ํ™•๋„๋ฅผ ํฐ ํญ์œผ๋กœ ํ–ฅ์ƒ์‹œ์ผฐ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ์••์ถ• ํšจ์œจ์˜ ๋ณ€ํ™” ์—†์ด IME์˜ ๊ณ„์‚ฐ ๋ณต์žก๋„๋ฅผ 67% ๊ฐ์†Œ์‹œํ‚ฌ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๋˜ํ•œ, ๋ณธ ์—ฐ๊ตฌ์—์„œ๋Š” ์ œ์•ˆ๋œ bottom-up IME ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ ์šฉํ•˜์—ฌ ์‹ค์‹œ๊ฐ„ ๋™์ž‘์ด ๊ฐ€๋Šฅํ•œ ํ•˜๋“œ์›จ์–ด ๊ธฐ๋ฐ˜์˜ IME๋ฅผ ์ œ์•ˆํ•˜์˜€๋‹ค. ๊ธฐ์กด์˜ ํ•˜๋“œ์›จ์–ด ๊ธฐ๋ฐ˜ IME๋Š” ๊ณ ์† IME ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๊ฐ–๋Š” ๋‹จ๊ณ„๋ณ„ ์˜์กด์„ฑ์œผ๋กœ ์ธํ•œ idle cycle์˜ ๋ฐœ์ƒ๊ณผ ์ฐธ์กฐ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๋ฌธ์ œ๋กœ ์ธํ•ด, ๊ณ ์† IME ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ๋˜๋Š” ํ•˜๋“œ์›จ์–ด์— ๋งž๊ฒŒ ๊ณ ์† IME ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ˆ˜์ •ํ•˜์˜€๊ธฐ ๋•Œ๋ฌธ์— ์••์ถ• ํšจ์œจ์˜ ์ €ํ•˜๊ฐ€ ์ˆ˜ ํผ์„ผํŠธ ์ด์ƒ์œผ๋กœ ๋งค์šฐ ์ปธ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ณธ ์—ฐ๊ตฌ์—์„œ๋Š” ๊ณ ์† IME ์•Œ๊ณ ๋ฆฌ์ฆ˜์ธ TZS ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ฑ„ํƒํ•˜์—ฌ TZS ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ณ„์‚ฐ ๋ณต์žก๋„ ๊ฐ์†Œ ์„ฑ๋Šฅ์„ ํ›ผ์†ํ•˜์ง€ ์•Š๋Š” ํ•˜๋“œ์›จ์–ด ๊ธฐ๋ฐ˜์˜ IME๋ฅผ ์ œ์•ˆํ•˜์˜€๋‹ค. ๊ณ ์† IME ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ•˜๋“œ์›จ์–ด์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋‹ค์Œ ์„ธ ๊ฐ€์ง€ ์‚ฌํ•ญ์„ ์ œ์•ˆํ•˜๊ณ  ํ•˜๋“œ์›จ์–ด์— ์ ์šฉํ•˜์˜€๋‹ค. ์ฒซ ์งธ๋กœ, ๊ณ ์† IME ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ณ ์งˆ์  ๋ฌธ์ œ์ธ idle cycle ๋ฐœ์ƒ ๋ฌธ์ œ๋ฅผ ์„œ๋กœ ๋‹ค๋ฅธ ์ฐธ์กฐ ํ”ฝ์ณ์™€ ์„œ๋กœ ๋‹ค๋ฅธ depth์— ๋Œ€ํ•œ IME๋ฅผ ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ์„ ํ†ตํ•ด ํ•ด๊ฒฐํ•˜์˜€๋‹ค. ๋‘˜ ์งธ๋กœ, ์ฐธ์กฐ ๋ฐ์ดํ„ฐ๋กœ์˜ ๋น ๋ฅด๊ณ  ์ž์œ ๋กœ์šด ์ ‘๊ทผ์„ ์œ„ํ•ด ์ฐธ์กฐ ๋ฐ์ดํ„ฐ์˜ locality ์ด์šฉํ•œ multi bank SRAM ๊ตฌ์กฐ๋ฅผ ์ œ์•ˆํ•˜์˜€๋‹ค. ์…‹ ์งธ๋กœ, ์ง€๋‚˜์น˜๊ฒŒ ์ž์œ ๋กœ์šด ์ฐธ์กฐ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ์ด ๋ฐœ์ƒ์‹œํ‚ค๋Š” ๋Œ€๋Ÿ‰์˜ ์Šค์œ„์นญ mux์˜ ์‚ฌ์šฉ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ํƒ์ƒ‰ ์ค‘์‹ฌ์„ ๊ธฐ์ค€์œผ๋กœ ํ•˜๋Š” ์ œํ•œ๋œ ์ž์œ ๋„์˜ ์ฐธ์กฐ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ์„ ์ œ์•ˆํ•˜์˜€๋‹ค. ๊ฒฐ๊ณผ ์ œ์•ˆ๋œ IME ํ•˜๋“œ์›จ์–ด๋Š” HEVC์˜ ๋ชจ๋“  ๋ธ”๋ก ํฌ๊ธฐ๋ฅผ ์ง€์›ํ•˜๋ฉด์„œ, ์ฐธ์กฐ ํ”ฝ์ฒ˜ 4์žฅ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ, 4k UHD ์˜์ƒ์„ 60fps์˜ ์†๋„๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ด ๋•Œ ์••์ถ• ํšจ์œจ์˜ ์†์‹ค์€ 0.11%๋กœ ๊ฑฐ์˜ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š๋Š”๋‹ค. ์ด ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ํ•˜๋“œ์›จ์–ด ๋ฆฌ์†Œ์Šค๋Š” 1.27M gates์ด๋‹ค. HEVC์— ์ƒˆ๋กœ์ด ์ฑ„ํƒ๋œ merge mode estimation์€ ์••์ถ• ํšจ์œจ ๊ฐœ์„  ํšจ๊ณผ๊ฐ€ ๋›ฐ์–ด๋‚œ ์ƒˆ๋กœ์šด ๊ธฐ์ˆ ์ด์ง€๋งŒ, ๋งค PU ๋งˆ๋‹ค ๊ณ„์‚ฐ ๋ณต์žก๋„์˜ ๋ณ€๋™ ํญ์ด ์ปค์„œ ํ•˜๋“œ์›จ์–ด๋กœ ๊ตฌํ˜„๋˜๋Š” ๊ฒฝ์šฐ ํ•˜๋“œ์›จ์–ด ๋ฆฌ์†Œ์Šค์˜ ๋‚ญ๋น„๊ฐ€ ๋งŽ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋ณธ ์—ฐ๊ตฌ์—์„œ๋Š” ํšจ์œจ์ ์ธ ํ•˜๋“œ์›จ์–ด ๊ธฐ๋ฐ˜ MME ๋ฐฉ๋ฒ•๊ณผ ํ•˜๋“œ์›จ์–ด ๊ตฌ์กฐ๋ฅผ ํ•จ๊ป˜ ์ œ์•ˆํ•˜์˜€๋‹ค. ๊ธฐ์กด MME ๋ฐฉ์‹์€ ์ด์›ƒ PU์— ์˜ํ•ด ๋ณด๊ฐ„ ํ•„ํ„ฐ ์ ์šฉ ์—ฌ๋ถ€๊ฐ€ ๊ฒฐ์ •๋˜๊ธฐ ๋•Œ๋ฌธ์—, ๋ณด๊ฐ„ ํ•„ํ„ฐ์˜ ์‚ฌ์šฉ๋ฅ ์€ 50% ์ดํ•˜๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ํ•˜๋“œ์›จ์–ด๋Š” ๋ณด๊ฐ„ ํ•„ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์— ๋งž์ถ”์–ด ์„ค๊ณ„๋˜์–ด์™”๊ธฐ ๋•Œ๋ฌธ์— ํ•˜๋“œ์›จ์–ด ๋ฆฌ์†Œ์Šค์˜ ์‚ฌ์šฉ ํšจ์œจ์ด ๋‚ฎ์•˜๋‹ค. ๋ณธ ์—ฐ๊ตฌ์—์„œ๋Š” ๊ฐ€์žฅ ํ•˜๋“œ์›จ์–ด ๋ฆฌ์†Œ์Šค๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์„ธ๋กœ ๋ฐฉํ–ฅ ๋ณด๊ฐ„ ํ•„ํ„ฐ๋ฅผ ์ ˆ๋ฐ˜ ํฌ๊ธฐ๋กœ ์ค„์ธ ๋‘ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ ํŒจ์Šค๋ฅผ ๊ฐ–๋Š” MME ํ•˜๋“œ์›จ์–ด ๊ตฌ์กฐ๋ฅผ ์ œ์•ˆํ•˜์˜€๊ณ , ๋†’์€ ํ•˜๋“œ์›จ์–ด ์‚ฌ์šฉ๋ฅ ์„ ์œ ์ง€ํ•˜๋ฉด์„œ ์••์ถ• ํšจ์œจ ์†์‹ค์„ ์ตœ์†Œํ™” ํ•˜๋Š” merge ํ›„๋ณด ํ• ๋‹น ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ œ์•ˆํ•˜์˜€๋‹ค. ๊ฒฐ๊ณผ, ๊ธฐ์กด ํ•˜๋“œ์›จ์–ด ๊ธฐ๋ฐ˜ MME ๋ณด๋‹ค 24% ์ ์€ ํ•˜๋“œ์›จ์–ด ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ๋„ 7.4% ๋” ๋น ๋ฅธ ์ˆ˜ํ–‰ ์‹œ๊ฐ„์„ ๊ฐ–๋Š” ์ƒˆ๋กœ์šด ํ•˜๋“œ์›จ์–ด ๊ธฐ๋ฐ˜์˜ MME๋ฅผ ๋‹ฌ์„ฑํ•˜์˜€๋‹ค. ์ œ์•ˆ๋œ ํ•˜๋“œ์›จ์–ด ๊ธฐ๋ฐ˜์˜ MME๋Š” 460.8K gates์˜ ํ•˜๋“œ์›จ์–ด ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  4k UHD ์˜์ƒ์„ 30 fps์˜ ์†๋„๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.์ œ 1 ์žฅ ์„œ ๋ก  1 1.1 ์—ฐ๊ตฌ ๋ฐฐ๊ฒฝ 1 1.2 ์—ฐ๊ตฌ ๋‚ด์šฉ 3 1.3 ๊ณตํ†ต ์‹คํ—˜ ํ™˜๊ฒฝ 5 1.4 ๋…ผ๋ฌธ ๊ตฌ์„ฑ 6 ์ œ 2 ์žฅ ๊ด€๋ จ ์—ฐ๊ตฌ 7 2.1 HEVC ํ‘œ์ค€ 7 2.1.1 ์ฟผ๋“œ-ํŠธ๋ฆฌ ๊ธฐ๋ฐ˜์˜ ๊ณ„์ธต์  ๋ธ”๋ก ๊ตฌ์กฐ 7 2.1.2 HEVC ์˜ Inter Prediction 9 2.2 ํ™”๋ฉด ๊ฐ„ ์˜ˆ์ธก์˜ ์†๋„ ํ–ฅ์ƒ์„ ์œ„ํ•œ ์ด์ „ ์—ฐ๊ตฌ 17 2.2.1 ๊ณ ์† Integer Motion Estimation ์•Œ๊ณ ๋ฆฌ์ฆ˜ 17 2.2.2 ๊ณ ์† Merge Mode Estimation ์•Œ๊ณ ๋ฆฌ์ฆ˜ 20 2.3 ํ™”๋ฉด ๊ฐ„ ์˜ˆ์ธก ํ•˜๋“œ์›จ์–ด ๊ตฌ์กฐ์— ๋Œ€ํ•œ ์ด์ „ ์—ฐ๊ตฌ 21 2.3.1 ํ•˜๋“œ์›จ์–ด ๊ธฐ๋ฐ˜ Integer Motion Estimation ์—ฐ๊ตฌ 21 2.3.2 ํ•˜๋“œ์›จ์–ด ๊ธฐ๋ฐ˜ Merge Mode Estimation ์—ฐ๊ตฌ 25 ์ œ 3 ์žฅ Bottom-up Integer Motion Estimation 26 3.1 ์„œ๋กœ ๋‹ค๋ฅธ ๊ณ„์ธต ๊ฐ„์˜ Motion Vector ๊ด€๊ณ„ ๊ด€์ฐฐ 26 3.1.1 ์„œ๋กœ ๋‹ค๋ฅธ ๊ณ„์ธต ๊ฐ„์˜ Motion Vector ๊ด€๊ณ„ ๋ถ„์„ 26 3.1.2 Top-down ๋ฐ Bottom-up ๋ฐฉํ–ฅ์˜ Motion Vector ๊ด€๊ณ„ ๋ถ„์„ 30 3.2 Bottom-up Motion Vector Prediction 33 3.3 Bottom-up Integer Motion Estimation 37 3.3.1 Bottom-up Integer Motion Estimation - Single MVP 37 3.3.2 Bottom-up Integer Motion Estimation - Multiple MVP 38 3.4 ์‹คํ—˜ ๊ฒฐ๊ณผ 40 ์ œ 4 ์žฅ ํ•˜๋“œ์›จ์–ด ๊ธฐ๋ฐ˜ Integer Motion Estimation 46 4.1 Bottom-up Integer Motion Estimation์˜ ํ•˜๋“œ์›จ์–ด ์ ์šฉ 46 4.2 ํ•˜๋“œ์›จ์–ด๋ฅผ ์œ„ํ•œ ์ˆ˜์ •๋œ Test Zone Search 47 4.2.1 SAD-tree๋ฅผ ํ™œ์šฉํ•œ CU ๋‚ด PU์˜ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ 47 4.2.2 Grid ๊ธฐ๋ฐ˜์˜ Sampled Raster Search 53 4.2.3 ์„œ๋กœ ๋‹ค๋ฅธ PU ๊ฐ„์˜ ์ค‘๋ณต ์—ฐ์‚ฐ ์ œ๊ฑฐ 55 4.3 Idle cycle์ด ๊ฐ์†Œ๋œ 5-stage ํŒŒ์ดํ”„๋ผ์ธ ์Šค์ผ€์ค„ 56 4.3.1 ํŒŒ์ดํ”„๋ผ์ธ ์Šคํ…Œ์ด์ง€ ๋ณ„ ๋™์ž‘ 56 4.3.2 Test Zone Search์˜ ์˜์กด์„ฑ์œผ๋กœ ์ธํ•œ Idle cycle ๋„์ž… 58 4.3.3 ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ์„ ํ†ตํ•œ Idle cycle ๊ฐ์†Œ 60 4.4 ๊ณ ์† ๋™์ž‘์„ ์œ„ํ•œ ์ฐธ์กฐ ๋ฐ์ดํ„ฐ ๊ณต๊ธ‰ ๋ฐฉ๋ฒ• 63 4.4.1 ์ฐธ์กฐ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ํŒจํ„ด ๋ฐ ์ ‘๊ทผ ์ง€์—ฐ ๋ฐœ์ƒ ์‹œ ๋ฌธ์ œ์  63 4.4.2 Search Points์˜ Locality๋ฅผ ํ™œ์šฉํ•œ ์ฐธ์กฐ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ 64 4.4.3 ๋‹จ์ผ cycle ์ฐธ์กฐ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ์„ ์œ„ํ•œ Multi Bank ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ 66 4.4.4 ์ฐธ์กฐ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ์˜ ์ž์œ ๋„ ์ œ์–ด๋ฅผ ํ†ตํ•œ ์Šค์œ„์นญ ๋ณต์žก๋„ ์ €๊ฐ ๋ฐฉ๋ฒ• 68 4.5 ํ•˜๋“œ์›จ์–ด ๊ตฌ์กฐ 72 4.5.1 ์ „์ฒด ํ•˜๋“œ์›จ์–ด ๊ตฌ์กฐ 72 4.5.2 ํ•˜๋“œ์›จ์–ด ์„ธ๋ถ€ ์Šค์ผ€์ค„ 78 4.6 ํ•˜๋“œ์›จ์–ด ๊ตฌํ˜„ ๊ฒฐ๊ณผ ๋ฐ ์‹คํ—˜ ๊ฒฐ๊ณผ 82 4.6.1 ํ•˜๋“œ์›จ์–ด ๊ตฌํ˜„ ๊ฒฐ๊ณผ 82 4.6.2 ์ˆ˜ํ–‰ ์‹œ๊ฐ„ ๋ฐ ์••์ถ• ํšจ์œจ 84 4.6.3 ์ œ์•ˆ ๋ฐฉ๋ฒ• ์ ์šฉ ๋‹จ๊ณ„ ๋ณ„ ์„ฑ๋Šฅ ๋ณ€ํ™” 88 4.6.4 ์ด์ „ ์—ฐ๊ตฌ์™€์˜ ๋น„๊ต 91 ์ œ 5 ์žฅ ํ•˜๋“œ์›จ์–ด ๊ธฐ๋ฐ˜ Merge Mode Estimation 96 5.1 ๊ธฐ์กด Merge Mode Estimation์˜ ํ•˜๋“œ์›จ์–ด ๊ด€์ ์—์„œ์˜ ๊ณ ์ฐฐ 96 5.1.1 ๊ธฐ์กด Merge Mode Estimation 96 5.1.2 ๊ธฐ์กด Merge Mode Estimation ํ•˜๋“œ์›จ์–ด ๊ตฌ์กฐ ๋ฐ ๋ถ„์„ 98 5.1.3 ๊ธฐ์กด Merge Mode Estimation์˜ ํ•˜๋“œ์›จ์–ด ์‚ฌ์šฉ๋ฅ  ์ €ํ•˜ ๋ฌธ์ œ 100 5.2 ์—ฐ์‚ฐ๋Ÿ‰ ๋ณ€๋™ํญ์„ ๊ฐ์†Œ์‹œํ‚จ ์ƒˆ๋กœ์šด Merge Mode Estimation 103 5.3 ์ƒˆ๋กœ์šด Merge Mode Estimation์˜ ํ•˜๋“œ์›จ์–ด ๊ตฌํ˜„ 106 5.3.1 ํ›„๋ณด ํƒ€์ž… ๋ณ„ ๋…๋ฆฝ์  path๋ฅผ ๊ฐ–๋Š” ํ•˜๋“œ์›จ์–ด ๊ตฌ์กฐ 106 5.3.2 ํ•˜๋“œ์›จ์–ด ์‚ฌ์šฉ๋ฅ ์„ ๋†’์ด๊ธฐ ์œ„ํ•œ ์ ์‘์  ํ›„๋ณด ํ• ๋‹น ๋ฐฉ๋ฒ• 109 5.3.3 ์ ์‘์  ํ›„๋ณด ํ• ๋‹น ๋ฐฉ๋ฒ•์„ ์ ์šฉํ•œ ํ•˜๋“œ์›จ์–ด ์Šค์ผ€์ค„ 111 5.4 ์‹คํ—˜ ๊ฒฐ๊ณผ ๋ฐ ํ•˜๋“œ์›จ์–ด ๊ตฌํ˜„ ๊ฒฐ๊ณผ 114 5.4.1 ์ˆ˜ํ–‰ ์‹œ๊ฐ„ ๋ฐ ์••์ถ• ํšจ์œจ ๋ณ€ํ™” 114 5.4.2 ํ•˜๋“œ์›จ์–ด ๊ตฌํ˜„ ๊ฒฐ๊ณผ 116 ์ œ 6 ์žฅ Overall Inter Prediction 117 6.1 CTU ๋‹จ์œ„์˜ 3-stage ํŒŒ์ดํ”„๋ผ์ธ Inter Prediction 117 6.2 Two-way Encoding Order 119 6.2.1 Top-down ์ธ์ฝ”๋”ฉ ์ˆœ์„œ์™€ Bottom-up ์ธ์ฝ”๋”ฉ ์ˆœ์„œ 119 6.2.2 ๊ธฐ์กด ๊ณ ์† ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ํ˜ธํ™˜๋˜๋Š” Two-way Encoding Order 120 6.2.3 ๊ธฐ์กด ๊ณ ์† ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ๊ฒฐํ•ฉ ๋ฐ ๋น„๊ต ์‹คํ—˜ ๊ฒฐ๊ณผ 123 ์ œ 7 ์žฅ Next Generation Video Coding์œผ๋กœ์˜ ํ™•์žฅ 127 7.1 Bottom-up Motion Vector Prediction์˜ ํ™•์žฅ 127 7.2 Bottom-up Integer Motion Estimation์˜ ํ™•์žฅ 130 ์ œ 8 ์žฅ ๊ฒฐ ๋ก  132Docto

    Algoritmo de estimaรงรฃo de movimento e sua arquitetura de hardware para HEVC

    Get PDF
    Doutoramento em Engenharia EletrotรฉcnicaVideo coding has been used in applications like video surveillance, video conferencing, video streaming, video broadcasting and video storage. In a typical video coding standard, many algorithms are combined to compress a video. However, one of those algorithms, the motion estimation is the most complex task. Hence, it is necessary to implement this task in real time by using appropriate VLSI architectures. This thesis proposes a new fast motion estimation algorithm and its implementation in real time. The results show that the proposed algorithm and its motion estimation hardware architecture out performs the state of the art. The proposed architecture operates at a maximum operating frequency of 241.6 MHz and is able to process 1080p@60Hz with all possible variables block sizes specified in HEVC standard as well as with motion vector search range of up to ยฑ64 pixels.A codificaรงรฃo de vรญdeo tem sido usada em aplicaรงรตes tais como, vรญdeovigilรขncia, vรญdeo-conferรชncia, video streaming e armazenamento de vรญdeo. Numa norma de codificaรงรฃo de vรญdeo, diversos algoritmos sรฃo combinados para comprimir o vรญdeo. Contudo, um desses algoritmos, a estimaรงรฃo de movimento รฉ a tarefa mais complexa. Por isso, รฉ necessรกrio implementar esta tarefa em tempo real usando arquiteturas de hardware apropriadas. Esta tese propรตe um algoritmo de estimaรงรฃo de movimento rรกpido bem como a sua implementaรงรฃo em tempo real. Os resultados mostram que o algoritmo e a arquitetura de hardware propostos tรชm melhor desempenho que os existentes. A arquitetura proposta opera a uma frequรชncia mรกxima de 241.6 MHz e รฉ capaz de processar imagens de resoluรงรฃo 1080p@60Hz, com todos os tamanhos de blocos especificados na norma HEVC, bem como um domรญnio de pesquisa de vetores de movimento atรฉ ยฑ64 pixels
    corecore