การแบ่งส่วนข้อมูล

การแบ่งส่วนข้อมูล (Segmentation) เป็นกระบวนการแบ่งบล็อกข้อมูลให้เป็นบล็อกย่อย เมื่อบล็อกข้อมูลมีขนาดมากเกินขอบเขตในกระบวนการเข้ารหัส LDPC มาตรฐาน 5G ที่กำหนด บล็อกข้อมูลจะถูกแบ่งเป็นบล็อกรหัส (Code Block) แต่ละบล็อกรหัสจะถูกส่งไปเข้ารหัสด้วยรหัส CRC ซึ่งจำนวนบิตข้อมูลสูงสุดต่อบล็อก (\({{K}_{{cb}}}\)) ที่มาตรฐาน 5G รองรับจะขึ้นอยู่กับกราฟฐาน (Base Graph) ที่เลือกใช้

  • กรณีที่ใช้กราฟฐาน 1 ขนาดบิตสูงสุดต่อบล็อก \({{K}_{{cb}}}\) = 8448 บิต
  • กรณีที่ใช้กราฟฐาน 2 ขนาดบิตสูงสุดต่อบล็อก \({{K}_{{cb}}}\) = 3840 บิต

กระบวนการ Segmentation เริ่มต้นจากการพิจารณาจำนวนบิตอินพุตที่เข้ามาโดยบิตอินพุตที่เข้ามา (\(B\)) ซึ่งเป็นบิตข้อมูลที่ผ่านการเข้ารหัส CRC แล้ว 1 ครั้ง หาก \(B\) มีขนาดมากกว่า \({{K}_{{cb}}}\) จะทำการแบ่งบิตข้อมูลออกเป็นบล็อกรหัส (\(C\)) และทำการส่งแต่ละบล็อกไปเข้ารหัส CRC จำนวน 24 บิตอีกครั้ง แต่หาก \(B\) น้อยกว่าหรือเท่ากับ \({{K}_{{cb}}}\) จะไม่มีการเข้ารหัส CRC อีกครั้ง และจะมีบล็อกข้อมูลเพียงหนึ่งบล็อก และบิตทั้งหมดที่ต้องส่ง (\(B\)) จะเท่ากับ \(B\) การกำหนดค่าพารามิเตอร์สำหรับทั้ง 2 กรณี แสดงดังตารางที่ 1 

หลังจากผ่านกระบวนการ Segmentation บิตข้อมูลจะถูกแบ่งออกเป็นบล็อกรหัสขนาด  \(K\) บิต ซึ่งแต่ละบล็อกประกอบด้วย \(C{{r}_{0}},C{{r}_{1}},…,{{C}_{{r({{K}_{r}}-1)}}}\) เมื่อ  \(0\le r<C\) โดยที่ \(r\) คือลำดับบล็อกรหัสและ \({{K}_{r}}\) คือ จำนวนบิตทั้งหมดในบล็อกที่ \(r\) โดยในแต่ละบล็อกจะถูกแบ่งให้มีจำนวนบิตข้อมูลเท่ากันทุกบล็อก หรือ  \({{K}_{r}}=K\) โดยจำนวนบิตในแต่ละบล็อกจะมีขนาด  \({K}’\) บิต ซึ่งสามารถหาได้จาก \({K}’={B}’/C\) 

มาตรฐาน 5G มีการกำหนดจำนวนบิตในแต่ละบล็อกให้อยู่ภายใต้เงื่อนไข \({{K}_{b}}\centerdot {{Z}_{c}}\ge {K}’\) จากนั้นแทนค่า \({{Z}_{c}}\) ที่ได้จากเงื่อนไขดังกล่าวเพื่อหาค่า \(K\) โดยมีข้อกำหนดดังนี้ หากเลือกใช้กราฟฐาน 1 จะใช้ \(K=22{{Z}_{c}}\) และหากเลือกใช้กราฟฐาน 2 จะใช้ \(K=10{{Z}_{c}}\) จึงส่งผลให้ต้องมีการปรับขนาดของบิตข้อมูลที่แบ่งในตอนต้น จากเดิมขนาด  \({K}’\) บิต เป็นขนาดบิตข้อมูลตามมาตรฐานกำหนดขนาด \(K\) บิต โดย \({{Z}_{c}}\) จะถูกกำหนดมาจากการเลือกค่า \(Z\) ที่ต่ำที่สุดและอยู่ภายใต้เงื่อนไขดังกล่าว ส่วน \({{K}_{b}}\) จะขึ้นกับกราฟฐานที่เลือกใช้ โดยมีเงื่อนไขการพิจารณาดังนี้

  • กรณีใช้กราฟฐาน 1 ใช้ \({{K}_{b}}=22\) บิต
  • กรณีใช้กราฟฐาน 2 และ \(B>640\) ใช้ \({{K}_{b}}=10\) บิต
  • กรณีใช้กราฟฐาน 2 และ \(B>560\) บิต ใช้ \({{K}_{b}}=9\) บิต
  • กรณีใช้กราฟฐาน 2 และ \(B>192\) บิต ใช้ \({{K}_{b}}=8\) บิต
  • กรณีอื่น ๆ ใช้ \({{K}_{b}}=6\) บิต

หลังจากทำการแบ่งข้อมูลเป็นบล็อกย่อย ๆ แต่ละบล็อกจะมีองค์ประกอบ 2 ส่วน ได้แก่ บิตข้อมูล และบิตว่าง (Null Bits) บิตข้อมูลอินพุตจะถูกใส่เข้าไปในตำแหน่งที่ 0 ถึง \({K}’-L-1\) ของบล็อก ในกรณีที่ \(C<1\) หรือมีจำนวนบล็อกย่อยมากกว่า 1 บล็อก ข้อมูลภายในบล็อกจะถูกส่งไปเข้ารหัสตรวจจับความผิดพลาดหรือ CRC โดยทำการคำนวณหา CRC พาริตี 24 บิต จากโพลีโนเมียล \({{g}_{{\text{CRC24B}}}}(D\text{)}\) และถูกใส่ในตำแหน่งที่ \({K}’-L\) ถึง \({K}’-1\) จากนั้นจะมีการเติมบิตว่างตั้งแต่บิตที่ \({{K}^{‘}}\) ถึง \(K-1\) เพื่อให้ครบจำนวนบิตข้อมูลในแต่ละบล็อก (\(K\))