from typing import Tuple


def default_image_segmentation(rows: int, cols: int, row_limit: int) -> Tuple[Tuple[int, ...], ...]:
    """
    Determine the appropriate segmentation for the image. This is driven
    by the SICD/SIDD standard, and not the only generally feasible segmentation
    scheme for other NITF file types.

    Parameters
    ----------
    rows : int
    cols : int
    row_limit : int
        It is assumed that this follows the NITF guidelines

    Returns
    -------
    Tuple[Tuple[int, ...], ...]
        Of the form `((row start, row end, column start, column end))`
    """

    im_segments = []
    row_offset = 0
    while row_offset < rows:
        next_rows = min(rows, row_offset + row_limit)
        im_segments.append((row_offset, next_rows, 0, cols))
        row_offset = next_rows
    return tuple(im_segments)