36 research outputs found

    Spatial Correlation-Based Motion-Vector Prediction for Video-Coding Efficiency Improvement

    Get PDF
    H.265/HEVC achieves an average bitrate reduction of 50% for fixed video quality compared with the H.264/AVC standard, while computation complexity is significantly increased. The purpose of this work is to improve coding efficiency for the next-generation video-coding standards. Therefore, by developing a novel spatial neighborhood subset, efficient spatial correlation-based motion vector prediction (MVP) with the coding-unit (CU) depth-prediction algorithm is proposed to improve coding efficiency. Firstly, by exploiting the reliability of neighboring candidate motion vectors (MVs), the spatial-candidate MVs are used to determine the optimized MVP for motion-data coding. Secondly, the spatial correlation-based coding-unit depth-prediction is presented to achieve a better trade-off between coding efficiency and computation complexity for interprediction. This approach can satisfy an extreme requirement of high coding efficiency with not-high requirements for real-time processing. The simulation results demonstrate that overall bitrates can be reduced, on average, by 5.35%, up to 9.89% compared with H.265/HEVC reference software in terms of the Bjontegaard Metric

    VLSI architectures design for encoders of High Efficiency Video Coding (HEVC) standard

    Get PDF
    The growing popularity of high resolution video and the continuously increasing demands for high quality video on mobile devices are producing stronger needs for more efficient video encoder. Concerning these desires, HEVC, a newest video coding standard, has been developed by a joint team formed by ISO/IEO MPEG and ITU/T VCEG. Its design goal is to achieve a 50% compression gain over its predecessor H.264 with an equal or even higher perceptual video quality. Motion Estimation (ME) being as one of the most critical module in video coding contributes almost 50%-70% of computational complexity in the video encoder. This high consumption of the computational resources puts a limit on the performance of encoders, especially for full HD or ultra HD videos, in terms of coding speed, bit-rate and video quality. Thus the major part of this work concentrates on the computational complexity reduction and improvement of timing performance of motion estimation algorithms for HEVC standard. First, a new strategy to calculate the SAD (Sum of Absolute Difference) for motion estimation is designed based on the statistics on property of pixel data of video sequences. This statistics demonstrates the size relationship between the sum of two sets of pixels has a determined connection with the distribution of the size relationship between individual pixels from the two sets. Taking the advantage of this observation, only a small proportion of pixels is necessary to be involved in the SAD calculation. Simulations show that the amount of computations required in the full search algorithm is reduced by about 58% on average and up to 70% in the best case. Secondly, from the scope of parallelization an enhanced TZ search for HEVC is proposed using novel schemes of multiple MVPs (motion vector predictor) and shared MVP. Specifically, resorting to multiple MVPs the initial search process is performed in parallel at multiple search centers, and the ME processing engine for PUs within one CU are parallelized based on the MVP sharing scheme on CU (coding unit) level. Moreover, the SAD module for ME engine is also parallelly implemented for PU size of 32ร—32. Experiments indicate it achieves an appreciable improvement on the throughput and coding efficiency of the HEVC video encoder. In addition, the other part of this thesis is contributed to the VLSI architecture design for finding the first W maximum/minimum values targeting towards high speed and low hardware cost. The architecture based on the novel bit-wise AND scheme has only half of the area of the best reference solution and its critical path delay is comparable with other implementations. While the FPCG (full parallel comparison grid) architecture, which utilizes the optimized comparator-based structure, achieves 3.6 times faster on average on the speed and even 5.2 times faster at best comparing with the reference architectures. Finally the architecture using the partial sorting strategy reaches a good balance on the timing performance and area, which has a slightly lower or comparable speed with FPCG architecture and a acceptable hardware cost

    A One-dimensional HEVC video steganalysis method using the Optimality of Predicted Motion Vectors

    Full text link
    Among steganalysis techniques, detection against motion vector (MV) domain-based video steganography in High Efficiency Video Coding (HEVC) standard remains a hot and challenging issue. For the purpose of improving the detection performance, this paper proposes a steganalysis feature based on the optimality of predicted MVs with a dimension of one. Firstly, we point out that the motion vector prediction (MVP) of the prediction unit (PU) encoded using the Advanced Motion Vector Prediction (AMVP) technique satisfies the local optimality in the cover video. Secondly, we analyze that in HEVC video, message embedding either using MVP index or motion vector differences (MVD) may destroy the above optimality of MVP. And then, we define the optimal rate of MVP in HEVC video as a steganalysis feature. Finally, we conduct steganalysis detection experiments on two general datasets for three popular steganography methods and compare the performance with four state-of-the-art steganalysis methods. The experimental results show that the proposed optimal rate of MVP for all cover videos is 100\%, while the optimal rate of MVP for all stego videos is less than 100\%. Therefore, the proposed steganography scheme can accurately distinguish between cover videos and stego videos, and it is efficiently applied to practical scenarios with no model training and low computational complexity.Comment: Submitted to TCSV

    Low-power and application-specific SRAM design for energy-efficient motion estimation

    Get PDF
    Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2012.Cataloged from PDF version of thesis.Includes bibliographical references (p. 181-189).Video content is expected to account for 70% of total mobile data traffic in 2015. High efficiency video coding, in this context, is crucial for lowering the transmission and storage costs for portable electronics. However, modern video coding standards impose a large hardware complexity. Hence, energy-efficiency of these hardware blocks is becoming more critical than ever before for mobile devices. SRAMs are critical components in almost all SoCs affecting the overall energy-efficiency. This thesis focuses on algorithm and architecture development as well as low-power and application-specific SRAM design targeting motion estimation. First, a motion estimation design is considered for the next generation video standard, HEVC. Hardware cost and coding efficiency trade-offs are quantified and an optimum design choice between hardware complexity and coding efficiency is proposed. Hardware-efficient search algorithm, shared search range across CU engines and pixel pre-fetching algorithms provide 4.3x area, 56x on-chip bandwidth and 151 x off-chip bandwidth reduction. Second, a highly-parallel motion estimation design targeting ultra-low voltage operation and supporting AVC/H.264 and VC-1 standards are considered. Hardware reconfigurability along with frame and macro-block parallel processing are implemented for this engine to maximize hardware sharing between multiple standards and to meet throughput constraints. Third, in the context of low-power SRAMs, a 6T and an 8T SRAM are designed in 28nm and 45nm CMOS technologies targeting low voltage operation. The 6T design achieves operation down to 0.6V and the 8T design achieves operation down to 0.5V providing ~ 2.8x and ~ 4.8x reduction in energy/access respectively. Finally, an application-specific SRAM design targeted for motion estimation is developed. Utilizing the correlation of pixel data to reduce bit-line switching activity, this SRAM achieves up to 1.9x energy savings compared to a similar conventional 8T design. These savings demonstrate that application-specific SRAM design can introduce a new dimension and can be combined with voltage scaling to maximize energy-efficiency.by Mahmut Ersin Sinangil.Ph.D

    High-Level Synthesis Based VLSI Architectures for Video Coding

    Get PDF
    High Efficiency Video Coding (HEVC) is state-of-the-art video coding standard. Emerging applications like free-viewpoint video, 360degree video, augmented reality, 3D movies etc. require standardized extensions of HEVC. The standardized extensions of HEVC include HEVC Scalable Video Coding (SHVC), HEVC Multiview Video Coding (MV-HEVC), MV-HEVC+ Depth (3D-HEVC) and HEVC Screen Content Coding. 3D-HEVC is used for applications like view synthesis generation, free-viewpoint video. Coding and transmission of depth maps in 3D-HEVC is used for the virtual view synthesis by the algorithms like Depth Image Based Rendering (DIBR). As first step, we performed the profiling of the 3D-HEVC standard. Computational intensive parts of the standard are identified for the efficient hardware implementation. One of the computational intensive part of the 3D-HEVC, HEVC and H.264/AVC is the Interpolation Filtering used for Fractional Motion Estimation (FME). The hardware implementation of the interpolation filtering is carried out using High-Level Synthesis (HLS) tools. Xilinx Vivado Design Suite is used for the HLS implementation of the interpolation filters of HEVC and H.264/AVC. The complexity of the digital systems is greatly increased. High-Level Synthesis is the methodology which offers great benefits such as late architectural or functional changes without time consuming in rewriting of RTL-code, algorithms can be tested and evaluated early in the design cycle and development of accurate models against which the final hardware can be verified

    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
    corecore