Knowledge (XXG)

Flexible Macroblock Ordering

Source 📝

85:
sent in any desired pattern while predicted blocks make up the rest of the picture. Although errors will still propagate horizontally, I-blocks can be sent in patterns, such as favoring a region of interest or a scattered checkerboard, to simulate shaped slice refreshes. With bidirectional communication to the client, lost slices can be refreshed as soon as detected, but this is not feasible for wider broadcast.
93:
FMO is only allowed within the Baseline and Extended profiles. The much more common Constrained Baseline, Main, and all High profiles do not support it, and software that can create or decode it is rare. Some videoconferencing units use it; otherwise, the JM reference software is the primary support.
80:
maps each macroblock to a slice group, and can be updated at any time, with a few default patterns defined, such as Slice Interleaving (groups alternate every scanline) or Scattered Slices (groups alternate every block). With these patterns, FMO allows one retain a better localized visual context so
49:
and can be decoded independently of other slices. These macroblocks are processed in a scan order, normally left to right, beginning at the top. A frame can be composed of a single slice, or multiple slices for parallel processing and error-resilience, because errors in a slice only propagate within
101:
below) being the worst. The goals of spreading out errors and coding efficiency are directly in conflict. FMO allows inter prediction for immediate neighboring slices in the same group, effectively making a contiguous region nearly act like a single slice; in some situations, where slice groups are
84:
Certain advanced encoding techniques can simulate some of FMO's benefits. In H.264/AVC, P (predicted) and B (bipredicted) frames may contain I (intra) blocks, which store independent picture. Rather than create a slice in order to periodically refresh entirely with I or IDR frames, I-blocks can be
56:
enhances this by allowing macroblocks to be grouped and sent in any direction and order, and can be used to create shaped and non-contiguous slice groups. This way, FMO allows more flexibly deciding what slice macroblocks belong to, in order to spread out errors and keep errors in one part of the
105:
Aside from increased complexity in encoding and decoding, and lower efficiency, in-loop deblocking also creates a problem: Slices can be sent in any order, but the deblocker requires all . Either the deblocker has to run in multiple passes whenever another slice is received, or an entire picture
64:
Individual slices still have to be continuous horizontal regions of macroblocks, but with FMO's slice groups, motion compensation can take place within any contiguous macroblocks through the entire group; effectively, each slice group is treated as one or more contiguous shaped slices for the
125:
Scattered or dispersed slice groups, type 1: Every macroblock is a different slice. With two slice groups, it creates a checkerboard pattern; four or more groups also interleave rows, and with six slice groups, no macroblock will ever touch another from the same slice group in any direction,
72:
coding, in which specific macroblocks are targeted to receive more or less quality, the canonical example being a newscaster's head being given a higher ratio of bits than the background. FMO's primary benefit when combined with RoI coding is the ability to prevent errors in one region from
73:
propagating into another region. For example, if a background slice is lost, the background may be corrupted for some time but the newscaster's face will not be affected, and it becomes simpler to send regular refreshes of the most important slice to make up for any errors there.
133:. All areas not covered are assigned to a final group. Vector prediction is possible within each rectangle and within the background. The behavior of overlapping rectangles is undefined, but in the reference software the last slice group to define it is used. 102:
shaped into a Region of Interest, it can actually slightly improve efficiency over simple standard slices, but the benefit is rare and small. Due to this, FMO should only be used where packet losses are common and expected.
97:
Using multiple slices per picture always lowers coding efficiency, and FMO can further impact it. The more spread out the slices are, the worse it becomes, with checkerboard patterns (see
139:
Explicit groups, type 6: An entire MBAmap is transmitted with groups arranged in any way the encoder wishes. Vector prediction is possible within any contiguous regions of the same group.
136:
Changing groups, types 3-5: Similar to type 2, but dynamic types that grow and shrink in a cyclic way. Only the growth rate, the direction and the position in the cycle have to be known.
106:
needs to be buffered before beginning the deblocking, possibly creating additional latency if slices are delayed long enough that the next picture's slices start coming in first.
114:
When using FMO, the image can be divided in different scan patterns of the macroblocks, with several built-in patterns defined in the spec, signaled as 0–5 in the unit
45:
One of the characteristics of the H.264/AVC standard is the possibility of dividing an image into regions called slices, each of which contains a sequence of
122:
Interleaved slice groups, type 0: Every row is a different slice, alternating as many times as slice groups. Only horizontal prediction vectors are allowed.
61:, because each slice group can be sent in any order and can optionally be decoded in order of receipt, instead of in the usual scan order. 231:"Draft ITU-T Recommendation and Final Draft International Standard of Joint Video Specification (ITU-T Rec. H.264 / ISO/IEC 14496-10 AVC)" 118:, and one option to include an entire explicitly assigned MBAmap, signaled as 6. The map type and a new MBAmap can be sent at any time. 76:
Slices used with FMO are not static, and can change as circumstances change, such as tracking a moving object. A structure called the
145: 181: 58: 201: 129:
Foreground groups, type 2: Specifying only the top-left and bottom-right of static rectangles to create
57:
frame from compromising another part of the frame. FMO builds on top of another error-resilience tool,
167: 34: 31: 17: 150:(In the above image, "Type 0" shows standard H.264 slices, not interleaved slice groups.) 230: 252: 30:
or FMO is one of several error resilience tools defined in the Baseline profile of the
246: 46: 215: 126:
maximizing error concealment opportunities. No vector prediction is possible.
144: 81:
that error-concealment algorithms can reconstruct missing content.
182:"Error Resiliency and Concealment in H.264 MPEG-4 Part 10" 8: 195: 193: 191: 158: 7: 200:Wenger, Stephan; Horowitz, Michael. 166:Wenger, Stephan; Horowitz, Michael. 168:"FMO: Flexible Macroblock Ordering" 25: 229:Wiegand, Thomas; Sullivan, Gary. 65:purposes of motion compensation. 143: 68:Nearly all video codecs allow 1: 54:Flexible Macroblock Ordering 28:Flexible Macroblock Ordering 18:Flexible macroblock ordering 269: 216:"H.264 Reference Software" 59:Arbitrary slice ordering 110:Implementation details 116:slice_group_map_type 131:regions of interest 70:Region of Interest 35:video compression 16:(Redirected from 260: 238: 237: 235: 226: 220: 219: 212: 206: 205: 197: 186: 185: 178: 172: 171: 163: 147: 99:Scattered Slices 32:H.264/MPEG-4 AVC 21: 268: 267: 263: 262: 261: 259: 258: 257: 243: 242: 241: 233: 228: 227: 223: 214: 213: 209: 199: 198: 189: 180: 179: 175: 165: 164: 160: 156: 112: 91: 43: 23: 22: 15: 12: 11: 5: 266: 264: 256: 255: 245: 244: 240: 239: 221: 207: 187: 173: 157: 155: 152: 141: 140: 137: 134: 127: 123: 111: 108: 90: 87: 42: 39: 24: 14: 13: 10: 9: 6: 4: 3: 2: 265: 254: 251: 250: 248: 232: 225: 222: 217: 211: 208: 203: 196: 194: 192: 188: 183: 177: 174: 169: 162: 159: 153: 151: 148: 146: 138: 135: 132: 128: 124: 121: 120: 119: 117: 109: 107: 103: 100: 95: 88: 86: 82: 79: 74: 71: 66: 62: 60: 55: 51: 48: 40: 38: 36: 33: 29: 19: 224: 210: 176: 161: 149: 142: 130: 115: 113: 104: 98: 96: 92: 83: 77: 75: 69: 67: 63: 53: 52: 50:that slice. 44: 27: 26: 47:macroblocks 41:Description 154:References 37:standard. 202:"FMO 101" 89:Tradeoffs 247:Category 78:MBAmap 253:Video 234:(PDF) 249:: 190:^ 236:. 218:. 204:. 184:. 170:. 20:)

Index

Flexible macroblock ordering
H.264/MPEG-4 AVC
video compression
macroblocks
Arbitrary slice ordering

"FMO: Flexible Macroblock Ordering"
"Error Resiliency and Concealment in H.264 MPEG-4 Part 10"



"FMO 101"
"H.264 Reference Software"
"Draft ITU-T Recommendation and Final Draft International Standard of Joint Video Specification (ITU-T Rec. H.264 / ISO/IEC 14496-10 AVC)"
Category
Video

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.