如何使用Rust程式語言處理寬度(位元組數量)浮動的UTF-8字串? 2020 年 7 月 3 日 Magic Len 研究分享、 Rust Rust程式語言的字串是使用UTF-8編碼的,這種編碼方式讓每個字元有四種不同的寬度,例如「4」會被編碼成「[52]」;「ß」會被編碼成「[195, 159]」;「中」會被編碼成「[228, 184, 173]」;「𩸽」(ㄌㄨㄥˇ)會被編碼成「[240, 169, 184, 189]」。再加上Rust是標榜安全的程式語言,因此在切割字串的時候會去做索引位置的檢查,避免取到不正確的資料範圍,不過這也... 繼續閱讀
如何用FFmpeg將影像轉成VP9格式? 2020 年 6 月 30 日 Magic Len 研究分享、 軟體介紹 FFmpeg全名是Fast Forward MPEG(Moving Picture Experts Group),為開源的影音多媒體處理框架,可以進行影音的解碼、編碼、編碼轉換、混合、抽取、串流和濾鏡,無論影音格式是從哪個地方出來的,從過去到現在的影音格式它幾乎都能夠支援。當然,它也可以利用libvpx這款VP9的官方編碼器來進行VP9編碼。 繼續閱讀
如何寫程式來找出河內塔的最佳解?那不寫程式的話呢? 2020 年 6 月 25 日 Magic Len 研究分享、 Go、 Java、 數學邏輯、 Rust、 JavaScript 河內塔(Tower of Hanoi)是一個很謎的數學遊戲,它是由三根桿子(Rod)和一個以上大小不同的碟片(Disk)所組成的。在遊戲的一開始,這些碟片按照底大頂小的順序疊在一起,由三根桿子中的其中一根串著。玩家每次可以移動一個碟片到其它的桿子上,但是不能將比較大的碟片疊在比較小的碟片上。當玩家把所有碟片都串到指定的桿子,遊戲就結束了。 繼續閱讀
如何用FFmpeg將影像轉成VP8格式? 2020 年 6 月 23 日 Magic Len 研究分享、 軟體介紹 FFmpeg全名是Fast Forward MPEG(Moving Picture Experts Group),為開源的影音多媒體處理框架,可以進行影音的解碼、編碼、編碼轉換、混合、抽取、串流和濾鏡,無論影音格式是從哪個地方出來的,從過去到現在的影音格式它幾乎都能夠支援。當然,它也可以利用libvpx這款VP8的官方編碼器來進行VP8編碼。 繼續閱讀
電腦是怎麼進行四則運算的?前序式、中序式、後序式又是什麼? 2020 年 6 月 18 日 Magic Len 研究分享、 Go、 Java、 Rust、 演算法、 JavaScript 我們從小學習算術的時候便知道「四則(加、減、乘、除)運算」的規則,也就是「先乘除、後加減,以及括號先算」。那麼如果我們要撰寫一個可以支援算式輸入且能夠按照四則運算規則求出結果的程式,該怎麼做呢? 繼續閱讀
如何用FFmpeg將影像轉成H.265/HEVC格式? 2020 年 6 月 16 日 Magic Len 研究分享、 軟體介紹 FFmpeg全名是Fast Forward MPEG(Moving Picture Experts Group),為開源的影音多媒體處理框架,可以進行影音的解碼、編碼、編碼轉換、混合、抽取、串流和濾鏡,無論影音格式是從哪個地方出來的,從過去到現在的影音格式它幾乎都能夠支援。當然,它也可以利用x265這款高品質的開源H.265編碼器來進行H.265編碼。 繼續閱讀
如何將遞迴函數改成迭代函數? 2020 年 6 月 11 日 Magic Len 研究分享、 Go、 Java、 Rust、 JavaScript 遞迴(Recursive)函數是在執行的過程又會直接或間接地呼叫自己本身的函數。通常透過遞迴函數可以快速地驗證我們的演算法,用簡短的程式碼處理複雜的問題,但是函數在呼叫時需要建立新的堆疊框(Stack Frame),除了會需要額外的開支(Overhead)之外,如果在函數中呼叫函數,而這函數又會呼叫函數,持續下去,很容易就會造成堆疊溢出(Stack Overflow)。雖然有些程式語言的編譯器會做... 繼續閱讀
如何用FFmpeg將影像轉成H.264/MPEG-4 AVC格式? 2020 年 6 月 9 日 Magic Len 研究分享、 軟體介紹 FFmpeg全名是Fast Forward MPEG(Moving Picture Experts Group),為開源的影音多媒體處理框架,可以進行影音的解碼、編碼、編碼轉換、混合、抽取、串流和濾鏡,無論影音格式是從哪個地方出來的,從過去到現在的影音格式它幾乎都能夠支援。當然,它也可以利用x264這款高品質的開源H.264編碼器來進行H.264編碼。 繼續閱讀
如何用FFmpeg將音訊轉成FLAC/ALAC無損格式? 2020 年 6 月 2 日 Magic Len 研究分享、 軟體介紹 FFmpeg全名是Fast Forward MPEG(Moving Picture Experts Group),為開源的影音多媒體處理框架,可以進行影音的解碼、編碼、編碼轉換、混合、抽取、串流和濾鏡,無論影音格式是從哪個地方出來的,從過去到現在的影音格式它幾乎都能夠支援。當然,FFmpeg也有內建FLAC和ALAC編碼器,可以將音訊轉成FLAC或ALAC格式。 繼續閱讀
費氏搜尋(Fibonacci Search)演算法,運用費氏數列的搜尋演算法 2020 年 5 月 28 日 Magic Len 研究分享、 Go、 Java、 Rust、 演算法、 JavaScript 費氏搜尋(Fibonacci Search)演算法有點像是二元搜尋(Binary Search)演算法,同樣是在一個已排序好的陣列中搜尋元素,但是它在移動陣列索引值時是去參考費氏數列(Fibonacci Sequence),而不是像二元搜尋法那樣總是去取索引的中間值。也由於費氏搜尋法在移動陣列索引值時只需要進行加減運算,不需乘、除法,因此它適合被用在不擅長處理乘、除法的CPU上。 繼續閱讀