def coco_pixel_2_pascal_pixel(boxes, shape):
    """
    Converts bounding boxes from COCO pixel format (x, y, width, height)
    to Pascal VOC pixel format (x_min, y_min, x_max, y_max).

    Clipping ensures the bounding boxes have non-negative width and height.

    @param boxes: numpy array of shape (N, 4), containing bounding boxes in COCO format.
    @param shape: tuple, the shape of the image (height, width).

    @return: numpy array of shape (N, 4), bounding boxes in Pascal VOC format.
    """
    pascal_boxes = np.empty((0, 4), dtype=boxes.dtype)
    if boxes.size != 0:
        pascal_boxes = np.stack(
            (
                boxes[:, 0],
                boxes[:, 1],
                boxes[:, 0] + boxes[:, 2],
                boxes[:, 1] + boxes[:, 3],
            ),
            axis=1,
        )
    return pascal_boxes

    Converts bounding boxes from COCO pixel format (x, y, width, height)
    to Pascal VOC pixel format (x_min, y_min, x_max, y_max).

    Clipping ensures the bounding boxes have non-negative width and height.

    @param boxes: numpy array of shape (N, 4), containing bounding boxes in COCO format.
    @param shape: tuple, the shape of the image (height, width).

    @return: numpy array of shape (N, 4), bounding boxes in Pascal VOC format.
    
python/deeplake/integrations/mmdet/mmdet_dataset_.py