WebCodecs VideoEncoderã«ãããã¬ãŒãæªã¿æé©åïŒRDOïŒãæ¢æ±ãããããªå質ããããã¬ãŒããžã®åœ±é¿ãããã³æé©ãªããã©ãŒãã³ã¹ã®ããã®å¹æçãªèšå®æ¹æ³ãçè§£ããŸãã
WebCodecs VideoEncoderã®å質ïŒã¬ãŒãæªã¿æé©åã®åŸ¹åºè§£èª¬
WebCodecs APIã¯ããŠã§ãã¢ããªã±ãŒã·ã§ã³å
ã§ã®ã¡ãã£ã¢ãšã³ã³ãŒããšãã³ãŒãã«å¯ŸããããããŸã§ã«ãªãå¶åŸ¡ãéçºè
ã«æäŸããŸããé«å質ãªãããªãšã³ã³ãŒããå®çŸããäžã§éèŠãªåŽé¢ã¯ãVideoEncoderå
ã§ã®ã¬ãŒãæªã¿æé©åïŒRDOïŒãçè§£ãã广çã«æŽ»çšããããšã§ãããã®èšäºã§ã¯ãRDOã®ååããããªå質ãšãããã¬ãŒããžã®åœ±é¿ãããã³WebCodecsã§ã®èšå®ã«é¢ããå®è·µçãªèæ
®äºé
ã«ã€ããŠè©³ãã説æããŸãã
ã¬ãŒãæªã¿æé©åïŒRDOïŒãšã¯ïŒ
ã¬ãŒãæªã¿æé©åã¯ããããªå§çž®ã®åºæ¬çãªæŠå¿µã§ããããã¯ãã¬ãŒãïŒãããªã衚ãããã«å¿ èŠãªãããæ°ããã¡ã€ã«ãµã€ãºãšåž¯åå¹ ã®äœ¿çšéã«çŽæ¥é¢ä¿ããŸãïŒãšæªã¿ïŒå ã®ãããªãšå§çž®ããŒãžã§ã³ã®ç¥èŠãããéãããããªå質ã衚ããŸãïŒã®éã®ãã¬ãŒããªãã«å¯ŸåŠããŸããRDOã¢ã«ãŽãªãºã ã¯ãæé©ãªãã©ã³ã¹ãèŠã€ããããã«åªããŸããã€ãŸããç¹å®ã®ãããã¬ãŒãã«å¯Ÿããæªã¿ãæå°éã«æããããç¹å®ã®å質ã¬ãã«ãéæããããã«å¿ èŠãªãããã¬ãŒããæå°éã«æããŸãã
ç°¡åã«èšããšãRDOã¯ããããªãšã³ã³ãŒããŒãã©ã®ãšã³ã³ãŒãææ³ã䜿çšãããïŒåãæšå®ãéååãå€æéžæãªã©ïŒã«ã€ããŠããã¡ã€ã«ãµã€ãºã管çå¯èœãªç¶æ ã«ä¿ã¡ãªãããå¯èœãªéãæé«ã®ç»è³ªãå®çŸããããã®ã€ã³ããªãžã§ã³ããªæ±ºå®ãäžãã®ã«åœ¹ç«ã¡ãŸããRDOããªããšããšã³ã³ãŒããŒã¯æé©ã§ãªãéžæãè¡ãå¯èœæ§ããããç¹å®ã®ãããã¬ãŒãã§ç»è³ªãäœäžããããç®çã®ç»è³ªã¬ãã«ã«å¯ŸããŠãã¡ã€ã«ãµã€ãºã倧ãããªãå¯èœæ§ããããŸããè€éãªæŠå¿µã説æããããšããŠãããšæ³åããŠãã ãããç°¡åãªèšèã䜿çšããŠåçŽåãããããªã¹ã¯ïŒäœå質ãäœãããã¬ãŒãïŒãåãããšãã誰ãçè§£ã§ããªãéåžžã«æ£ç¢ºãªå°éçšèªã䜿çšããããšãã§ããŸãïŒé«å質ãé«ãããã¬ãŒãïŒãRDOã¯ã説æãæ£ç¢ºã§çè§£ãããããæé©ãªå ŽæãèŠã€ããã®ã«åœ¹ç«ã¡ãŸãã
RDOããããªãšã³ã³ãŒããŒã§ã©ã®ããã«æ©èœããã
RDOããã»ã¹ã«ã¯ãéåžžãæ¬¡ã®ãããªããã€ãã®æé ãå«ãŸããŸãã
- ã¢ãŒã決å®ïŒãšã³ã³ãŒããŒã¯ããããªãã¬ãŒã ã®åãããã¯ãŸãã¯ãã¯ããããã¯ã«å¯ŸããŠãããŸããŸãªãšã³ã³ãŒãã¢ãŒããæ€èšããŸãããããã®ã¢ãŒãã¯ããããã¯ãã©ã®ããã«äºæž¬ã倿ãããã³éååãããããæ±ºå®ããŸããããšãã°ãã€ã³ãã©ãã¬ãŒã äºæž¬ïŒçŸåšã®ãã¬ãŒã å ããã®äºæž¬ïŒãŸãã¯ã€ã³ã¿ãŒãã¬ãŒã äºæž¬ïŒåã®ãã¬ãŒã ããã®äºæž¬ïŒãéžæããå ŽåããããŸãã
- ã³ã¹ãèšç®ïŒæœåšçãªãšã³ã³ãŒãã¢ãŒãããšã«ããšã³ã³ãŒããŒã¯2ã€ã®ã³ã¹ããèšç®ããŸããã¬ãŒãã³ã¹ãã¯ããã®ã¢ãŒãã§ãããã¯ããšã³ã³ãŒãããããã«å¿ èŠãªãããæ°ã衚ããæªã¿ã³ã¹ãã¯ãå ã®ãããã¯ãšãšã³ã³ãŒãããããããã¯ã®éããæž¬å®ããŸããäžè¬çãªæªã¿ã¡ããªãã¯ã«ã¯ãäºä¹èª€å·®åïŒSSDïŒã絶察誀差åïŒSADïŒãªã©ããããŸãã
- ã©ã°ã©ã³ãžã¥ä¹æ°ïŒÎ»ïŒïŒRDOã¯ãå€ãã®å Žåãã©ã°ã©ã³ãžã¥ä¹æ°ïŒÎ»ïŒã䜿çšããŠãã¬ãŒãã³ã¹ããšæªã¿ã³ã¹ããåäžã®ã³ã¹ã颿°ã«çµåããŸãã
Cost = Distortion + λ * Rateãã©ã°ã©ã³ãžã¥ä¹æ°ã¯ãã¬ãŒããšæªã¿ã®éèŠåºŠã广çã«éã¿ä»ãããŸããλã®å€ãé«ãã»ã©ããããã¬ãŒãã®åæžã匷調ãããå質ãäœäžããå¯èœæ§ããããŸããλã®å€ãäœãã»ã©ãå質ãåªå ããããããã¬ãŒããé«ããªãå¯èœæ§ããããŸãããã®ãã©ã¡ãŒã¿ãŒã¯ãå€ãã®å Žåãã¿ãŒã²ãããããã¬ãŒããšç®çã®å質ã¬ãã«ã«åºã¥ããŠèª¿æŽãããŸãã - ã¢ãŒãéžæïŒãšã³ã³ãŒããŒã¯ãå šäœçãªã³ã¹ã颿°ãæå°éã«æãããšã³ã³ãŒãã¢ãŒããéžæããŸãããã®ããã»ã¹ã¯ããã¬ãŒã å ã®åãããã¯ã«å¯ŸããŠç¹°ãè¿ããããããªå šäœã§æãå¹ççãªãšã³ã³ãŒãã䜿çšãããããã«ããŸãã
ãã®ããã»ã¹ã¯ãç¹ã«é«è§£å床ãããªãè€éãªãšã³ã³ãŒãã¢ã«ãŽãªãºã ã®å Žåãèšç®è² è·ãé«ããªããŸãããããã£ãŠããšã³ã³ãŒããŒã¯å€ãã®å ŽåãããŸããŸãªã¬ãã«ã®RDOã®è€éããæäŸããéçºè ã¯ãšã³ã³ãŒãé床ãšå質ããã¬ãŒããªãã§ããŸãã
WebCodecs VideoEncoderã®RDO
WebCodecs APIã¯ããã©ãŠã¶ã®åºç€ãšãªããããªãšã³ã³ãŒãæ©èœãžã®ã¢ã¯ã»ã¹ãæäŸããŸããç¹å®ã®å®è£
ã®è©³çްïŒVP9ãAV1ãH.264ãªã©ïŒã¯ãã©ãŠã¶ã®ã³ãŒããã¯å®è£
å
ã«é ãããŠããŸãããéçºè
ã¯VideoEncoderConfigãªããžã§ã¯ããéããŠRDOã®åäœã«åœ±é¿ãäžããããšãã§ããŸããRDOã«éæ¥çã«åœ±é¿ãäžããäž»ãªãã©ã¡ãŒã¿ãŒã¯æ¬¡ã®ãšããã§ãã
codecïŒéžæãããã³ãŒããã¯ïŒäŸïŒãvp9ãããav1ãããavc1.42001EãïŒH.264ã®å ŽåïŒïŒã¯ã䜿çšãããRDOã¢ã«ãŽãªãºã ã«æ¬è³ªçã«åœ±é¿ãäžããŸããç°ãªãã³ãŒããã¯ã¯ãã¬ãŒãæªã¿æé©åã«ç°ãªãææ³ã䜿çšããŸããAV1ã®ãããªæ°ããã³ãŒããã¯ã¯ãäžè¬çã«H.264ã®ãããªå€ãã³ãŒããã¯ãããæŽç·ŽãããRDOã¢ã«ãŽãªãºã ãæäŸããŸããwidthãšheightïŒãããªã®è§£å床ã¯ãRDOã®èšç®è€éãã«çŽæ¥åœ±é¿ãäžããŸããè§£å床ãé«ãã»ã©ãã¢ãŒã決å®ãšã³ã¹ãèšç®ã«å¿ èŠãªåŠçèœåãé«ããªããŸããbitrateïŒã¿ãŒã²ãããããã¬ãŒãã¯ãRDOã§äœ¿çšãããã©ã°ã©ã³ãžã¥ä¹æ°ïŒÎ»ïŒã«å€§ãã圱é¿ãäžããŸããã¿ãŒã²ãããããã¬ãŒããäœãã»ã©ãé垞λãé«ããªãããšã³ã³ãŒããŒã¯å質ããããããã¬ãŒãã®åæžãåªå ããŸããframerateïŒãã¬ãŒã ã¬ãŒãã¯ããããªã®æéçãªåé·æ§ã«åœ±é¿ãäžããŸãããã¬ãŒã ã¬ãŒããé«ãã»ã©ããšã³ã³ãŒããŒã¯ã€ã³ã¿ãŒãã¬ãŒã äºæž¬ã§ããåªããå§çž®ãéæã§ããç¹å®ã®ãããã¬ãŒãã§å質ãåäžããå¯èœæ§ããããŸããhardwareAccelerationïŒããŒããŠã§ã¢ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ãæå¹ã«ãããšããšã³ã³ãŒãããã»ã¹ãå€§å¹ ã«é«éåã§ããããããšã³ã³ãŒããŒã¯åãæéã§ããè€éãªRDOèšç®ãå®è¡ã§ããŸããããã«ãããç¹ã«ãªã¢ã«ã¿ã€ã ãšã³ã³ãŒãã·ããªãªã§ãå質ãåäžãããããšãã§ããŸããlatencyModeïŒã¬ã€ãã³ã·ã¢ãŒããäœãéžæãããšãå€ãã®å Žåãé床ã®ããã«å質ãç ç²ã«ãªããŸããããã¯ãRDOèšç®ã®ç²åºŠãšæŽç·ŽåºŠã«åœ±é¿ãäžããå¯èœæ§ããããŸããqpïŒéååãã©ã¡ãŒã¿ãŒïŒïŒäžéšã®é«åºŠãªæ§æã§ã¯ãéååãã©ã¡ãŒã¿ãŒïŒQPïŒãçŽæ¥å¶åŸ¡ã§ããå ŽåããããŸããQPã¯ããããªã«é©çšãããå§çž®éã«çŽæ¥åœ±é¿ãäžããŸããQPã®å€ãäœãã»ã©ãå質ã¯é«ããªããŸãããã¡ã€ã«ãµã€ãºã¯å€§ãããªããQPã®å€ãé«ãã»ã©ãå質ã¯äœããªããŸãããã¡ã€ã«ãµã€ãºã¯å°ãããªããŸããçŽæ¥RDOã§ã¯ãããŸããããQPãæåã§èšå®ãããšãRDOã®éžæããªãŒããŒã©ã€ããŸãã¯åœ±é¿ãäžããå¯èœæ§ããããŸãã
æ§æäŸïŒ
const encoderConfig = {
codec: "vp9",
width: 1280,
height: 720,
bitrate: 2000000, // 2 Mbps
framerate: 30,
hardwareAcceleration: "prefer-hardware",
latencyMode: "quality"
};
ãã®æ§æã¯ãlatencyModeããqualityãã«èšå®ããããŒããŠã§ã¢ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ãåªå
ããããšã«ãããå質ãåªå
ããŠã720p VP9ãããªã2 Mbpsã§ãšã³ã³ãŒãããããšããŸãã䜿çšãããç¹å®ã®RDOã¢ã«ãŽãªãºã ã¯ããã©ãŠã¶ã®VP9å®è£
ã«ãã£ãŠæ±ºå®ãããŸãã
å®è·µçãªèæ ®äºé ãšãã¹ããã©ã¯ãã£ã¹
WebCodecsã§RDOã广çã«æŽ»çšããã«ã¯ãããã€ãã®èŠçŽ ãæ éã«æ€èšããå¿ èŠããããŸãã
- ã¿ãŒã²ãããããã¬ãŒãïŒé©åãªã¿ãŒã²ãããããã¬ãŒããéžæããããšãéèŠã§ãããããã¬ãŒããäœããããšãRDOãã©ãã ãããŸãå®è£ ãããŠããŠããç»è³ªãå€§å¹ ã«äœäžããŸãããããªã³ã³ãã³ãã®è€éããèæ ®ããããšãéèŠã§ããåããšãã£ããŒã«ãå€ããããªã§ã¯ã蚱容ã§ããç»è³ªãç¶æããããã«ãããé«ããããã¬ãŒããå¿ èŠã§ããããšãã°ãéçãªç»é¢é²ç»ã¯ãã¹ããŒãæŸéããã®ããŒã¹ã®éãã¢ã¯ã·ã§ã³ã·ãŒã³ããããã¯ããã«äœããããã¬ãŒãã§ãšã³ã³ãŒãã§ããŸããå質ãšãã¡ã€ã«ãµã€ãºã®æé©ãªãã©ã³ã¹ãèŠã€ããã«ã¯ãç°ãªããããã¬ãŒãã§ãã¹ãããããšãäžå¯æ¬ ã§ãã
- ã³ãŒããã¯ã®éžæïŒã³ãŒããã¯ã®éžæã¯ãRDOã®ããã©ãŒãã³ã¹ã«å€§ããªåœ±é¿ãäžããŸããAV1ã®ãããªæ°ããã³ãŒããã¯ã¯ãäžè¬çã«H.264ã®ãããªå€ãã³ãŒããã¯ãããåªããå§çž®å¹çãšRDOã¢ã«ãŽãªãºã ãæäŸããŸãããã ããAV1ãšã³ã³ãŒãã¯éåžžãèšç®ã³ã¹ããé«ããªããŸããVP9ã¯ãå§çž®å¹çãšãšã³ã³ãŒãé床ã®éã®è¯ã劥åç¹ãæäŸããŸããã¿ãŒã²ãããªãŒãã£ãšã³ã¹ã®ããã€ã¹æ©èœãèæ ®ããŠãã ãããå€ãããã€ã¹ã¯AV1ãã³ãŒãããµããŒãããŠããªãå¯èœæ§ãããããã®æçšæ§ãå¶éãããŸãã
- ã³ã³ãã³ãã®è€éãïŒãããªã³ã³ãã³ãã®è€éãã¯ãRDOã®æå¹æ§ã«åœ±é¿ãäžããŸããåããå€ãã现ãããã£ããŒã«ãå€ããé »ç¹ãªã·ãŒã³å€æŽããããããªã¯å§çž®ãé£ãããããæŽç·ŽãããRDOææ³ãå¿ èŠã§ããè€éãªã³ã³ãã³ãã®å Žåã¯ãããé«ãã¿ãŒã²ãããããã¬ãŒããŸãã¯AV1ã®ãããªããé«åºŠãªã³ãŒããã¯ã®äœ¿çšãæ€èšããŠãã ããããŸãã¯ããããªãååŠçããŠãã€ãºãäœæžããããç»åãå®å®åããããããšãå§çž®å¹çãåäžãããããšãã§ããŸãã
- ãšã³ã³ãŒãé床ãšå質ïŒRDOã¢ã«ãŽãªãºã ã¯èšç®è² è·ãé«ããªããŸããRDOã®è€éããå¢ããšãéåžžã¯å質ãåäžããŸããããšã³ã³ãŒãæéãå¢å ããŸããWebCodecsã§ã¯ãæ§æãªãã·ã§ã³ãä»ããŠããŸãã¯ã³ãŒããã¯ã®éžæãä»ããŠæé»çã«ããšã³ã³ãŒãé床ãããçšåºŠå¶åŸ¡ã§ããŸãããªã¢ã«ã¿ã€ã ãšã³ã³ãŒããå¿ èŠãã©ããã倿ããããŒããŠã§ã¢ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ã䜿çšããŠãšã³ã³ãŒãé床ãåäžãããããšãæ€èšããŠãã ããããªãã©ã€ã³ã§ãšã³ã³ãŒãããå Žåã¯ãRDOã«æéãããããšããè¯ãçµæãåŸãããŸãã
- ããŒããŠã§ã¢ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ïŒããŒããŠã§ã¢ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ãæå¹ã«ãããšããšã³ã³ãŒãé床ã倧å¹
ã«åäžãããšã³ã³ãŒããŒã¯ããè€éãªRDOèšç®ãå®è¡ã§ããŸãããã ããããŒããŠã§ã¢ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ã¯ããã¹ãŠã®ããã€ã¹ãŸãã¯ãã©ãŠã¶ã§äœ¿çšã§ãããšã¯éããŸãããããŒããŠã§ã¢ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ã®ãµããŒãã確èªããå©çšã§ããªãå Žåã¯ãã©ãŒã«ããã¯ãœãªã¥ãŒã·ã§ã³ãæäŸããããšãæ€èšããŠãã ããã
VideoEncoder.isConfigSupported()ã¡ãœããã䜿çšããŠãããŒããŠã§ã¢ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ãå«ããéžæããæ§æããŠãŒã¶ãŒã®ãã©ãŠã¶ãšããŒããŠã§ã¢ã§ãµããŒããããŠãããã©ããã確èªããŸãã - ãã¹ããšè©äŸ¡ïŒç¹å®ã®ãŠãŒã¹ã±ãŒã¹ã«æé©ãªRDOæ§æãæ±ºå®ããã«ã¯ã培åºçãªãã¹ããšè©äŸ¡ãäžå¯æ¬ ã§ããPSNRïŒããŒã¯ä¿¡å·å¯Ÿé鳿¯ïŒãSSIMïŒæ§é çé¡äŒŒæ§ææšïŒã®ãããªå®¢èгçãªå質ã¡ããªãã¯ã䜿çšããŠããšã³ã³ãŒãããããããªã®å質ãå®éåããŸãããšã³ã³ãŒãããããããªãç®çã®åè³ªåºæºãæºãããŠããããšã確èªããããã«ã䞻芳çãªèŠèŠæ€æ»ãéèŠã§ããããŸããŸãªã³ã³ãã³ãã¿ã€ããšè§£å床ã衚ã倿§ãªãã¹ããããªã»ããã䜿çšããŸããç°ãªãRDOæ§æã®çµæãæ¯èŒããŠãå質ãšãããã¬ãŒãã®æé©ãªãã©ã³ã¹ãæäŸããèšå®ãç¹å®ããŸãã
- ã¢ãããã£ããããã¬ãŒãã¹ããªãŒãã³ã°ïŒABSïŒïŒã¹ããªãŒãã³ã°ã¢ããªã±ãŒã·ã§ã³ã®å Žåã¯ãã¢ãããã£ããããã¬ãŒãã¹ããªãŒãã³ã°ïŒABSïŒææ³ã®äœ¿çšãæ€èšããŠãã ãããABSã§ã¯ããããªãè€æ°ã®ãããã¬ãŒããšè§£å床ã§ãšã³ã³ãŒããããŠãŒã¶ãŒã®ãããã¯ãŒã¯ç¶æ³ã«åºã¥ããŠããããåçã«åãæ¿ããŸããRDOã¯ãABSã©ããŒã®åãããã¬ãŒãã¬ãã«ã§é«å質ã®ãšã³ã³ãŒããçæããäžã§éèŠãªåœ¹å²ãæãããŸããRDOèšå®ããããã¬ãŒãã¬ãã«ããšã«åå¥ã«æé©åããŠãç¯å²å šäœã§æé©ãªå質ã確ä¿ããŸãã
- ååŠçïŒç°¡åãªååŠçæé ã§ãRDOã®æå¹æ§ãå€§å¹ ã«åäžãããããšãã§ããŸããããã«ã¯ããã€ãºãªãã¯ã·ã§ã³ãšå®å®åãå«ãŸããŸãã
RDOã®åœ±é¿ã®ã°ããŒãã«ãªäºäŸ
RDOã®åœ±é¿ã¯ãããŸããŸãªçŸå®äžçã®ã·ããªãªã§èгå¯ã§ããŸãã
- 垯åå¹ ãå¶éãããŠããå°åã§ã®ãããªäŒè°ïŒéçºéäžåœã®èŸ²æå°åãªã©ãã€ã³ã¿ãŒããã垯åå¹ ãå¶éãããŠããããŸãã¯ä¿¡é Œã§ããªãå°åã§ã¯ãã¹ã ãŒãºã§ã¯ãªã¢ãªãããªäŒè°ãšã¯ã¹ããªãšã³ã¹ãå¯èœã«ããããã«ãå¹ççãªRDOãäžå¯æ¬ ã§ãããããã¬ãŒããšå質ã®ãã©ã³ã¹ãæ éã«åãããšã§ãRDOã¯ããããã¯ãŒã¯ã®ç¶æ ãæªãå Žåã§ããããªé話ã䜿çšå¯èœãªç¶æ ãç¶æã§ããããã«ããŸããããšãã°ãé éåŠç¿ã«WebCodecsã䜿çšããŠããã€ã³ãã®èŸ²æéšã®åŠæ ¡ã¯ãæé©åãããRDOã®æ©æµãåããŠãã€ã³ã¿ãŒãããã¢ã¯ã»ã¹ãéãããŠããåŠçã«æè²ã³ã³ãã³ããæäŸã§ããŸãã
- æ°èåžå Žã§ã®ã¢ãã€ã«ãããªã¹ããªãŒãã³ã°ïŒã¢ãã€ã«ããŒã¿ãé«äŸ¡ã§ããŒã¿ãã£ãããäžè¬çãªæ°èåžå Žã§ã¯ãRDOã¯ãããªå質ãç ç²ã«ããããšãªããããŒã¿æ¶è²»éãåæžããäžã§éèŠãªåœ¹å²ãæãããŸãããšã³ã³ãŒãããã»ã¹ãæé©åããããšã§ãRDOã¯ãŠãŒã¶ãŒãããŒã¿å¶éãè¶ ããã«ã¢ãã€ã«ããã€ã¹ã§ãããªãã¹ããªãŒãã³ã°ã§ããããã«ããŸãããã€ãžã§ãªã¢ã®ãã¥ãŒã¹æŸéå±ã¯ãWebCodecsãšæé©åãããRDOãæŽ»çšããŠãã¢ãã€ã«ãŠãŒã¶ãŒã«ããŒã¿æéãæå°éã«æããªãããããªã¬ããŒããã¹ããªãŒãã³ã°ã§ããŸãã
- ã€ã³ã¿ã©ã¯ãã£ãã¢ããªã±ãŒã·ã§ã³åãã®äœé å»¶ã¹ããªãŒãã³ã°ïŒãªã³ã©ã€ã³ã²ãŒã ãã¹ããŒãã€ãã³ãã®ã©ã€ãã¹ããªãŒãã³ã°ã®ãããªã€ã³ã¿ã©ã¯ãã£ãã¢ããªã±ãŒã·ã§ã³ã®å ŽåãRDOã¯å質ããããã¬ãŒããã¬ã€ãã³ã·ã®ãã©ã³ã¹ãåãå¿ èŠããããŸãããããã¬ãŒããé床ã«åæžãããšã蚱容ã§ããªãèŠèŠçãªã¢ãŒãã£ãã¡ã¯ããçºçããå¯èœæ§ãããããããã¬ãŒããé«ããšéå°ãªã¬ã€ãã³ã·ãçºçããã¢ããªã±ãŒã·ã§ã³ã䜿çšã§ããªããªãå¯èœæ§ããããŸãã衚瀺ãšã¯ã¹ããªãšã³ã¹ãæãªãããšãªãã¬ã€ãã³ã·ãæå°éã«æããã«ã¯ãæ éãªRDOãã¥ãŒãã³ã°ãäžå¯æ¬ ã§ããäœé å»¶ã¹ããªãŒãã³ã°ã«WebCodecsã䜿çšããŠããéåœã®ããeã¹ããŒããªãŒã°ãæ€èšããŠãã ãããã¬ã€ãã³ã·ã®æå°åãšãèŠèŽè åãã®ã¯ãªã¢ãªãããªã®æäŸã®ãã©ã³ã¹ãåãå¿ èŠããããŸãã
WebCodecsã«ãããRDOã®å°æ¥
WebCodecs APIã®é²åã«äŒŽããRDOæ©èœã®ãããªã鲿©ãæåŸ ã§ããŸããå°æ¥ã®æœåšçãªéçºã«ã¯ã次ã®ãã®ããããŸãã
- å ¬éãããRDOãã©ã¡ãŒã¿ãŒïŒAPIã¯ãRDOãã©ã¡ãŒã¿ãŒã«å¯Ÿãããããã现ããå¶åŸ¡ãå ¬éããéçºè ãã¬ãŒãæªã¿ã®ãã¬ãŒããªãã«çŽæ¥åœ±é¿ãäžããããããã«ããå¯èœæ§ããããŸããããã«ãããç¹å®ã®ãŠãŒã¹ã±ãŒã¹ã«åãããŠããæ£ç¢ºãªãã¥ãŒãã³ã°ãå¯èœã«ãªããŸãã
- é©å¿åRDOïŒRDOã¢ã«ãŽãªãºã ã¯ããé©å¿åã«ãªãããããªã³ã³ãã³ãã®ç¹æ§ãšå©çšå¯èœãªãããã¯ãŒã¯åž¯åå¹ ã«åºã¥ããŠåçã«åäœã調æŽããå¯èœæ§ããããŸããããã«ãããããå¹ççãªãšã³ã³ãŒããå¯èœã«ãªããããŸããŸãªæ¡ä»¶äžã§å質ãåäžããŸãã
- æ©æ¢°åŠç¿ããŒã¹ã®RDOïŒæ©æ¢°åŠç¿ææ³ã䜿çšããŠRDOã¢ã«ãŽãªãºã ãæé©åããèšå€§ãªéã®ãããªããŒã¿ããåŠç¿ããŠãæã广çãªãšã³ã³ãŒãæŠç¥ãç¹å®ã§ããŸããããã«ãããå§çž®å¹çãšå質ãå€§å¹ ã«åäžããå¯èœæ§ããããŸãã
çµè«
ã¬ãŒãæªã¿æé©åã¯ãææ°ã®ãããªãšã³ã³ãŒãã®éèŠãªã³ã³ããŒãã³ãã§ããããã®ååãçè§£ããããšã¯ãWebCodecsã§é«å質ã®ãããªãå®çŸããããã«äžå¯æ¬ ã§ããã¿ãŒã²ãããããã¬ãŒããã³ãŒããã¯ã®éžæãã³ã³ãã³ãã®è€éããããŒããŠã§ã¢æ©èœãæ éã«æ€èšããããšã§ãéçºè ã¯RDOã广çã«æŽ»çšããŠãå¹ åºãã¢ããªã±ãŒã·ã§ã³åãã«ãããªãšã³ã³ãŒããæé©åã§ããŸããWebCodecs APIã®é²åã«äŒŽããããã«åŒ·åãªRDOæ©èœãç»å Žããéçºè ã¯äžçäžã®ãŠãŒã¶ãŒã«ããã«åªãããããªãšã¯ã¹ããªãšã³ã¹ãæäŸã§ããããã«ãªããšæåŸ ã§ããŸããç¹å®ã®ãŠãŒã¹ã±ãŒã¹ã«åãããŠãã¹ãããã³é©å¿ããããšãããããã¬ãŒããšåè³ªã®æé©ãªãã©ã³ã¹ãå®çŸããããã«æãéèŠã§ãã
ãããã®ååãçè§£ããæšå¥šããããã¹ããã©ã¯ãã£ã¹ãé©çšããããšã§ãéçºè ã¯WebCodecsã䜿çšãããããªãšã³ã³ãŒãã¯ãŒã¯ãããŒã®å質ãšå¹çãå€§å¹ ã«åäžãããäžçäžã®ãŠãŒã¶ãŒã«åªããèŠèŽãšã¯ã¹ããªãšã³ã¹ãæäŸã§ããŸãã