WebCodecs AudioEncoderå質ãšã³ãžã³ãæ·±æããããªã¢ã«ã¿ã€ã éä¿¡ãã¹ããªãŒãã³ã°ãã¢ãŒã«ã€ããªã©å€æ§ãªãã©ãããã©ãŒã ããŠãŒã¹ã±ãŒã¹ã«ããããªãŒãã£ãªå§çž®ã®æé©åæ©èœãæ¢ããŸãã
WebCodecs AudioEncoderå質ãšã³ãžã³ïŒãªãŒãã£ãªå§çž®ã®æé©å
WebCodecs APIã¯ããã©ãŠã¶ã¬ãã«ã®ãããªããã³ãªãŒãã£ãªã³ãŒããã¯ãžã®çŽæ¥ã¢ã¯ã»ã¹ãæäŸããããšã§ããŠã§ãããŒã¹ã®ãã«ãã¡ãã£ã¢ã«é©åœããããããŠããŸããWebCodecså
ã§ã®ãªãŒãã£ãªåŠçã®äžå¿ãšãªãã®ãAudioEncoder
ã§ããããã®æå¹æ§ã®éµã¯å質ãšã³ãžã³ã«ãããŸãããã®èšäºã§ã¯ãAudioEncoderå質ãšã³ãžã³ã®è€éããæãäžãããã®æ©èœãæé©åæŠç¥ããããŠãŠã§ãéçºãã³ã³ãã³ãå¶äœããªã¢ã«ã¿ã€ã éä¿¡ã«é¢ããäžçäžã®äººã
ãžã®åœ±é¿ã«ã€ããŠæ¢ããŸãã
WebCodecs AudioEncoderã®çè§£
WebCodecsã®AudioEncoder
ã€ã³ã¿ãŒãã§ãŒã¹ã¯ããŠã§ãã¢ããªã±ãŒã·ã§ã³ããã©ãŠã¶å
ã§çŽæ¥ãçã®ãªãŒãã£ãªãµã³ãã«ãå§çž®ãªãŒãã£ãªåœ¢åŒã«ãšã³ã³ãŒãããããšãå¯èœã«ããŸããããã«ãããè€éãªãµãŒããŒãµã€ãåŠçããµãŒãããŒãã£è£œãã©ã°ã€ã³ãžã®äŸåãäžèŠã«ãªããããã©ãŒãã³ã¹ã®åäžãé
å»¶ã®åæžããã©ã€ãã·ãŒã®åŒ·åã«ã€ãªãããŸãã
AudioEncoder
ã¯ã以äžãå«ãæ§ã
ãªãªãŒãã£ãªã³ãŒããã¯ããµããŒãããŠããŸãïŒ
- Opus: ãªã¢ã«ã¿ã€ã éä¿¡ãã¹ããªãŒãã³ã°ã«æé©ãªãå€ç®çã§äœé å»¶ã®ã³ãŒããã¯ã§ããäœããããã¬ãŒãã§ãé«å質ã§ããããšãç¥ãããŠããã垯åå¹ ãå¶éãããç°å¢ã«æé©ã§ãã
- AAC (Advanced Audio Coding): å€ãã®ã¹ããªãŒãã³ã°ãµãŒãã¹ãã¡ãã£ã¢ãã¬ãŒã€ãŒã§äœ¿çšãããŠãããåºããµããŒããããŠããã³ãŒããã¯ã§ããå質ãšãããã¬ãŒãã®ãã©ã³ã¹ãåããŠããŸãã
- ãã®ä»ã®ã³ãŒããã¯: ãã©ãŠã¶ããã©ãããã©ãŒã ã«ãã£ãŠã¯ãMP3ãVorbisãªã©ã®ä»ã®ã³ãŒããã¯ããµããŒããããŠããå ŽåããããŸãã
ã³ãŒããã¯ã®éžæã¯ãèŠæ±ãããé³è³ªããããã¬ãŒãã®å¶çŽãã¿ãŒã²ãããã©ãããã©ãŒã ã®äºææ§ãªã©ãç¹å®ã®ã¢ããªã±ãŒã·ã§ã³èŠä»¶ã«äŸåããŸãã
å質ãšã³ãžã³ã®åœ¹å²
AudioEncoder
å
ã®å質ãšã³ãžã³ã¯ãç¹å®ã®ãããã¬ãŒãã§å¯èœãªéãæé«ã®é³è³ªãéæããããããŸãã¯å質ã®äœäžãæå°éã«æããªããç®æšãããã¬ãŒããç¶æããããã«ããšã³ã³ãŒãããã»ã¹ãæé©åãã責任ãè² ããŸããããã¯ããªãŒãã£ãªã³ã³ãã³ããšç®çã®ãšã³ã³ãŒãã¢ãŒãã«åºã¥ããŠããšã³ã³ãŒããã©ã¡ãŒã¿ãåçã«èª¿æŽããŸããããã«ã¯ã以äžã®æ±ºå®ãå«ãŸããŸãïŒ
- ãããã¬ãŒãå²ãåœãŠ: ãªãŒãã£ãªä¿¡å·ã®ç°ãªãéšåã«ã©ãã ãã®ããããå²ãåœãŠãããæ±ºå®ããŸãã
- è€é床å¶åŸ¡: å質ãšåŠçèœåã®ãã©ã³ã¹ããšãããã«ããšã³ã³ãŒãã¢ã«ãŽãªãºã ã®è€é床ã調æŽããŸãã
- ãã€ãºã·ã§ãŒãã³ã°: éååãã€ãºãæŽåœ¢ããŠããã®å¯èŽæ§ãæå°éã«æããŸãã
- é³é¿å¿çã¢ãã«: 人éã®èŽèŠã«é¢ããç¥èãæŽ»çšããŠãç¡é¢ä¿ãªæ å ±ãç Žæ£ããç¥èŠçã«éèŠãªãªãŒãã£ãªä¿¡å·ã®åŽé¢ã«çŠç¹ãåœãŠãŸãã
å質ãšã³ãžã³ã¯ãé³è³ªããããã¬ãŒããèšç®ã³ã¹ãã®éã®æé©ãªãã¬ãŒããªããèŠã€ããããšãç®æããŸããããã¯ããããªäŒè°ããªã³ã©ã€ã³ã²ãŒã ãªã©ãäœé å»¶ãéèŠã§åŠçèœåãéãããŠãããªã¢ã«ã¿ã€ã ã¢ããªã±ãŒã·ã§ã³ã«ãããŠç¹ã«éèŠã§ãã
å質ãšã³ãžã³ãæ¡çšããäž»èŠãªæé©åæè¡
AudioEncoderå質ãšã³ãžã³ã¯ããªãŒãã£ãªå§çž®ãæé©åããããã«ãããã€ãã®é«åºŠãªæè¡ãå©çšããŠããŸãïŒ
1. å¯å€ãããã¬ãŒã (VBR) ãšã³ã³ãŒãã£ã³ã°
VBRãšã³ã³ãŒãã£ã³ã°ã¯ããªãŒãã£ãªä¿¡å·ã®è€éãã«å¿ããŠãããã¬ãŒããåçã«èª¿æŽããŸããåºããã€ãããã¯ã¬ã³ãžãæã€é³æ¥œãèæ¯ãã€ãºã®ããã¹ããŒããªã©ãè€éãªéšåã§ã¯ããã£ããŒã«ãšæçããä¿ã€ããã«é«ããããã¬ãŒãã§ãšã³ã³ãŒããããŸããç¡é³ãå®åžžçãªããŒã³ãªã©ãåçŽãªéšåã§ã¯ã垯åå¹ ãç¯çŽããããã«äœããããã¬ãŒãã§ãšã³ã³ãŒããããŸããããã«ãããåãå¹³åãããã¬ãŒãã®åºå®ãããã¬ãŒã (CBR) ãšã³ã³ãŒãã£ã³ã°ãšæ¯èŒããŠãå šäœçã«é«ãé³è³ªãåŸãããŸãã
äŸïŒ éããªãã¢ãã®ããã»ãŒãžãšå€§é³éã®ãªãŒã±ã¹ãã©ã®ã»ã¯ã·ã§ã³ã®äž¡æ¹ãå«ã楜æ²ãèããŠã¿ãŸããããVBRãšã³ã³ãŒãã£ã³ã°ã¯ããªãŒã±ã¹ãã©ã®ã»ã¯ã·ã§ã³ã«å€ãã®ããããå²ãåœãŠãŠãå®å šãªãã€ãããã¯ã¬ã³ãžãšé³ã®è³ªæãæããäžæ¹ã詳现ãå°ãªããã¢ãã®ããã»ãŒãžã«ã¯ããå°ãªããããã䜿çšããŸããããã«ãããäžå®ã®ãããã¬ãŒããç¶æããããã«å€§é³éã®ã»ã¯ã·ã§ã³ã§å質ãç ç²ã«ããå¯èœæ§ã®ããCBRãšæ¯èŒããŠãããäžè²«ãããªã¹ãã³ã°äœéšãæäŸãããŸãã
2. é³é¿å¿çã¢ãã«
é³é¿å¿çã¢ãã«ã¯å質ãšã³ãžã³ã®éèŠãªæ§æèŠçŽ ã§ãã人éãé³ãã©ã®ããã«ç¥èŠãããã«ã€ããŠã®çè§£ãæŽ»çšããŠãæ°ã¥ããã«ããæ å ±ãç¹å®ããç Žæ£ããŸããäŸãã°ã倧ããªé³ã¯ãã®è¿åã®å°ããªé³ããã¹ãã³ã°ããããšããããŸãïŒèŽèŠãã¹ãã³ã°ãšããŠç¥ãããçŸè±¡ïŒãå質ãšã³ãžã³ã¯ããã¹ãã³ã°ãããé³ã®ãšã³ã³ãŒã粟床ãäžããããšã§ãããå©çšããç¥èŠãããé³è³ªã«å€§ããªåœ±é¿ãäžããããšãªãããããç¯çŽã§ããŸãã
äŸïŒ éšãããç°å¢ã§ã®äŒè©±ã®é²é³ã§ã¯ãå質ãšã³ãžã³ã¯é³å£°ä¿¡å·ã«ãã£ãŠãã¹ãã³ã°ãããèæ¯é³ã®ãšã³ã³ãŒã粟床ãäžãããããããŸãããããã«ãããé³å£°èªäœã«ããå€ãã®ããããå²ãåœãŠãããšãã§ããããã¯ãªã¢ã§çè§£ãããã察話ãå®çŸããŸãã
3. ã¢ãããã£ããããã¬ãŒã (ABR) ã¹ããªãŒãã³ã°
ABRã¯äž»ã«ã¹ããªãŒãã³ã°æè¡ã§ãããæ§ã ãªãããã¬ãŒãå±€ã®ãªãŒãã£ãªã³ã³ãã³ããæºåããããã«å質ãšã³ãžã³ã«å€§ããäŸåããŠããŸããABRã§ã¯ãåããªãŒãã£ãªã³ã³ãã³ãã®ç°ãªããããã¬ãŒãã®è€æ°ã®ããŒãžã§ã³ãäœæããŸããã¹ããªãŒãã³ã°ãµãŒããŒã¯ããŠãŒã¶ãŒã®ãããã¯ãŒã¯ç¶æ³ã«åºã¥ããŠãããã®ããŒãžã§ã³ãåçã«åãæ¿ããŸããå質ãšã³ãžã³ã¯ãåãããã¬ãŒãå±€ããã®æå®ããããããã¬ãŒãã§å¯èœãªéãæé«ã®é³è³ªãæäŸããããšãä¿èšŒããäžã§éèŠãªåœ¹å²ãæãããŸãã
äŸïŒ 鳿¥œã¹ããªãŒãã³ã°ãµãŒãã¹ã¯ã64 kbpsã128 kbpsã256 kbpsã®ãããã¬ãŒãã§ãªãŒãã£ãªã³ã³ãã³ããæäŸãããããããŸãããå質ãšã³ãžã³ã¯ãåããŒãžã§ã³ãããããã®ãããã¬ãŒãã«æé©ãªèšå®ã§ãšã³ã³ãŒãããããã«äœ¿çšãããæãäœããããã¬ãŒãã®ããŒãžã§ã³ã§ãããäœéãªãããã¯ãŒã¯æ¥ç¶ã§èš±å®¹å¯èœãªãªã¹ãã³ã°äœéšãæäŸããããšãä¿èšŒããŸãã
4. è€é床å¶åŸ¡
å質ãšã³ãžã³ã¯ããšã³ã³ãŒãããã»ã¹ã®èšç®è€é床ã管çããŸããããè€éãªãšã³ã³ãŒãã¢ã«ãŽãªãºã ã¯äžè¬çã«é«ãé³è³ªãéæã§ããŸãããããå€ãã®åŠçèœåãå¿ èŠãšããŸããå質ãšã³ãžã³ã¯ãå©çšå¯èœãªãªãœãŒã¹ãšèŠæ±ããããšã³ã³ãŒãé床ã«åºã¥ããŠã¢ã«ãŽãªãºã ã®è€é床ãåçã«èª¿æŽããŸããããã¯ãé å»¶ãå°å ¥ããªãããã«ãšã³ã³ãŒããè¿ éã«å®è¡ããå¿ èŠããããªã¢ã«ã¿ã€ã ã¢ããªã±ãŒã·ã§ã³ã§ç¹ã«éèŠã§ãã
äŸïŒ ãããªäŒè°ã¢ããªã±ãŒã·ã§ã³ã§ã¯ããŠãŒã¶ãŒã®CPUè² è·ãé«ãå Žåãå質ãšã³ãžã³ã¯ãªãŒãã£ãªãšã³ã³ãŒãã¢ã«ãŽãªãºã ã®è€é床ãäžããããšããããŸããããã«ããããªãŒãã£ãªãšã³ã³ãŒãã«å¿ èŠãªåŠçèœåãåæžããããããªãšã³ã³ãŒãããããã¯ãŒã¯éä¿¡ãªã©ã®ä»ã®ã¿ã¹ã¯ã®ããã©ãŒãã³ã¹ã«åœ±é¿ãäžããã®ãé²ããŸãã
5. ãã€ãºã·ã§ãŒãã³ã°
éååãã€ãºã¯ãããžã¿ã«ãªãŒãã£ãªãšã³ã³ãŒãã£ã³ã°ã®é¿ããããªãå¯ç£ç©ã§ããå質ãšã³ãžã³ã¯ããã€ãºã·ã§ãŒãã³ã°æè¡ã䜿çšããŠãã®ãã€ãºãåšæ³¢æ°ã¹ãã¯ãã«å šäœã«ååé ããèããã«ããããŸãããã€ãºãã©ã³ãã ã«åæ£ããã代ããã«ããã€ãºã·ã§ãŒãã³ã°ã¯äººéã®è³ãæåºŠã®äœãåšæ³¢æ°ã«ãã€ãºãæŒããããŸããããã«ããã䞻芳çã«ããã¯ãªãŒã³ã§å¿«é©ãªãªãŒãã£ãªäœéšãåŸãããŸãã
äŸïŒ å質ãšã³ãžã³ã¯ã人éã®è³ã®æåºŠãäœãé«åšæ³¢æ°åž¯ã«éååãã€ãºãæŒãããããšããããŸããããã«ãããç¥èŠããããã€ãºã®é³éãäœæžãããæ³šææ£æŒ«ã«ãªãããšãå°ãªããªãããªãŒãã£ãªä¿¡å·å šäœã®æç床ãåäžããŸãã
æé©ãªå質ã®ããã®AudioEncoderã®èšå®
WebCodecs APIã¯ãæé©ãªå質ãéæããããã«AudioEncoder
ãèšå®ããããã®æ§ã
ãªãªãã·ã§ã³ãæäŸããŸãããããã®ãªãã·ã§ã³ã«ã¯ä»¥äžãå«ãŸããŸãïŒ
- codec: 䜿çšãããªãŒãã£ãªã³ãŒããã¯ãæå®ããŸãïŒäŸïŒãopusãããaacãïŒã
- sampleRate: ãªãŒãã£ãªä¿¡å·ã®ãµã³ãã«ã¬ãŒããæå®ããŸãïŒäŸïŒ48000 HzïŒã
- numberOfChannels: ãªãŒãã£ãªãã£ã³ãã«æ°ãæå®ããŸãïŒäŸïŒã¢ãã©ã«ã¯1ãã¹ãã¬ãªã¯2ïŒã
- bitrate: ãšã³ã³ãŒãããããªãŒãã£ãªã®ç®æšãããã¬ãŒããããã/ç§ã§æå®ããŸããå®éã®ãããã¬ãŒãã¯VBRã¢ãŒãã§ã¯å€åããå ŽåããããŸãã
- latencyMode: ãªã¢ã«ã¿ã€ã ã¢ããªã±ãŒã·ã§ã³ã®é å»¶ãããã¡ã€ã«ãèšå®ã§ããŸããããã¯å質ãšã³ãžã³ãéžæãããšã³ã³ãŒããã©ã¡ãŒã¿ã«åœ±é¿ãäžããå¯èœæ§ããããŸãã
- ãã®ä»ã®ã³ãŒããã¯åºæã®ãã©ã¡ãŒã¿: äžéšã®ã³ãŒããã¯ã«ã¯ããšã³ã³ãŒãããã»ã¹ã埮調æŽããããã«èšå®ã§ãã远å ã®ãã©ã¡ãŒã¿ãããå ŽåããããŸãã
ãããã®ãã©ã¡ãŒã¿ãæ éã«éžæããããšã¯ãæãŸããé³è³ªãšããã©ãŒãã³ã¹ãéæããããã«äžå¯æ¬ ã§ããäŸãã°ãããäœããããã¬ãŒããéžæãããšåž¯åå¹ ã®æ¶è²»ã¯æžå°ããŸãããé³è³ªãäœäžããå¯èœæ§ããããŸããåæ§ã«ãããé«ããµã³ãã«ã¬ãŒããéžæãããšãªãŒãã£ãªã®å¿ å®åºŠã¯åäžããŸããããããã¬ãŒããšåŠçèœåã®èŠä»¶ãå¢å ããŸãã
äŸïŒ Opusã䜿çšãããªã¢ã«ã¿ã€ã éä¿¡ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãAudioEncoder
ããµã³ãã«ã¬ãŒã48000 Hzããããã¬ãŒã64 kbpsãlatencyMode
ããrealtimeãã«èšå®ããããšãèããããŸããããã«ãããé³å£°éä¿¡ã«ãããäœé
å»¶ãšè¯å¥œãªé³è³ªãåªå
ãããŸãã
å®çšçãªãŠãŒã¹ã±ãŒã¹ãšäŸ
WebCodecs AudioEncoderå質ãšã³ãžã³ã¯ãæ§ã ãªåéã§æ°å€ãã®ã¢ããªã±ãŒã·ã§ã³ããããŸãïŒ
1. ãªã¢ã«ã¿ã€ã éä¿¡ (RTC)
ãããªäŒè°ããªã³ã©ã€ã³ã²ãŒã ãªã©ã®WebRTCã¢ããªã±ãŒã·ã§ã³ã¯ãWebCodecsãæäŸããäœé å»¶ãšé«å質ãã倧ããªæ©æµãåããŸããå質ãšã³ãžã³ã¯ãå€åãããããã¯ãŒã¯æ¡ä»¶äžã§ããªãŒãã£ãªãå¹ççãã€å¹æçã«ãšã³ã³ãŒããããããšãä¿èšŒããŸããã¢ãããã£ããããã¬ãŒãæŠç¥ã¯ãã¹ã ãŒãºã§éåããªãéä¿¡äœéšãç¶æããããã«ããªã¢ã«ã¿ã€ã ã§é³è³ªã調æŽã§ããŸãã
äŸïŒ WebCodecsãšOpusã䜿çšãããããªäŒè°ã¢ããªã±ãŒã·ã§ã³ã¯ãå©çšå¯èœãªåž¯åå¹ ã«åºã¥ããŠãªãŒãã£ãªãããã¬ãŒããåçã«èª¿æŽã§ããŸãããããã¯ãŒã¯æ¥ç¶ã匷åºãªå Žåãã¢ããªã±ãŒã·ã§ã³ã¯ãããã¬ãŒããäžããŠãªãŒãã£ãªã®æç床ãåäžãããããšãã§ããŸãããããã¯ãŒã¯æ¥ç¶ã匱ãå Žåãã¢ããªã±ãŒã·ã§ã³ã¯ãããã¬ãŒããäžããŠããããã¢ãŠããé²ããå®å®ããæ¥ç¶ãç¶æããŸãã
2. ãªãŒãã£ãªããã³ãããªã¹ããªãŒãã³ã°
ã¹ããªãŒãã³ã°ãµãŒãã¹ã¯ãWebCodecsãæŽ»çšããŠãã©ãŠã¶ã§çŽæ¥ãªãŒãã£ãªã³ã³ãã³ãããšã³ã³ãŒãããã³é ä¿¡ã§ãããã©ã°ã€ã³ãå€éšãã¬ãŒã€ãŒã®å¿ èŠæ§ãæé€ããŸããå質ãšã³ãžã³ã¯ãåãããã¬ãŒãå±€ããã®æå®ããããããã¬ãŒãã§å¯èœãªéãæé«ã®é³è³ªãæäŸããããšãä¿èšŒããç°ãªããããã¯ãŒã¯æ¡ä»¶ãããã€ã¹éã§ã®ãŠãŒã¶ãŒäœéšãæé©åããŸãã
äŸïŒ 鳿¥œã¹ããªãŒãã³ã°ãµãŒãã¹ã¯ãWebCodecsãšAACã䜿çšããŠããã®ãªãŒãã£ãªã©ã€ãã©ãªãè€æ°ã®ãããã¬ãŒãå±€ã«ãšã³ã³ãŒãã§ããŸããå質ãšã³ãžã³ã¯ãåããŒãžã§ã³ãããããã®ãããã¬ãŒãã«æé©ãªèšå®ã§ãšã³ã³ãŒãããããã«äœ¿çšããã垯åå¹ ãéãããã¢ãã€ã«ããã€ã¹ã§ããæãäœããããã¬ãŒãã®ããŒãžã§ã³ã§èš±å®¹å¯èœãªãªã¹ãã³ã°äœéšãæäŸããããšãä¿èšŒããŸãã
3. ãªãŒãã£ãªé²é³ããã³ç·šé
ãŠã§ãããŒã¹ã®ãªãŒãã£ãªé²é³ããã³ç·šéã¢ããªã±ãŒã·ã§ã³ã¯ãWebCodecsã䜿çšããŠãã©ãŠã¶ã§çŽæ¥ãªãŒãã£ãªããã£ããã£ããã³ãšã³ã³ãŒãã§ããŸããå質ãšã³ãžã³ã«ããããŠãŒã¶ãŒã¯é²é³ã®é³è³ªãšãã¡ã€ã«ãµã€ãºãæé©åã§ãããªã³ã©ã€ã³ã§ã®å ±æãšä¿åã容æã«ãªããŸãã
äŸïŒ ãªã³ã©ã€ã³ããããã£ã¹ãã£ã³ã°ãã©ãããã©ãŒã ã¯ãWebCodecsãšOpusã䜿çšããŠããŠãŒã¶ãŒããã©ãŠã¶ã§çŽæ¥ããããã£ã¹ããé²é³ããã³ç·šéã§ããããã«ããŸããå質ãšã³ãžã³ã¯ããªãŒãã£ãªãé«å質ãã€äœãããã¬ãŒãã§ãšã³ã³ãŒãããããã«äœ¿çšãããéå°ãªåž¯åå¹ ãæ¶è²»ããããšãªãããããã£ã¹ãã®ã¢ããããŒããšã¹ããªãŒãã³ã°ã容æã«ããŸãã
4. ãŠã§ãããŒã¹ã®ã²ãŒã
ãŠã§ãããŒã¹ã®ã²ãŒã ã§ã¯ãWebCodecsã¯ã²ãŒã å ã®ãã€ã¹ãã£ããã广é³ã®ããã®ãªã¢ã«ã¿ã€ã ãªãŒãã£ãªãšã³ã³ãŒãã£ã³ã°ãšãã³ãŒãã£ã³ã°ãå¯èœã«ããŸããæ²¡å ¥æã®ããã²ãŒã äœéšã«ã¯ãäœé å»¶ãšå¹ççãªãªãŒãã£ãªå§çž®ãäžå¯æ¬ ã§ããå質ãšã³ãžã³ã¯åçãªã²ãŒã ç°å¢ã«é©å¿ããããã©ãŒãã³ã¹ãæãªãããšãªãé³è³ªãæé©åããŸãã
äŸïŒ ãã«ããã¬ã€ã€ãŒãªã³ã©ã€ã³ã²ãŒã ã¯ãWebCodecsãšOpusã䜿çšããŠã²ãŒã å ãã€ã¹ãã£ãããæå¹ã«ã§ããŸããå質ãšã³ãžã³ã¯ããã€ã¹ãã£ãããªãŒãã£ãªãäœé å»¶ãã€é«å質ã§ãšã³ã³ãŒãããããã«äœ¿çšããããã¬ã€ã€ãŒéã®ã¯ãªã¢ã§çè§£ããããã³ãã¥ãã±ãŒã·ã§ã³ãä¿èšŒããŸãã
WebAssembly (Wasm) ãšã®çµ±å
WebAssembly (Wasm) ã¯ãéçºè ãC++ãªã©ã®èšèªã§æžããã髿§èœãªãªãŒãã£ãªåŠçã©ã€ãã©ãªããã©ãŠã¶å ã§çŽæ¥å©çšã§ããããã«ããããšã§ãWebCodecsã®èœåã匷åããŸãããã®çµ±åã«ãããããè€éãªãªãŒãã£ãªãšã³ã³ãŒãã£ã³ã°ããã³ãã³ãŒãã£ã³ã°ã¢ã«ãŽãªãºã ãå¯èœã«ãªããå šäœçãªå¹çãåäžããŸãã
äŸïŒ éçºè ã¯ãC++ã§æžãããé«åºŠã«æé©åãããOpusãšã³ã³ãŒããWebAssemblyã«ã³ã³ãã€ã«ãããããWebCodecsã¢ããªã±ãŒã·ã§ã³ã«çµ±åããããšãã§ããŸããããã«ããããã©ãŠã¶ãæäŸãããã€ãã£ãã®Opusãšã³ã³ãŒããšæ¯èŒããŠãããã«åªããé³è³ªãšããã©ãŒãã³ã¹ãéæã§ããŸãã
課é¡ãšèæ ®äºé
WebCodecs AudioEncoderå質ãšã³ãžã³ã¯å€§ããªå©ç¹ãæäŸããŸãããæ³šæãã¹ãããã€ãã®èª²é¡ãšèæ ®äºé ããããŸãïŒ
- ã³ãŒããã¯ã®ãµããŒã: ãã¹ãŠã®ãã©ãŠã¶ããã¹ãŠã®ã³ãŒããã¯ããµããŒãããŠããããã§ã¯ãããŸãããã¿ãŒã²ãããã©ãããã©ãŒã ãããã€ã¹ãšã®ã³ãŒããã¯ã®äºææ§ã確èªããããšãéèŠã§ãã
- ãã©ãããã©ãŒã ã«ããå·®ç°: å質ãšã³ãžã³ã®å®è£ ãšããã©ãŒãã³ã¹ã¯ãç°ãªããã©ãŠã¶ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã éã§ç°ãªãå ŽåããããŸãã
- è€éã: æ§ã ãªãŠãŒã¹ã±ãŒã¹ã«åãããŠãªãŒãã£ãªãšã³ã³ãŒãã£ã³ã°ãæé©åããããšã¯è€éã§ãããæ§ã ãªãã©ã¡ãŒã¿ãæ éã«æ€èšããå¿ èŠããããŸãã
- èšç®ã³ã¹ã: å質ãšã³ãžã³ã¯èšç®ã³ã¹ããæå°éã«æããããšãç®æããŠããŸãããç¹ã«è€éãªã¢ã«ãŽãªãºã ãé«ãããã¬ãŒãã®å ŽåããªãŒãã£ãªã®ãšã³ã³ãŒãã¯äŸç¶ãšããŠãªãœãŒã¹ã倧éã«æ¶è²»ããã¿ã¹ã¯ã«ãªãå¯èœæ§ããããŸãã
- ã»ãã¥ãªãã£: ä»ã®ãŠã§ãAPIãšåæ§ã«ãæœåšçãªã»ãã¥ãªãã£ã®è匱æ§ã«æ³šæãããããã軜æžããããã®é©åãªå¯Ÿçãè¬ããããšãéèŠã§ãã
ãããã®èª²é¡ã«å¯ŸåŠããã«ã¯ãæ éãªèšç»ã培åºçãªãã¹ãããããŠããã©ãŒãã³ã¹ãšã»ãã¥ãªãã£ã®ç¶ç¶çãªç£èŠãå¿ èŠã§ãã
WebCodecsã«ãããªãŒãã£ãªå§çž®ã®æªæ¥
WebCodecs AudioEncoderå質ãšã³ãžã³ã¯ããŠã§ãããŒã¹ã®ãªãŒãã£ãªåŠçã«ãããéèŠãªé²æ©ã衚ããŠããŸããWebCodecsã®ãã©ãŠã¶ãµããŒããæ¡å€§ãç¶ããAPIãé²åããã«ã€ããŠãããã«é©æ°çãªã¢ããªã±ãŒã·ã§ã³ãç»å ŽããããšãæåŸ ãããŸããå°æ¥ã®çºå±ã«ã¯ä»¥äžãå«ãŸããå¯èœæ§ããããŸãïŒ
- ã³ãŒããã¯ãµããŒãã®åäž: AV1 Audioãªã©ã®é«åºŠãªãªãŒãã£ãªã³ãŒããã¯ã®ãµããŒããæ¡å€§ããããšã§ãé³è³ªãšå¹çãããã«åäžããŸãã
- AIã«ããæé©å: 人工ç¥èœ (AI) ãšæ©æ¢°åŠç¿ (ML) æè¡ã®çµ±åã«ãããããã«ã€ã³ããªãžã§ã³ãã§é©å¿æ§ã®é«ããªãŒãã£ãªãšã³ã³ãŒãã£ã³ã°æŠç¥ãçãŸããå¯èœæ§ããããŸãã
- ãªã¢ã«ã¿ã€ã å質ã¢ãã¿ãªã³ã°: ãªãŒãã£ãªåè³ªææšã®ãªã¢ã«ã¿ã€ã ã¢ãã¿ãªã³ã°ã«ãããå€åãããããã¯ãŒã¯ç¶æ³ãžã®ããåçã§å¿çæ§ã®é«ãé©å¿ãå¯èœã«ãªããŸãã
- éçºè ããŒã«ã®åŒ·å: æ¹åãããéçºè ããŒã«ã«ãããç¹å®ã®ãŠãŒã¹ã±ãŒã¹ã«åãããŠAudioEncoderãæ§æããæé©åããããšã容æã«ãªããŸãã
çµè«
WebCodecs AudioEncoderå質ãšã³ãžã³ã¯ããŠã§ãã¢ããªã±ãŒã·ã§ã³ã«ããããªãŒãã£ãªå§çž®ãæé©åããããã®åŒ·åãªããŒã«ã§ããVBRãšã³ã³ãŒãã£ã³ã°ãé³é¿å¿çã¢ãã«ãã¢ãããã£ããããã¬ãŒãã¹ããªãŒãã³ã°ãªã©ã®æè¡ã掻çšããããšã§ãéçºè ã¯æå°éã®åž¯åå¹ æ¶è²»ãšäœé å»¶ã§é«å質ã®ãªãŒãã£ãªãå®çŸã§ããŸããWebCodecsãé²åãç¶ããã«ã€ããŠããŠã§ãããŒã¹ã®ãã«ãã¡ãã£ã¢ã®æªæ¥ã圢äœãäžã§ãŸããŸãéèŠãªåœ¹å²ãæãããäžçäžã®ãŠãŒã¶ãŒã«ãšã£ãŠããè±ãã§æ²¡å ¥æã®ãããªãŒãã£ãªäœéšãå¯èœã«ããã§ããããå質ãšã³ãžã³ã®ãã¥ã¢ã³ã¹ãçè§£ããããšã¯ããªã¢ã«ã¿ã€ã éä¿¡ããã¹ããªãŒãã³ã°ã¡ãã£ã¢ãŸã§ã倿§ãªãã©ãããã©ãŒã ãã¢ããªã±ãŒã·ã§ã³ã§åè¶ããé³è³ªãæäŸããããšãç®æãéçºè ã«ãšã£ãŠäžå¯æ¬ ã§ããWebCodecsã®ç¶ç¶çãªæ¢æ±ãšå®éšã¯ã驿°çãªãªãŒãã£ãªã¢ããªã±ãŒã·ã§ã³ã®ãããªãå¯èœæ§ãè§£ãæŸã¡ããŠã§ãããŒã¹ã®ãã«ãã¡ãã£ã¢ã®æ°æä»£ãžã®éãéãã§ãããã
ææ°ã®æ å ±ãšãã¹ããã©ã¯ãã£ã¹ã«ã€ããŠã¯ãå ¬åŒã®WebCodecsããã¥ã¡ã³ããšãã©ãŠã¶åºæã®ãªãœãŒã¹ãåç §ããããšãå¿ããªãã§ãã ããã