3 research outputs found
Hardware based High Accuracy Integer Motion Estimation and Merge Mode Estimation
ํ์๋
ผ๋ฌธ (๋ฐ์ฌ)-- ์์ธ๋ํ๊ต ๋ํ์ ๊ณต๊ณผ๋ํ ์ ๊ธฐยท์ปดํจํฐ๊ณตํ๋ถ, 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