áááá¡ááá¯ááºáž áá®áá®ááá¯ááŸáá·áº áá¯ááºáá¯á¶áá»á¬ážááŒáá·áº áá¯ááºáá±á¬ááºááŒááºážá á¡ááŒá±áá¶áá»á¬áž
á¡áááºááá¯á·áááºáž, áá®áá®ááá¯áá¯ááºáá áºááẠáá áºáá»á áºáááºáá®áá®ááá¯ááᯠáá»á¯á¶á·ááŒá®áž/ááá¯á·ááá¯áẠáá»á¯á¶á·áá±ážááá·áº áá±á¬á·ááºáá²ááº/áá¬á·ááºáá²á¡ááá¯ááºážáá áºáá¯ááŒá áºáááºá
áá¬á¡ááœááºáá²? Bandwidth ááŸáá·áº áááºáááºáá±á¬ ááá·áºáááºáá»ááºáá»á¬ážááŸááá±á¬áºáááºážá
áá±áá¬ááá¯ááŸá±á¬ááºááŸá¯áá±áá¬ááŸáá·áº áááºáááºá áá±ážááœááºááẠááá¯ááá¯ááŒáá·áºáá¬ážáá±á¬ á¡áááºá¡ááœá±ážááŸááá±á¬ áá®áá®ááá¯ááᯠáá±á¬ááºážááá¯áááºá áá±á¬ááºáá¯á¶ážááá¯á·á
áºááœáẠáá
áºá
áá¹ááá·áºáá»áŸáẠ30 framesá 24 bits per pixelá resolution 480x240 á¡ááœáẠááá¯á¡ááºáá±á¬ á¡áááá·áºáá¯á¶ážááᯠáááºáá²á·ááá¯á· ááœááºáá»ááºáá²á·áááºááᯠááŸááºáááá«ááá¬ážá ááááááºááŸá¯áááŸááá² 82,944 Mbit/s áááŸááá²á·áááºá Compression ááẠáááºááŸáááœáẠáá±áá¯áá»á¡á¬ážááŒáá·áº HD/FullHD/4K ááᯠáá¯ááºááŒááºáá¶ááŒá¬ážáááºáá¬ážááŒááºáá»á¬ážááŸáá·áº á¡ááºáá¬áááºááá¯á· áá¯ááºááœáŸáá·áºááẠáá
áºáá¯áááºážáá±á¬áááºážáááºážááŒá
áºáááºá áá«ááᯠáááºááá¯á¡á±á¬ááºááŒááºáá²á áá² á¡ááááááºážáááºážááœá±ááᯠá¡ááá¯áá»á¯ááºááŒáá·áºáá¡á±á¬ááºá
áá¬áá¬ááŒááºááŒááºážááᯠEDISON Software ááá¶á·ááá¯ážááŸá¯ááŒáá·áº ááŒá¯áá¯ááºáá²á·áá«áááºááá«ááá¯á·áá á±á·á ááºáááº
áá®áá®ááá¯á á±á¬áá·áºááŒáá·áºáá±ážá áá áºáá»á¬áž áá±á«ááºážá ááºááŒááºážá ááŸáá·áºáá»áœááºá¯ááºááá¯á·ááẠmicrotomograph ááá¯áá®ááœááºáá±áá«áááºá .
Codec ááŸáá·áº ááœááºááááºáá¬
á¡áá áºá¡áá áºáá±á¬ á¡ááŸá¬ážáá áºáá¯ááẠáá áºáá»á áºááẠáá®áá®ááá¯áá¯ááºáááºááŸáá·áº áá áºáá»á áºááẠáá®áá®ááá¯ááœááºááááºáá¬ááᯠááŸá¯ááºááœá±ážá á±áá«áááºá ááœááºááááºáá¬ááẠáááºááŸááºáá¬ážáá±á¬ áá±á¬áºáááºáá áºáá¯ááŒá áºáááºá áá®áá®ááᯠ(ááŸáá·áº ááŒá áºááá¯ááºááŒá±ááŸááá±á¬ á¡áá¶) áááºáá¬áá±áᬠáá«áááºáá±á¬ áá¯ááºááá¯ážááŸá¯á áá»á¯á¶á·áá¬ážáá±á¬áá®áá®ááá¯á¡á¬áž ááœááºááááºáá¬áááºáá±á¬ááºááŸá¯á¡ááŒá Ạáá°áááá¯ááºáááºá
áá¯á¶ááŸááºá¡á¬ážááŒáá·áºá áá®áá®ááá¯ááá¯ááºáá
áºáá¯á ááá¯ážáá»á²á·ááŸá¯ááẠáááºážá ááœááºááááºáá¬á¡áá»áá¯ážá¡á
á¬ážááᯠáá±á¬áºááŒáááºá á¥ááá¬á ááá¯áẠvideo.mp4 ááẠááœááºááááºáá¬ááŒá
áºááá¯ááºáááºá MPEG-4 á¡ááá¯ááºáž 14ááŸáá·áº video.mkv áᯠá¡áááºáá±ážáá¬ážáá±á¬ ááá¯ááºááẠááŒá
áºááá¯ááºááŒá± á¡áá»á¬ážáá¯á¶ážááŒá
áºáááºá
á¡áááºážáááºáá±á¬áááá¯ááºáž
ááá±á¬ááºááẠáááºááá¯áá±ááá²?áááºážáááºážááá¯áá±á¬ááºážá¡á±á¬áẠáá¯ááºáá áºá¡áá±á¬ááºážááá»áá¯á·ááᯠáá¬ážáááºááá¯á· áááá¯ááºážáá²ááᯠáááºážáááºážáááºááŒáá·áºáá¡á±á¬ááºá
áá®áá®ááá¯áá¯ááºááẠH.261 1990 (áááºážááá¬á¡á - 1988) ááœáẠáá±á«áºáá¬ááŒá®áž áá±áá¬ááœáŸá²ááŒá±á¬ááºážááŸá¯ááŸá¯ááºáž 64 Kbps ááŒáá·áº áááºáááºááẠáááºáá®ážáá²á·áááºá áááºážááẠcolour subsamplingá macroblocks á áááºááá¯á·ááᯠá¡áá¯á¶ážááŒá¯áá¬ážááŒá®ážááŒá áºáááºá áá®áá®ááᯠcodec á á¶ááŸá¯ááºážááᯠ1995 áá¯ááŸá áºááœáẠáá¯ááºáá±áá²á·áááºá H.263áááá áá¯ááŸá áºá¡áá ááœá¶á·ááŒáá¯ážááá¯ážáááºáá²á·áááºá
ááááá¬ážááŸááºáž 2003 áá¯ááŸá áºááœááºááŒá®ážá á®ážáá²á·áááºá H.264 / AVC. ááá¯ááŸá áºááœááºááẠTrueMotion ááẠáááºážá á¡ááá²á· lossy áá®áá®ááᯠcodec áá¯áá±á«áºáá±á¬ áá¯ááºáááºááᯠáá¯ááºááŒááºáá²á·áááºá VP3. Google ááẠáá¯áá¹ááá®ááᯠ2008 áá¯ááŸá áºááœáẠáááºáá°áá²á·ááŒá®áž áá¯ááºáá±áá²á·áááºá VP8 ááá¯ááŸá áºá 2012 áá¯ááŸá Ạáá®áááºáá¬áááœáẠGoogle á០áá¯ááºáá±áá²á·áááºá VP9ááŸáá·áº áááºážááᯠááá±á¬ááºáá¬á á»á±ážááœááºá Ÿ ááá·áº (ááá¯ááá¯ááºážáááááá¬áá»á¬ážá¡áá«á¡áááº) ááœáẠáá¶á·ááá¯ážáá¬ážáááºá
AV1 áá®ááœááºáááºáá®ážáá¬ážáá±á¬ á¡ááá²á·ááŸáá·áº ááœáá·áºáááºážáá±á¬ á¡áááºážá¡ááŒá Ạáá®áá®ááᯠáá¯ááºááẠá¡áá áºáá áºáᯠááŒá áºáá«áááºá ááœáá·áºáááºážáá®áá®áá¬ááá¬áááẠ(AOMediaGoogleá Mozillaá Microsoftá Amazoná Netflixá AMDá ARMá NVidiaá Intel ááŸáá·áº Cisco áá²á·ááá¯á·áá±á¬ á¡áá»á±á¬áºááŒá¬ážáá¯á¶ážáá¯áá¹ááá®áá»á¬áž áá«áááºáááºá codec á ááááá¯á¶ážáá¬ážááŸááºážááŒá áºáá±á¬ 0.1.0 ááᯠ7 áá¯ááŸá Ạá§ááŒá®á 2016 áááºáá±á·ááœáẠáá¯ááºáá±áá²á·áááºá
AV1 ááœá±ážááœá¬ážááŒááºážá
2015 áá¯ááŸá áºá¡á á±á¬ááá¯ááºážááœáẠGoogle áááºáá¯ááºáá±á¬ááºáá²á·áááºá VP10Xiph (Mozilla ááá¯ááºááá¯ááºáááº) ááœááºá¡áá¯ááºáá¯ááºáá²á·áááºá DaalaááŸáá·áº Cisco ááẠáááºážáááá¯ááºááá¯áẠá¡ááá²á· áá®áá®ááá¯áá¯ááºáááºááᯠáááºáá®ážáá²á·áááºá Thor.
ááá¯á¡áá« MPEG LA ááŸá áºá áẠááá·áºáááºáá»ááºáá»á¬ážááᯠááááá¯á¶áž áá¯ááºááŒááºááŒá±áá¬áá²á·áááºá HEVC (H.265) ááŸáá·áº H.8 ááẠá¡áááŒá±ážááœá± 264 á ááá¯áá»á¬ážáá±á¬áºáááºáž áááŒá¬áá®ááœáẠáááºážááá¯á·ááẠá ááºážáá»ááºážáá»á¬ážááᯠáááºáá¶ááŒá±á¬ááºážáá²áá²á·áááº-
ááŸá
áºá
ááºááá·áºáááºáá»ááºáááŸáá
á¡ááŒá±á¬ááºážá¡áá¬á¡áááŒá±ážááœá± (áááºááœá±á 0,5%) ááŸáá·áº
áá°áá
áºááŒá±ážááẠH.10 ááẠ264 á ááá¯áá»á¬ážáááºá
ááœáá·áºáááºážáá®áá®áá¬ááá¬áááẠáááºáááºá¡áá®ážáá®ážá០áá¯áá¹ááá®áá»á¬ážá áááºáá®ážáá²á·áááº- á ááºáá á¹á ááºážáá¯ááºáá¯ááºáá°áá»á¬áž (Intelá AMDá ARMá Nvidiaá Cisco)á á¡ááŒá±á¬ááºážá¡áá¬áá¶á·ááá¯ážáá±ážáá°áá»á¬áž (Googleá Netflixá Amazon)á ááá±á¬ááºáá¬áááºáá®ážáá°áá»á¬áž (Googleá Mozilla) ááŸáá·áº á¡ááŒá¬ážá¡áá¬áá»á¬ážá
áá¯áá¹ááá®áá»á¬ážááẠáá¯á¶áááºááŸááºážáá»ááºáá áºáᯠ- áá±á¬áºáááºáá¶á á¬ážááœáá·áºáááŸááá±á¬ áá®áá®ááá¯áá¯ááºáááºáá áºáá¯ááŸááááºá áá±á«áºáá¬áááºá AV1 ááá¯ááá¯ááá¯ážááŸááºážáá±á¬ áá°ááá¯ááºááœáá·áºááá¯ááºá ááºááŒáá·áº Timothy B. Terryberry ááẠáááºááŸá AV1 á¡áá°á¡áááŸáá·áº áááºážáááá¯ááºá ááºáá¯á¶á á¶á áá°áá¡á ááŒá áºáá¬ááá·áº á¡á¶á·ááááºážáááºáááºááŸá¯áá áºáá¯ááᯠáá±ážáá²á·áááºá
ááá±á¬ááºáá¬ááŸáááá·áº AV1 codec ááᯠááá¯ááºážááŒá¬ážá
áááºááŒá¬ááá¯ááºáááºááᯠááááá¯ááºááááŒáá·áº á¡á¶á·á¡á¬ážááá·áºááœá¬ážáá«áááºá
Universal codec
universal video codec á á¡ááŒá±áᶠááá¹ááá¬ážáá»á¬ážááᯠááŒáá·áºááŒáá«á áá¯á·á á€ááá±á¬ááá¬ážá¡áá»á¬ážá á¯ááẠá¡áá¯á¶ážáááºááŒá®áž ááá¯áá²á·ááá¯á·áá±á¬ áá±ááºáá®áá¯ááºáá áºáá»á¬ážááœáẠá¡áá¯á¶ážááŒá¯ááŒáááºá VP9, AV1 О HEVC. ááŸááºážááŒáá¬ážááá·áºá¡áá¬áá»á¬ážá áœá¬ááᯠááá¯ážááŸááºážá á±áááºááŒá áºááŒá±á¬ááºáž áá»áœááºá¯ááºááááá±ážáá«áááºá áá áºáá«áá áºáá¶ááœáẠáááºááœá±á·ááá¹áá¬ááá°áá¬áá»á¬áž (H.264 áá²á·ááá¯á·) áááºážááá¬áá»á¬ážááᯠááá¯ááºááŒáááẠá¡áá¯á¶ážááŒá¯áááá·áºáááºá
1st á¡ááá·áº - áá¯á¶ááᯠááá¯ááºážááŒá¬ážáá«á
áááá¡ááá·áºááŸá¬ frame ááᯠá¡ááá¯ááºážáá»á¬ážá áœá¬á á¡ááá¯ááºážááœá²áá»á¬ážááŸáá·áº á¡ááŒá¬ážá¡ááá¯ááºážáá»á¬ážááá¯á· ááá¯ááºážááŒá¬ážáááºááŒá áºáááºá
áá¬á¡ááœááºáá²? á¡ááŒá±á¬ááºážáááºážáá»á¬ážá
áœá¬ááŸááá«áááºá áá¯á¶áá
áºáá¯á¶ááᯠááá¯ááºážááŒá¬ážáá±á¬á¡áá«á áá±ážáááºáá±á¬ ááœá±á·áá»á¬ážáá±áá±á¬ á¡á
áááºá¡ááá¯ááºážáá»á¬ážá¡ááœáẠá¡ááá¯ááºážáááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááŒááºážááŒáá·áº ááŸá¯ááºááŸá¬ážááŸá¯ vector ááᯠááá¯ááá¯áááá»á
áœá¬ ááá·áºááŸááºážááá¯ááºáá«áááºá áááºááŒáááºáá±á¬ áá±á¬ááºáá¶áá
áºáá¯á¡ááœáẠáááºááá¯ááºááá¯áẠááŒá®ážáá¬ážáá±á¬á¡ááá¯ááºážáá»á¬ážááᯠááá·áºáááºááá¯ááºáááºá
Codecs áá»á¬ážááẠáá¯á¶ááŸááºá¡á¬ážááŒáá·áº á€á¡ááá¯ááºážáá»á¬ážááᯠá¡ááá¯ááºážáá»á¬áž (ááá¯á·ááá¯ááº) á¡ááá¯ááºážáá»á¬áž)á macroblocks (ááá¯á·ááá¯áẠcoding tree blocks) ááŸáá·áº ááá¹áááœá²áá»á¬ážá áœá¬ááá¯á· á á¯á ááºážáá«áááºá á€á¡ááá¯ááºážááá¯ááºážáá»á¬ážá á¡áá»á¬ážáá¯á¶ážá¡ááœááºá¡á á¬ážááẠááœá²ááŒá¬ážáááºá HEVC ááẠáááºážá¡á¬áž 64x64 á¡ááŒá ẠAVC á០16x16 ááá¯á¡áá¯á¶ážááŒá¯áá¬ážáᬠá¡ááá¯ááºážááœá²áá»á¬ážááᯠ4x4 á¡ááœááºá¡á á¬ážá¡áá ááœá²ááá¯ááºáááºá
áá±á¬ááºáá¯á¶ážáá±á¬ááºážáá«ážáá²á frame á¡áá»áá¯ážá¡á á¬ážááœá±ááᯠááŸááºáááá±ážáá¬ážá Blocks áá»á¬ážááœáẠá¡áá¬ážáá°á¡áá¯á¶ážááŒá¯ááá¯ááºáááºá ááá¯á·ááŒá±á¬áá·áº áá»áœááºá¯ááºááá¯á·ááœáẠI-fragmentá B-blocká P-macroblock á áááºááŒáá·áº áááá¯ááºáá«áááºá
áá±á·áá»áá·áºáá»ááºáá°áá»á¬ážá¡ááœáẠáá¯á¶ááᯠá¡ááá¯ááºážááœá²ááœá²á ááŒáá·áºáá«á áá®ááá¯áá¯ááºááá¯á·á áááºá¡áááºáá±á¬ááºážáá«ážááŸá¬áá±á¬áºááŒáá¬ážááŒá®ážáá¬ážááá¯áá¯á¶ážááá¯ááºáááºá
áá¯áááá¡ááá·áº - ááá·áºááŸááºážáá»ááº
áá»áœááºá¯ááºááá¯á·ááœáẠááá¹ááá»á¬ážááŸááá«á áááºážááá¯á·á¡ááœáẠááá¹áááºáá±áááºááá·áºááŸááºážáá»ááºáá»á¬ážááᯠááŒá¯áá¯ááºááá¯ááºáá«áááºá ááá¯á· INTER ááá·áºááŸááºážáá»áẠááœáŸá²ááŒá±á¬ááºážáá±ážááááºá ááŸá¯ááºááŸá¬ážááŸá¯ vectors á¡ááŒáœááºážááŸáá·áº INTRA ááá·áºááŸááºážáá»ááºá¡ááœáẠáááºážááᯠáá°ážá ááºáááºá áŠážáááºáá»ááºááá·áºááŸááºážáá»áẠá¡ááŒáœááºážá
ááááá¡ááá·áº - á¡ááœááºááŒá±á¬ááºážááŒááºážá
áá»áœááºá¯ááºááá¯á·ááœáẠáá»ááºááŸááá±á¬ááá±á¬ááºáá áºáá¯ááŸáááẠ(ááá·áºááŸááºážáá¬ážáá±á¬á¡ááá¯ááºáž â á¡á á áºá¡ááŸááºá¡ááá¯ááºáž) ááŸááááºááŸáá·áºáá áºááŒáá¯ááºáááºá áááºážááᯠá¡áá¯á¶ážá á¯á¶á¡áááºá¡ááœá±ážááááºážááááºážáá¬ážá ááºááœáẠáááºááá·áº pixels áá»á¬ážááᯠáááºáá áºááá¯ááºáááºááᯠááááŸáááá·áºáááºážáááºážááŒáá·áº áááºážááᯠááŒá±á¬ááºážáá²ááá¯ááºáááºá á¡ááá¡áá» á¡ááŒá¯á¡áá°ááᯠáá±ážá áœááºážááá¯ááºáá±á¬ á¡ááœááºáá°ážááŒá±á¬ááºážááŸá¯ á¡áá»áá¯á·ááŸááá«áááºá
áááŒá¬ážáááºážáááºážááœá±ááŸááá±ááá·áº á¡áá±ážá áááºááᯠáá±á·áá¬ááŒáá·áºáá¡á±á¬ááºá discrete cosine á¡ááœááºááŒá±á¬ááºážáááºá (DCT - á០discrete cosine á¡ááœááºááŒá±á¬ááºážáááºá) DCT á á¡ááá áá¯ááºáá±á¬ááºáá»ááºáá»á¬áž-
- áá áºáááºáá¯á¶ážáá»á¬ážááᯠááŒáááºááŸá¯ááºážááááºážááááºážáá»á¬áž áá°áá®ááá·áºá¡ááœááºáá¯á¶ážáá»á¬ážá¡ááŒá áºááá¯á· ááŒá±á¬ááºážáááºá
- á¡á¬áá¬áááá¯ááºáᬠááŸá¯ááºááœá±ážááŸá¯ááᯠáááºááŸá¬ážáá¬ááœáẠá¡áá±á¬ááºá¡áá°ááŒá áºá á±ááẠáá«áá«ááᯠá á¯á ááºážáá±ážáááºá
- ááŒá±á¬ááºážááŒááºááŸááºááŒááºážááᯠáá±ážáááºá
áá±áá±á¬áºáá«áá®á 2 ááẠ2017 áá¯ááŸá ẠSintra R.J. (Cintra, RJ) ááŸáá·áº Bayer F.M. (Bayer FM) ááẠ14 áááºáá»áŸáá¬ááá¯á¡ááºáá±á¬ áá¯á¶áá»á¯á¶á·ááŸá¯á¡ááœáẠDCT áá²á·ááá¯á· á¡ááœááºááŒá±á¬ááºážááŒááºážá¡ááŒá±á¬ááºáž áá±á¬ááºážáá«ážáá áºáá¯ááºááᯠáá¯ááºáá±áá²á·áááºá
á¡áá»ááºáá áºáá¯á á®áá²á· á¡áá»áá¯ážáá»á±ážáá°ážááœá±ááᯠáá¬ážááááºááẠá áááºááá°áá«áá²á·á á¡áá¯áá±á¬á· áá°ááá¯á·áá²á· áááá·áºáááºááá¯ážááᯠááááŒááºááá¯á· áááºáááºááŸááºááŸáẠá¥ááá¬ááœá±ááᯠáá¯á¶ážááŒáá·áºáá¡á±á¬ááºá
ဠ8x8 pixels ááá±á¬ááºááᯠáá°ááŒáá«á áá¯á·á
á€ááá±á¬ááºááᯠá¡á±á¬ááºáá« 8 á០8 pixel áá¯á¶ááá¯á· ááŒááºááá¯áááº-
DCT ááᯠဠpixels ááááºááá¯á·ááŒááºážááœáẠá¡áá¯á¶ážáá»ááŒá®áž 8x8 block of coefficients ááᯠááá°áá«-
á¡áááºá áá»áœááºá¯ááºááá¯á·ááẠá€ááá±á¬ááºá coefficients ááá¯ááŒááºááá¯áá«áá áá»áœááºá¯ááºááá¯á·ááẠá¡á±á¬ááºáá«áá¯á¶á¡á¬áž áááŸááá«áááºá
ááŒááºáá²á·á¡ááá¯ááºážá áá°áááºážáá¯á¶áá²á· ááá°áá«áá°ážá ááá coefficient ááẠá¡ááŒá¬ážá¡á¬ážáá¯á¶ážááŸáá·áº á¡ááœááºááœá¬ááŒá¬ážáááºááᯠáááºááœá±á·ááŒááºááá¯ááºáááºá á€áááááááºážááááºážááᯠáá»ááºážáá»áŸá¡á¬ážááŒáá·áº ááá·áºááœááºážááá·áº áááºážáá»ááºážááŸá ááá°áá¬á¡á¬ážáá¯á¶ážááᯠááá¯ááºá
á¬ážááŒá¯ááá·áº DC ááááºážááááºážááᯠááá¯ááºá
á¬ážááŒá¯áááºá
ဠááááºážááááºážáá»á¬áž ááœáẠá áááºáááºá á¬ážááœáẠáá¯ááºááá¹áá ááŸááááº- áááºážááẠááŒáááºááŸá¯ááºáž ááŒáá·áºáá¬ážáá±á¬ á¡á áááºá¡ááá¯ááºážáá»á¬ážááᯠááŒáááºááŸá¯ááºáž áááºážáá±á¬ á¡á áááºá¡ááá¯ááºážáá»á¬ážááŸáá·áº ááá¯ááºážááŒá¬ážáá¬ážáááºá
áá¯ááºáá¯á¶áá
áºáá¯ááœááºá áá«áá«á¡áá»á¬ážá
á¯ááᯠááŒáááºááŸá¯ááºážáááá·áºáá±á¬áá±áá¬ááœáẠá
á¯á
ááºážáá¬ážáá±á¬ááŒá±á¬áá·áº áá¯ááºáá¯á¶á¡á¬áž áááºážáááŒáááºááŸá¯ááºáž á¡á
áááºá¡ááá¯ááºážáá»á¬ážá¡ááŒá
áºááá¯á· ááŒá±á¬ááºážáá²ááŒá®áž ááŒáá·áºáá¬ážáá±á¬ ááŒáááºááŸá¯ááºážááááºážáá»á¬ážááᯠá
áœáá·áºáá
áºáá«áá áá¯ááºáá¯á¶á¡áááºá¡ááœá±ážááᯠáá»á¬ážá
áœá¬áááááá¯ááºá
á±áá² áá¯á¶áá±á¬áºááŒááẠááá¯á¡ááºááá·áºáá±áá¬ááá¬áááᯠáá»áŸá±á¬á·áá»ááá¯ááºáááºá
Frequency ááẠá¡áá»ááºááŒááŸá¯ áááºáá»áŸáá»ááºááŒááºá áœá¬ ááŒá±á¬ááºážáá²áááºááᯠáááºááœáŸááºážáááºá
DCT ááᯠá¡áá¯á¶ážááŒá¯á áá°áááºážáá¯á¶á¡á¬áž áááºážá ááŒáááºááŸá¯ááºáž (coefficients áá¯á¶áž) ááá¯á· ááŒá±á¬ááºážáá²áᬠá¡áá±ážáá«áá¯á¶áž áá±á¬áºááááºážáá»á¬ážá áá áºá áááºáá áºááá¯ááºážááᯠá áœáá·áºáá áºááŒááºážááŒáá·áº á ááºážáááºááŸá¯ááœáẠáááŸááá¬ážáá±á¬ á¡ááááá¬ááᯠá¡áá¯á¶ážáá»ááŒáá«á áá¯á·á
ááááŠážá áœá¬ áááºážááᯠááŒáááºááŸá¯ááºážááá¯ááááºážááá¯á· ááŒá±á¬ááºážáááºá
ááá¯á·áá±á¬ááºá á¡áááá¡á¬ážááŒáá·áº áá¬áááºá¡á±á¬ááºááá¯ááºážááᯠááááºážááááºážáá»á¬ážá (áá%) ááᯠá
áœáá·áºáá
áºáá«á
áá±á¬ááºáá¯á¶ážááœááºá áá»áœááºá¯ááºááá¯á·ááẠá€á
áœáá·áºáá
áºáá¬ážáá±á¬ ááááºážááááºážáá»á¬ážá០áá¯á¶á¡á¬áž ááŒááºáááºáááºáá±á¬ááºááŒááºáž (áááááá«á áááºážááẠááŒá±á¬ááºážááŒááºááŒá
áºááááº) ááŸáá·áº áá°áááºážááŸáá·áº ááŸáá¯ááºážááŸááºáá«á
áá°áááºážáá¯á¶ááŸáá·áº áááºáá°ááŒá±á¬ááºáž áá»áœááºá¯ááºááá¯á·ááŒááºááá±á¬áºáááºáž áá°áááºážáá¯á¶ááŸáá·áº ááœá²ááœá²ááŸá¯áá»á¬ážá
áœá¬ááŸááááºá áá»áœááºá¯ááºááá¯á·ááẠ67,1875% ááᯠáá¯ááºáá
áºááá¯ááºááŒá®áž áá°áááºážááŸáá·áº áááºáá°ááá·áº á¡áá¬áá
áºáᯠáááŸááá±ážáááºá ááá¯áá±á¬ááºážáá²á· á¡áááºá¡ááœá±ážááŸááá²á· áá¯ááºáá¯á¶áá
áºáá¯á¶áááá¯á· ááááºážááááºážááœá±ááᯠááá¯á
ááºážá
á¬ážááŒá®áž á
áœáá·áºáá
áºááá¯ááºáá±ááá·áº á¡á²áá«á áá±á¬ááºá¡ááŒá±á¬ááºážá¡áá¬áá
áºáá¯áá«á
ááááºážááááºážáá áºáá¯á á®ááᯠpixels á¡á¬ážáá¯á¶ážááᯠá¡áá¯á¶ážááŒá¯á áá¯ááºáá¯ááºáááºá
á¡áá±ážááŒá®ážáááº- coefficient áá áºáá¯á á®ááẠpixel áá áºáá¯ááá¯á· ááá¯ááºááá¯áẠáá¯á¶áá±á¬áºáá¬ážááŒááºáž ááá¯ááºáá±á¬áºáááºáž pixels á¡á¬ážáá¯á¶ážá á¡áá±ážáá»ááẠáá±á«ááºážá ááºážááŸá¯ ááŒá áºáá«áááºá á€á¡á¶á·ááŒááœááºááááºáá áºááẠá¡ááœáŸááºážáá áºáá¯á á®á¡ááœáẠáá®ážááá·áºá¡áá±ážáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á áááááŸáá·áº áá¯áááááááºážáá»á¬ážááᯠáááºáá²á·ááá¯á·ááœááºáá»ááºáááºááᯠááŒááááºá
áááºážááᯠá¡ááŒá±áá¶á ááá¯ážááŸááºážáá±á¬ áá¯ááºáá¯á¶ááœá²á·á ááºážáá¯á¶ááᯠááŒáá·áºááŒááºážááŒáá·áº DCT ááᯠááŒááºáá±á¬ááºááŒáá·áºááá¯ááºáááºá á¥ááá¬á¡á¬ážááŒáá·áºá á€ááœáẠáá±á¬áºááááºážá¡áá±ážáá»áááºáá áºáá¯á á®ááᯠá¡áá¯á¶ážááŒá¯á áá¯ááºáá±ážááá·áºáááºá¹áá±á A ááŒá áºáááº-
4th á¡ááá·áº - quantization
ááááºá¡ááá·áºááœáẠcoefficients á¡áá»áá¯á·ááᯠáááºáá¯ááºááŒá®ážáá±á¬ááºá áá±á¬ááºáá¯á¶ážá¡ááá·áº (á¡ááœááºááŒá±á¬ááºážááŒááºáž) ááœáẠquantization á á¡áá°ážáá¯á¶á á¶áá áºáá¯ááᯠáá¯ááºáá±á¬ááºáá«áááºá á€á¡ááá·áºááœáẠá¡áá»ááºá¡áááºáá»á¬áž áá¯á¶ážááŸá¯á¶ážááá¯ááºáááºááᯠáááºáá¶ááá¯ááºáááºá ááá¯á·ááá¯áẠááá¯áááá¯ážááŸááºážáááºááŸá¬á áá»áœááºá¯ááºááá¯á·ááẠcompression ááá¯áááŸáááẠcoefficients ááᯠquantize áá¯ááºáá«áááºá
Coefficients áá áºáá¯á¶ážááᯠáááºáááºáá²á·ááá¯á· ááœááºááá¯ááºáááºáááºážá á¡ááá¯ážááŸááºážáá¯á¶ážáááºážáááºážáá»á¬ážáá²á០áá áºáá¯ááẠáá°áá®áá±á¬ Quantization ááŒá áºááŒá®ážá block áá áºáá¯ááᯠáá°áá±á¬á¡áá«á áááºážááᯠáááºááá¯ážáá áºáᯠ(10 ááŒáá·áº) ááœá²ááŒá®áž ááááºááᯠááŸáá·áºáááºáááºá
á€ááááºážááááºážáá»á¬ážááᯠááŒá±á¬ááºážááŒááºááŸááºááá¯ááºáá«ááá¬ážá áá¯ááºáá²á·á áá»áœááºá¯ááºááá¯á· ááœá²áá±ážáá±á¬ áá°áá®áá±á¬áááºááá¯ážááŒáá·áº ááŒáŸá±á¬ááºááá¯ááºáááºá
ááááºážááááºážáá
áºáá¯á
á®á á¡áá±ážáá«ááŸá¯ááᯠááá·áºááœááºážá
ááºážá
á¬ážááŒááºážáááŸááá±á¬ááŒá±á¬áá·áº á€áá»ááºážáááºááŸá¯ááẠá¡áá±á¬ááºážáá¯á¶ážááá¯ááºáá±á áá
áºáá¯á áááºááá¯ážáá
áºáá¯áááºážá¡á
á¬áž quantizers á matrix ááá¯áá¯á¶ážááá¯ááºááŒá®ážá ဠmatrix ááẠá¡á±á¬ááºáááºáá¬áááºá¡áá»á¬ážá
á¯ááŸáá·áº áááºáááºá¡áá±á«áºááá¯ááºážááá°áááºážá
á¯ááᯠááœááºáá»ááºááŒááºážááŒáá·áº DCT ááá¯ááºááá¯ááºááŸá¯ááᯠá¡áá¯á¶ážáá»ááá¯ááºáááºá
á¡ááá·áº 5 - entropy coding
áá±áᬠ(áá¯á¶áá¯á¶ážáá»á¬ážá á¡ááá¯ááºážá¡á
áá»á¬ážá áá±á¬ááºáá»á¬áž) ááᯠááœááºáá»ááºááŒá®ážáááºááŸáá·áº áá»áœááºá¯ááºááá¯á· áááºážááᯠá¡ááŸá¯á¶ážáááŸá áá»á¯á¶á·ááá¯ááºáá±ážáááºá áá±áá¬áá»á¯á¶á·ááẠalgorithm áááºážáááºážáá»á¬ážá
áœá¬ááŸááááºá áááºážááá¯á·áá²á០á¡áá»áá¯á·ááᯠá¡áá»ááºá¡ááŒáẠáá±á·áá¬ááŒáá·áºáá±á¬á·áááºá ááá¯ááá¯áá±ážáááºáá±á¬ áá¬ážáááºááá±á¬áá±á«ááºáááºá¡ááœáẠáá¬ážáááºááŸá¯ á
á¯á
ááºážááŸá¯- áá±ááºáá®áá®ááœááºáá°áá»á¬ážá¡ááœáẠáá±áá¬áá»á¯á¶á·ááŒááºáž á
á¬á¡á¯ááºááᯠáááºááŸá¯ááá¯ááºáá«ááẠ("
VLC ááᯠá¡áá¯á¶ážááŒá¯á áá®áá®ááá¯áá¯ááºáá¯ááºááŒááºážá
áá»áœááºá¯ááºááá¯á·ááœáẠáá¬ááºáá±á¬ááºáá»á¬ážá á®ážááŒá±á¬ááºážááŸáááẠááá¯ááŒáá«á áá¯á·á a, e, r О t. áá¯ááºááœáŸáá·áºááŸá¯áá áºáá¯ááœáẠáá¬ááºáá±á¬ááºáá áºáá¯á á®áá±á«áºáá¬ááá·áº á¡ááŒáááºá¡áá±á¡ááœáẠ(0 á០1 á¡áá) ááŒá áºááá¯ááºááŒá±ááᯠá€ááá¬ážááœáẠáá±á¬áºááŒáá¬ážáááºá
a | e | r | t | |
---|---|---|---|---|
ááŒá áºááá¯ááºáá»á± | 0,3 | 0,3 | 0,2 | 0,2 |
ááŒá áºááá¯ááºááŒá±á¡ááŸááá¯á¶ážáá»á¬ážáá¶ááá¯á· áá°ážááŒá¬ážáá±á¬ binary áá¯ááºáá»á¬áž (ááŒá áºááá¯ááºáá»á± áá±ážáááºáááº) ááŸáá·áº ááá¯ááŒá®ážáá±á¬ áá¯ááºáá»á¬ážááᯠááŒá áºááá¯ááºááŒá±áááºážáá±á¬ áá°áá»á¬ážá¡ááœáẠáááºááŸááºáá±ážááá¯ááºáá«áááºá
a | e | r | t | |
---|---|---|---|---|
ááŒá áºááá¯ááºáá»á± | 0,3 | 0,3 | 0,2 | 0,2 |
Binary áá¯áẠ| 0 | 10 | 110 | 1110 |
áá»áœááºá¯ááºááá¯á·ááẠáá¬ááºáá±á¬ááºáá áºáá¯á á®á¡ááœáẠ8 bits á¡áá¯ááºá¡áá»áá¶áááºáᯠáá°ááᬠstream ááᯠáá»á¯á¶á·ááá¯ááºáá«áááºá ááááááºááŸá¯áááŸááá²á á á¬áá¯á¶ážáá áºáá¯á¶ážáá»áŸáẠ24 bits ááá¯á¡ááºáá«áááºá á¡áá¹ááá¬áá áºáá¯á á®ááᯠáááºážááá¯ááºááŒáá·áº á¡á á¬ážááá¯ážáá«á ááœá±á á¯ááá¯ááºáááºááŒá áºáááºá
áááá¡ááá·áºááŸá¬ á á¬áá¯á¶ážááᯠáá¯ááºáá¯ááºáááºááŒá áºáááºá e10 ááŸáá·áº áá®áá»áŸáá±á¬ á áá¯ááá á¡áá¹ááᬠááŒá áºááẠaáá±á«ááºážááá·áºáá¬ážááá·áº (áááºá¹áá»á¬áááºážá¡áááá¯ááºáá«): [10][0] ááŸáá·áº áá±á¬ááºáá¯á¶áž ááááá á¬áá¯á¶áž táá»áœááºá¯ááºááá¯á·ááá±á¬ááºáá¯á¶ážáá»á¯á¶á·áá¬ážáá±á¬ bitstream ááᯠ[10][0][1110] ááá¯á·ááá¯áẠáá®áá»áŸá á±áááºá 10011107 bits áᬠááá¯á¡ááºááẠ(áá°áááºážááẠáá±áá¬ááœáẠ3,4 á ááá¯áááºážáááº)á
áá¯ááºáá
áºáá¯á
á®ááẠááŸá±á·áááºáá
áºáá¯áá«ááŸááá±á¬ áá®ážááŒá¬ážáá¯ááºáá
áºáᯠááŒá
áºááááºááᯠáá»á±ážáá°ážááŒá¯á áááááŒá¯áá«á
áá¯ááºáá¶áá«ááºááŸáá·áº áá®áá¯ááºáá«ááŸá áºáá¯á áá¯á¶ážááẠáááºážááá¯á·á ááœááá¯ááºáá»á¬ážááŒáá·áº áááºá¹áá±áááá¬ážáá áºáá¯ááá¯á· áááºáá±á¬ááºááœáá·áºááŸáááá«áááºá ááá¯á·ááŒá±á¬áá·áº ááá·áºááœááºážááŸá¯á¡ááŒá Ạááá¬ážáá áºáá¯ááᯠáá±ážááá¯á·áááºáááºáž ááá¯á¡ááºáá«áááºá
ááááºážáááºá¹áá»á¬ coding
áá»áœááºá¯ááºááá¯á·ááœáẠáá¬ááºáá±á¬ááºáá»á¬ážá á®ážááŒá±á¬ááºážááŸáááẠááá¯ááŒáá«á áá¯á·á a, e, r, s О tááŸáá·áº áááºážááá¯á·á ááŒá áºááá¯ááºááŒá±ááᯠá€ááá¬ážááœáẠáá±á¬áºááŒáá¬ážáááºá
a | e | r | s | t | |
---|---|---|---|---|---|
ááŒá áºááá¯ááºáá»á± | 0,3 | 0,3 | 0,15 | 0,05 | 0,2 |
á€ááá¬ážááᯠá¡áá¯á¶ážááŒá¯á ááŒá áºááá¯ááºááŒá±ááŸááá±á¬ á¡áá¹ááá¬áá»á¬ážáá«ááŸááá±á¬ á¡ááá¯ááºážá¡ááŒá¬ážáá»á¬ážááᯠá¡ááŒá®ážáá¯á¶ážáá¶áá«ááºááŒáá·áº á á®áá¬ážáá«áááºá
á¡áᯠá
á¬áá¯á¶ážáá¯á¶ážáá¯á¶ážáá«áá²á· stream áá
áºáá¯ááᯠáá¯ááºáá¯ááºááŒáá·áºáá¡á±á¬ááºá á
á¬ážáááº.
ááááŠážá áœá¬ááááá¬ááºáá±á¬ááºááá¯ááœá±ážáá»ááºáá«á e0,3 á០0,6 á¡ááœááºáž (ááá«áááº)á áá»áœááºá¯ááºááá¯á·ááẠá€á¡ááá¯ááºážá¡ááŒá¬ážááᯠáá°á ááááºáá²á·ááá¯á· á¡áá»áá¯ážá¡á á¬ážá¡ááá¯ááºáž áááºáá¶ááœá²áá±áá±á¬áºáááºáž á€á¡ááá¯ááºážá¡ááŒá¬ážá¡áá áºá¡ááœáẠááŒá áºáááºá
áá»áœááºá¯ááºááá¯á·á ááá¯ááºááá¯ááºáá¯ááºááœáŸáá·áºááŸá¯ááᯠáááºáááºáá¯ááºáá±á¬ááºááŒáá«á
áá¯á· á
á¬ážáááº. á¡áᯠáá¯ááááá¬ááºáá±á¬ááºááᯠáá°ááá¯ááºáá«á a0,3 á០0,39 á¡ááá¯ááºážá¡ááŒá¬ážá¡áá
áºááœááºááŸááá±á¬á ááá¯á·áá±á¬ááºáá»áœááºá¯ááºááá¯á·ááá±á¬ááºáá¯á¶ážáá¬ááºáá±á¬ááºááá¯áá°áá«á t áá°áá®áá±á¬áá¯ááºáááºážá
ááºááᯠáá
áºáááºááŒááºáá¯ááºáá«á áá»áœááºá¯ááºááá¯á·ááẠáá±á¬ááºáá¯á¶ážá¡ááá¯ááºážááœá² 0,354 á០0,372 ááá¯áááŸááááºá
áá»áœááºá¯ááºááá¯á·ááẠ0,354 á០0,372 á០áá±á¬ááºáá¯á¶ážá¡ááá¯ááºážá¡ááŒá¬ážááŸá áá¶áá«ááºáá
áºáá¯ááᯠááœá±ážáááºáá¬ááá¯áááºá 0,36 ááᯠááœá±ážááŒáá«á
áá¯á· (ááá¯á·áá±á¬áº á€á¡ááá¯ááºážá¡ááŒá¬ážááŸá á¡ááŒá¬ážáá¶áá«ááºáá»á¬ážááᯠáááºááœá±ážáá»ááºááá¯ááºáááº)á á€áá¶áá«ááºááŒáá·áºáᬠáá»áœááºá¯ááºááá¯á·á áá°áááºážá
á®ážááŒá±á¬ááºážááᯠááŒááºáááºááá°ááá¯ááºáá«áááºá áá»áœááºá¯ááºááá¯á·ááá¯ááºááœáŸáá·áºááŸá¯ááᯠáá¯ááºáá¯ááºááẠá¡ááá¯ááºážá¡ááŒá¬ážáá»á¬ážá¡ááœááºáž áá»ááºážáá
áºááŒá±á¬ááºážááœá²áá±ááá²á·ááá¯á·ááŒá
áºáááºá
ááŒá±á¬ááºážááŒááºáááºáááºááŸá¯ (ááá¯ááá¯áááºááŸá¬á á
áá¬ážááŸááº) ááẠááá¯ážááŸááºážáá«áááº- áá»áœááºá¯ááºááá¯á·á áá¶áá«áẠ0,36 ááŸáá·áº áá»áœááºá¯ááºááá¯á·á áááŠážá¡ááœá¬á¡áá±ážááŸáá·áºá¡áá°á áá»áœááºá¯ááºááá¯á·ááẠáá°áá®áá±á¬áá¯ááºáááºážá
ááºááᯠáá¯ááºáá±á¬ááºááá¯ááºáááºá ááá¯áá°á á€áá¶áá«ááºááá¯á¡áá¯á¶ážááŒá¯á á€áá¶áá«ááºááá¯á¡áá¯á¶ážááŒá¯á áá¯ááºááŸááºáá¬ážáá±á¬ á
á®ážááŒá±á¬ááºážááᯠáá»áœááºá¯ááºááá¯á·ááááŸáááá¯ááºáá«ááŒá®á
áááá¡ááœá¬á¡áá±ážááŒáá·áº áá»áœááºá¯ááºááá¯á·ááá¶áá«ááºááẠá¡áá»ááºááŸáá·áºááá¯ááºáá®ááŒá±á¬ááºáž áá»áœááºá¯ááºááá¯á·áááááŒá¯áááááºá ááá¯á·ááŒá±á¬áá·áº á€áááºááŸá¬ áá»áœááºá¯ááºááá¯á·áááááá¯á¶ážá á¬áá¯á¶ážááŒá áºáááºá ááᯠáá»áœááºá¯ááºááá¯á·ááẠááááºáá²á·ááá¯á· áá¯ááºáááºážá ááºáá»á¬ážááᯠááá¯ááºáá¬ááŒááºážááŒáá·áº á€á¡ááá¯ááºážá¡ááŒá¬ážááœá²ááᯠáááºáá¶ááœá²áá±áá«áááºá á€áá±áá¬ááœáẠ0,36 ááẠáááºá¹áá±áááŸáá·áº ááá¯ááºáá®áááºááᯠááœá±á·ááá¯ááºáááºá aáá¯ááºáááºážá ááºááᯠáááºáá«ááá²áá²áá¯ááºááŒá®ážáá±á¬áẠáá±á¬ááºáá¯á¶ážáá¬ááºáá±á¬ááºááᯠáá±á¬ááºááœá¬ážáááºá t (áá»áœááºá¯ááºááá¯á·ááá°áááºážáá¯ááºááœááºážáá¬ážáá±á¬á á®ážááŒá±á¬ááºážááá¯ááœá²á·á ááºážáááºá á á¬ážáááº).
áá¯ááºáá¶áá«ááºááŸáá·áº áá®áá¯ááºáá«ááŸá áºáá¯á áá¯á¶ážááœáẠáááºá¹áá±áááŒá áºááá¯ááºááŒá±ááá¬ážáá áºáá¯ááŸáááááºá ááá¯á·ááŒá±á¬áá·áº áááºážááᯠááá·áºááœááºážáá±áá¬á¡ááœááºážááá¯á· áá±ážááá¯á·ááẠááá¯á¡ááºáá«áááºá
áá±á¬áºáá±á¬áºááŒá±á¬á·áááºááá¯ááºáá¬áž? áá®á¡ááŒá±ááᯠáááºáá°á á¡ááŒá¶á¥á¬ááºáá±á¬ááºážáá²á á¡áá»áá¯á·áá±á¬ áá®áá®ááá¯áá¯ááºáááœááºáá»á¬ážááẠá€áááºážááá¬ááᯠá¡áá¯á¶ážááŒá¯ááẠ(ááá¯á·ááá¯áẠá¡áááºážáá¯á¶áž áááºážááᯠááœá±ážáá»ááºááŸá¯áá áºáá¯á¡ááŒá ẠáááºážááŸááºážáááº)á
á¡áá¯ááºáá®áá¬ááẠááá¬ááááºážáá±á¬ áá áºá á®ážááŒá±á¬ááºážááᯠá¡ááŸá¯á¶ážáááŸá áá»á¯á¶á·áááºááŒá áºáááºá á€áá±á¬ááºážáá«ážááẠá¡áá±ážá áááºá¡áá»ááºá¡áááºáá»á¬ážá á¡ááŒá±á¬ááºážááŒáá»ááºáá»á¬ážá á¡áá±ážá¡áá°áá»á¬ážá áááºááŒáá·áº áá»á¬ážá áœá¬ ááœá²ááŸá¬ážáá±áááºááŸá¬ áá±áá»á¬áá«áááºá áá«áá±ááá·áº áááºá developer áá áºáá±á¬ááºááá¯ááẠááá¯ááááá·áºáááºá áá¯ááºáá áºááºá¡áá áºáá»á¬ážááẠááá°ááœá²ááŒá¬ážáá±á¬ entropy áá¯ááºááŸááºááŒááºážááá¯ááºáᬠá¡ááºáááá¯áá®áááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááẠááŒáá¯ážá á¬ážááŒáááºá áá±ážá á±ááá¯áá«áááº.
á¡ááá·áº 6 - bitstream áá±á¬áºáááº
á€á¡áá¬á¡á¬ážáá¯á¶ážááá¯áá¯ááºáá±á¬ááºááŒá®ážáá±á¬ááºá áá¯ááºáá±á¬ááºáá²á·ááá·áºá¡ááá·áºáá»á¬ážáá¡ááŒá±á¡áá±ááœáẠcompressed frames áá»á¬ážááá¯áá¯ááºááá¯ážáááºáá»ááºááŸááá±áá±ážáááºá áá¯ááºááŒá±á¬ááºážáááááá¬á០ááŒá¯áá¯ááºáá±á¬ áá¯á¶ážááŒááºáá»ááºáá»á¬ážá¡ááŒá±á¬ááºáž á¡ááá¡áááºáž á¡áááá±ážááá«áááºá áá®áá¯ááºáá«ááẠááá¯á¡ááºáá±á¬ á¡áá»ááºá¡áááºá¡á¬ážáá¯á¶ážááᯠáá±ážáá±á¬ááºááá«áááº- áá áºá¡ááááºá¡áááºá á¡áá±á¬ááºá¡ááœá±ážáá±áá¬ááœááºá ááŒááºáááºááŒááºáá¬ážááŸá¯á ááá·áºááŸááºážáá»ááºá¡áá»ááºá¡ááẠ(ááŸá¯ááºááŸá¬ážááŸá¯ vectorsá directional INTER ááá·áºááŸááºážáá»ááº)á áááá¯ááá¯ááºá á¡ááá·áºá áááááºááŸá¯ááºážá áááááºá¡áá»áá¯ážá¡á á¬ážá áááááºáá¶áá«ááºááŸáá·áº á¡ááŒá¬ážá¡áá¬áá»á¬ážá
bitstream ááᯠá¡ááŒááºááŒáá·áºáá«áááºá H.264. áá»áœááºá¯ááºááá¯á·ááááá¡ááá·áºááŸá¬ á¡áááºážáá¯á¶áž H.264 bitstream áááºáá®ážáááºááŒá áºááẠ(FFmpeg ááẠáá¯á¶ááŸááºá¡á¬ážááŒáá·áº áá¯ááºááŒá±á¬ááºážááŒááºážááœá±ážáá»ááºá áá¬áá»á¬ážáá²á·ááá¯á·áá±á¬ áá¯ááºáá¶áá«ááºá¡á¬ážáá¯á¶ážááᯠáá±á«ááºážááá·áºááẠSEI NAL - á¡á²áá«á áá¬áá²ááá¯áᬠáááá«áá á±á) áá»áœááºá¯ááºááá¯á·áááá¯ááºááá¯áẠrepository ááŸáá·áº FFmpeg ááá¯á¡áá¯á¶ážááŒá¯á áááºážááá¯áá¯ááºáá±á¬ááºááá¯ááºáááºá
./s/ffmpeg -i /files/i/minimal.png -pix_fmt yuv420p /files/v/minimal_yuv420.h264
ဠcommand ááẠá¡ááŒááºáž bitstream ááá¯áá¯ááºáá±ážáááá·áºáááºá H.264 áááááºáá áºáá¯á 64Ã64 áá¯ááºááœááºááŸáá·áº á¡áá±á¬ááºáá±áá¬ááœáẠYUV420. á€ááá á¹á ááœááºá á¡á±á¬ááºáá«áá¯á¶ááᯠáááááºáá áºáá¯á¡ááŒá Ạá¡áá¯á¶ážááŒá¯áááºá
H.264 bitstream
á ᶠAVC (H.264) áá¯áá±á«áºáá±á¬ á¡áá»ááºá¡áááºáá»á¬ážááᯠmacroframes (ááœááºáááºááá±á¬á¡á) ááŒáá·áº áá±ážááá¯á·áááºáᯠáá¯á¶ážááŒááºáááºá nal (áááºážááẠnetwork abstraction á¡ááá·áºááŒá áºáááº)á NAL á á¡ááá áááºááŸááºážáá»ááºááŸá¬ "áááºááŸáá·áº á¡áááºááŒá±áá±á¬" áá®áá®ááᯠáááºáááºááŸá¯ááᯠáá¶á·ááá¯ážáá±ážááẠááŒá áºáááºá á€á á¶ááŸá¯ááºážááẠáá®áá®áá»á¬áž (á á®ážááŒá±á¬ááºážá¡ááŒá±áá¶)á á¡ááºáá¬ááẠ(áááºáááºá¡ááŒá±áá¶) ááœáẠá¡áá¯ááºáá¯ááºááá·áºáááºá
NAL ááŒááºá
ááºáá»á¬ážá áááºááááááºáá»á¬ážááᯠáááºááŸááºááẠáááºáá°ááŒá¯ááŒááºáž á¡ááŸááºá¡áá¬ážáá
áºáᯠááŸááááºá á
áá·áºááºáá¯ááºáá¬ážáá±á¬ ááá¯áááºáá
áºáá¯á
á®ááœáẠáááºááá¯ážáá
áºáá¯áá«ááŸááááºá 0x00 0x00 0x01, ááááá
áºáá¯ááŸááœá²á áá°áá®áá±á¬á 0x00 0x00 0x00 0x01. ááœáŸááºáááºáááºá hexdump áá¯ááºáá¯ááºááá¯ááºáá±á¬ H.264 bitstream á¡ááœááºá ááá¯ááºáá¡á
ááœáẠá¡áááºážáá¯á¶áž NAL áá¯á¶á
á¶áá¯á¶ážáá¯ááᯠááœá²ááŒá¬ážáááºááŸááºáá¬ážáá«áááºá
áá±á¬áºááŒáá¬ážááá·áºá¡ááá¯ááºážá áá®áá¯ááºáá«ááẠáá¯ááºáá¯á¶áá±áá¬áá¬áá áá®áá®ááá¯á áááááºá á¡áá±á¬ááºáá»á¬ážá á¡áá¯á¶ážááŒá¯áá¬ážáá±á¬ ááá·áºáááºáá»ááºáá»á¬ážááŸáá·áº á¡ááŒá¬ážá¡áá¬áá»á¬ážá á¡áá±ážá
áááºá¡áá»ááºá¡áááºáá»á¬ážááá¯áááºáž ááááá«áááºá NAL áá
áºáá¯á
á®á áááááá¯ááºááẠáááºážáá¡áá»áá¯ážá¡á
á¬ážááŸáá·áº á¡áá»áá¯ážá¡á
á¬ážááᯠáááºááŸááºáááºá
NAL á¡áá»áá¯ážá¡á á¬áž á¡ááŸááºá¡áá¬áž | áá±á«áºááŒáá»áẠ|
---|---|
0 | á¡áááºáááá¡áá»áá¯ážá¡á á¬áž |
1 | IDR ááá«áá² áá¯ááºáá¯ááºáá¬ážáá±á¬ áá¯á¶á¡ááá¯ááºážá¡á |
2 | áá¯ááºáá¶áá«ááºá¡ááá¯ááºážá¡á áá±áá¬á¡ááá¯ááºáž A |
3 | áá¯ááºáá¶áá«ááºá¡ááá¯ááºážá¡á áá±áá¬á¡ááá¯ááºáž B |
4 | áá¯ááºáá¶áá«ááºá¡ááá¯ááºážá¡á áá±áá¬á¡ááá¯ááºáž C |
5 | IDR áá¯á¶áá áºáá¯á¶á áá¯ááºáá¶áá«áẠIDR á¡ááá¯ááºáž |
6 | SEI ááá¯ážáá»á²á·ááŸá¯á¡ááŒá±á¬ááºáž áá±á¬ááºáááºá¡áá»ááºá¡áááºáá»á¬áž |
7 | SPS Sequence Parameter áááºááŸááºááŒááºážá |
8 | PPS áá¯ááºáá¯á¶ ááá·áºáááºáá»ááºáá»á¬áž á¡á á¯á¶ |
9 | á¡áá¯á¶ážááŒá¯ááœáá·áº ááŒá¬ážáá¬ážáá»áẠ|
10 | á¡áá¯áá±á¬á á¡áá¯á¶áž |
11 | áá»ááºáá¯ááºááŒá®á |
... | ... |
áá¯á¶ááŸááºá¡á¬ážááŒáá·áº bit stream áááááá¯á¶áž NAL ááẠSPS. ဠNAL á¡áá»áá¯ážá¡á á¬ážááẠáááá¯ááá¯ááºá á¡ááá·áºá ááŒááºáááºááŒááºáá¬ážááŸá¯ á¡á ááŸáááá·áº áá¯á¶áá¯ááºááŒá±á¬ááºážááááºážááŸááºáá»á¬ážá¡ááŒá±á¬ááºáž á¡áááá±ážááẠáá¬áááºááŸááááºá
ááááááºáá°áá°ážááŒááºáž á¡ááŸááºá¡áá¬ážááᯠáá»á±á¬áºááœá¬ážáá«áá áááºááá·áº NAL á¡áá»áá¯ážá¡á á¬ážááᯠááááá¯á¶áž ááááŸáááá¯ááºááẠáááááá¯ááºááᯠáá¯ááºáá¯ááºáá¯ááºááá¯ááºáá«áááºá
á¥ááá¬á sync token ááŒá®ážáá±á¬áẠááá byte ááẠ01100111ááááá Ạ(0) ááẠF áááºáááºááœááºááŸááááºáorbidden_zero_bit. áá±á¬áẠ2 bits (11) á¡ááœááºááᯠááŒá±á¬ááŒáááºá nal_ref_idcá áááºážááẠဠNAL ááẠáááºááœáŸááºážáá»ááºá¡ááœááºáá¯ááºááá¯ááºááᯠááœáŸááºááŒáááºá áá»áẠ5 bits (00111) á¡ááœááºááᯠááŒá±á¬ááŒáááºá nal_unit_typeá á€ááá á¹á ááœááºáááºážááẠSPS ááááºááá¯á·ááŒááºážááŒá áºááẠ(7) NAL
áá¯ááá ááá¯áẠ(binary=01100100, hex=0x64, áá®áááºáá¬=100) SPS NAL ááẠá¡ááœááºááŒá áºáááºá profile_idcá áááºážááẠáá¯ááºááŒá±á¬ááºážáááááá¬á¡áá¯á¶ážááŒá¯ááá·áº áááá¯ááá¯ááºááá¯ááŒááááºá á€ááá á¹á ááœááºá ááá·áºáááºááŒáá·áºáá¬ážáá±á¬áááá¯ááá¯ááºááᯠá¡áá¯á¶ážááŒá¯áá²á·ááẠ(ááá¯ááá¯áááºááŸá¬á bidirectional B-segment áá¶á·ááá¯ážááŸá¯ááá«áá² ááŒáá·áºáá¬ážáá±á¬áááá¯ááá¯ááº) ááᯠá¡áá¯á¶ážááŒá¯áá²á·áááºá
bitstream specification ááá¯ááŒáá·áºááẠH.264 SPS NAL á¡ááœááºá áá«áá¬áá®áá¬á¡áááºá á¡áá»áá¯ážá¡á
á¬ážááŸáá·áº áá±á¬áºááŒáá»ááºá¡ááœáẠáááºááá¯ážáá»á¬ážá
áœá¬ááᯠáá»áœááºá¯ááºááá¯á· ááœá±á·ááŸááá«áááºá á¥ááá¬á¡á¬ážááŒáá·áºá áááºááœááºážáá»á¬ážááá¯ááŒáá·áºááŒáá«á
áá¯á· pic_width_in_mbs_minus_1 О pic_height_in_map_units_minus_1.
Parameter á¡ááẠ| á¡áá»áá¯ážá¡á á¬áž | áá±á«áºááŒáá»áẠ|
---|---|---|
pic_width_in_mbs_minus_1 | 0 | ue(v) |
pic_height_in_map_units_minus_1 | 0 | ue(v) |
á€áááºáááºáá»á¬ážá áááºááá¯ážáá»á¬ážááŒáá·áº áááºá¹áá»á¬ááá¯ááºáᬠáá¯ááºáá±á¬ááºáá»ááºá¡áá»áá¯á·ááᯠáá¯ááºáá±á¬ááºáá«áá áá»áœááºá¯ááºááá¯á·ááẠááŒááºáááºááŒááºáá¬ážááŸá¯ááᯠáááŸááááºááŒá áºáááºá 1920 x 1080 ááá¯áá¯á¶ážááŒá®áž ááá¯ááºá á¬ážááŒá¯ááá¯ááºáá«áááºá pic_width_in_mbs_minus_1 áááºááá¯áž 119 ((119 + 1) * macroblock_size = 120 * 16 = 1920)á áá áºáááºá áá±áá¬áá»áœá±áá¬áááºá 1920 ááᯠencoding áá¯ááºááá·áºá¡á á¬áž 119 ááŒáá·áº ááŒá¯áá¯ááºáá²á·áááºá
áá»áœááºá¯ááºááá¯á· áááºáá®ážáá¬ážáá±á¬ áá®áá®ááá¯ááᯠbinary áá¯á¶á á¶ááŒáá·áº áááºáááºá á áºáá±ážáá«á (á¥ááá¬- xxd -b -c 11 v/minimal_yuv420.h264) ááá¯á·áá±á¬ááºáááºááẠframe ááá¯ááºááá¯ááºááŒá áºááá·áºáá±á¬ááºáá¯á¶áž NAL ááá¯á·ááœá¬ážááá¯ááºáááºá
á€ááœáẠáá»áœááºá¯ááºááá¯á·ááẠáááºážá ááááá¯á¶áž 6 byte áááºááá¯ážáá»á¬ážááᯠááœá±á·ááááº- 01100101 10001000 10000100 00000000 00100001 11111111. ááá byte ááẠNAL á¡áá»áá¯ážá¡á
á¬ážááᯠááœáŸááºááŒááẠáá°áááá»á¬ážáá±á¬ááŒá±á¬áá·áºá á€ááá
á¹á
ááœáẠ(00101) ááẠIDR á¡ááá¯ááºáž (á
) ááŒá
áºááŒá®ážá ááá¯á·áá±á¬áẠáááºážááᯠááẠáááºáá¶ááŸá¬ááœá±ááá¯ááºáááº-
áááºááŸááºáá»ááºá¡áá»ááºá¡áááºááᯠá¡áá¯á¶ážááŒá¯á á¡ááá¯ááºážááá¯ááºážá¡áá»áá¯ážá¡á
á¬ážááᯠáá¯ááºáá¯ááºáá¯ááºááẠááŒá
áºááá¯ááºáááá·áºááẠ(slice_type) ááŸáá·áº áá±á¬ááºáá¶áá«áẠ(frame_num) á¡ááŒá¬ážá¡áá±ážááŒá®ážáá±á¬áááºáááºáá»á¬ážá
á¡ááœááºá¡áá»áá¯á·á áááºááá¯ážáá»á¬ážááᯠááá°ááẠ(ue(v), me(v), se(v) ááá¯á·ááá¯áẠte(v)) áá»áœááºá¯ááºááá¯á·ááẠá¡áá°ážááŒá¯áá¯ááºáá«ááᯠá¡ááŒá±áá¶á á¡ááá¯ááºážá¡á
ááᯠáá¯ááºáá¯ááºááẠááá¯á¡ááºáááºá
á¡ááááºáá«áá» slice_type О frame_num á€áá®áá®ááá¯ááœáẠ7 (I-fragment) ááŸáá·áº 0 (ááááá±á¬ááº) ááá¯á·ááŒá áºáááºá
á¡áááºážáááºáá±á¬ stream ááᯠprotocol áá áºáá¯á¡ááŒá Ạáá°áááá¯ááºáááºá bitstream á¡ááŒá±á¬ááºážááá¯ááá¯ááááŸáááá¯áá«áá specification ááá¯ááá¯ážáá¬ážááá·áºáááºá ITU H.264. á€áá±áá¬ááœáẠáá¯á¶áá±áá¬ááẠáááºááá·áºáá±áá¬ááœááºááŸááááºááᯠááŒáááá·áº macro diagram áá áºáá¯ááŒá áºááẠ(YUV compressed áá¯á¶á á¶)á
áá²á·ááá¯á·áá±á¬ á¡ááŒá¬ážáá±á¬ bitstream áá»á¬ážááᯠáááºážá
á
áºááá¯ááºáá«áááºá VP9, H.265 (HEVC) ááá¯á·ááá¯áẠáá»áœááºá¯ááºááá¯á·á á¡áá±á¬ááºážáá¯á¶áž bitstream á¡áá
áºááá¯ááẠAV1. á¡á¬ážáá¯á¶ážáá°ááŒááá¬ážá ááá¯ááºáá«á ááá¯á·áá±á¬áº á¡áááºážáá¯á¶ážáá
áºáá¯ááᯠáááºáá¬ážáááºáááºááŸáá·áº áá»ááºáá
áºáá¯ááᯠáá¬ážáááºááẠááá¯áááœááºáá°áá«áááºá
áá±á·áá»áá·áºááá¯áá«ááá¬ážá H.264 bitstream ááá¯á á°ážá ááºážáá«á
áááºááẠáá áºáá¯áááºážáá±á¬ áá®áá®ááá¯ááᯠáááºáá®ážááá¯ááºááŒá®áž bitstream ááᯠá á áºáá±ážááẠMediaInfo ááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá H.264. ááááºáá±á¬á·á bit stream ááá¯ááœá²ááŒááºážá áááºááŒá¬áá²á· source code ááá¯ááŒáá·áºááá¯á·áá±á¬áẠááá·áºááᯠáááºá¡áá¬áá០áá¬ážáá®ážááá¯á·áááá«áá°ážá H.264 (AVC).
áááºááœá±á·á¡ááœááºá áááºááẠIntel Video Pro Analyzer ááá¯áá¯á¶ážááá¯ááºááẠ(áááá¯ááááºááᯠá¡áááŒá±ážááœá±áá±ážáá±á¬ááºáááºáᯠáá«ááŒá±á¬ááŒá®ážááŒá®áá±á¬á ááá¯á·áá±á¬áº ááá·áºáááºáá±á¬áẠ10 áá±á¬ááºááŸááá±á¬ á¡ááá²á· á¡á ááºážáá¬ážááŸááºážáá áºáᯠááŸááá«ááá¬ážá)
áá±áá¯áá»á¡ááŒááº
áá±ááºáá®áá¯ááºáááá¯ááºáá»á¬ážá áœá¬ááẠáá»áœááºá¯ááºááá¯á·áá±á·áá¬áá²á·ááá·áº áá°áá®áá±á¬áá¯á¶á á¶ááᯠá¡áá¯á¶ážááŒá¯ááŒá±á¬ááºáž áááááŒá¯áá«á á€ááœááºá áá®áá®ááá¯áá¯ááºáááºá ááá±á¬ááºáá¯á¶á á¶ááᯠááŒáá·áºááŒáá«á áá¯á· Thor. áááºážááœáẠáá»áœááºá¯ááºááá¯á· ááŒááºáááºážáá²á·ááá·áº á¡ááá·áºáá»á¬áž áá«áááºáááºá á€ááá¯á·á áºá á¡áá¯á¶ážá á¯á¶áá±á¬á¡áá»ááºááŸá¬ á¡áááºážáá¯á¶áž á€áááºáááºááŸá áá®ááœááºáááºážáá áºááŸá¯áá»á¬ážááŸáá·áº á á¬ááœááºá á¬áááºážáá»á¬ážááᯠááá·áºá¡á¬áž ááá¯ááá¯áá±á¬ááºážááœááºá áœá¬ áá¬ážáááºááá±á¬áá±á«ááºá á±ááẠááŒá áºáá«áááºá
ááááºá 139p á¡áááºá¡ááœá±ážááŸáá·áº 720 fps ááŒáá·áº áá
áºáá¬áá®ááŒá¬ áá®áá®ááá¯ááá¯ááºáá
áºáá¯ááᯠááááºážáááºážáááºá¡ááœáẠdisk space 30 GB ááá¯á¡ááºáááºáᯠááááºá ááœááºáá»ááºáá²á·áááºá á¡áááºá áááºááẠá€áá±á¬ááºážáá«ážááœáẠááœá±ážááœá±ážáá¬ážáá±á¬ áááºážáááºážáá»á¬áž (áá±á¬ááºááŒá¬ážááŸáá·áº á¡ááœááºážááá¯ááºáž ááá·áºááŸááºážáá»ááºáá»á¬ážá á¡ááœááºááŒá±á¬ááºážááŒááºážá á¡áá±á¡ááœáẠááœááºáá»ááºááŒááºážá entropy coding á
áááºááŒáá·áº) ááᯠá¡áá¯á¶ážááŒá¯áá«áá (áá»áœááºá¯ááºááá¯á·ááẠpixel áá
áºáá¯áá»áŸáẠ0,031 bits áá¯á¶ážá
áœá²áááºáá°áá±á¬á¡áá»ááºá¡áá±á«áº á¡ááŒá±áá¶á á¡á±á¬ááºááŒááºááá¯ááºáááº)á á¡áá±á¬áºáá±ážááᯠáá®áá®ááá¯áá
áºáá¯á áááºááá¯áá® 367,82 GB ááá¯ááºáá² 139 MB áᬠááŸááááºá
H.265 ááẠH.264 ááẠááá¯ááá¯áá±á¬ááºážááœááºáá±á¬ compression á¡áá»áá¯ážááᯠáááºááá¯á·áááŸáááááºážá
ááᯠáá»áœááºá¯ááºááá¯á·ááẠáá¯ááºáá áºáá»á¬áž á¡áá¯ááºáá¯ááºáá¯á¶á¡ááŒá±á¬ááºáž ááá¯ááá¯ááááŸááá¬áá±á¬ááŒá±á¬áá·áºá ááá¯áááºážáá±á¬ áá¯ááºáá áºáá»á¬ážááẠááá¯ááá¯ááŒáá·áºáá¬ážáá±á¬ ááŒááºáááºááŒááºáá¬ážááŸá¯ááᯠáá±ážá áœááºážááá¯ááºáá¯á¶ááᯠáá¬ážáááºááẠááá¯ááá¯ááœááºáá°áá¬áááºá
ááŸáá¯ááºážááŸá¥áºáá«á AVC О HEVCáááºážááẠááá¯ááŒá®ážáá±á¬ CPU load ááŸáá·áº compression ratio á¡ááŒá¬áž á¡ááŒá²áááºážáá®ážáá«áž ááœá±ážáá»ááºááŸá¯áá áºáá¯ááŒá áºááŒá±á¬ááºáž ááááááá·áºáááºá
HEVC á¡ááá¯ááºáž (ááŸáá·áº á¡ááá¯ááºážááœá²) ááẠááœá±ážáá»ááºá áá¬áá»á¬áž ááá¯áá»á¬ážáááºá AVCá¡ááœááºážááá¯ááºáž ááá·áºááŸááºážáá»áẠáááºážááœáŸááºáá»ááºáá»á¬ážá ááá¯ááá¯áá±á¬ááºážááœááºáá±á¬ á¡ááºáááá¯áá®áá¯ááºááŸáá·áº á¡ááŒá¬ážá¡áá¬áá»á¬ážá á€ááá¯ážáááºááŸá¯á¡á¬ážáá¯á¶ážááᯠááŒá¯áá¯ááºááŒá®ážáá«ááŒá®á H.265 50% áááºááá¯ááŒá®áž compress áá¯ááºááá¯ááºáá«áááºá H.264.
áááá¡ááá¯ááºáž áá®áá®ááá¯ááŸáá·áº áá¯ááºáá¯á¶áá»á¬ážááŒáá·áº áá¯ááºáá±á¬ááºááŒááºážá á¡ááŒá±áá¶áá»á¬áž
source: www.habr.com